diff --git a/allow_password_reset_on-1359718-238.patch b/allow_password_reset_on-1359718-238.patch
new file mode 100644
index 0000000..051609d
--- /dev/null
+++ b/allow_password_reset_on-1359718-238.patch
@@ -0,0 +1,515 @@
+diff --git a/core/modules/user/src/AccountForm.php b/core/modules/user/src/AccountForm.php
+index 0bcfad9..8c397d5 100644
+--- a/core/modules/user/src/AccountForm.php
++++ b/core/modules/user/src/AccountForm.php
+@@ -407,4 +407,84 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
+       unset($_SESSION['pass_reset_'. $user->id()]);
+     }
+   }
++
++  /**
++   * {@inheritdoc}
++   */
++  public function validateForm(array &$form, FormStateInterface $form_state) {
++    $account = $this->entity;
++    $name = $form_state->getValue('name');
++    $mail = $form_state->getValue('mail');
++
++    // For new registrations, make sure the username does not conflict with
++    // an existing user's email address.
++    if (!empty($name)) {
++      $name_taken = FALSE;
++
++      // For existing users whose username matches another user's email address
++      // are not forced to update their username.
++      if ($account->isAuthenticated()) {
++        $name_taken = (bool) db_select('users_field_data', 'ufd')
++          ->condition('ufd.name', db_like($name), 'LIKE')
++          ->condition('ufd.uid', $account->id(), '<>')
++          ->range(0, 1)
++          ->countQuery()
++          ->execute()
++          ->fetchField();
++      }
++      else {
++        $name_taken = (bool) db_select('users_field_data', 'ufd')
++          ->condition(
++            db_or()
++            ->condition('ufd.name', db_like($name), 'LIKE')
++            ->condition('ufd.mail', db_like($name), 'LIKE')
++          )
++          ->condition('ufd.status', 1)
++          ->range(0, 1)
++          ->countQuery()
++          ->execute()
++          ->fetchField();
++      }
++
++      if ($name_taken) {
++        $form_state->setErrorByName('name', $this->t('The name @name is already taken.', array('@name' => $name)));
++      }
++    }
++
++    // For new registrations, make sure the email address does not conflict
++    // with an existing user's username.
++    if (!empty($mail)) {
++      $mail_taken = FALSE;
++
++      // For existing users whose email matches another user's username are not
++      // forced to update their email address.
++      if ($account->isAuthenticated()) {
++        $mail_taken = (bool) db_select('users_field_data', 'ufd')
++          ->condition('ufd.mail', db_like($mail), 'LIKE')
++          ->condition('ufd.uid', $account->id(), '<>')
++          ->range(0, 1)
++          ->countQuery()
++          ->execute()
++          ->fetchField();
++      }
++      else {
++        $mail_taken = (bool) db_select('users_field_data', 'ufd')
++          ->condition(
++            db_or()
++            ->condition('ufd.mail', db_like($mail), 'LIKE')
++            ->condition('ufd.name', db_like($mail), 'LIKE')
++          )
++          ->condition('ufd.status', 1)
++          ->range(0, 1)
++          ->countQuery()
++          ->execute()
++          ->fetchField();
++      }
++
++      if ($mail_taken) {
++        $form_state->setErrorByName('mail', $this->t('The email address @email is already registered.', array('@email' => $mail)));
++      }
++    }
++  }
++
+ }
+diff --git a/core/modules/user/src/Form/UserPasswordForm.php b/core/modules/user/src/Form/UserPasswordForm.php
+index 8a1a839..370b54b 100644
+--- a/core/modules/user/src/Form/UserPasswordForm.php
++++ b/core/modules/user/src/Form/UserPasswordForm.php
+@@ -15,6 +15,10 @@
+ use Drupal\user\UserStorageInterface;
+ use Symfony\Component\HttpFoundation\Request;
+ use Symfony\Component\DependencyInjection\ContainerInterface;
++use Drupal\Component\Utility\Crypt;
++use Drupal\Core\Site\Settings;
++use Drupal\Core\Language\LanguageInterface;
++use Drupal\Core\Url;
+ 
+ /**
+  * Provides a user password reset form.
+@@ -72,40 +76,85 @@ public function getFormId() {
+    *   The request object.
+    */
+   public function buildForm(array $form, FormStateInterface $form_state) {
+-    $form['name'] = array(
+-      '#type' => 'textfield',
+-      '#title' => $this->t('Username or email address'),
+-      '#size' => 60,
+-      '#maxlength' => max(USERNAME_MAX_LENGTH, Email::EMAIL_MAX_LENGTH),
+-      '#required' => TRUE,
+-      '#attributes' => array(
+-        'autocorrect' => 'off',
+-        'autocapitalize' => 'off',
+-        'spellcheck' => 'false',
+-        'autofocus' => 'autofocus',
+-      ),
+-    );
+-    // Allow logged in users to request this also.
+-    $user = $this->currentUser();
+-    if ($user->isAuthenticated()) {
+-      $form['name']['#type'] = 'value';
+-      $form['name']['#value'] = $user->getEmail();
+-      $form['mail'] = array(
+-        '#prefix' => '<p>',
+-        '#markup' => $this->t('Password reset instructions will be mailed to %email. You must log out to use the password reset link in the email.', array('%email' => $user->getEmail())),
+-        '#suffix' => '</p>',
++    // When a user requests a password reset we check for username and email
++    // conflicts using a multistep form.
++    $step_value = $form_state->getValue('step');
++    if (empty($step_value)) {
++      $form['step'] = array(
++        '#type' => 'hidden',
++        '#value' => 1,
+       );
++      $form_state->setValue('step', 1);
+     }
+-    else {
+-      $form['mail'] = array(
+-        '#prefix' => '<p>',
+-        '#markup' => $this->t('Password reset instructions will be sent to your registered e-mail address.'),
+-        '#suffix' => '</p>',
++
++    if ($form_state->getValue('step') == 1) {
++      $form['name'] = array(
++        '#type' => 'textfield',
++        '#title' => $this->t('Username or email address'),
++        '#size' => 60,
++        '#maxlength' => max(USERNAME_MAX_LENGTH, Email::EMAIL_MAX_LENGTH),
++        '#required' => TRUE,
++        '#attributes' => array(
++          'autocorrect' => 'off',
++          'autocapitalize' => 'off',
++          'spellcheck' => 'false',
++          'autofocus' => 'autofocus',
++        ),
+       );
++      // Allow logged in users to request this also.
++      $user = $this->currentUser();
++      if ($user->isAuthenticated()) {
++        $form['name']['#type'] = 'value';
++        $form['name']['#value'] = $user->getEmail();
++        $form['mail'] = array(
++          '#prefix' => '<p>',
++          '#markup' =>  $this->t('Password reset instructions will be mailed to %email. You must log out to use the password reset link in the e-mail.', array('%email' => $user->getEmail())),
++          '#suffix' => '</p>',
++        );
++      }
+       $form['name']['#default_value'] = $this->getRequest()->query->get('name');
+     }
++    else {
++      // Where there is a conflict between the username and email address for two
++      // users we supply both accounts as an option for the password reset.
++      $accounts = $form_state->getStorage()['accounts'];
++      $options = array();
++      foreach ($accounts as $account) {
++        $label = $this->t('The account with the username: @name', array('@name' => $account->getUsername()));
++        if ($account->getEmail() === $form_state->getStorage()['name']) {
++          $label = $this->t('The account with the email address: @email', array('@email' => $account->getEmail()));
++        }
++        $options[Crypt::hashBase64(Settings::getHashSalt() . $account->id())] = $label;
++      }
++      $form['choose_account'] = array(
++        '#type' => 'radios',
++        '#title' => $this->t('Choose account'),
++        '#required' => TRUE,
++        '#prefix' => "<p>" . $this->t("There is a username conflict with the email address @email. Please select which account password to reset.", array('@email' => $form_state->getStorage()['name'])) . "</p>",
++        '#options' => $options,
++        '#default_value' => Crypt::hashBase64(Settings::getHashSalt() . reset($accounts)->id()),
++      );
++
++      $form['step'] = array(
++        '#type' => 'hidden',
++        '#value' => 2,
++      );
++    }
+     $form['actions'] = array('#type' => 'actions');
+-    $form['actions']['submit'] = array('#type' => 'submit', '#value' => $this->t('Submit'));
++    if ($form_state->getValue('step') == 2) {
++      $form['actions']['cancel'] = array(
++        '#type' => 'submit',
++        '#value' => $this->t('Cancel'),
++        '#name' => 'cancel',
++        '#limit_validation_errors' => array(),
++        '#weight' => 5,
++      );
++    }
++    $form['actions']['submit'] = array(
++      '#type' => 'submit',
++      '#value' => $this->t('Submit'),
++      '#name' => 'submit'
++    );
+ 
+     return $form;
+   }
+@@ -114,25 +163,45 @@ public function buildForm(array $form, FormStateInterface $form_state) {
+    * {@inheritdoc}
+    */
+   public function validateForm(array &$form, FormStateInterface $form_state) {
+-    $name = trim($form_state->getValue('name'));
+-    // Try to load by email.
+-    $users = $this->userStorage->loadByProperties(array('mail' => $name));
+-    if (empty($users)) {
+-      // No success, try to load by name.
+-      $users = $this->userStorage->loadByProperties(array('name' => $name));
+-    }
+-    $account = reset($users);
+-    if ($account && $account->id()) {
+-      // Blocked accounts cannot request a new password.
+-      if (!$account->isActive()) {
+-        $form_state->setErrorByName('name', $this->t('%name is blocked or has not been activated yet.', array('%name' => $name)));
++    if ($form_state->getValue('step') == 1) {
++      $name = trim($form_state->getValue('name'));
++      $accounts = array();
++      // Try to load by email.
++      $users = $this->userStorage->loadByProperties(array('mail' => $name));
++      $account_by_email = reset($users);
++      if ($account_by_email) {
++        $accounts[Crypt::hashBase64(Settings::getHashSalt() . $account_by_email->id())] = $account_by_email;
++      }
++      // Also try to load by user name, but only when the user is not logged in.
++      $user = $this->currentUser();
++      if ($user->id() == 0) {
++        $users = $this->userStorage->loadByProperties(array('name' => $name));
++        $account_by_name = reset($users);
++        if ($account_by_name) {
++          $accounts[Crypt::hashBase64(Settings::getHashSalt() . $account_by_name->id())] = $account_by_name;
++        }
++      }
++      if (!empty($accounts)) {
++        if (count($accounts) == 1) {
++          $account = reset($accounts);
++          // Blocked accounts cannot request a new password.
++          if (!$account->isActive()) {
++            $form_state->setErrorByName('name', $this->t('%name is blocked or has not been activated yet.', array('%name' => $account->getUsername())));
++          }
++        }
++        $form_state->setValue('accounts', $accounts);
+       }
+       else {
+-        $form_state->setValueForElement(array('#parents' => array('account')), $account);
++        $form_state->setErrorByName('name', $this->t('Sorry, %name is not recognized as a username or an e-mail address.', array('%name' => $name)));
+       }
+     }
+-    else {
+-      $form_state->setErrorByName('name', $this->t('Sorry, %name is not recognized as a username or an email address.', array('%name' => $name)));
++    else if ($form_state->getValue('step') == 2) {
++      $chosen_account = $form_state->getValue('choose_account');
++      $account = $form_state->getStorage()['accounts'][$chosen_account];
++      // Blocked accounts cannot request a new password.
++      if (!$account->isActive()) {
++        $form_state->setErrorByName('choose_account', $this->t('%name is blocked or has not been activated yet.', array('%name' => $account->getUsername())));
++      }
+     }
+   }
+ 
+@@ -140,17 +209,42 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
+    * {@inheritdoc}
+    */
+   public function submitForm(array &$form, FormStateInterface $form_state) {
+-    $langcode = $this->languageManager->getCurrentLanguage()->getId();
+-
+-    $account = $form_state->getValue('account');
+-    // Mail one time login URL and instructions using current language.
+-    $mail = _user_mail_notify('password_reset', $account, $langcode);
+-    if (!empty($mail)) {
+-      $this->logger('user')->notice('Password reset instructions mailed to %name at %email.', array('%name' => $account->getUsername(), '%email' => $account->getEmail()));
+-      drupal_set_message($this->t('Further instructions have been sent to your email address.'));
++    $language_interface = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_INTERFACE);
++
++    if ($form_state->getValue('step') == 1) {
++      $accounts = $form_state->getValue('accounts');
++      if (count($accounts) > 1) {
++        $form_state->setValue('step', 2);
++        $form_state->setStorage(array(
++          'name' => $form_state->getValue('name'),
++          'accounts' => $accounts,
++        ));
++        $form_state->setRebuild();
++      }
++      else {
++        $account = reset($accounts);
++      }
++    }
++    else {
++      if ($form_state->getTriggeringElement()['#name'] == 'submit') {
++        $chosen_account = $form_state->getValue('choose_account');
++        $account = $form_state->getStorage()['accounts'][$chosen_account];
++      }
++      else {
++        $form_state->setRedirectUrl(Url::fromRoute('user.pass'));
++      }
+     }
++    if (isset($account)) {
++      // Mail one-time login URL and instructions using current language.
++      $mail = _user_mail_notify('password_reset', $account, $language_interface->getId());
++      if (!empty($mail)) {
++        $this->logger('user')->notice('Password reset instructions mailed to %name at %email.', array('%name' => $account->name, '%email' => $account->mail));
++        drupal_set_message($this->t('Further instructions have been sent to your e-mail address.'));
++      }
+ 
+-    $form_state->setRedirect('user.page');
++      $form_state->setRedirectUrl(Url::fromRoute('user.page'));
++    }
++    return;
+   }
+ 
+ }
+diff --git a/core/modules/user/src/Tests/UserEditTest.php b/core/modules/user/src/Tests/UserEditTest.php
+index 46502f4..83c7ecd 100644
+--- a/core/modules/user/src/Tests/UserEditTest.php
++++ b/core/modules/user/src/Tests/UserEditTest.php
+@@ -102,4 +102,30 @@ function testUserWithoutEmailEdit() {
+     $this->drupalPostForm("user/" . $user1->id() . "/edit", array('mail' => ''), t('Save'));
+     $this->assertRaw(t("The changes have been saved."));
+   }
++
++  /**
++   * Check that existing users whose username matches another user's email
++   * address or vice versa are not forced to update their username or email
++   * address.
++   */
++  function testUserEditWithConflicts() {
++    $user_with_email = $this->drupalCreateUser();
++    $user_with_name = $this->drupalCreateUser();
++
++    // Change the second user's username to the same value as the first user's
++    // email address.
++    $user_with_name->name = $user_with_email->mail;
++    $user_with_name->save();
++
++    // Test that the first user can save their account with no errors.
++    $this->drupalLogin($user_with_email);
++    $this->drupalPostForm("user/" . $user_with_email->id() . "/edit", array(), t('Save'));
++    $this->assertText(t("The changes have been saved."), "The user does not need to change their username if it matches another user's email address.");
++    $this->drupalLogout();
++
++    // Test that the second user can save their account with no errors.
++    $this->drupalLogin($user_with_name);
++    $this->drupalPostForm("user/" . $user_with_name->id() . "/edit", array(), t('Save'));
++    $this->assertText(t("The changes have been saved."), "The user does not need to change their email address if it matches another user's username.");
++  }
+ }
+diff --git a/core/modules/user/src/Tests/UserPasswordResetTest.php b/core/modules/user/src/Tests/UserPasswordResetTest.php
+index 07c7fcf..d8e98d2 100644
+--- a/core/modules/user/src/Tests/UserPasswordResetTest.php
++++ b/core/modules/user/src/Tests/UserPasswordResetTest.php
+@@ -7,6 +7,8 @@
+ 
+ namespace Drupal\user\Tests;
+ 
++use Drupal\Component\Utility\Crypt;
++use Drupal\Core\Site\Settings;
+ use Drupal\system\Tests\Cache\PageCacheTagsTestBase;
+ use Drupal\user\Entity\User;
+ 
+@@ -70,6 +72,61 @@ protected function setUp() {
+   }
+ 
+   /**
++   * Attempts to reset a password when an email address matches two accounts.
++   */
++  function testUserPasswordResetDuplicateUsers() {
++    $user_settings = $this->config('user.settings');
++
++    // Don't require email validation for new accounts.
++    $user_settings->set('verify_mail', FALSE)->save();
++
++    // Don't require admin approval for new accounts.
++    $user_settings->set('register', USER_REGISTER_VISITORS)->save();
++    // Create two users.
++    $user_with_email = $this->drupalCreateUser();
++    $user_with_name = $this->drupalCreateUser();
++
++    // Change the second user's username to the same value as the first user's
++    // email address.
++    $user_with_name->name = $user_with_email->getEmail();
++    $user_with_name->save();
++
++    // Try and reset based on the duplicated email.
++    $edit = array();
++    $edit['name'] = $user_with_email->getEmail();
++    $this->drupalPostForm('user/password', $edit, t('Submit'));
++    // There should be a field prompting the user to pick and account.
++    $this->assertField('choose_account', 'User is prompted to pick an account when email matches two accounts.');
++    // We should be sure to not expose another user's email to the user.
++    $this->assertNoText($user_with_name->getEmail(), "Duplicated user's email is not exposed to the other user.");
++
++    // Select the account with the username matching the entered email.
++    $edit = array();
++    $edit['choose_account'] = Crypt::hashBase64(Settings::getHashSalt() . $user_with_email->id());
++    $this->drupalPostForm(NULL, $edit, t('Submit'));
++    $this->assertText(t('Further instructions have been sent to your e-mail address.'), 'User is notified that password reset was sent.');
++
++    // Make sure that right user was sent a reset email.
++    $this->assertEqual(count($this->drupalGetMails(array('key' => 'password_reset', 'to' => $user_with_email->getEmail()))), 1, 'The right user was sent a password reset mail.');
++    // Make sure that the other user was not sent an email.
++    $this->assertEqual(count($this->drupalGetMails(array('key' => 'password_reset', 'to' => $user_with_name->getEmail()))), 0, 'The other user was not sent a password reset mail.');
++
++    // If the user is logged in, they should not have to choose an account to
++    // reset their password.
++    $this->drupalLogin($user_with_name);
++    $this->drupalGet('user/password');
++    // There should not be a form element for name.
++    $this->assertNoField('name', 'Duplicate user is not asked for a name when resetting password while logged in.');
++    $this->drupalPostForm(NULL, array(), t('Submit'));
++    // Make sure the user with the matching username was sent an email.
++    $this->assertText(t('Further instructions have been sent to your e-mail address.'), 'User is notified that password reset was sent when logged in.');
++    $this->assertEqual(count($this->drupalGetMails(array('key' => 'password_reset', 'to' => $user_with_name->getEmail()))), 1, 'The right user was sent a password reset mail when logged in.');
++    // Make sure that the user with the matching email address was not sent an
++    // email. (An email was already sent to this user earlier.)
++    $this->assertEqual(count($this->drupalGetMails(array('key' => 'password_reset', 'to' => $user_with_email->getEmail()))), 1, 'The other user was not sent a password reset mail when logged in.');
++  }
++
++  /**
+    * Tests password reset functionality.
+    */
+   function testUserPasswordReset() {
+@@ -79,7 +136,7 @@ function testUserPasswordReset() {
+     $edit = array('name' => $this->randomMachineName(32));
+     $this->drupalPostForm(NULL, $edit, t('Submit'));
+ 
+-    $this->assertText(t('Sorry, @name is not recognized as a username or an email address.', array('@name' => $edit['name'])), 'Validation error message shown when trying to request password for invalid account.');
++    $this->assertRaw(t('Sorry, %name is not recognized as a username or an e-mail address.', array('%name' => $edit['name'])), 'Validation error message shown when trying to request password for invalid account.');
+     $this->assertEqual(count($this->drupalGetMails(array('id' => 'user_password_reset'))), 0, 'No email was sent when requesting a password for an invalid account.');
+ 
+     // Reset the password by username via the password reset page.
+diff --git a/core/modules/user/src/Tests/UserRegistrationTest.php b/core/modules/user/src/Tests/UserRegistrationTest.php
+index bba6849..4de99d9 100644
+--- a/core/modules/user/src/Tests/UserRegistrationTest.php
++++ b/core/modules/user/src/Tests/UserRegistrationTest.php
+@@ -222,6 +222,47 @@ public function testUuidFormState() {
+     $this->assertTrue($user_storage->loadByProperties(['name' => $edit['name']]));
+   }
+ 
++  /**
++   * Ensure that a new account cannot be created when the username matches an
++   * existing user's email address, or when the email address matches an
++   * existing user's username.
++   */
++  function testRegistrationConflicts() {
++    $user_settings = $this->config('user.settings');
++    // Don't require email validation for new accounts.
++    $user_settings->set('verify_mail', FALSE)->save();
++
++    // Don't require admin approval for new accounts.
++    $user_settings->set('register', USER_REGISTER_VISITORS)->save();
++
++    // Set up a user to check for duplicates.
++    $duplicate_user = $this->drupalCreateUser();
++
++    $edit = array();
++    $edit['name'] = $duplicate_user->getEmail();
++    $edit['mail'] = $this->randomMachineName() . '@example.com';
++    $edit['pass[pass1]'] = $password = $this->randomMachineName();
++    $edit['pass[pass2]'] = $password;
++
++    // Attempt to create a new account using a username that matches an
++    // existing email.
++    $this->drupalPostForm('user/register', $edit, t('Create new account'));
++    $this->assertText(t('The name @name is already taken.', array('@name' => $edit['name'])), "A user cannot be created when their username matches an existing user's email address.");
++
++    // Change the username to an email address.
++    $duplicate_user->name = $name = $this->randomMachineName() . '@example.com';
++    $duplicate_user->save();
++
++    $edit = array();
++    $edit['name'] = $this->randomMachineName();
++    $edit['mail'] = $name;
++
++    // Attempt to create a new account using an email that matches an existing
++    // username.
++    $this->drupalPostForm('user/register', $edit, t('Create new account'));
++    $this->assertText(t('The email address @email is already registered.', array('@email' => $edit['mail'])), "A user cannot be created when their email address matches an existing username.");
++  }
++
+   function testRegistrationDefaultValues() {
+     // Don't require email verification and allow registration by site visitors
+     // without administrator approval.
+diff --git a/core/modules/user/user.module b/core/modules/user/user.module
+index cfbfdcd..3e95399 100644
+--- a/core/modules/user/user.module
++++ b/core/modules/user/user.module
+@@ -18,6 +18,8 @@
+ use Drupal\user\Entity\User;
+ use Drupal\user\RoleInterface;
+ use Drupal\user\UserInterface;
++use Drupal\Core\Language\LanguageInterface;
++use Symfony\Component\HttpKernel\HttpKernelInterface;
+ 
+ /**
+  * @file
diff --git a/core/modules/user/src/AccountForm.php b/core/modules/user/src/AccountForm.php
index 8b0149e..4c55a94 100644
--- a/core/modules/user/src/AccountForm.php
+++ b/core/modules/user/src/AccountForm.php
@@ -395,4 +395,84 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
       unset($_SESSION['pass_reset_'. $user->id()]);
     }
   }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function validateForm(array &$form, FormStateInterface $form_state) {
+    $account = $this->entity;
+    $name = $form_state->getValue('name');
+    $mail = $form_state->getValue('mail');
+
+    // For new registrations, make sure the username does not conflict with
+    // an existing user's email address.
+    if (!empty($name)) {
+      $name_taken = FALSE;
+
+      // For existing users whose username matches another user's email address
+      // are not forced to update their username.
+      if ($account->isAuthenticated()) {
+        $name_taken = (bool) db_select('users_field_data', 'ufd')
+          ->condition('ufd.name', db_like($name), 'LIKE')
+          ->condition('ufd.uid', $account->id(), '<>')
+          ->range(0, 1)
+          ->countQuery()
+          ->execute()
+          ->fetchField();
+      }
+      else {
+        $name_taken = (bool) db_select('users_field_data', 'ufd')
+          ->condition(
+            db_or()
+            ->condition('ufd.name', db_like($name), 'LIKE')
+            ->condition('ufd.mail', db_like($name), 'LIKE')
+          )
+          ->condition('ufd.status', 1)
+          ->range(0, 1)
+          ->countQuery()
+          ->execute()
+          ->fetchField();
+      }
+
+      if ($name_taken) {
+        $form_state->setErrorByName('name', $this->t('The name @name is already taken.', array('@name' => $name)));
+      }
+    }
+
+    // For new registrations, make sure the email address does not conflict
+    // with an existing user's username.
+    if (!empty($mail)) {
+      $mail_taken = FALSE;
+
+      // For existing users whose email matches another user's username are not
+      // forced to update their email address.
+      if ($account->isAuthenticated()) {
+        $mail_taken = (bool) db_select('users_field_data', 'ufd')
+          ->condition('ufd.mail', db_like($mail), 'LIKE')
+          ->condition('ufd.uid', $account->id(), '<>')
+          ->range(0, 1)
+          ->countQuery()
+          ->execute()
+          ->fetchField();
+      }
+      else {
+        $mail_taken = (bool) db_select('users_field_data', 'ufd')
+          ->condition(
+            db_or()
+            ->condition('ufd.mail', db_like($mail), 'LIKE')
+            ->condition('ufd.name', db_like($mail), 'LIKE')
+          )
+          ->condition('ufd.status', 1)
+          ->range(0, 1)
+          ->countQuery()
+          ->execute()
+          ->fetchField();
+      }
+
+      if ($mail_taken) {
+        $form_state->setErrorByName('mail', $this->t('The email address @email is already registered.', array('@email' => $mail)));
+      }
+    }
+  }
+
 }
diff --git a/core/modules/user/src/Form/UserPasswordForm.php b/core/modules/user/src/Form/UserPasswordForm.php
index 04075eb..2f72185 100644
--- a/core/modules/user/src/Form/UserPasswordForm.php
+++ b/core/modules/user/src/Form/UserPasswordForm.php
@@ -13,6 +13,10 @@
 use Drupal\Core\Render\Element\Email;
 use Drupal\user\UserStorageInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Drupal\Component\Utility\Crypt;
+use Drupal\Core\Site\Settings;
+use Drupal\Core\Language\LanguageInterface;
+use Drupal\Core\Url;
 
 /**
  * Provides a user password reset form.
@@ -70,40 +74,84 @@ public function getFormId() {
    *   The request object.
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
-    $form['name'] = array(
-      '#type' => 'textfield',
-      '#title' => $this->t('Username or email address'),
-      '#size' => 60,
-      '#maxlength' => max(USERNAME_MAX_LENGTH, Email::EMAIL_MAX_LENGTH),
-      '#required' => TRUE,
-      '#attributes' => array(
-        'autocorrect' => 'off',
-        'autocapitalize' => 'off',
-        'spellcheck' => 'false',
-        'autofocus' => 'autofocus',
-      ),
-    );
-    // Allow logged in users to request this also.
-    $user = $this->currentUser();
-    if ($user->isAuthenticated()) {
-      $form['name']['#type'] = 'value';
-      $form['name']['#value'] = $user->getEmail();
-      $form['mail'] = array(
-        '#prefix' => '<p>',
-        '#markup' => $this->t('Password reset instructions will be mailed to %email. You must log out to use the password reset link in the email.', array('%email' => $user->getEmail())),
-        '#suffix' => '</p>',
+    // When a user requests a password reset we check for username and email
+    // conflicts using a multistep form.
+    $step_value = $form_state->getValue('step');
+    if (empty($step_value)) {
+      $form['step'] = array(
+        '#type' => 'hidden',
+        '#value' => 1,
       );
+      $form_state->setValue('step', 1);
     }
-    else {
-      $form['mail'] = array(
-        '#prefix' => '<p>',
-        '#markup' => $this->t('Password reset instructions will be sent to your registered email address.'),
-        '#suffix' => '</p>',
+    if ($form_state->getValue('step') == 1) {
+      $form['name'] = array(
+        '#type' => 'textfield',
+        '#title' => $this->t('Username or email address'),
+        '#size' => 60,
+        '#maxlength' => max(USERNAME_MAX_LENGTH, Email::EMAIL_MAX_LENGTH),
+        '#required' => TRUE,
+        '#attributes' => array(
+          'autocorrect' => 'off',
+          'autocapitalize' => 'off',
+          'spellcheck' => 'false',
+          'autofocus' => 'autofocus',
+        ),
       );
+      // Allow logged in users to request this also.
+      $user = $this->currentUser();
+      if ($user->isAuthenticated()) {
+        $form['name']['#type'] = 'value';
+        $form['name']['#value'] = $user->getEmail();
+        $form['mail'] = array(
+          '#prefix' => '<p>',
+          '#markup' =>  $this->t('Password reset instructions will be mailed to %email. You must log out to use the password reset link in the e-mail.', array('%email' => $user->getEmail())),
+          '#suffix' => '</p>',
+        );
+      }
       $form['name']['#default_value'] = $this->getRequest()->query->get('name');
     }
+    else {
+      // Where there is a conflict between the username and email address for two
+      // users we supply both accounts as an option for the password reset.
+      $accounts = $form_state->getStorage()['accounts'];
+      $options = array();
+      foreach ($accounts as $account) {
+        $label = $this->t('The account with the username: @name', array('@name' => $account->getUsername()));
+        if ($account->getEmail() === $form_state->getStorage()['name']) {
+          $label = $this->t('The account with the email address: @email', array('@email' => $account->getEmail()));
+        }
+        $options[Crypt::hashBase64(Settings::getHashSalt() . $account->id())] = $label;
+      }
+      $form['choose_account'] = array(
+        '#type' => 'radios',
+        '#title' => $this->t('Choose account'),
+        '#required' => TRUE,
+        '#prefix' => "<p>" . $this->t("There is a username conflict with the email address @email. Please select which account password to reset.", array('@email' => $form_state->getStorage()['name'])) . "</p>",
+        '#options' => $options,
+        '#default_value' => Crypt::hashBase64(Settings::getHashSalt() . reset($accounts)->id()),
+      );
+
+      $form['step'] = array(
+        '#type' => 'hidden',
+        '#value' => 2,
+      );
+    }
     $form['actions'] = array('#type' => 'actions');
-    $form['actions']['submit'] = array('#type' => 'submit', '#value' => $this->t('Submit'));
+    if ($form_state->getValue('step') == 2) {
+      $form['actions']['cancel'] = array(
+        '#type' => 'submit',
+        '#value' => $this->t('Cancel'),
+        '#name' => 'cancel',
+        '#limit_validation_errors' => array(),
+        '#weight' => 5,
+      );
+    }
+    $form['actions']['submit'] = array(
+      '#type' => 'submit',
+      '#value' => $this->t('Submit'),
+      '#name' => 'submit'
+    );
 
     return $form;
   }
@@ -112,25 +160,50 @@ public function buildForm(array $form, FormStateInterface $form_state) {
    * {@inheritdoc}
    */
   public function validateForm(array &$form, FormStateInterface $form_state) {
-    $name = trim($form_state->getValue('name'));
-    // Try to load by email.
-    $users = $this->userStorage->loadByProperties(array('mail' => $name));
-    if (empty($users)) {
-      // No success, try to load by name.
-      $users = $this->userStorage->loadByProperties(array('name' => $name));
-    }
-    $account = reset($users);
-    if ($account && $account->id()) {
-      // Blocked accounts cannot request a new password.
-      if (!$account->isActive()) {
-        $form_state->setErrorByName('name', $this->t('%name is blocked or has not been activated yet.', array('%name' => $name)));
+    if ($form_state->getValue('step') == 1) {
+      $name = trim($form_state->getValue('name'));
+      $accounts = array();
+      // Try to load by email.
+      $users = $this->userStorage->loadByProperties(array('mail' => $name));
+      $account_by_email = reset($users);
+      if ($account_by_email) {
+        $accounts[Crypt::hashBase64(Settings::getHashSalt() . $account_by_email->id())] = $account_by_email;
+      }
+      // Also try to load by user name, but only when the user is not logged in.
+      $user = $this->currentUser();
+      if ($user->id() == 0) {
+        $users = $this->userStorage->loadByProperties(array('name' => $name));
+        $account_by_name = reset($users);
+        if ($account_by_name) {
+          $accounts[Crypt::hashBase64(Settings::getHashSalt() . $account_by_name->id())] = $account_by_name;
+        }
+      }
+      if (!empty($accounts)) {
+        if (count($accounts) == 1) {
+          $account = reset($accounts);
+          // Blocked accounts cannot request a new password.
+          if (!$account->isActive()) {
+            $form_state->setErrorByName('name', $this->t('%name is blocked or has not been activated yet.', array('%name' => $account->getUsername())));
+          }
+        }
+        $form_state->setValue('accounts', $accounts);
       }
       else {
-        $form_state->setValueForElement(array('#parents' => array('account')), $account);
+        $form_state->setErrorByName('name', $this->t('Sorry, %name is not recognized as a username or an e-mail address.', array('%name' => $name)));
       }
     }
+<<<<<<< HEAD
     else {
       $form_state->setErrorByName('name', $this->t('%name is not recognized as a username or an email address.', array('%name' => $name)));
+=======
+    else if ($form_state->getValue('step') == 2) {
+      $chosen_account = $form_state->getValue('choose_account');
+      $account = $form_state->getStorage()['accounts'][$chosen_account];
+      // Blocked accounts cannot request a new password.
+      if (!$account->isActive()) {
+        $form_state->setErrorByName('choose_account', $this->t('%name is blocked or has not been activated yet.', array('%name' => $account->getUsername())));
+      }
+>>>>>>> Applying patch from issue 1359718 comment 238
     }
   }
 
@@ -138,17 +211,42 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
    * {@inheritdoc}
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
-    $langcode = $this->languageManager->getCurrentLanguage()->getId();
+    $language_interface = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_INTERFACE);
 
-    $account = $form_state->getValue('account');
-    // Mail one time login URL and instructions using current language.
-    $mail = _user_mail_notify('password_reset', $account, $langcode);
-    if (!empty($mail)) {
-      $this->logger('user')->notice('Password reset instructions mailed to %name at %email.', array('%name' => $account->getUsername(), '%email' => $account->getEmail()));
-      drupal_set_message($this->t('Further instructions have been sent to your email address.'));
+    if ($form_state->getValue('step') == 1) {
+      $accounts = $form_state->getValue('accounts');
+      if (count($accounts) > 1) {
+        $form_state->setValue('step', 2);
+        $form_state->setStorage(array(
+          'name' => $form_state->getValue('name'),
+          'accounts' => $accounts,
+        ));
+        $form_state->setRebuild();
+      }
+      else {
+        $account = reset($accounts);
+      }
     }
+    else {
+      if ($form_state->getTriggeringElement()['#name'] == 'submit') {
+        $chosen_account = $form_state->getValue('choose_account');
+        $account = $form_state->getStorage()['accounts'][$chosen_account];
+      }
+      else {
+        $form_state->setRedirectUrl(Url::fromRoute('user.pass'));
+      }
+    }
+    if (isset($account)) {
+      // Mail one-time login URL and instructions using current language.
+      $mail = _user_mail_notify('password_reset', $account, $language_interface->getId());
+      if (!empty($mail)) {
+        $this->logger('user')->notice('Password reset instructions mailed to %name at %email.', array('%name' => $account->name, '%email' => $account->mail));
+        drupal_set_message($this->t('Further instructions have been sent to your e-mail address.'));
+      }
 
-    $form_state->setRedirect('user.page');
+      $form_state->setRedirectUrl(Url::fromRoute('user.page'));
+    }
+    return;
   }
 
 }
diff --git a/core/modules/user/src/Tests/UserEditTest.php b/core/modules/user/src/Tests/UserEditTest.php
index 07daeca..1824880 100644
--- a/core/modules/user/src/Tests/UserEditTest.php
+++ b/core/modules/user/src/Tests/UserEditTest.php
@@ -141,4 +141,30 @@ function testUserWithoutEmailEdit() {
     $this->drupalPostForm("user/" . $user1->id() . "/edit", array('mail' => ''), t('Save'));
     $this->assertRaw(t("The changes have been saved."));
   }
+
+  /**
+   * Check that existing users whose username matches another user's email
+   * address or vice versa are not forced to update their username or email
+   * address.
+   */
+  function testUserEditWithConflicts() {
+    $user_with_email = $this->drupalCreateUser();
+    $user_with_name = $this->drupalCreateUser();
+
+    // Change the second user's username to the same value as the first user's
+    // email address.
+    $user_with_name->name = $user_with_email->mail;
+    $user_with_name->save();
+
+    // Test that the first user can save their account with no errors.
+    $this->drupalLogin($user_with_email);
+    $this->drupalPostForm("user/" . $user_with_email->id() . "/edit", array(), t('Save'));
+    $this->assertText(t("The changes have been saved."), "The user does not need to change their username if it matches another user's email address.");
+    $this->drupalLogout();
+
+    // Test that the second user can save their account with no errors.
+    $this->drupalLogin($user_with_name);
+    $this->drupalPostForm("user/" . $user_with_name->id() . "/edit", array(), t('Save'));
+    $this->assertText(t("The changes have been saved."), "The user does not need to change their email address if it matches another user's username.");
+  }
 }
diff --git a/core/modules/user/src/Tests/UserPasswordResetTest.php b/core/modules/user/src/Tests/UserPasswordResetTest.php
index 420b97a..4290a4c 100644
--- a/core/modules/user/src/Tests/UserPasswordResetTest.php
+++ b/core/modules/user/src/Tests/UserPasswordResetTest.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\user\Tests;
 
+use Drupal\Component\Utility\Crypt;
+use Drupal\Core\Site\Settings;
 use Drupal\system\Tests\Cache\PageCacheTagsTestBase;
 use Drupal\user\Entity\User;
 
@@ -70,6 +72,61 @@ protected function setUp() {
   }
 
   /**
+   * Attempts to reset a password when an email address matches two accounts.
+   */
+  function testUserPasswordResetDuplicateUsers() {
+    $user_settings = $this->config('user.settings');
+
+    // Don't require email validation for new accounts.
+    $user_settings->set('verify_mail', FALSE)->save();
+
+    // Don't require admin approval for new accounts.
+    $user_settings->set('register', USER_REGISTER_VISITORS)->save();
+    // Create two users.
+    $user_with_email = $this->drupalCreateUser();
+    $user_with_name = $this->drupalCreateUser();
+
+    // Change the second user's username to the same value as the first user's
+    // email address.
+    $user_with_name->name = $user_with_email->getEmail();
+    $user_with_name->save();
+
+    // Try and reset based on the duplicated email.
+    $edit = array();
+    $edit['name'] = $user_with_email->getEmail();
+    $this->drupalPostForm('user/password', $edit, t('Submit'));
+    // There should be a field prompting the user to pick and account.
+    $this->assertField('choose_account', 'User is prompted to pick an account when email matches two accounts.');
+    // We should be sure to not expose another user's email to the user.
+    $this->assertNoText($user_with_name->getEmail(), "Duplicated user's email is not exposed to the other user.");
+
+    // Select the account with the username matching the entered email.
+    $edit = array();
+    $edit['choose_account'] = Crypt::hashBase64(Settings::getHashSalt() . $user_with_email->id());
+    $this->drupalPostForm(NULL, $edit, t('Submit'));
+    $this->assertText(t('Further instructions have been sent to your e-mail address.'), 'User is notified that password reset was sent.');
+
+    // Make sure that right user was sent a reset email.
+    $this->assertEqual(count($this->drupalGetMails(array('key' => 'password_reset', 'to' => $user_with_email->getEmail()))), 1, 'The right user was sent a password reset mail.');
+    // Make sure that the other user was not sent an email.
+    $this->assertEqual(count($this->drupalGetMails(array('key' => 'password_reset', 'to' => $user_with_name->getEmail()))), 0, 'The other user was not sent a password reset mail.');
+
+    // If the user is logged in, they should not have to choose an account to
+    // reset their password.
+    $this->drupalLogin($user_with_name);
+    $this->drupalGet('user/password');
+    // There should not be a form element for name.
+    $this->assertNoField('name', 'Duplicate user is not asked for a name when resetting password while logged in.');
+    $this->drupalPostForm(NULL, array(), t('Submit'));
+    // Make sure the user with the matching username was sent an email.
+    $this->assertText(t('Further instructions have been sent to your e-mail address.'), 'User is notified that password reset was sent when logged in.');
+    $this->assertEqual(count($this->drupalGetMails(array('key' => 'password_reset', 'to' => $user_with_name->getEmail()))), 1, 'The right user was sent a password reset mail when logged in.');
+    // Make sure that the user with the matching email address was not sent an
+    // email. (An email was already sent to this user earlier.)
+    $this->assertEqual(count($this->drupalGetMails(array('key' => 'password_reset', 'to' => $user_with_email->getEmail()))), 1, 'The other user was not sent a password reset mail when logged in.');
+  }
+
+  /**
    * Tests password reset functionality.
    */
   function testUserPasswordReset() {
diff --git a/core/modules/user/src/Tests/UserRegistrationTest.php b/core/modules/user/src/Tests/UserRegistrationTest.php
index 1e16bc7..6d06e52 100644
--- a/core/modules/user/src/Tests/UserRegistrationTest.php
+++ b/core/modules/user/src/Tests/UserRegistrationTest.php
@@ -223,6 +223,47 @@ public function testUuidFormState() {
     $this->assertTrue($user_storage->loadByProperties(['name' => $edit['name']]));
   }
 
+  /**
+   * Ensure that a new account cannot be created when the username matches an
+   * existing user's email address, or when the email address matches an
+   * existing user's username.
+   */
+  function testRegistrationConflicts() {
+    $user_settings = $this->config('user.settings');
+    // Don't require email validation for new accounts.
+    $user_settings->set('verify_mail', FALSE)->save();
+
+    // Don't require admin approval for new accounts.
+    $user_settings->set('register', USER_REGISTER_VISITORS)->save();
+
+    // Set up a user to check for duplicates.
+    $duplicate_user = $this->drupalCreateUser();
+
+    $edit = array();
+    $edit['name'] = $duplicate_user->getEmail();
+    $edit['mail'] = $this->randomMachineName() . '@example.com';
+    $edit['pass[pass1]'] = $password = $this->randomMachineName();
+    $edit['pass[pass2]'] = $password;
+
+    // Attempt to create a new account using a username that matches an
+    // existing email.
+    $this->drupalPostForm('user/register', $edit, t('Create new account'));
+    $this->assertText(t('The name @name is already taken.', array('@name' => $edit['name'])), "A user cannot be created when their username matches an existing user's email address.");
+
+    // Change the username to an email address.
+    $duplicate_user->name = $name = $this->randomMachineName() . '@example.com';
+    $duplicate_user->save();
+
+    $edit = array();
+    $edit['name'] = $this->randomMachineName();
+    $edit['mail'] = $name;
+
+    // Attempt to create a new account using an email that matches an existing
+    // username.
+    $this->drupalPostForm('user/register', $edit, t('Create new account'));
+    $this->assertText(t('The email address @email is already registered.', array('@email' => $edit['mail'])), "A user cannot be created when their email address matches an existing username.");
+  }
+
   function testRegistrationDefaultValues() {
     // Don't require email verification and allow registration by site visitors
     // without administrator approval.
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 3d76074..68fd3ad 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -17,6 +17,8 @@
 use Drupal\user\Entity\User;
 use Drupal\user\RoleInterface;
 use Drupal\user\UserInterface;
+use Drupal\Core\Language\LanguageInterface;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
 
 /**
  * @file
diff --git a/sites/default/files/.htaccess b/sites/default/files/.htaccess
new file mode 100644
index 0000000..18a7257
--- /dev/null
+++ b/sites/default/files/.htaccess
@@ -0,0 +1,14 @@
+# Turn off all options we don't need.
+Options -Indexes -ExecCGI -Includes -MultiViews
+
+# 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_qy5VcBQ9Bn26k-ubsdH5N4_pZq0alj1WtSqxy5u5hy40313CZj5p0MIU6GTm5V1P8Uv4XYFrjQ/sync/.htaccess b/sites/default/files/config_qy5VcBQ9Bn26k-ubsdH5N4_pZq0alj1WtSqxy5u5hy40313CZj5p0MIU6GTm5V1P8Uv4XYFrjQ/sync/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/config_qy5VcBQ9Bn26k-ubsdH5N4_pZq0alj1WtSqxy5u5hy40313CZj5p0MIU6GTm5V1P8Uv4XYFrjQ/sync/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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_qy5VcBQ9Bn26k-ubsdH5N4_pZq0alj1WtSqxy5u5hy40313CZj5p0MIU6GTm5V1P8Uv4XYFrjQ/sync/README.txt b/sites/default/files/config_qy5VcBQ9Bn26k-ubsdH5N4_pZq0alj1WtSqxy5u5hy40313CZj5p0MIU6GTm5V1P8Uv4XYFrjQ/sync/README.txt
new file mode 100644
index 0000000..37874bd
--- /dev/null
+++ b/sites/default/files/config_qy5VcBQ9Bn26k-ubsdH5N4_pZq0alj1WtSqxy5u5hy40313CZj5p0MIU6GTm5V1P8Uv4XYFrjQ/sync/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 https://www.drupal.org/documentation/administer/config
\ No newline at end of file
diff --git a/sites/default/files/css/css_EXDJi965s0c5VF0i5v9gumbPnE_EMaMzGuMvhRCxki0.css b/sites/default/files/css/css_EXDJi965s0c5VF0i5v9gumbPnE_EMaMzGuMvhRCxki0.css
new file mode 100644
index 0000000..225c5f6
--- /dev/null
+++ b/sites/default/files/css/css_EXDJi965s0c5VF0i5v9gumbPnE_EMaMzGuMvhRCxki0.css
@@ -0,0 +1 @@
+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,.site-branding__text,.site-branding,.site-branding__text a,.site-branding a,.region-secondary-menu .menu-item a,.region-secondary-menu .menu-item a.is-active{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_EXDJi965s0c5VF0i5v9gumbPnE_EMaMzGuMvhRCxki0.css.gz b/sites/default/files/css/css_EXDJi965s0c5VF0i5v9gumbPnE_EMaMzGuMvhRCxki0.css.gz
new file mode 100644
index 0000000..fcc3ead
--- /dev/null
+++ b/sites/default/files/css/css_EXDJi965s0c5VF0i5v9gumbPnE_EMaMzGuMvhRCxki0.css.gz
@@ -0,0 +1,4 @@
+     So0*In)>IUUg|+FgY Mre߻;ޝojd-
+#ˤl{J:h0MZP8:tiQΩoX6\2sH=<89Pq^C)#=;,aZs8<'3o)踰DJn~V뙐ܧm/(VƁTh;.M; og<>{68	SJgJ(k[}>V65`T轒(Lh[[1<9tB^[K#9؅tydpXK:Tyz"|Uxe걲F^}
+_F<iAܟGei߁F"<nXSoɩfGewֱ
+ԯfgY򘎇|ӷwe  
\ No newline at end of file
diff --git a/sites/default/files/css/css_Va4zLdYXDM0x79wYfYIi_RSorpNS_xtrTcNUqq0psQA.css b/sites/default/files/css/css_Va4zLdYXDM0x79wYfYIi_RSorpNS_xtrTcNUqq0psQA.css
new file mode 100644
index 0000000..fbdcd07
--- /dev/null
+++ b/sites/default/files/css/css_Va4zLdYXDM0x79wYfYIi_RSorpNS_xtrTcNUqq0psQA.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;}.tour-progress{position:absolute;bottom:20px;right:20px;}[dir="rtl"] .tour-progress{right:auto;left:20px;}.joyride-tip-guide{position:absolute;display:none;background:#fff;width:300px;z-index:101;top:0;left:0;}@media only screen and (max-width:767px){.joyride-tip-guide{width:85%;left:2.5%;}}.joyride-content-wrapper{position:relative;padding:20px 50px 20px 20px;}[dir="rtl"] .joyride-content-wrapper{padding:20px 20px 20px 50px;}.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 .tour-tip-label{margin-top:0;}.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;line-height:1em;right:20px;top:20px;}[dir="rtl"] .joyride-close-tip{left:20px;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_Va4zLdYXDM0x79wYfYIi_RSorpNS_xtrTcNUqq0psQA.css.gz b/sites/default/files/css/css_Va4zLdYXDM0x79wYfYIi_RSorpNS_xtrTcNUqq0psQA.css.gz
new file mode 100644
index 0000000..076307a
--- /dev/null
+++ b/sites/default/files/css/css_Va4zLdYXDM0x79wYfYIi_RSorpNS_xtrTcNUqq0psQA.css.gz
@@ -0,0 +1,2 @@
+     T0+V+#m6+PGՃk<1(^c;1@D'iPx5:}1LgX &׼ٛrAq2jO*f]7* sRv zÊ6`5."$S HAsʐ
+5dSr	Ҧ&k4\uΩOxl3T}*\r4c2!&_Z2 ϰ{ީxEe6:FHäA(tԯ BJl\vzlNEnrc{Hxj_)z-Um,{憅rq4ڼX|]?<'r.ryBWqEBG3~.˅uc:oվR21D7\"ok 8I~cű~ZFaO6\[+vy}ṅ3^	\%WnlI}[tfg6՘J*'Ə5/wΩz݁p{,Ԥk/GV-ߧ=)^  
\ No newline at end of file
diff --git a/sites/default/files/css/css_XiBSOzn4bQWu-mH68YLN-6BRdw7I6gRT9-uifyUlUrc.css b/sites/default/files/css/css_XiBSOzn4bQWu-mH68YLN-6BRdw7I6gRT9-uifyUlUrc.css
new file mode 100644
index 0000000..bcc8784
--- /dev/null
+++ b/sites/default/files/css/css_XiBSOzn4bQWu-mH68YLN-6BRdw7I6gRT9-uifyUlUrc.css
@@ -0,0 +1,75 @@
+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;}.feed-icon{display:block;margin:25px 0 0 0;}img{max-width:100%;height:auto;}ul,ol{margin:0;padding:0 0 0.25em 1em;}[dir="rtl"] ul,[dir="rtl"] ol{padding:0 1em 0.25em 0;}ol ol,ul ul{margin:0;padding:0 0 0.25em 1em;}[dir="rtl"] ol ol,[dir="rtl"] ul ul{padding:0 1em 0.25em 0;}
+.layout-container{max-width:860px;margin-left:auto;margin-right:auto;box-sizing:border-box;}@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;}
+.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(/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;}
+.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;}
+.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;}
+.button,.image-button{margin-left:1em;margin-right:1em;}.button:first-child,.image-button:first-child{margin-left:0;margin-right:0;}
+.collapse-processed > summary{padding-left:0.5em;padding-right:0.5em;}.collapse-processed > summary:before{background:url(/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);}
+.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;}
+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;}
+.exposed-filters .filters{float:left;margin-right:1em;}[dir="rtl"] .exposed-filters .filters{float:right;margin-left:1em;margin-right:0;}.exposed-filters .form-item{margin:0 0 0.1em 0;padding:0;}.exposed-filters .form-item label{float:left;font-weight:normal;width:10em;}[dir="rtl"] .exposed-filters .form-item label{float:right;}.exposed-filters .form-select{width:14em;}.exposed-filters .current-filters{margin-bottom:1em;}.exposed-filters .current-filters .placeholder{font-style:normal;font-weight:bold;}.exposed-filters .additional-filters{float:left;margin-right:1em;}[dir="rtl"] .exposed-filters .additional-filters{float:right;margin-left:1em;margin-right:0;}
+.field__label{font-weight:bold;}.field--label-inline .field__label,.field--label-inline .field__items{float:left;}.field--label-inline .field__label,.field--label-inline > .field__item,.field--label-inline .field__items{padding-right:0.5em;}[dir="rtl"] .field--label-inline .field__label,[dir="rtl"] .field--label-inline .field__items{padding-left:0.5em;padding-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-right:0;padding-left:.5em;}form .field-add-more-submit{margin:.5em 0 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;}[dir="rtl"] .form-type-radio .description,[dir="rtl"] .form-type-checkbox .description{margin-left:0;margin-right:2.4em;}.marker{color:#e00;}.form-required:after{content:'';vertical-align:super;display:inline-block;background-image:url(/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;}.form-item--error-message:before{content:'';display:inline-block;height:14px;width:14px;vertical-align:sub;background:url(/drupal/core/misc/icons/e32700/error.svg) no-repeat;background-size:contain;}
+.icon-help{background:url(/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;}.feed-icon{background:url(/drupal/core/misc/feed.svg) no-repeat;overflow:hidden;text-indent:-9999px;display:block;width:16px;height:16px;}
+.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;}[dir="rtl"] .views-filterable-options-controls .form-item{margin-right:2%;}.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;}
+.item-list .title{font-weight:bold;}.item-list ul{margin:0 0 0.75em 0;padding:0;}.item-list li{margin:0 0 0.25em 1.5em;padding:0;}[dir="rtl"] .item-list li{margin:0 1.5em 0.25em 0;}.item-list--comma-list{display:inline;}.item-list--comma-list .item-list__comma-list,.item-list__comma-list li,[dir="rtl"] .item-list--comma-list .item-list__comma-list,[dir="rtl"] .item-list__comma-list li{margin:0;}
+button.link{background:transparent;border:0;cursor:pointer;margin:0;padding:0;font-size:1em;}label button.link{font-weight:bold;}
+ul.inline,ul.links.inline{display:inline;padding-left:0;}[dir="rtl"] ul.inline,[dir="rtl"] ul.links.inline{padding-right:0;padding-left:15px;}ul.inline li{display:inline;list-style-type:none;padding:0 0.5em;}ul.links a.is-active{color:#000;}
+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(/drupal/core/misc/menu-expanded.png);list-style-type:circle;}.menu-item--collapsed{list-style-image:url(/drupal/core/misc/menu-collapsed.png);list-style-type:disc;}[dir="rtl"] .menu-item--collapsed{list-style-image:url(/drupal/core/misc/menu-collapsed-rtl.png);}.menu-item{padding-top:0.2em;margin:0;}ul.menu a.is-active{color:#000;}
+.more-link{display:block;text-align:right;}[dir="rtl"] .more-link{text-align:left;}
+.pager__items{clear:both;text-align:center;}.pager__item{display:inline;padding:0.5em;}.pager__item.is-active{font-weight:bold;}
+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;}[dir="rtl"] td.checkbox,[dir="rtl"] th.checkbox{text-align:center;}
+th.is-active img{display:inline;}td.is-active{background-color:#ddd;}
+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;}
+.form-textarea-wrapper textarea{display:block;margin:0;width:100%;box-sizing:border-box;}
+.ui-dialog--narrow{max-width:500px;}@media screen and (max-width:600px){.ui-dialog--narrow{max-width:95%;min-width:95%;}}
+.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(/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(/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(/drupal/core/misc/icons/e32700/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;}
+.block .content{margin-top:10px;}
+.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;}.region-breadcrumb{padding:0 15px 0.25em;}
+.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;}#content .comment-wrapper h2.comment-form__title{margin-bottom:1em;}.field-node--comment{font-size:0.934em;}.comment{margin-bottom:19px;vertical-align:top;display:table;}[dir="rtl"] .comment{direction:rtl;}.comment__meta{padding:0 30px 0 0;font-size:1.071em;}[dir="rtl"] .comment__meta{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__author{margin:4px 0;line-height:1.2;}.comment__time{margin-bottom:4px;color:#68696b;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.733em;line-height:1.2;}.comment__permalink{font-size:0.733em;line-height:1.2;}.comment__content{position:relative;display:table-cell;padding:10px 25px 10px 25px;vertical-align:top;width:100%;border:1px solid #d3d7d9;font-size:0.929em;line-height:1.6;word-break:break-all;}.comment__content: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__content:before{right:auto;left:100%;border-right:none;border-left:20px solid #d3d7d9;}.comment__content: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__content:after{right:auto;left:100%;border-right:none;border-left:20px solid #fff;margin-right:0;margin-left:-1px;}.comment__content h3{margin-top:0.94em;margin-bottom:0.45em;font-size:1.171em;}.comment__content nav{padding-top:1px;}.indented{margin-left:40px;}[dir="rtl"] .indented{margin-right:40px;margin-left:0;}.comment .links{padding:0 0 0.25em 0;}.comment .links li{padding:0 0.5em 0 0;font-size:1.08em;}[dir="rtl"] .comment .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;}.unpublished .comment-text .comment-arrow{border-left:1px solid #fff4f4;border-right:1px solid #fff4f4;}.unpublished{padding:20px 15px 0;}.comment-footer{display:table-row;}.comment--unpublished .comment__text:after,.node--unpublished .comment__text:after{border-right-color:#fff4f4;}[dir="rtl"] .comment--unpublished .comment__content:after,[dir="rtl"] .node--unpublished .comment__content:after{border-left-color:#fff4f4;}
+.contextual-links a{border-bottom:none;text-shadow:0 0 0;}
+.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;}
+.js .dropbutton-wrapper .dropbutton-widget{position:relative;}.js .dropbutton-widget{border:1px solid;border-color:#e4e4e4 #d2d2d2 #b4b4b4 #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;overflow:hidden;}.js .dropbutton-widget:hover{border-color:#e4e4e4 #d2d2d2 #b4b4b4 #d2d2d2;}.js .dropbutton-widget .button{border:none;margin:0;padding:0.32em 1em;background:transparent none;}.js .dropbutton-multiple .dropbutton-widget .dropbutton-action a{margin-right:0;}[dir="rtl"].js .dropbutton-multiple .dropbutton-widget .dropbutton-action a{margin-left:0;}.js .dropbutton .secondary-action{border-top-color:#ccc;}.js .dropbutton-toggle button{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#e8e8e8,#d2d2d2);background-image:linear-gradient(to bottom,#e8e8e8,#d2d2d2);}.js .dropbutton-toggle .dropbutton-arrow:hover{background:#ccc;}.js .dropbutton a{color:#3a3a3a;border-bottom:0 none;}.js .dropbutton .dropbutton-action:hover,.js .dropbutton a:hover{background:#dedede;border-bottom:0 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;}
+.field--type-entity-reference{margin:0 0 1.2em;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}.field--type-entity-reference .field__label{font-weight:normal;margin:0;padding-right:5px;}[dir="rtl"] .field--type-entity-reference .field__label{padding-left:5px;padding-right:0;}.field--type-entity-reference .field__label,.field--type-entity-reference ul.links{font-size:0.8em;}.node--view-mode-teaser .field--type-entity-reference .field__label,.node--view-mode-teaser .field--type-entity-reference ul.links{font-size:0.821em;}.field--type-entity-reference ul.links{padding:0;margin:0;list-style:none;}[dir="rtl"] .field--type-entity-reference ul.links{padding:0;}.field--type-entity-reference ul.links li{float:left;padding:0 1em 0 0;white-space:nowrap;}[dir="rtl"] .field--type-entity-reference ul.links li{padding:0 0 0 1em;float:right;}@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;}.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;}.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;}
+.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:16px;}}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;}.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;}.form-item textarea.error + .cke{border:2px solid red;}.form-item--error-message{color:#e32700;}
+.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{padding:0.357em 15px 0;}.region-header .site-branding{margin-top:0.429em;}@media all and (min-width:461px){.region-header .block{float:right;margin-top:0.357em;}[dir="rtl"] .region-header .block{float:left;}.region-header .site-branding{float:left;}[dir="rtl"] .region-header .site-branding{float:right;}}.region-header .block:not(.site-branding){font-size:0.857em;margin:0 0 1em;clear:right;}@media all and (min-width:901px){.region-header .block:not(.site-branding){margin:1.167em 0 1em;}}.region-header .block > h2{position:absolute !important;clip:rect(1px,1px,1px,1px);overflow:hidden;height:1px;}.header .block .content{margin:0;padding:0;}.region-header .block ul{padding:0;}.region-header .block li{list-style:none;list-style-image:none;padding:0;}.region-header .branding{font-size:1em;}.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:focus,.region-header .form-text:active{background:#fff;background:rgba(255,255,255,0.8);}.region-header .form-required:after{background-image:url(/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:focus,.region-header .block-menu li a:active{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 .search-block-form{float:right;}[dir="rtl"] .region-header .search-block-form{float:left;}.region-header .block-locale ul li{display:inline;padding:0 0.5em;}[role*=banner] a{border-bottom:none;}[dir="rtl"] .branding,[dir="rtl"] .site-logo,[dir="rtl"] .site-branding-text,[dir="rtl"] .region-header #block-user-login .form-item,[dir="rtl"] .region-header #block-user-login .item-list li{float:right;}
+.block-help{border:1px solid #d3d7d9;padding:0 1.5em;margin-bottom:30px;}
+.has-featured-top .region-highlighted{background:#f0f0f0;background:rgba(30,50,10,0.08);}.region-highlighted{margin:0 15px;}
+.item-list ul{list-style:none;margin:0 0 0.25em 0;padding:0;}[dir="rtl"] .item-list ul{padding:0;}.item-list ul li{margin:0;padding:0.2em 0.5em 0 0;}[dir="rtl"] .item-list ul li{margin:0;padding:0.2em 0 0 0.5em;}.item-list .item-list__comma-list,.item-list .item-list__comma-list li,[dir="rtl"] .item-list .item-list__comma-list,[dir="rtl"] .item-list .item-list__comma-list li{padding:0;}
+.list-group__link{border-top:1px solid #ccc;padding:7px 0 0;}.list-group__description{margin:0 0 10px;}
+ul.links{color:#68696b;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.821em;padding:0;margin:0;list-style:none;}
+.main-content .section{padding:0 15px;}.main-content h2{margin-bottom:2px;font-size:1.429em;line-height:1.4;}@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%;}}
+ul.menu{margin:0;padding:0 0 0.25em 0;}[dir="rtl"] ul.menu{margin:0;}
+.node__content{font-size:1.071em;margin-top:10px;}.node--view-mode-teaser{border-bottom:1px solid #d3d7d9;margin-bottom:30px;padding-bottom:15px;}.node--view-mode-teaser h2{margin-top:0;padding-top:0.5em;}.node--view-mode-teaser h2 a{color:#181818;}.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;font-size:1em;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;}.node__links{text-align:right;font-size:0.93em;}[dir="rtl"] .node__links{text-align:left;}.node--unpublished{padding:20px 15px 0;}.node--unpublished .comment-text .comment-arrow{border-left:1px solid #fff4f4;border-right:1px solid #fff4f4;}
+.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(/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,-webkit-linear-gradient(top,#419ff1,#1076d5);background:url(/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(/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,-webkit-linear-gradient(top,#419ff1,#1076d5);background:url(/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(/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,-webkit-linear-gradient(top,#59abf3,#2a90ef);background:url(/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(/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,-webkit-linear-gradient(top,#59abf3,#2a90ef);background:url(/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(/drupal/core/misc/icons/000000/chevron-left.svg) left no-repeat,-webkit-linear-gradient(top,#0e69be,#2a93ef);background:url(/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(/drupal/core/misc/icons/000000/chevron-right.svg) right no-repeat,-webkit-linear-gradient(top,#0e69be,#2a93ef);background:url(/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;}
+.page-title{font-size:2em;line-height:1em;}
+.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;margin-left:5px;margin-right:5px;}.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(/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;}[dir="rtl"] .region-primary-menu .menu{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;}[dir="rtl"] .region-primary-menu .menu a{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;}}
+.search-form{font-size:0.875rem;}.search-form .form-search{float:left;margin-right:5px;padding:4px;}[dir="rtl"] .search-form .form-search{float:right;margin-left:5px;margin-right:0;}.button.search-form__submit,.search-form__submit{background:#f0f0f0 url(/drupal/core/misc/icons/505050/loupe.svg) no-repeat center;cursor:pointer;height:26px;margin-left:0;margin-right:0;overflow:hidden;padding:0;text-indent:-9999px;direction:ltr;width:34px;}.button.search-form__submit:hover,.search-form__submit:hover,.button.search-form__submit:focus,.search-form__submit:focus{background:#dedede url(/drupal/core/misc/icons/424242/loupe.svg) no-repeat center;}.search-form .form-item-keys label{display:block;}
+.search-results{padding:0;list-style-position:inside;}.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-result__title{font-weight:bold;}.search-result__snippet-info{padding-left:0;}[dir="rtl"] .search-result__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;margin-right:10px;margin-left:10px;}.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 .page-title{float:left;margin:0;}[dir="rtl"] .shortcut-wrapper .page-title{float:right;}.shortcut-action{border-bottom:none;margin-left:0.5em;padding-top:0.35em;}[dir="rtl"] .shortcut-action{margin-left:0;margin-right:0.5em;}.shortcut-action:hover,.shortcut-action:active,.shortcut-action:focus{border-bottom:none;}
+.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-branding__logo{display:inline-block;margin-right:1em;margin-bottom:0.286em;}[dir="rtl"] .site-branding__logo{margin-right:0;margin-left:1em;}.site-branding__text{display:inline-block;vertical-align:top;}@media all and (min-width:461px){.site-branding__text{margin-bottom:1.857em;}}@media all and (min-width:901px){.site-branding__text{padding:1.286em 0 0;}}.site-branding__name{font-size:1.6em;color:#686868;line-height:1;}@media all and (min-width:901px){.site-branding__name{font-size:1.821em;}}.site-branding__slogan{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.929em;margin-top:7px;word-spacing:0.1em;font-style:italic;}
+.site-footer{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:35px 0 30px;}.site-footer .layout-container{padding:0 15px;}@media all and (min-width:560px){.site-footer__top .region{float:left;position:relative;width:50%;}[dir="rtl"] .site-footer__top .region{float:right;}}@media all and (min-width:560px) and (max-width:850px){.site-footer .region{box-sizing:border-box;}.site-footer__top .region:nth-child(2n+1){padding-right:10px;}[dir="rtl"] .site-footer__top .region:nth-child(2n+1){padding-left:10px;padding-right:0;}.site-footer__top .region:nth-child(2n){padding-left:10px;}[dir="rtl"] .site-footer__top .region:nth-child(2n){padding-left:0;padding-right:10px;}.region-footer-third{clear:both;}}@media all and (min-width:851px){.site-footer__top .region{width:24%;padding:0 0.65%;}.site-footer__top .region:first-child{padding-left:0;}[dir="rtl"] .site-footer__top .region:first-child{padding-left:10px;padding-right:0;}.site-footer__top .region:last-child{padding-right:0;}[dir="rtl"] .site-footer__top .region:last-child{padding-left:0;padding-right:10px;}}.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 .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 .block .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;}[dir="rtl"] .site-footer__bottom .menu-item:first-child:last-child a{padding-right:0;}
+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;}}
+.tablesort{width:14px;height:14px;vertical-align:top;margin:1px 0 0 5px;}.tablesort--asc{background-image:url(/drupal/core/misc/icons/ffffff/twistie-down.svg);}.tablesort--desc{background-image:url(/drupal/core/misc/icons/ffffff/twistie-up.svg);}
+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;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(/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;}
+.text-formatted ul,.text-formatted ol{margin:1em 0;padding:0 0 0.25em 15px;}[dir="rtl"] .text-formatted ul,[dir="rtl"] .text-formatted ol{padding:0 15px 0.25em 0;}
+.toolbar a{border-bottom:none;}
+.featured-bottom{background:rgba(30,50,10,0.08);border-top:1px solid #e7e7e7;}.featured-bottom .region{padding:0 20px;}@media all and (min-width:560px){.featured-bottom .region{float:left;position:relative;box-sizing:border-box;padding:20px 15px 30px;width:33%;}[dir="rtl"] .featured-bottom .region{float:right;}}@media all and (min-width:851px){.featured-bottom .region{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:1em;}.featured-bottom .block{margin-bottom:1em;padding-bottom:1em;border-bottom:1px solid #dfdfdf;line-height:1.3em;}.featured-bottom .block:last-child{border-bottom:none;}.featured-bottom ul,.featured-bottom ol{padding-left:0;}.featured-bottom ul li,.featured-bottom ol li{list-style:none;}.featured-bottom input:not(.form-submit){width:185px;}.region-featured-bottom-third .feed-icon{float:right;}.region-featured-bottom-second .block-system-powered-by-block{text-align:center;}
+.password-suggestions{border:0;}
+#page .ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
+.vertical-tabs__menu{margin:-1px 0 -1px -15em;padding:0;}[dir="rtl"] .vertical-tabs__menu{margin-left:0;margin-right:-15em;padding:0;}
+.views-displays .tabs .open > a{border-radius:7px 7px 0 0;}.views-displays .tabs .open > a:hover,.views-displays .tabs .open > a:focus{color:#0071B3;}.views-displays .secondary .form-submit{font-size:0.846em;}.views-displays .tabs .action-list{padding:0;}.views-filterable-options .filterable-option:nth-of-type(even) .form-type-checkbox{background-color:#F9F9F9;}.views-ui-display-tab-actions .dropbutton .form-submit{color:#0071B3;}.views-ui-display-tab-actions .dropbutton .form-submit:hover,.views-ui-display-tab-actions .dropbutton .form-submit:focus{color:#018FE2;}
+.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;}
diff --git a/sites/default/files/css/css_XiBSOzn4bQWu-mH68YLN-6BRdw7I6gRT9-uifyUlUrc.css.gz b/sites/default/files/css/css_XiBSOzn4bQWu-mH68YLN-6BRdw7I6gRT9-uifyUlUrc.css.gz
new file mode 100644
index 0000000..5e51688
--- /dev/null
+++ b/sites/default/files/css/css_XiBSOzn4bQWu-mH68YLN-6BRdw7I6gRT9-uifyUlUrc.css.gz
@@ -0,0 +1,37 @@
+     }ے:{~2*rrLgtv>-6B贺d#u؏//Y	 AIΓ>*["$ACs,^">4$-/E~{Ye*=?n+~Ӿ<5>=e-?:{_cz0Q&Q*+<SK#~4q&ve6yyz<'XDo˦)(_E&=oɿ	e_.DA3/wS@PF g!%6M"n$owlE|'bR:֍~=̢trGmB+Nf9N_dI<(J5۾O	AM{YjWex$:nt\REi6Hf -;H!UHP2}xRj4}Y/糨vi-
+!Yt'3wݿzgJ"fSL(Vs9T uQ˥l6}}O>vbߨyztnjMZ仧,9x:Y)l%˫P5ŇF9Yeō~
+bF5Iĩyd0RҜtLb0IX6'%#jK1f{٥Vp+W=4[|UqWuydy}.ҟrr)Bdq.ATm;+i0eC?yaO/Mz)&eюnܨ	3Wm]L5]O"/vr)dP) 	!J&0T2B~XcB5	d[~: Ϳ?,O(E`)6Wrzܽ!7jB˅U}rYܔ9jYǒ|~9u$Ms҈S&~H2-m!DD~o^_#ݮ;+m(ґoeդ8Җq7ئ۲(R
+VzURKBoM09ch =(k+-	ôW^d_ILXNfJgMzZ#!韱ZS}2Јh
+l$	UkI#ӿAvJԵZI[9Ԝ^n>>J(pz jl;P</_Y<^笺\c^>0|k4dDpJE
+k{9L/\l6mGs=,TLdLa#%Ek^ʹtrBpe6*rg2ˇҀZd$@-X35TM[ŷSjSy$h$!]5(Z,:|0Ҵ\0h`Gqkg]´NJD6RҽS7hٌ\V0yr9y=*c&ᵧ4TI.nR0wrL(K|qu!o}PlJӣ8]bC.Ȧ]$5tը,r)G 
+J`Y&}V¬񩖳m=|Kyލ=_}r]5gVe6SI2|$'kބ_1z7DFќc=K"݊Bo&)zGJӲzawGut;lM6nQ[mA	D 9mPeOv#`wj&\2}(gTxd򂦫/H g`C8b;Z"*5MIK+bZ	E!vL͔U/)`5cF`h*˝8=00fz3$0tZ0ƍ9D}bӯǱz\Ti[z4@`.̄ä.NQՃ1xuKR4t[N-|fUjdm.et=Aj?<3CBUx#o
+=@[ĮfzT2ː4'8";&ꂻ4nԢk^]	9}P|PtZ'b
+,NRMׂ,}ri^x&*HmdwoEN7Cln|3다e\%WR@ǎ__ybw#E`?<I>[]9{FZyC$BB~'g&2'I'|i
+0Rr~n5yV"X\u/b~/F:&
+wQAA-2{hE6vJk.=XLuJ1r㓢AJ˃g8iRe'$AnAT}:nl
+酬*hv}v<\|Z	&V&,89jDG;}~N)+r$q48W)fIkieT!Դٳ9qMpd©]t b+o3.rZxQCB̘[aW,ey+[!{<K:&<c`5HAAf2A#S{lyxzQQ}}s)MYoMO}-)ثV ~Z@c-ZH4Jyk-S{,3ȎJ˟l3#(êYny׫6YM"xDv~?Ѣ#J+̝	Oq0U%5/wmT[7ӳlPe7ZJaW\60Z>*Lg3S[^t%j7Ts%ffڝ1oOݝhDLEMFr4n&͡°W#A-"pq	cό,F/T2=b%렳 =6mgtG~©3©ix>Ե{#DW_{_+ʦݬ wJTy)g}xkܯ
+qrcP0p6Oz7KxbuFy=Hf̑ f/NvpEj1njIi[HoSĲ!=۩Ń6_(p!!uԆ0Xa)FM3RIgb-w~]V 44"oM"\1.΁ŃXٕV,en~:r,7%qf$APR2XZ\1,m@m}fcz0lrPQv<&zt6V.DK$D_mY~[CZrUP7[?JR^Z40b'Q`f[%wSVqmVo~wD>DOϟ->0bFzUPqFhEav?zpŗ5u&[0ʷ@E[l}Bu*3m(0\,S~cٹ=SmO<WI>UN0|rMF89c2#s9) Ўmi|{Q}괇(⋜95Jo\k\uS(^"_@[HK[9.GKoaYoC/ܘ9mmXcYߩHa#COR0*5~ مصՕ6ntrQ~?X$.A<@ 4qGAڼ1ǑM!4_:!Μ.b3wYh:<aAw?г3,;pR"6:UL	d՜r!K7J(T3K~)08cx-<"|ʝm
+m.^Y?nr`+:69UB\BCK?PHmӲ3^>JE	ӀiIAh%U+C^0^:)LO(3إE{J/r%2>L3q,d/a:6<7057?]vyFXÇ_܋In-)ZyFǤ[op3ҳ!0"6j*&Y=Nixj!S5.#ׯ9|>kwo4(yIre&܊Z1~]kJ;=fZjOa^ ].?}tpX=1zԋ}A`k!Mk!FV?mTD|~dX>5\uԭp	V- o%T&``:Ŧp3td>L7D1[XU;Y#o,-W?*	|y~Z$U2%DGwOAӖDCI8G/n{n3v}=q#g)ziʿQ;o~ƕ)v$&xK_HdǠ!6+
+h_\Lk#Vkp	O[j2'OÀIO瞓At^t=a6EeVk}
+}E%<DzJv;DTѠ9u25=M\
+"¨x1g*v3cM{=P݄Bq Ru
+6Į6dq1AzbۨI!љ"^h@~r{{PHfo,ŧ%:>6od=fQ(%~M
+9N'l6֏©^i>TH.Ս}Uz41aD2zQe)%Uv,]8E)D	|aNq Ovm߸7gi:?Q3~pZ~"gO#$NAOԈ'v;IEۙ?Úvү<?ZC,ǫo$Zٳ07jepC:{bh1P$# c	őp)'HuQr357i"͌P"v/ Ҕi%WZrId*O`If`\ӛ8q%5\N]f9~	Ud3%3O.y*`G؎jLSG2/t$uZl@kB&7!%eC8C}2R|I:7:ÈӦ}<1
+mS4an\њHaG?fТR 5	rv25m`L4`gvN-c5fz<tmPt5'z3F'm;{ 5
+J6MMR1*rs~dϝkoȞ[A $D0laˉBLc,˵N|4~0ɤK6.etW"Vc,1DٷIc	gZvyʣ?秆s$SVqܝ,%,i8sm'^dCj{NH\IxrZM)>D	SiqlXwwPM{|oh=קk]$'p|IsR\J
+Nf~T("Ne;7yP#Wi/R2p\rF^ӷ@GPn)~h /% EjzGXuXQAlϜ&S'IAAtpa2xH$:tj:,$B:~WajaQ&Or )IӴLCvj#^CJ
+$è>PѷBm^ܲ`h 
+ѓ{@U^_i!B(MzKU~NkU@j:Rz챒ylk&lg{Dqαui+q'ÖqM>uL-aWOc+YiD泘{I9m~A >}QJv5*6u9zAEx34Pl`0,	ocջ_=Zӎ+cn꒝6Ĵc$UAv%gs=FCc|[jstKʓ="!Nڂ?lZwśB[א+%~=#;w i\gx`zÑjG{i	~e=,6fֺnj.4{Oy\K	+7V9M7_=YyW&άǿV WSQEQL1FcNn}z ޾,Ph^] 0+D>鮓A]AGfa2FW."jܺxz^AfBweZn68lf8i1t9HVzHˡ;eF9%wwOy=A$ˇ݃PpU/e_2ypV[ypU[zu$t7a:;o=دn]ٹ囵/C$	xz6"P&rzyCӋ)3bQЋFF;4I(lo:f5JE9]efa>l~۰tq%j9(>	95c]^ԫιE4Mn+8I"Kit^2d0ڤŔs ߻QXyFju"A'|51
+V5CTp[pA[<]_gmWS%ۼn3sF4=0窘v<f]}r1ҎY.`<3&	{x=+|
+CG؎NT|<1ٻX<yLuWѰo<ti1ڳ(S;:찍@0@EƵ̇NqQ"vyv78ho.YՉ7&GȮs3u:r2<AqQ!ӨeApN.QKlz>UχH\j2st<8-DTZ--4ZC=7Rb!atS`2Ud:6[ޗlZZ:Wcܦ ڍ k	6Uq?'Lb/v2`)8s{\}ߌg^rKקƫzE0: @H
+Hv&/ЏVoO!"!*5'R"
+޴~j8CEdBT"7:G6;7iHꒈEWqE|L4{t3NT~U)nɨ 7R/_{7SNW	|>,42k/^ߡUi߻&/.3ySٜ_1)*zyç SuvVMMȢvu}N-pq_ ad^Ǯ̦؅ݩMZksS>糀1/_dU|Kg1asiHp!Mm\z h_b
+E9p@B&ney<4('k3RTN9=e.}qn_gS+&;խve|ͥd?'~,UZ<KA%5?||gV*W075H??ŲS|^MǺ\.NpIܱAP{'Fou4rpA9u lڷ<J"^=' Yt3bx~{"[' Wv\|O-M#A)[TN=b
+(RG&x\%yEN;33){.>ED`4X+s/gosi|_.ԑ.9onF,]5iYF/<vđ9_@ΈMg5XOhX
+bIbS^f@0opy=tvyy/sX~p̫P-!{{)%պ׬4 VbڠD|aC'y]Ә'{z
+f"˵|?<b[ȁdARt~Jը >Q8Ponh`qsȫnGV5&(dɄ k;	棍t~KFA'y
+F@	=.40V+?8X$fšڨ,tr7\p3u*P?qڜKlgp@GW~¬"i7[d	xhv"a;7#R<<?x}=0Ii2cЭ+<ǿVlg.ܐs>j~nv.`r٥`E#grۛ1])}bhg<1)B-vjNHw`'3+g,0)[֯#;KuH]H"lPu7uBFjx/h@(= X8a<(4V򍸭L0qe}E
+O0YzD}CMƺi7GH6mpw I,kea0#CoV;i[˧w!xc3"׆P{#0C#)/Ǿ^y@Q2UA3Xl*߯97T}*8e>j4JNAM0e9VP{7i￯Oih{X^\ehI9{w9"QoƏbv]Vme痫3G\Z@qֻi#}W{^7D`!/{97OBl/t$V$;.a9C 
+wܰqtp 9"\pM%AduuxCkNWdht3He=cnlm\kjd_kp_"?A^q)cXCO|:ZVl4{s3QjA@uOY_cJ؉q3
+"r:s}mJhti0<+khKڝqy;z+/dR!bybu+1	ѝp5ʂ
+b<>ܾel_Ʋ,=xbܵʎܩBkZ>A=DKʐbV{\ُyҞϵt(EqMpŏ}B]zOqtEUL7YYx"3\gիP;-y aNe}٠hc\~O0eݰuכ[p/y/p3m>TĳIIg_gd{%6д<KM4^g 0JZ@)n="Qh|ίqywLg/ܫz>w>-29zuke<Ӭ*6͕Pho\[vq&fx|&>ez{HkT.|.ჭM64W6<zfOgeP2-@f:M"@i]%8OH4Q-yjĻ73yeB`7ogV&PI@[/z6i*yr...mSM(߼j9{`o1BeX  
\ No newline at end of file
diff --git a/sites/default/files/css/css_Z5jMg7P_bjcW9iUzujI7oaechMyxQTUqZhHJ_aYSq04.css b/sites/default/files/css/css_Z5jMg7P_bjcW9iUzujI7oaechMyxQTUqZhHJ_aYSq04.css
new file mode 100644
index 0000000..08f19ab
--- /dev/null
+++ b/sites/default/files/css/css_Z5jMg7P_bjcW9iUzujI7oaechMyxQTUqZhHJ_aYSq04.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,.shortcut-action{display:none;}.one-sidebar .main-content,.two-sidebars .main-content{width:100%;}.featured-bottom{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_Z5jMg7P_bjcW9iUzujI7oaechMyxQTUqZhHJ_aYSq04.css.gz b/sites/default/files/css/css_Z5jMg7P_bjcW9iUzujI7oaechMyxQTUqZhHJ_aYSq04.css.gz
new file mode 100644
index 0000000..1f031e0
--- /dev/null
+++ b/sites/default/files/css/css_Z5jMg7P_bjcW9iUzujI7oaechMyxQTUqZhHJ_aYSq04.css.gz
@@ -0,0 +1,3 @@
+     eN0E
+
+&~MEW6Uw	Dqs=P5gu$1xdi+km]mgY'z'I$%ûݵڊT<SY1|Ȣaڅ(ͣM>fQxŨfc+N_}#ztBY<bLNf@q7(w~s=@wq)̞tDz4{O R?'  
\ No newline at end of file
diff --git a/sites/default/files/css/css_jcjIvXqEK0Y1yc4TIIQFxT3a4mqmDem5bvgShz2GLOM.css b/sites/default/files/css/css_jcjIvXqEK0Y1yc4TIIQFxT3a4mqmDem5bvgShz2GLOM.css
new file mode 100644
index 0000000..02ff897
--- /dev/null
+++ b/sites/default/files/css/css_jcjIvXqEK0Y1yc4TIIQFxT3a4mqmDem5bvgShz2GLOM.css
@@ -0,0 +1,28 @@
+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{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;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;}
+.ajax-progress{display:inline-block;padding:1px 5px 2px 5px;}[dir="rtl"] .ajax-progress{float:right;}.ajax-progress-throbber .throbber{background:transparent url(/drupal/core/themes/stable/images/core/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(/drupal/core/themes/stable/images/core/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"] .ajax-progress-fullscreen{left:auto;right:49%;}
+.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;}
+.js input.form-autocomplete{background-image:url(/drupal/core/themes/stable/images/core/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(/drupal/core/themes/stable/images/core/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;}
+.container-inline div,.container-inline label{display:inline;}.container-inline .details-wrapper{display:block;}
+.clearfix:after{content:"";display:table;clear:both;}
+.js details:not([open]) .details-wrapper{display:none;}
+.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;}
+.item-list__comma-list,.item-list__comma-list li{display:inline;}.item-list__comma-list{margin:0;padding:0;}.item-list__comma-list li:after{content:",";}.item-list__comma-list li:last-child:after{content:"";}
+.js .js-hide{display:none;}.js-show{display:none;}.js .js-show{display:block;}
+.nowrap{white-space:nowrap;}
+.position-container{position:relative;}
+.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;width:3%;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;}
+.reset-appearance{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0 none;background:transparent;padding:0;margin:0;line-height:inherit;}
+.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;}
+table.sticky-header{background-color:#fff;margin-top:0;z-index:500;top:0;}
+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(/drupal/core/themes/stable/images/core/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(/drupal/core/themes/stable/images/core/icons/000000/move.svg);}.touchevents .draggable td{padding:0 10px;}.touchevents .draggable .menu-item__link{display:inline-block;padding:10px 0;}.touchevents a.tabledrag-handle{height:44px;width:40px;}.touchevents a.tabledrag-handle .handle{background-position:40% 19px;height:21px;}[dir="rtl"] .touch a.tabledrag-handle .handle{background-position:right 40% top 19px;}.touchevents .draggable.drag a.tabledrag-handle .handle{background-position:50% -32px;}.tabledrag-toggle-weight-wrapper{text-align:right;}[dir="rtl"] .tabledrag-toggle-weight-wrapper{text-align:left;}.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;}
+.tablesort{width:16px;height:16px;display:inline-block;background-size:100%;}.tablesort--asc{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/twistie-down.svg);}.tablesort--desc{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/twistie-up.svg);}
+div.tree-child{background:url(/drupal/core/themes/stable/images/core/tree.png) no-repeat 11px center;}div.tree-child-last{background:url(/drupal/core/themes/stable/images/core/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(/drupal/core/themes/stable/images/core/tree.png) no-repeat -11px center;}
+.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 .toolbar-bar .toolbar-tab > .toolbar-icon{position:relative;z-index:502;}.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_jcjIvXqEK0Y1yc4TIIQFxT3a4mqmDem5bvgShz2GLOM.css.gz b/sites/default/files/css/css_jcjIvXqEK0Y1yc4TIIQFxT3a4mqmDem5bvgShz2GLOM.css.gz
new file mode 100644
index 0000000..ef22e8d
--- /dev/null
+++ b/sites/default/files/css/css_jcjIvXqEK0Y1yc4TIIQFxT3a4mqmDem5bvgShz2GLOM.css.gz
@@ -0,0 +1,18 @@
+     rۺ_:sqd$_cjΙO"!	/߻;s҇}5lO6Vk0*ٳ'o}gUJϴx{\7ϻ-w=-*猖$.Iӊ-MěIH^mx:ޓKHg%emg)ҡM\Kka,~uEk/y˫$9#Vb tMŞ4]eI꧸'{xxeR4Ue}rn=rXH(5zdoӰn:Lng-*ᑔ VllTbhK-VRedR?}ab<,VO }^U ZkX0ۘuD7m,;`r0t~+Ec/[oYt5<7U=Z)\Zo$o2n:&joVǢ~^n$fuilsAb2Y"ii{~P$i9
+@e8|+iZK ;[ޒ/SlY~4;08(琷-ɁJA2dU:h
+o`,9Y> gd^ʲdH6Mq`	k|?nt7Da[-kE^7rMŎϠ.l}ѦQ~M'`P
+s։\A.4|ond#IȪSJR4]K!Kz9T>]ӛ;t[]CE.MkdGT^,[F2/2wE"AIqh__]>E#D:dvut%k֠KQlnEUݡͫ/UK#{¾0/to|#P%"t[&lhK
+]chu3uDs]tznxe˖>כCU#*L,7n~}Sʋo~}``Q	|lt1j7,U4,{hu軾S{q!02qrq' 	Bsa;,>Qo%@R&tn!T Î01ɉln~*t/1˗/?)FGJi_m&۰`W{`[03+NH5\I9s"ODi°ub#¨/?ZkRчKe9v+ܲ|-R;v.@K̢jZɉ,}4B"{ ZrH}t}TQ*!_ŀtoKHS1gjU@'1#T:I K+t̪¹H)IEY;(>qx8'AHS[9t/p>)v*}=Qٮy#^w0!|*2+©+Vo @5Ys\0oT*&6VJ4yySC !j//~pixK5vn4Iγ5S_yrn*ynI9I0U8Le	Ȼ"oM	@.Yֆ׼5q*&'^ǟU9OZqmv9l"A<+#oTwGU+k:OO1#Iz8C뱉]BW<]	;UU'w`ObxϴVt}mї^ґdmX@>%5y7L	py`9[r`KfRx16ym|IرY&ltcN&QolTLy$ <|ş/(l"rdUQ[ҹ1%)xjc^ajjj	q g5~<c+]fXF5bG^_0{g4=%aS)|%Nq1#)[S\&[t}hK?+x
+SO0ftF:iw}O]e8*$3Hɽ*v}gM޷{[|
+^FXP1^0,IrVK>욒l^km&Mء.2MESat.@JRu̥O3f3^	:%rDO,
+D@# CB
+9*n]l)		;PH*p9Ia0~E5{H L`+!>{`P1gvLoIuNhy@wpd*^hLygY `w%
+|	 }jC+`"Wÿ/MxKy8:xtu4:Y3Qİ-T{8P-	)	3pSQ'O1TPMNc۟{Mdo\ջTk}ognyB0FQ \\+iVz4Шm2pZ}y@Dێ9\T=P"'%z(_jHؕ_,\)M±둞p{hni$_Gj/JZDG?Sak9 ~|ĤQJ>Ǹ&ˁK;cWyx6hE6vH,Y
+&ȈJ!;':xVJ-yу9R9S	qa
+GMcMD0HNx^W001k\l_VSax4\lzǨ:k2jU.KݷɿUdɺj0FQh;#ɂcȆ<)P`Z
+AF)|iXȏH^O8/I޿
+(.,<{(Wc[pm^KXx-$N
+<hnTv'Ӝ܃S(i年9^e։xYG	vx^#?Z<	OU_G 8ʄeᬡ,C?:^@uJ^%뚎E}l.yX0~/*`+Y,hK&r{Ǖk>Br|NxOwA)=ƫLmɘ80dTxjÇ14<%OJ!sxM;56P}Tܵ#`_*$Ӷݶc3v٬4f/ZQ1Z~-mZ6sb~<E
+oɇ/!N]̨Ŧ֔,߾P Sm'ێB	!re25v՚bk'%C)ex/;'&X_ܦvAO~{<ҟ)r)*gs,4SX7)J}&$Ac n
+ɋ$D A8|4{j^>}\NQ؜.n!,gp3Y7&xy</pq`n\Ƿ;}e\g_.NIO6uD]GȜ?=ɛxσOҒS Ԓ_"k
+$`5I%ٺy]')	ΡxSpxO5.c9^8-}OR^瞓VeAI	B2D!ϧ'M?sشwT;9k@ط(l;E<VN9އ{[>&fB$B/TJ~N|>9ն""!ySey?5TuJI-36;Fj͉B#qtc#8_:/M|YlV2U'qRl~9ga:ScmG0UZ2wy>7`ü~Z $̅E  
\ No newline at end of file
diff --git a/sites/default/files/css/css_kFrQ9wBoa2QH_pCSVdx-TU3BRT7bRUtR7jqEdVsVvWI.css b/sites/default/files/css/css_kFrQ9wBoa2QH_pCSVdx-TU3BRT7bRUtR7jqEdVsVvWI.css
new file mode 100644
index 0000000..03405be
--- /dev/null
+++ b/sites/default/files/css/css_kFrQ9wBoa2QH_pCSVdx-TU3BRT7bRUtR7jqEdVsVvWI.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;}.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 .toolbar-menu,[dir="rtl"] .toolbar .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 .toolbar-menu .toolbar-handle,.toolbar .toolbar-tray-horizontal .toolbar-menu ul,.toolbar .toolbar-tray-vertical .toolbar-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;}.touchevents .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-touchevents .contextual-region .contextual .contextual-links li a:hover{color:#000;background:#f7fcff;}
+.toolbar-bar .toolbar-icon-edit:before{background-image:url(/drupal/core/themes/stable/images/core/icons/bebebe/pencil.svg);}.toolbar-bar .toolbar-icon-edit:active:before,.toolbar-bar .toolbar-icon-edit.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/ffffff/pencil.svg);}.contextual .trigger{background-image:url(/drupal/core/themes/stable/images/core/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(/drupal/core/themes/stable/images/core/icons/787878/pencil.svg);}.contextual .trigger:focus{background-image:url(/drupal/core/themes/stable/images/core/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(/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(/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(/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(/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(/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(/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(/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(/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(/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(/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(/drupal/core/assets/vendor/jquery.ui/themes/base/images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(/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(/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(/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(/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;}
+.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;}
+.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:' → ';}[dir="rtl"] .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(/drupal/core/themes/stable/images/core/icons/787878/ex.svg);height:12px;top:10px;}.quickedit .icon-close:hover:before,.quickedit .icon-close:active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/000000/ex.svg);}.quickedit .icon-throbber:before{background-image:url(/drupal/core/themes/stable/images/quickedit/icon-throbber.gif);}.quickedit .icon-pencil:before{background-image:url(/drupal/core/themes/stable/images/core/icons/5181c6/pencil.svg);background-position:left center;background-size:1.3em;}
+.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%);}.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 .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 .toolbar-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 .toolbar-menu .toolbar-menu .toolbar-menu .toolbar-menu{margin-left:0.25em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-menu .toolbar-menu .toolbar-menu .toolbar-menu{margin-left:0;margin-right:0.25em;}.toolbar .toolbar-menu .toolbar-menu a{color:#434343;}.toolbar .toolbar-toggle-orientation{background-color:#f5f5f5;padding:0;height:100%;}.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;}[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 .toolbar-menu ul .toolbar-icon{padding-left:1.3333em;}[dir="rtl"] .toolbar .toolbar-menu ul .toolbar-icon{padding-left:0;padding-right:1.3333em;}.toolbar .toolbar-menu ul a.toolbar-icon:before{display:none;}.toolbar .toolbar-tray-vertical .toolbar-menu ul a{padding-left:2.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-menu ul a{padding-left:0;padding-right:2.75em;}.toolbar .toolbar-tray-vertical .toolbar-menu ul ul a{padding-left:3.75em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-menu ul ul a{padding-left:0;padding-right:3.75em;}.toolbar .toolbar-tray-vertical .toolbar-menu a{padding-left:2.75em;padding-right:4em;}[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-menu a{padding-left:4em;padding-right:2.75em;}.toolbar-bar .toolbar-icon-menu:before{background-image:url(/drupal/core/themes/stable/images/core/icons/bebebe/hamburger.svg);}.toolbar-bar .toolbar-icon-menu:active:before,.toolbar-bar .toolbar-icon-menu.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/ffffff/hamburger.svg);}.toolbar-bar .toolbar-icon-help:before{background-image:url(/drupal/core/themes/stable/images/core/icons/bebebe/questionmark-disc.svg);}.toolbar-bar .toolbar-icon-help:active:before,.toolbar-bar .toolbar-icon-help.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/ffffff/questionmark-disc.svg);}.toolbar-icon-system-admin-content:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/file.svg);}.toolbar-icon-system-admin-content:active:before,.toolbar-icon-system-admin-content.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/000000/file.svg);}.toolbar-icon-system-admin-structure:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/orgchart.svg);}.toolbar-icon-system-admin-structure:active:before,.toolbar-icon-system-admin-structure.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/000000/orgchart.svg);}.toolbar-icon-system-themes-page:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/paintbrush.svg);}.toolbar-icon-system-themes-page:active:before,.toolbar-icon-system-themes-page.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/000000/paintbrush.svg);}.toolbar-icon-entity-user-collection:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/people.svg);}.toolbar-icon-entity-user-collection:active:before,.toolbar-icon-entity-user-collection.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/000000/people.svg);}.toolbar-icon-system-modules-list:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/puzzlepiece.svg);}.toolbar-icon-system-modules-list:active:before,.toolbar-icon-system-modules-list.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/000000/puzzlepiece.svg);}.toolbar-icon-system-admin-config:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/wrench.svg);}.toolbar-icon-system-admin-config:active:before,.toolbar-icon-system-admin-config.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/000000/wrench.svg);}.toolbar-icon-system-admin-reports:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/barchart.svg);}.toolbar-icon-system-admin-reports:active:before,.toolbar-icon-system-admin-reports.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/000000/barchart.svg);}.toolbar-icon-help-main:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/questionmark-disc.svg);}.toolbar-icon-help-main:active:before,.toolbar-icon-help-main.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/000000/questionmark-disc.svg);}@media only screen and (min-width:16.5em){.toolbar .toolbar-bar .toolbar-tab > .toolbar-icon{margin-left:0;margin-right:0;padding-left:0;padding-right:0;text-indent:-9999px;width:4em;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before{background-size:42% auto;left:0;width:100%;}.no-svg .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before{background-size:auto auto;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before{left:auto;right:0;}}@media only screen and (min-width:36em){.toolbar .toolbar-bar .toolbar-tab > .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-tab > .toolbar-icon{background-position:right center;padding-left:1.3333em;padding-right:2.75em;}.toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before{background-size:100% auto;left:0.6667em;width:20px;}.no-svg .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before{background-size:auto auto;}[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before{left:0;right:0.6667em;}}.toolbar-tab a:focus{outline:none;text-decoration:underline;}.toolbar-lining button:focus{outline:none;}.toolbar-tray-horizontal a:focus,.toolbar-box a:focus{outline:none;background-color:#f5f5f5;}.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(/drupal/core/themes/stable/images/core/icons/5181c6/chevron-disc-down.svg);}.toolbar .toolbar-icon.toolbar-handle.open:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/chevron-disc-up.svg);}.toolbar .toolbar-menu .toolbar-menu .toolbar-icon.toolbar-handle:before{background-image:url(/drupal/core/themes/stable/images/core/icons/5181c6/twistie-down.svg);background-size:75%;}.toolbar .toolbar-menu .toolbar-menu .toolbar-icon.toolbar-handle.open:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/twistie-up.svg);background-size:75%;}.toolbar .toolbar-icon-escape-admin:before{background-image:url(/drupal/core/themes/stable/images/core/icons/bebebe/chevron-disc-left.svg);}[dir="rtl"] .toolbar .toolbar-icon-escape-admin:before{background-image:url(/drupal/core/themes/stable/images/core/icons/bebebe/chevron-disc-right.svg);}.toolbar .toolbar-toggle-orientation button{height:39px;padding:0;text-indent:-999em;width:39px;}.toolbar .toolbar-toggle-orientation button:before{left:0;right:0;margin:0 auto;}[dir="rtl"] .toolbar .toolbar-toggle-orientation .toolbar-icon{padding:0;}.toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(/drupal/core/themes/stable/images/core/icons/bebebe/push-left.svg);}.toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before,.toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/push-left.svg);}[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:before{background-image:url(/drupal/core/themes/stable/images/core/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(/drupal/core/themes/stable/images/core/icons/787878/push-right.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:before{background-image:url(/drupal/core/themes/stable/images/core/icons/bebebe/push-up.svg);}.toolbar .toolbar-toggle-orientation [value="horizontal"]:hover:before,.toolbar .toolbar-toggle-orientation [value="horizontal"]:focus:before{background-image:url(/drupal/core/themes/stable/images/core/icons/787878/push-up.svg);}
+.toolbar-bar .toolbar-icon-user:before{background-image:url(/drupal/core/themes/stable/images/core/icons/bebebe/person.svg);}.toolbar-bar .toolbar-icon-user:active:before,.toolbar-bar .toolbar-icon-user.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/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;}.shortcut-action{display:inline-block;margin-left:0.3em;}[dir="rtl"] .shortcut-action{margin-left:0;margin-right:0.3em;}.shortcut-action__message{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"] .shortcut-action__message{margin-left:0;margin-right:0.3em;}.shortcut-action:hover .shortcut-action__message,.shortcut-action:focus .shortcut-action__message{opacity:1;-ms-transform:translateY(-2px);-webkit-transform:translateY(-2px);transform:translateY(-2px);}
+.toolbar-bar .toolbar-icon-shortcut:before{background-image:url(/drupal/core/themes/stable/images/core/icons/bebebe/star.svg);}.toolbar-bar .toolbar-icon-shortcut:active:before,.toolbar-bar .toolbar-icon-shortcut.is-active:before{background-image:url(/drupal/core/themes/stable/images/core/icons/ffffff/star.svg);}.shortcut-action__icon{background:transparent url(/drupal/core/themes/stable/images/shortcut/favstar.svg) no-repeat left top;width:20px;height:20px;display:inline-block;vertical-align:-2px;}[dir="rtl"] .shortcut-action__icon{background-image:url(/drupal/core/themes/stable/images/shortcut/favstar-rtl.svg);}.shortcut-action--add:hover .shortcut-action__icon,.shortcut-action--add:focus .shortcut-action__icon{background-position:-20px top;}.shortcut-action--remove .shortcut-action__icon{background-position:-40px top;}.shortcut-action--remove:focus .shortcut-action__icon,.shortcut-action--remove:hover .shortcut-action__icon{background-position:-60px top;}
diff --git a/sites/default/files/css/css_kFrQ9wBoa2QH_pCSVdx-TU3BRT7bRUtR7jqEdVsVvWI.css.gz b/sites/default/files/css/css_kFrQ9wBoa2QH_pCSVdx-TU3BRT7bRUtR7jqEdVsVvWI.css.gz
new file mode 100644
index 0000000..7286f3d
--- /dev/null
+++ b/sites/default/files/css/css_kFrQ9wBoa2QH_pCSVdx-TU3BRT7bRUtR7jqEdVsVvWI.css.gz
@@ -0,0 +1,24 @@
+     =َ8**c9%у`yY``EQ%֤,uQFb?qdyI(2$잙TWvZfq1xE{YS>iR෢D]/~*}	,:/A)+O֘E`)t9%[燰LF~χ,-N耷+?GG	&
+"aZOf揖eB_-7wM<}\` %s޷IO]|'X´%΋s\(`HVSyGya1լOsGE&ǈ
+dq"a,2n,Nx6ͧ#JO	gEk 4=Y1j:`3SC{u0FjaD5`eӢTV8l!(4Ngqv!1IV>ǟN8&$['fs㥧RUCj[_pl{\NEBD>LUg?wEz:̌,ceAM-27Ղُ=ղOx}-hjԲ-jԲF۲6"9NǺo#e4"=I+NFph;ʝSjڳ}ew!(	sY:Jw;?I&cy~	Yo&EB#*H0
+P~ā9Xg'0qAKFD@:@bK|^;FPV+iiD*TeugF9q-ZvӜ.XشM
+%~2/β
+ĖwgiX`_pցWn5s~^,sF=IH:U-'CIQq6ջ#m#t:E7&aMD^YDtV0t(,BuSl
+[Y0@dO9"}msE!G6?!dҜ麎$eN?O4L$Jܺ11_Ðx}1}	f齈VQ]6b#[>Y3;]MS042<#>)'?B9"˟>OQ<_ҰT9mM,|;Cݎ?3vN\"gL\QSowI간yſDst/|e*Jmc8'Vk3}ˣp]٪
+}2..7O(A?g'ZN]jS
+Eɹ,&ҋo qK:$ilWn3^'&J'a?V('aD<XfO;(H÷tVo᷹F:99<Z5~h'\Q44Hl.vgiQs;iDIC5Bs>-%}nCL@(8F·o24#EѰ↤s/^"qpi5t5<:E:oJH;E:H3t~Z"}n)RJz.}:\n	T٪+b^!noZtQWZ3]<6oLK&+_ZqUJ#'~man0D#(jLȋvA37[+β{vtjb%t30Eqbf<3Cx.Q[oM!=>j5SN_+Ei27U	T]QS],'CՖ\g7jF1mWΣIQKiJu6QjГ5[hVUgXc5Ёň."VQ˧JES3pHoa7(7o΍RXhǝwb~T%+93q}ĉKDӍ[_zFb(k${S}B6cQ|p5TMivDA?4e g|n M ˹` 7' շٳS#\om &ܹ"Pr1 i[8  Z A A:1T#` =B"^!Mԕ V&P5@^X+_#L`0@- ,\4{ <y6,j4796<>4AC1A-5K6!~5B>hTa{탆VXˈRՆA~A+!S6YmL [!1d d4p~4T3bДa4d=70LD Ft RW"Q) )01
+0j7K ۝M:FiLwis6K	I
+R<	fA@=$,(IIJ)~BQlqjj̀y>29BB
+<B9,OaBdDL @+zqL w+04}>զ|袕3n;c؏}c Nkt`PRLZ8 Q]t1*Pī)HZdcG8T[&>l*.C8bmtR;Ua]A&>ᵃs\uhʳN4hH	FZ a#
+>@ l,xﰉ(قƾ(Py尙t)RTI )_T()l+eѹE!`X@:J4<"W 8>F 1.@#Q AN (P( z,DѻymQ,(ɰ歀D4@! !AQ*3rղ%ɠ1o%=k%&83J`DŽg=9
+mu 4A̏9,x: Q`^z2{`xMvz`>7AОMguMpH
+lVH gq	ϫ(I Vpڏ
+Vba>,@57wHhi)qiA?konma`;m+| ZJӳV,Gzu|2"o#f&LF̾JD#bzŦMQ(Wy3nuR՚N{)?_%tE?ӿ>GϜOʈNFE#"baG5N*P@'&ۅfBSÔzaDO J.^g78GώKwH-aHX>;"RE8= qcL/颽'}8N~főj"JQJD2xKeę50RrcoV8|v_
+IZ|lp*-%Z2MZOcq9JRart%J87f]ZmNG3E]L2P[Lb"+VSb'JbivPJG*%mHHD=DG2	ԕPewWX&,\WRDG7/)auHZCO+x_[ s6=_ifG9	R	PH7gMMG0FrץҲ`yB4gU>3.%8'*,qs`{DR8¤/ۙp1	LK ac=DV^b;uN֌_<]ˑQ6t$&b"DN!_lr1i;ڝ+.#~	]^NꨵZ>CӉ}[>5-3[%\#KN[铖[!
+W90T1ڮ!gb~dN:g<ϸ>He}WVo1*r˕6kEgI8j-ܭڧm}y!nRNR5|'Mct}v3agtnBI|8K{uRQf)=0_ȸd^:Wjx5+Y[Xz7]+>32jY=4ڶ{=wʻ]	&\Iq"hG8͉ٌdٺ(G6)nmШp%Lc>i_k$tغzh_*O*ci)uy~YC$ө!닔<Rꠄ'TMJٍvry!9E+QTDsBB&-eiJK|UF9
+VarmDa;w7!4=P&ߠz"q)~6SjWKx
+"&.H;f|n:7m9n43fԱahi.DGSwЏ"y##w#><ݯvB@]R.Ckry#2ʢY_dHgYSU[ՀSOcqYQ)UJ;8x+Ax"T{QHqٙdꬎnnf9EOY	TFSzA:	̭:짦KZq*kO-C>Ezfj2̕jXEUv[HȸYRC>M>O*=613]"LfOJdxD2tMޒp1hhz!Nj!վj~yLN*1m'`tlF^cȬp_(QJwie'<,T_=fQ)zogznIj3^#00
+M>H"4l.Bb1x<D7V@wcK%MBz>ÿAԛ$IvxN;X{zo)s}Ԩ:qUeEz%K{AleW9+L*\Ugt^g7{7WjZlrب]#܏Fn&U^SImzs5_ eln	҇i0;Kl`#X5v}vHd1BvXewU39շ#H9XQ>.u>Q Cͨ}шAS}F[z\XUvibߎgVBY]&9Õa~潋2$nu:seP{Mэ.J,AjVÖL8j>	Taڌi6.Ru@6ގZE=ϮX6QT1uF{(_vD}pK-moiA7RpsVzT:n1K??ӻQ@W~4ahł0"+nfbWܑCQgZϭxF$Jge~J IȺN1flӳ@ԃܓf0OiPDs=ir{2o39ȳ~LAߑyC	'4+3nO:*
+N ܑy 4nb@oγa!SS?ıdO'DȢ0N,C]ҍ:K%TFlmN>j4,e3sOLBZ{&|nWW׿`P-c:[^)ҾM:ڙp[pFK#[K	kELڵys:}-Xyiݦ=`R8)C{gt	"a+6Շ#1_G8D^Atruky CxCS	!hn?◌g }MfJ3t<xhTAtW2j5ջ_n@}\Q_1x |y{7ߑ.fF4uF[ԍnofpT
+P}jPWA]1,wyAqTM9QVkji	0nh!^bmDdrwhPDjГzh#FY]ҿ*EKqiEO_NdYe!b~G17\6c6Q)(JR1ptڙ^"w-
+ȷo"OK+#Β /9w}לn`Ũ`3e24+n wFʡ  _rn6^[qɸ	 .77Km @W\wswL;SIO7Y*P>襮ʪwYlH̛>i^g\_KF1MmM*1&h<x-|6e㜆	{с4NP3kR~'Eu  
\ No newline at end of file
diff --git a/sites/default/files/js/js_0iRDeuur_qkhMM38gyu9yKBEDUgqkYKHJagpFh1iVFM.js b/sites/default/files/js/js_0iRDeuur_qkhMM38gyu9yKBEDUgqkYKHJagpFh1iVFM.js
new file mode 100644
index 0000000..06e3298
--- /dev/null
+++ b/sites/default/files/js/js_0iRDeuur_qkhMM38gyu9yKBEDUgqkYKHJagpFh1iVFM.js
@@ -0,0 +1,10332 @@
+/*! 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){var e=typeof self=="object"&&self.self==self&&self||typeof global=="object"&&global.global==global&&global;if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,n){e.Backbone=t(e,n,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore"),r;try{r=require("jquery")}catch(n){}t(e,exports,i,r)}else{e.Backbone=t(e,{},e._,e.jQuery||e.Zepto||e.ender||e.$)}})(function(t,e,i,r){var n=t.Backbone;var s=Array.prototype.slice;e.VERSION="1.2.3";e.$=r;e.noConflict=function(){t.Backbone=n;return this};e.emulateHTTP=false;e.emulateJSON=false;var a=function(t,e,r){switch(t){case 1:return function(){return i[e](this[r])};case 2:return function(t){return i[e](this[r],t)};case 3:return function(t,n){return i[e](this[r],h(t,this),n)};case 4:return function(t,n,s){return i[e](this[r],h(t,this),n,s)};default:return function(){var t=s.call(arguments);t.unshift(this[r]);return i[e].apply(i,t)}}};var o=function(t,e,r){i.each(e,function(e,n){if(i[n])t.prototype[n]=a(e,n,r)})};var h=function(t,e){if(i.isFunction(t))return t;if(i.isObject(t)&&!e._isModel(t))return u(t);if(i.isString(t))return function(e){return e.get(t)};return t};var u=function(t){var e=i.matches(t);return function(t){return e(t.attributes)}};var l=e.Events={};var c=/\s+/;var f=function(t,e,r,n,s){var a=0,o;if(r&&typeof r==="object"){if(n!==void 0&&"context"in s&&s.context===void 0)s.context=n;for(o=i.keys(r);a<o.length;a++){e=f(t,e,o[a],r[o[a]],s)}}else if(r&&c.test(r)){for(o=r.split(c);a<o.length;a++){e=t(e,o[a],n,s)}}else{e=t(e,r,n,s)}return e};l.on=function(t,e,i){return d(this,t,e,i)};var d=function(t,e,i,r,n){t._events=f(v,t._events||{},e,i,{context:r,ctx:t,listening:n});if(n){var s=t._listeners||(t._listeners={});s[n.id]=n}return t};l.listenTo=function(t,e,r){if(!t)return this;var n=t._listenId||(t._listenId=i.uniqueId("l"));var s=this._listeningTo||(this._listeningTo={});var a=s[n];if(!a){var o=this._listenId||(this._listenId=i.uniqueId("l"));a=s[n]={obj:t,objId:n,id:o,listeningTo:s,count:0}}d(t,e,r,this,a);return this};var v=function(t,e,i,r){if(i){var n=t[e]||(t[e]=[]);var s=r.context,a=r.ctx,o=r.listening;if(o)o.count++;n.push({callback:i,context:s,ctx:s||a,listening:o})}return t};l.off=function(t,e,i){if(!this._events)return this;this._events=f(g,this._events,t,e,{context:i,listeners:this._listeners});return this};l.stopListening=function(t,e,r){var n=this._listeningTo;if(!n)return this;var s=t?[t._listenId]:i.keys(n);for(var a=0;a<s.length;a++){var o=n[s[a]];if(!o)break;o.obj.off(e,r,this)}if(i.isEmpty(n))this._listeningTo=void 0;return this};var g=function(t,e,r,n){if(!t)return;var s=0,a;var o=n.context,h=n.listeners;if(!e&&!r&&!o){var u=i.keys(h);for(;s<u.length;s++){a=h[u[s]];delete h[a.id];delete a.listeningTo[a.objId]}return}var l=e?[e]:i.keys(t);for(;s<l.length;s++){e=l[s];var c=t[e];if(!c)break;var f=[];for(var d=0;d<c.length;d++){var v=c[d];if(r&&r!==v.callback&&r!==v.callback._callback||o&&o!==v.context){f.push(v)}else{a=v.listening;if(a&&--a.count===0){delete h[a.id];delete a.listeningTo[a.objId]}}}if(f.length){t[e]=f}else{delete t[e]}}if(i.size(t))return t};l.once=function(t,e,r){var n=f(p,{},t,e,i.bind(this.off,this));return this.on(n,void 0,r)};l.listenToOnce=function(t,e,r){var n=f(p,{},e,r,i.bind(this.stopListening,this,t));return this.listenTo(t,n)};var p=function(t,e,r,n){if(r){var s=t[e]=i.once(function(){n(e,s);r.apply(this,arguments)});s._callback=r}return t};l.trigger=function(t){if(!this._events)return this;var e=Math.max(0,arguments.length-1);var i=Array(e);for(var r=0;r<e;r++)i[r]=arguments[r+1];f(m,this._events,t,void 0,i);return this};var m=function(t,e,i,r){if(t){var n=t[e];var s=t.all;if(n&&s)s=s.slice();if(n)_(n,r);if(s)_(s,[e].concat(r))}return t};var _=function(t,e){var i,r=-1,n=t.length,s=e[0],a=e[1],o=e[2];switch(e.length){case 0:while(++r<n)(i=t[r]).callback.call(i.ctx);return;case 1:while(++r<n)(i=t[r]).callback.call(i.ctx,s);return;case 2:while(++r<n)(i=t[r]).callback.call(i.ctx,s,a);return;case 3:while(++r<n)(i=t[r]).callback.call(i.ctx,s,a,o);return;default:while(++r<n)(i=t[r]).callback.apply(i.ctx,e);return}};l.bind=l.on;l.unbind=l.off;i.extend(e,l);var y=e.Model=function(t,e){var r=t||{};e||(e={});this.cid=i.uniqueId(this.cidPrefix);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(y.prototype,l,{changed:null,validationError:null,idAttribute:"id",cidPrefix:"c",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},matches:function(t){return!!i.iteratee(t,this)(this.attributes)},set:function(t,e,r){if(t==null)return this;var n;if(typeof t==="object"){n=t;r=e}else{(n={})[t]=e}r||(r={});if(!this._validate(n,r))return false;var s=r.unset;var a=r.silent;var o=[];var h=this._changing;this._changing=true;if(!h){this._previousAttributes=i.clone(this.attributes);this.changed={}}var u=this.attributes;var l=this.changed;var c=this._previousAttributes;for(var f in n){e=n[f];if(!i.isEqual(u[f],e))o.push(f);if(!i.isEqual(c[f],e)){l[f]=e}else{delete l[f]}s?delete u[f]:u[f]=e}this.id=this.get(this.idAttribute);if(!a){if(o.length)this._pending=r;for(var d=0;d<o.length;d++){this.trigger("change:"+o[d],this,u[o[d]],r)}}if(h)return this;if(!a){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=this._changing?this._previousAttributes:this.attributes;var r={};for(var n in t){var s=t[n];if(i.isEqual(e[n],s))continue;r[n]=s}return i.size(r)?r:false},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=i.extend({parse:true},t);var e=this;var r=t.success;t.success=function(i){var n=t.parse?e.parse(i,t):i;if(!e.set(n,t))return false;if(r)r.call(t.context,e,i,t);e.trigger("sync",e,i,t)};z(this,t);return this.sync("read",this,t)},save:function(t,e,r){var n;if(t==null||typeof t==="object"){n=t;r=e}else{(n={})[t]=e}r=i.extend({validate:true,parse:true},r);var s=r.wait;if(n&&!s){if(!this.set(n,r))return false}else{if(!this._validate(n,r))return false}var a=this;var o=r.success;var h=this.attributes;r.success=function(t){a.attributes=h;var e=r.parse?a.parse(t,r):t;if(s)e=i.extend({},n,e);if(e&&!a.set(e,r))return false;if(o)o.call(r.context,a,t,r);a.trigger("sync",a,t,r)};z(this,r);if(n&&s)this.attributes=i.extend({},h,n);var u=this.isNew()?"create":r.patch?"patch":"update";if(u==="patch"&&!r.attrs)r.attrs=n;var l=this.sync(u,this,r);this.attributes=h;return l},destroy:function(t){t=t?i.clone(t):{};var e=this;var r=t.success;var n=t.wait;var s=function(){e.stopListening();e.trigger("destroy",e,e.collection,t)};t.success=function(i){if(n)s();if(r)r.call(t.context,e,i,t);if(!e.isNew())e.trigger("sync",e,i,t)};var a=false;if(this.isNew()){i.defer(t.success)}else{z(this,t);a=this.sync("delete",this,t)}if(!n)s();return a},url:function(){var t=i.result(this,"urlRoot")||i.result(this.collection,"url")||F();if(this.isNew())return t;var e=this.get(this.idAttribute);return t.replace(/[^\/]$/,"$&/")+encodeURIComponent(e)},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.defaults({validate:true},t))},_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 b={keys:1,values:1,pairs:1,invert:1,pick:0,omit:0,chain:1,isEmpty:1};o(y,b,"attributes");var x=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 w={add:true,remove:true,merge:true};var E={add:true,remove:false};var k=function(t,e,i){i=Math.min(Math.max(i,0),t.length);var r=Array(t.length-i);var n=e.length;for(var s=0;s<r.length;s++)r[s]=t[s+i];for(s=0;s<n;s++)t[s+i]=e[s];for(s=0;s<r.length;s++)t[s+n+i]=r[s]};i.extend(x.prototype,l,{model:y,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,E))},remove:function(t,e){e=i.extend({},e);var r=!i.isArray(t);t=r?[t]:i.clone(t);var n=this._removeModels(t,e);if(!e.silent&&n)this.trigger("update",this,e);return r?n[0]:n},set:function(t,e){if(t==null)return;e=i.defaults({},e,w);if(e.parse&&!this._isModel(t))t=this.parse(t,e);var r=!i.isArray(t);t=r?[t]:t.slice();var n=e.at;if(n!=null)n=+n;if(n<0)n+=this.length+1;var s=[];var a=[];var o=[];var h={};var u=e.add;var l=e.merge;var c=e.remove;var f=false;var d=this.comparator&&n==null&&e.sort!==false;var v=i.isString(this.comparator)?this.comparator:null;var g;for(var p=0;p<t.length;p++){g=t[p];var m=this.get(g);if(m){if(l&&g!==m){var _=this._isModel(g)?g.attributes:g;if(e.parse)_=m.parse(_,e);m.set(_,e);if(d&&!f)f=m.hasChanged(v)}if(!h[m.cid]){h[m.cid]=true;s.push(m)}t[p]=m}else if(u){g=t[p]=this._prepareModel(g,e);if(g){a.push(g);this._addReference(g,e);h[g.cid]=true;s.push(g)}}}if(c){for(p=0;p<this.length;p++){g=this.models[p];if(!h[g.cid])o.push(g)}if(o.length)this._removeModels(o,e)}var y=false;var b=!d&&u&&c;if(s.length&&b){y=this.length!=s.length||i.some(this.models,function(t,e){return t!==s[e]});this.models.length=0;k(this.models,s,0);this.length=this.models.length}else if(a.length){if(d)f=true;k(this.models,a,n==null?this.length:n);this.length=this.models.length}if(f)this.sort({silent:true});if(!e.silent){for(p=0;p<a.length;p++){if(n!=null)e.index=n+p;g=a[p];g.trigger("add",g,this,e)}if(f||y)this.trigger("sort",this,e);if(a.length||o.length)this.trigger("update",this,e)}return r?t[0]:t},reset:function(t,e){e=e?i.clone(e):{};for(var r=0;r<this.models.length;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);return this.remove(e,t)},unshift:function(t,e){return this.add(t,i.extend({at:0},e))},shift:function(t){var e=this.at(0);return this.remove(e,t)},slice:function(){return s.apply(this.models,arguments)},get:function(t){if(t==null)return void 0;var e=this.modelId(this._isModel(t)?t.attributes:t);return this._byId[t]||this._byId[e]||this._byId[t.cid]},at:function(t){if(t<0)t+=this.length;return this.models[t]},where:function(t,e){return this[e?"find":"filter"](t)},findWhere:function(t){return this.where(t,true)},sort:function(t){var e=this.comparator;if(!e)throw new Error("Cannot sort a set without a comparator");t||(t={});var r=e.length;if(i.isFunction(e))e=i.bind(e,this);if(r===1||i.isString(e)){this.models=this.sortBy(e)}else{this.models.sort(e)}if(!t.silent)this.trigger("sort",this,t);return this},pluck:function(t){return i.invoke(this.models,"get",t)},fetch:function(t){t=i.extend({parse:true},t);var e=t.success;var r=this;t.success=function(i){var n=t.reset?"reset":"set";r[n](i,t);if(e)e.call(t.context,r,i,t);r.trigger("sync",r,i,t)};z(this,t);return this.sync("read",this,t)},create:function(t,e){e=e?i.clone(e):{};var r=e.wait;t=this._prepareModel(t,e);if(!t)return false;if(!r)this.add(t,e);var n=this;var s=e.success;e.success=function(t,e,i){if(r)n.add(t,i);if(s)s.call(i.context,t,e,i)};t.save(null,e);return t},parse:function(t,e){return t},clone:function(){return new this.constructor(this.models,{model:this.model,comparator:this.comparator})},modelId:function(t){return t[this.model.prototype.idAttribute||"id"]},_reset:function(){this.length=0;this.models=[];this._byId={}},_prepareModel:function(t,e){if(this._isModel(t)){if(!t.collection)t.collection=this;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},_removeModels:function(t,e){var i=[];for(var r=0;r<t.length;r++){var n=this.get(t[r]);if(!n)continue;var s=this.indexOf(n);this.models.splice(s,1);this.length--;if(!e.silent){e.index=s;n.trigger("remove",n,this,e)}i.push(n);this._removeReference(n,e)}return i.length?i:false},_isModel:function(t){return t instanceof y},_addReference:function(t,e){this._byId[t.cid]=t;var i=this.modelId(t.attributes);if(i!=null)this._byId[i]=t;t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){delete this._byId[t.cid];var i=this.modelId(t.attributes);if(i!=null)delete this._byId[i];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(t==="change"){var n=this.modelId(e.previousAttributes());var s=this.modelId(e.attributes);if(n!==s){if(n!=null)delete this._byId[n];if(s!=null)this._byId[s]=e}}this.trigger.apply(this,arguments)}});var S={forEach:3,each:3,map:3,collect:3,reduce:4,foldl:4,inject:4,reduceRight:4,foldr:4,find:3,detect:3,filter:3,select:3,reject:3,every:3,all:3,some:3,any:3,include:3,includes:3,contains:3,invoke:0,max:3,min:3,toArray:1,size:1,first:3,head:3,take:3,initial:3,rest:3,tail:3,drop:3,last:3,without:0,difference:0,indexOf:3,shuffle:1,lastIndexOf:3,isEmpty:1,chain:1,sample:3,partition:3,groupBy:3,countBy:3,sortBy:3,indexBy:3};o(x,S,"models");var I=e.View=function(t){this.cid=i.uniqueId("view");i.extend(this,i.pick(t,P));this._ensureElement();this.initialize.apply(this,arguments)};var T=/^(\S+)\s*(.*)$/;var P=["model","collection","el","id","attributes","className","tagName","events"];i.extend(I.prototype,l,{tagName:"div",$:function(t){return this.$el.find(t)},initialize:function(){},render:function(){return this},remove:function(){this._removeElement();this.stopListening();return this},_removeElement:function(){this.$el.remove()},setElement:function(t){this.undelegateEvents();this._setElement(t);this.delegateEvents();return this},_setElement:function(t){this.$el=t instanceof e.$?t:e.$(t);this.el=this.$el[0]},delegateEvents:function(t){t||(t=i.result(this,"events"));if(!t)return this;this.undelegateEvents();for(var e in t){var r=t[e];if(!i.isFunction(r))r=this[r];if(!r)continue;var n=e.match(T);this.delegate(n[1],n[2],i.bind(r,this))}return this},delegate:function(t,e,i){this.$el.on(t+".delegateEvents"+this.cid,e,i);return this},undelegateEvents:function(){if(this.$el)this.$el.off(".delegateEvents"+this.cid);return this},undelegate:function(t,e,i){this.$el.off(t+".delegateEvents"+this.cid,e,i);return this},_createElement:function(t){return document.createElement(t)},_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");this.setElement(this._createElement(i.result(this,"tagName")));this._setAttributes(t)}else{this.setElement(i.result(this,"el"))}},_setAttributes:function(t){this.$el.attr(t)}});e.sync=function(t,r,n){var s=H[t];i.defaults(n||(n={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:s,dataType:"json"};if(!n.url){a.url=i.result(r,"url")||F()}if(n.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(n.attrs||r.toJSON(n))}if(n.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(n.emulateHTTP&&(s==="PUT"||s==="DELETE"||s==="PATCH")){a.type="POST";if(n.emulateJSON)a.data._method=s;var o=n.beforeSend;n.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",s);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!n.emulateJSON){a.processData=false}var h=n.error;n.error=function(t,e,i){n.textStatus=e;n.errorThrown=i;if(h)h.call(n.context,t,e,i)};var u=n.xhr=e.ajax(i.extend(a,n));r.trigger("request",r,u,n);return u};var H={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 A=/\((.*?)\)/g;var C=/(\(\?)?:\w+/g;var R=/\*\w+/g;var j=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,l,{initialize:function(){},route:function(t,r,n){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){n=r;r=""}if(!n)n=this[r];var s=this;e.history.route(t,function(i){var a=s._extractParameters(t,i);if(s.execute(n,a,r)!==false){s.trigger.apply(s,["route:"+r].concat(a));s.trigger("route",r,a);e.history.trigger("route",s,r,a)}});return this},execute:function(t,e,i){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(j,"\\$&").replace(A,"(?:$1)?").replace(C,function(t,e){return e?t:"([^/?]+)"}).replace(R,"([^?]*?)");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 M=e.History=function(){this.handlers=[];this.checkUrl=i.bind(this.checkUrl,this);if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var N=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var U=/#.*$/;M.started=false;i.extend(M.prototype,l,{interval:50,atRoot:function(){var t=this.location.pathname.replace(/[^\/]$/,"$&/");return t===this.root&&!this.getSearch()},matchRoot:function(){var t=this.decodeFragment(this.location.pathname);var e=t.slice(0,this.root.length-1)+"/";return e===this.root},decodeFragment:function(t){return decodeURI(t.replace(/%25/g,"%2525"))},getSearch:function(){var t=this.location.href.replace(/#.*/,"").match(/\?.+/);return t?t[0]:""},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getPath:function(){var t=this.decodeFragment(this.location.pathname+this.getSearch()).slice(this.root.length-1);return t.charAt(0)==="/"?t.slice(1):t},getFragment:function(t){if(t==null){if(this._usePushState||!this._wantsHashChange){t=this.getPath()}else{t=this.getHash()}}return t.replace(N,"")},start:function(t){if(M.started)throw new Error("Backbone.history has already been started");M.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._hasHashChange="onhashchange"in window&&(document.documentMode===void 0||document.documentMode>7);this._useHashChange=this._wantsHashChange&&this._hasHashChange;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.history&&this.history.pushState);this._usePushState=this._wantsPushState&&this._hasPushState;this.fragment=this.getFragment();this.root=("/"+this.root+"/").replace(O,"/");if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";this.location.replace(e+"#"+this.getPath());return true}else if(this._hasPushState&&this.atRoot()){this.navigate(this.getHash(),{replace:true})}}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe");this.iframe.src="javascript:0";this.iframe.style.display="none";this.iframe.tabIndex=-1;var r=document.body;var n=r.insertBefore(this.iframe,r.firstChild).contentWindow;n.document.open();n.document.close();n.location.hash="#"+this.fragment}var s=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState){s("popstate",this.checkUrl,false)}else if(this._useHashChange&&!this.iframe){s("hashchange",this.checkUrl,false)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}if(!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};if(this._usePushState){t("popstate",this.checkUrl,false)}else if(this._useHashChange&&!this.iframe){t("hashchange",this.checkUrl,false)}if(this.iframe){document.body.removeChild(this.iframe);this.iframe=null}if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);M.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.getHash(this.iframe.contentWindow)}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){if(!this.matchRoot())return false;t=this.fragment=this.getFragment(t);return i.some(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!M.started)return false;if(!e||e===true)e={trigger:!!e};t=this.getFragment(t||"");var i=this.root;if(t===""||t.charAt(0)==="?"){i=i.slice(0,-1)||"/"}var r=i+t;t=this.decodeFragment(t.replace(U,""));if(this.fragment===t)return;this.fragment=t;if(this._usePushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,r)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var n=this.iframe.contentWindow;if(!e.replace){n.document.open();n.document.close()}this._updateHash(n.location,t,e.replace)}}else{return this.location.assign(r)}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 M;var q=function(t,e){var r=this;var n;if(t&&i.has(t,"constructor")){n=t.constructor}else{n=function(){return r.apply(this,arguments)}}i.extend(n,r,e);var s=function(){this.constructor=n};s.prototype=r.prototype;n.prototype=new s;if(t)i.extend(n.prototype,t);n.__super__=r.prototype;return n};y.extend=x.extend=$.extend=I.extend=M.extend=q;var F=function(){throw new Error('A "url" property or function must be specified')};var z=function(t,e){var i=e.error;e.error=function(r){if(i)i.call(e.context,t,r,e);t.trigger("error",t,r,e)}};return e});
+
+/*!
+ * jQuery Once v2.1.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})}});
+
+/**
+ * @file
+ * Parse inline JSON and initialize the drupalSettings global object.
+ */
+
+(function () {
+
+  'use strict';
+
+  // Use direct child elements to harden against XSS exploits when CSP is on.
+  var settingsElement = document.querySelector('head > script[type="application/json"][data-drupal-selector="drupal-settings-json"], body > script[type="application/json"][data-drupal-selector="drupal-settings-json"]');
+
+  /**
+   * Variable generated by Drupal with all the configuration created from PHP.
+   *
+   * @global
+   *
+   * @type {object}
+   */
+  window.drupalSettings = {};
+
+  if (settingsElement !== null) {
+    window.drupalSettings = JSON.parse(settingsElement.textContent);
+  }
+})();
+;
+/**
+ * @file
+ * Defines the Drupal JavaScript API.
+ */
+
+/**
+ * A jQuery object, typically the return value from a `$(selector)` call.
+ *
+ * Holds an HTMLElement or a collection of HTMLElements.
+ *
+ * @typedef {object} jQuery
+ *
+ * @prop {number} length=0
+ *   Number of elements contained in the jQuery object.
+ */
+
+/**
+ * Variable generated by Drupal that holds all translated strings from PHP.
+ *
+ * Content of this variable is automatically created by Drupal when using the
+ * Interface Translation module. It holds the translation of strings used on
+ * the page.
+ *
+ * This variable is used to pass data from the backend to the frontend. Data
+ * contained in `drupalSettings` is used during behavior initialization.
+ *
+ * @global
+ *
+ * @var {object} drupalTranslations
+ */
+
+/**
+ * Global Drupal object.
+ *
+ * All Drupal JavaScript APIs are contained in this namespace.
+ *
+ * @global
+ *
+ * @namespace
+ */
+window.Drupal = {behaviors: {}, locale: {}};
+
+// Class indicating that JavaScript 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';
+
+  /**
+   * Helper to rethrow errors asynchronously.
+   *
+   * This way Errors bubbles up outside of the original callstack, making it
+   * easier to debug errors in the browser.
+   *
+   * @param {Error|string} error
+   *   The error to be thrown.
+   */
+  Drupal.throwError = function (error) {
+    setTimeout(function () { throw error; }, 0);
+  };
+
+  /**
+   * Custom error thrown after attach/detach if one or more behaviors failed.
+   * Initializes the JavaScript behaviors for page loads and Ajax requests.
+   *
+   * @callback Drupal~behaviorAttach
+   *
+   * @param {HTMLDocument|HTMLElement} context
+   *   An element to detach behaviors from.
+   * @param {?object} settings
+   *   An object containing settings for the current context. It is rarely used.
+   *
+   * @see Drupal.attachBehaviors
+   */
+
+  /**
+   * Reverts and cleans up JavaScript behavior initialization.
+   *
+   * @callback Drupal~behaviorDetach
+   *
+   * @param {HTMLDocument|HTMLElement} context
+   *   An element to attach behaviors to.
+   * @param {object} settings
+   *   An object containing settings for the current context.
+   * @param {string} trigger
+   *   One of `'unload'`, `'move'`, or `'serialize'`.
+   *
+   * @see Drupal.detachBehaviors
+   */
+
+  /**
+   * @typedef {object} Drupal~behavior
+   *
+   * @prop {Drupal~behaviorAttach} attach
+   *   Function run on page load and after an Ajax call.
+   * @prop {Drupal~behaviorDetach} detach
+   *   Function run when content is serialized or removed from the page.
+   */
+
+  /**
+   * Holds all initialization methods.
+   *
+   * @namespace Drupal.behaviors
+   *
+   * @type {Object.<string, Drupal~behavior>}
+   */
+
+  /**
+   * Defines a behavior to be run during attach and detach phases.
+   *
+   * Attaches 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
+   * {@link Drupal.behaviors} object using the method 'attach' and optionally
+   * also 'detach'.
+   *
+   * {@link 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 `var elements =
+   * $(context).find(selector).once('behavior-name');` 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.)
+   *
+   * @example
+   * Drupal.behaviors.behaviorName = {
+   *   attach: function (context, settings) {
+   *     // ...
+   *   },
+   *   detach: function (context, settings, trigger) {
+   *     // ...
+   *   }
+   * };
+   *
+   * @param {HTMLDocument|HTMLElement} [context=document]
+   *   An element to attach behaviors to.
+   * @param {object} [settings=drupalSettings]
+   *   An object containing settings for the current context. If none is given,
+   *   the global {@link drupalSettings} object is used.
+   *
+   * @see Drupal~behaviorAttach
+   * @see Drupal.detachBehaviors
+   *
+   * @throws {Drupal~DrupalBehaviorError}
+   */
+  Drupal.attachBehaviors = function (context, settings) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    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) {
+          Drupal.throwError(e);
+        }
+      }
+    }
+  };
+
+  // Attach all behaviors.
+  domready(function () { Drupal.attachBehaviors(document, drupalSettings); });
+
+  /**
+   * Detaches registered behaviors from a page element.
+   *
+   * Developers implementing 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 {HTMLDocument|HTMLElement} [context=document]
+   *   An element to detach behaviors from.
+   * @param {object} [settings=drupalSettings]
+   *   An object containing settings for the current context. If none given,
+   *   the global {@link drupalSettings} object is used.
+   * @param {string} [trigger='unload']
+   *   A string containing what's causing the behaviors to be detached. The
+   *   possible triggers are:
+   *   - `'unload'`: 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,
+   *     {@link 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.
+   *
+   * @throws {Drupal~DrupalBehaviorError}
+   *
+   * @see Drupal~behaviorDetach
+   * @see Drupal.attachBehaviors
+   */
+  Drupal.detachBehaviors = function (context, settings, trigger) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    trigger = trigger || 'unload';
+    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) {
+          Drupal.throwError(e);
+        }
+      }
+    }
+  };
+
+  /**
+   * Encodes special characters in a plain-text string for display as HTML.
+   *
+   * @param {string} str
+   *   The string to be encoded.
+   *
+   * @return {string}
+   *   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;
+  };
+
+  /**
+   * Replaces 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 ({@link Drupal.checkPlain}).
+   *    - `'%variable'`: escape text and theme as a placeholder for user-
+   *      submitted content ({@link Drupal.checkPlain} +
+   *      `{@link Drupal.theme}('placeholder')`).
+   *
+   * @return {string}
+   *
+   * @see Drupal.t
+   */
+  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);
+  };
+
+  /**
+   * Replaces 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 `args`. Internal use only.
+   *
+   * @return {string}
+   *   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]);
+  };
+
+  /**
+   * Translates strings to the page language, or a given language.
+   *
+   * See the documentation of the server-side t() function for further details.
+   *
+   * @param {string} str
+   *   A string containing the English text to translate.
+   * @param {Object.<string, string>} [args]
+   *   An object of replacements pairs to make after translation. Incidences
+   *   of any key in this array are replaced with the corresponding value.
+   *   See {@link Drupal.formatString}.
+   * @param {object} [options]
+   *   Additional options for translation.
+   * @param {string} [options.context='']
+   *   The context the source string belongs to.
+   *
+   * @return {string}
+   *   The formatted string.
+   *   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.
+   *
+   * @param {string} path
+   *   Drupal path to transform to URL.
+   *
+   * @return {string}
+   *   The full URL.
+   */
+  Drupal.url = function (path) {
+    return drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + path;
+  };
+
+  /**
+   * Returns the passed in URL as an absolute URL.
+   *
+   * @param {string} url
+   *   The URL string to be normalized to an absolute URL.
+   *
+   * @return {string}
+   *   The normalized, absolute URL.
+   *
+   * @see https://github.com/angular/angular.js/blob/v1.4.4/src/ng/urlUtils.js
+   * @see https://grack.com/blog/2009/11/17/absolutizing-url-in-javascript
+   * @see https://github.com/jquery/jquery-ui/blob/1.11.4/ui/tabs.js#L53
+   */
+  Drupal.url.toAbsolute = function (url) {
+    var urlParsingNode = document.createElement('a');
+
+    // Decode the URL first; this is required by IE <= 6. Decoding non-UTF-8
+    // strings may throw an exception.
+    try {
+      url = decodeURIComponent(url);
+    }
+    catch (e) {
+      // Empty.
+    }
+
+    urlParsingNode.setAttribute('href', url);
+
+    // IE <= 7 normalizes the URL when assigned to the anchor node similar to
+    // the other browsers.
+    return urlParsingNode.cloneNode(false).href;
+  };
+
+  /**
+   * Returns true if the URL is within Drupal's base path.
+   *
+   * @param {string} url
+   *   The URL string to be tested.
+   *
+   * @return {bool}
+   *   `true` if local.
+   *
+   * @see https://github.com/jquery/jquery-ui/blob/1.11.4/ui/tabs.js#L58
+   */
+  Drupal.url.isLocal = function (url) {
+    // Always use browser-derived absolute URLs in the comparison, to avoid
+    // attempts to break out of the base path using directory traversal.
+    var absoluteUrl = Drupal.url.toAbsolute(url);
+    var protocol = location.protocol;
+
+    // Consider URLs that match this site's base URL but use HTTPS instead of HTTP
+    // as local as well.
+    if (protocol === 'http:' && absoluteUrl.indexOf('https:') === 0) {
+      protocol = 'https:';
+    }
+    var baseUrl = protocol + '//' + location.host + drupalSettings.path.baseUrl.slice(0, -1);
+
+    // Decoding non-UTF-8 strings may throw an exception.
+    try {
+      absoluteUrl = decodeURIComponent(absoluteUrl);
+    }
+    catch (e) {
+      // Empty.
+    }
+    try {
+      baseUrl = decodeURIComponent(baseUrl);
+    }
+    catch (e) {
+      // Empty.
+    }
+
+    // The given URL matches the site's base URL, or has a path under the site's
+    // base URL.
+    return absoluteUrl === baseUrl || absoluteUrl.indexOf(baseUrl + '/') === 0;
+  };
+
+  /**
+   * Formats a string containing a count of items.
+   *
+   * This function ensures that the string is pluralized correctly. Since
+   * {@link 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 {@link 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 {@link 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.
+   *
+   * @param {string} item
+   *   Unencoded path.
+   *
+   * @return {string}
+   *   The encoded path.
+   */
+  Drupal.encodePath = function (item) {
+    return window.encodeURIComponent(item).replace(/%2F/g, '/');
+  };
+
+  /**
+   * Generates 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.
+   *
+   * @example
+   * <caption>To retrieve the HTML for text that should be emphasized and
+   * displayed as a placeholder inside a sentence.</caption>
+   * Drupal.theme('placeholder', text);
+   *
+   * @namespace
+   *
+   * @param {function} func
+   *   The name of the theme function to call.
+   * @param {...args}
+   *   Additional arguments to pass along to the theme function.
+   *
+   * @return {string|object|HTMLElement|jQuery}
+   *   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 {string} str
+   *   The text to format (plain-text).
+   *
+   * @return {string}
+   *   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.
+   *
+   * @type {Drupal~behavior}
+   *
+   * @prop {Drupal~behaviorAttach} attach
+   *  Attaches the outline behavior to the right context.
+   */
+  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);
+                }
+              }
+            });
+          }
+        });
+      }
+    }
+  };
+
+  /**
+   * Namespace for contextual related functionality.
+   *
+   * @namespace
+   */
+  Drupal.contextual = {
+
+    /**
+     * The {@link Drupal.contextual.View} instances associated with each list
+     * element of contextual links.
+     *
+     * @type {Array}
+     */
+    views: [],
+
+    /**
+     * The {@link Drupal.contextual.RegionView} instances associated with each
+     * contextual region element.
+     *
+     * @type {Array}
+     */
+    regionViews: []
+  };
+
+  /**
+   * A Backbone.Collection of {@link Drupal.contextual.StateModel} instances.
+   *
+   * @type {Backbone.Collection}
+   */
+  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.
+   *
+   * @constructor
+   *
+   * @augments Backbone.Model
+   */
+  Drupal.contextual.StateModel = Backbone.Model.extend(/** @lends Drupal.contextual.StateModel# */{
+
+    /**
+     * @type {object}
+     *
+     * @prop {string} title
+     * @prop {bool} regionIsHovered
+     * @prop {bool} hasFocus
+     * @prop {bool} isOpen
+     * @prop {bool} isLocked
+     */
+    defaults: /** @lends Drupal.contextual.StateModel# */{
+
+      /**
+       * The title of the entity to which these contextual links apply.
+       *
+       * @type {string}
+       */
+      title: '',
+
+      /**
+       * Represents if the contextual region is being hovered.
+       *
+       * @type {bool}
+       */
+      regionIsHovered: false,
+
+      /**
+       * Represents if the contextual trigger or options have focus.
+       *
+       * @type {bool}
+       */
+      hasFocus: false,
+
+      /**
+       * Represents if the contextual options for an entity are available to
+       * be selected (i.e. whether the list of options is visible).
+       *
+       * @type {bool}
+       */
+      isOpen: false,
+
+      /**
+       * When the model is locked, the trigger remains active.
+       *
+       * @type {bool}
+       */
+      isLocked: false
+    },
+
+    /**
+     * Opens or closes the contextual link.
+     *
+     * If it is opened, then also give focus.
+     *
+     * @return {Drupal.contextual.StateModel}
+     *   The current contextual state model.
+     */
+    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.
+     *
+     * @return {Drupal.contextual.StateModel}
+     *   The current contextual state model.
+     */
+    close: function () {
+      this.set('isOpen', false);
+      return this;
+    },
+
+    /**
+     * Gives focus to this contextual link.
+     *
+     * Also closes + removes focus from every other contextual link.
+     *
+     * @return {Drupal.contextual.StateModel}
+     *   The current contextual state model.
+     */
+    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.
+     *
+     * @return {Drupal.contextual.StateModel}
+     *   The current contextual state model.
+     */
+    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';
+
+  Drupal.contextual.AuralView = Backbone.View.extend(/** @lends Drupal.contextual.AuralView# */{
+
+    /**
+     * Renders the aural view of a contextual link (i.e. screen reader support).
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     *
+     * @param {object} options
+     *   Options for the view.
+     */
+    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';
+
+  Drupal.contextual.KeyboardView = Backbone.View.extend(/** @lends Drupal.contextual.KeyboardView# */{
+
+    /**
+     * @type {object}
+     */
+    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);
+      }
+    },
+
+    /**
+     * Provides keyboard interaction for a contextual link.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     */
+    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.
+       *
+       * @type {NaN|number}
+       */
+      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';
+
+  Drupal.contextual.RegionView = Backbone.View.extend(/** @lends Drupal.contextual.RegionView# */{
+
+    /**
+     * Events for the Backbone view.
+     *
+     * @return {object}
+     *   A mapping of events to be used in the view.
+     */
+    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.touchevents) {
+        mapping = {};
+      }
+      return mapping;
+    },
+
+    /**
+     * Renders the visual view of a contextual region element.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:hasFocus', this.render);
+    },
+
+    /**
+     * @inheritdoc
+     *
+     * @return {Drupal.contextual.RegionView}
+     *   The current contextual region view.
+     */
+    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';
+
+  Drupal.contextual.VisualView = Backbone.View.extend(/** @lends Drupal.contextual.VisualView# */{
+
+    /**
+     * Events for the Backbone view.
+     *
+     * @return {object}
+     *   A mapping of events to be used in the view.
+     */
+    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.touchevents) {
+        mapping.mouseenter = function () { this.model.focus(); };
+      }
+      return mapping;
+    },
+
+    /**
+     * Renders the visual view of a contextual link. Listens to mouse & touch.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+    },
+
+    /**
+     * @inheritdoc
+     *
+     * @return {Drupal.contextual.VisualView}
+     *   The current contextual visual view.
+     */
+    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});;
+/**
+ * @file
+ * Adapted from underscore.js with the addition Drupal namespace.
+ */
+
+/**
+ * Limits the invocations of a function in a given time frame.
+ *
+ * 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} func
+ *   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.
+ * @param {bool} immediate
+ *   Whether we wait at the beginning or end to execute the function.
+ *
+ * @return {function}
+ *   The debounced function.
+ */
+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
+ * 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.
+ */
+
+/**
+ * @typedef {object} Drupal~displaceOffset
+ *
+ * @prop {number} top
+ * @prop {number} left
+ * @prop {number} right
+ * @prop {number} bottom
+ */
+
+/**
+ * Triggers when layout of the page changes.
+ *
+ * This is used to position fixed element on the page during page resize and
+ * Toolbar toggling.
+ *
+ * @event drupalViewportOffsetChange
+ */
+
+(function ($, Drupal, debounce) {
+
+  'use strict';
+
+  /**
+   * @name Drupal.displace.offsets
+   *
+   * @type {Drupal~displaceOffset}
+   */
+  var offsets = {
+    top: 0,
+    right: 0,
+    bottom: 0,
+    left: 0
+  };
+
+  /**
+   * Registers a resize handler on the window.
+   *
+   * @type {Drupal~behavior}
+   */
+  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.
+   *
+   * @function Drupal.displace
+   *
+   * @prop {Drupal~displaceOffset} offsets
+   *
+   * @param {bool} [broadcast]
+   *   When true or undefined, causes the recalculated offsets values to be
+   *   broadcast to listeners.
+   *
+   * @return {Drupal~displaceOffset}
+   *   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.
+   *
+   * @fires event:drupalViewportOffsetChange
+   */
+  function displace(broadcast) {
+    offsets = Drupal.displace.offsets = calculateOffsets();
+    if (typeof broadcast === 'undefined' || broadcast) {
+      $(document).trigger('drupalViewportOffsetChange', offsets);
+    }
+    return offsets;
+  }
+
+  /**
+   * Determines the viewport offsets.
+   *
+   * @return {Drupal~displaceOffset}
+   *   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.
+   *
+   * @function Drupal.displace.calculateOffset
+   *
+   * @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 {HTMLElement} 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.
+   *
+   * @ignore
+   */
+  Drupal.displace = displace;
+  $.extend(Drupal.displace, {
+
+    /**
+     * Expose offsets to other scripts to avoid having to recalculate offsets.
+     *
+     * @ignore
+     */
+    offsets: offsets,
+
+    /**
+     * Expose method to compute a single edge offsets.
+     *
+     * @ignore
+     */
+    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))}});;
+/**
+ * @file
+ * Form features.
+ */
+
+/**
+ * Triggers when a value in the form changed.
+ *
+ * The event triggers when content is typed or pasted in a text field, before
+ * the change event triggers.
+ *
+ * @event formUpdated
+ */
+
+(function ($, Drupal, debounce) {
+
+  'use strict';
+
+  /**
+   * Retrieves the summary for the first element.
+   *
+   * @return {string}
+   */
+  $.fn.drupalGetSummary = function () {
+    var callback = this.data('summaryCallback');
+    return (this[0] && callback) ? $.trim(callback(this[0])) : '';
+  };
+
+  /**
+   * Sets the summary for all matched elements.
+   *
+   * @param {function} callback
+   *   Either a function that will be called each time the summary is
+   *   retrieved or a string (which is returned each time).
+   *
+   * @return {jQuery}
+   *
+   * @fires event:summaryUpdated
+   *
+   * @listens event:formUpdated
+   */
+  $.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.
+   *
+   * @type {Drupal~behavior}
+   */
+  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.
+   *
+   * @param {HTMLElement} element
+   *
+   * @fires event:formUpdated
+   */
+  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.
+   *
+   * @type {Drupal~behavior}
+   *
+   * @fires event:formUpdated
+   */
+  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 input.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.
+   *
+   * @type {Drupal~behavior}
+   */
+  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);
+;
+/**
+ * @file
+ * Progress bar.
+ */
+
+(function ($, Drupal) {
+
+  'use strict';
+
+  /**
+   * Theme function for the progress bar.
+   *
+   * @param {string} id
+   *
+   * @return {string}
+   *   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".
+   *
+   * @example
+   * pb = new Drupal.ProgressBar('myProgressBar');
+   * some_element.appendChild(pb.element);
+   *
+   * @constructor
+   *
+   * @param {string} id
+   * @param {function} updateCallback
+   * @param {string} method
+   * @param {function} errorCallback
+   */
+  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, /** @lends Drupal.ProgressBar# */{
+
+    /**
+     * Set the percentage and status message for the progressbar.
+     *
+     * @param {number} percentage
+     * @param {string} message
+     * @param {string} label
+     */
+    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.
+     *
+     * @param {string} uri
+     * @param {number} delay
+     */
+    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.
+        var uri = this.uri;
+        if (uri.indexOf('?') === -1) {
+          uri += '?';
+        }
+        else {
+          uri += '&';
+        }
+        uri += '_format=json';
+        $.ajax({
+          type: this.method,
+          url: 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.
+     *
+     * @param {string} string
+     */
+    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);
+;
+/**
+ * @file
+ * Provides Ajax page updating via jQuery $.ajax.
+ *
+ * Ajax is a method of making a request via JavaScript while viewing an HTML
+ * page. The 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.
+ */
+
+(function ($, window, Drupal, drupalSettings) {
+
+  'use strict';
+
+  /**
+   * Attaches the Ajax behavior to each Ajax form element.
+   *
+   * @type {Drupal~behavior}
+   */
+  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.
+   *
+   * @constructor
+   *
+   * @augments Error
+   *
+   * @param {XMLHttpRequest} xmlhttp
+   *   XMLHttpRequest object used for the failed request.
+   * @param {string} uri
+   *   The URI where the error occurred.
+   * @param {string} customMessage
+   *   The custom message.
+   */
+  Drupal.AjaxError = function (xmlhttp, uri, customMessage) {
+
+    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})) : '';
+
+    customMessage = customMessage ? ('\n' + Drupal.t('CustomMessage: !customMessage', {'!customMessage': customMessage})) : '';
+
+    /**
+     * Formatted and translated error message.
+     *
+     * @type {string}
+     */
+    this.message = statusCode + pathText + statusText + customMessage + responseText + readyStateText;
+
+    /**
+     * Used by some browsers to display a more accurate stack trace.
+     *
+     * @type {string}
+     */
+    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 {@link Drupal.Ajax} objects and storing all created
+   * objects in the {@link 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();
+   *   }
+   * };
+   *
+   * @param {object} settings
+   *   The settings object passed to {@link Drupal.Ajax} constructor.
+   * @param {string} [settings.base]
+   *   Base is passed to {@link Drupal.Ajax} constructor as the 'base'
+   *   parameter.
+   * @param {HTMLElement} [settings.element]
+   *   Element parameter of {@link Drupal.Ajax} constructor, element on which
+   *   event listeners will be bound.
+   *
+   * @return {Drupal.Ajax}
+   *
+   * @see Drupal.AjaxCommands
+   */
+  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>}
+   */
+  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 {@link Drupal.Ajax} constructor
+   * @param {HTMLElement} [element]
+   *   Element parameter of {@link 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);
+
+    /**
+     * @type {Drupal.AjaxCommands}
+     */
+    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) {
+
+      /**
+       * @type {string}
+       */
+      this.wrapper = '#' + this.wrapper;
+    }
+
+    /**
+     * @type {HTMLElement}
+     */
+    this.element = element;
+
+    /**
+     * @type {object}
+     */
+    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) {
+
+      /**
+       * @type {jQuery}
+       */
+      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');
+      }
+    }
+
+    // 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).
+    var originalUrl = this.url;
+    this.url = this.url.replace(/\/nojs(\/|$|\?|#)/g, '/ajax$1');
+    // If the 'nojs' version of the URL is trusted, also trust the 'ajax'
+    // version.
+    if (drupalSettings.ajaxTrustedUrl[originalUrl]) {
+      drupalSettings.ajaxTrustedUrl[this.url] = true;
+    }
+
+    // Set the options for the ajaxSubmit function.
+    // The 'this' variable will not persist inside of the options object.
+    var ajax = this;
+
+    /**
+     * Options for the ajaxSubmit function.
+     *
+     * @name Drupal.Ajax#options
+     *
+     * @type {object}
+     *
+     * @prop {string} url
+     * @prop {object} data
+     * @prop {function} beforeSerialize
+     * @prop {function} beforeSubmit
+     * @prop {function} beforeSend
+     * @prop {function} success
+     * @prop {function} complete
+     * @prop {string} dataType
+     * @prop {object} accepts
+     * @prop {string} accepts.json
+     * @prop {string} type
+     */
+    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, xmlhttprequest) {
+        // 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);
+        }
+
+        // Prior to invoking the response's commands, verify that they can be
+        // trusted by checking for a response header. See
+        // \Drupal\Core\EventSubscriber\AjaxResponseSubscriber for details.
+        // - Empty responses are harmless so can bypass verification. This
+        //   avoids an alert message for server-generated no-op responses that
+        //   skip Ajax rendering.
+        // - Ajax objects with trusted URLs (e.g., ones defined server-side via
+        //   #ajax) can bypass header verification. This is especially useful
+        //   for Ajax with multipart forms. Because IFRAME transport is used,
+        //   the response headers cannot be accessed for verification.
+        if (response !== null && !drupalSettings.ajaxTrustedUrl[ajax.url]) {
+          if (xmlhttprequest.getResponseHeader('X-Drupal-Ajax-Token') !== '1') {
+            var customMessage = Drupal.t('The response failed verification so will not be processed.');
+            return ajax.error(xmlhttprequest, ajax.url, customMessage);
+          }
+        }
+
+        return ajax.success(response, status);
+      },
+      complete: function (xmlhttprequest, status) {
+        ajax.ajaxing = false;
+        if (status === 'error' || status === 'parsererror') {
+          return ajax.error(xmlhttprequest, 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) {
+      if (!drupalSettings.ajaxTrustedUrl[ajax.url] && !Drupal.url.isLocal(ajax.url)) {
+        throw new Error(Drupal.t('The callback URL is not local and not trusted: !url', {'!url': ajax.url}));
+      }
+      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.
+   *
+   * @const {string}
+   */
+  Drupal.ajax.WRAPPER_FORMAT = '_wrapper_format';
+
+  /**
+   * Request parameter to indicate that a request is a Drupal Ajax request.
+   *
+   * @const
+   */
+  Drupal.Ajax.AJAX_REQUEST_PARAMETER = '_drupal_ajax';
+
+  /**
+   * 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.
+   *
+   * @param {HTMLElement} element
+   * @param {jQuery.Event} event
+   */
+  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.
+   *
+   * @param {HTMLElement} element
+   * @param {jQuery.Event} event
+   */
+  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.
+   *
+   * @param {HTMLElement} element
+   * @param {object} options
+   * @param {object} options.data
+   */
+  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');
+    }
+
+    // Inform Drupal that this is an AJAX request.
+    options.data[Drupal.Ajax.AJAX_REQUEST_PARAMETER] = 1;
+
+    // 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.
+   *
+   * @param {object} form_values
+   * @param {HTMLElement} element
+   * @param {object} options
+   */
+  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.
+   *
+   * @param {XMLHttpRequest} xmlhttprequest
+   * @param {object} options
+   * @param {object} options.extraData
+   */
+  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);
+    }
+  };
+
+  /**
+   * 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.
+   *
+   * @param {Array.<Drupal.AjaxCommands~commandDefinition>} response
+   * @param {number} status
+   */
+  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);
+
+    // Save element's ancestors tree so if the element is removed from the dom
+    // we can try to refocus one of its parents. Using addBack reverse the
+    // result array, meaning that index 0 is the highest parent in the hierarchy
+    // in this situation it is usually a <form> element.
+    var elementParents = $(this.element).parents('[data-drupal-selector]').addBack().toArray();
+
+    // Track if any command is altering the focus so we can avoid changing the
+    // focus set by the Ajax command.
+    var focusChanged = 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);
+        if (response[i].command === 'invoke' && response[i].method === 'focus') {
+          focusChanged = true;
+        }
+      }
+    }
+
+    // If the focus hasn't be changed by the ajax commands, try to refocus the
+    // triggering element or one of its parents if that element does not exist
+    // anymore.
+    if (!focusChanged && this.element && !$(this.element).data('disable-refocus')) {
+      var target = false;
+
+      for (var n = elementParents.length - 1; !target && n > 0; n--) {
+        target = document.querySelector('[data-drupal-selector="' + elementParents[n].getAttribute('data-drupal-selector') + '"]');
+      }
+
+      if (target) {
+        $(target).trigger('focus');
+      }
+    }
+
+    // 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 to apply an effect when adding new HTML.
+   *
+   * @param {object} response
+   * @param {string} [response.effect]
+   * @param {string|number} [response.speed]
+   *
+   * @return {object}
+   */
+  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.
+   *
+   * @param {object} xmlhttprequest
+   * @param {string} uri
+   * @param {string} customMessage
+   */
+  Drupal.Ajax.prototype.error = function (xmlhttprequest, uri, customMessage) {
+    // 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 = this.settings || drupalSettings;
+      Drupal.attachBehaviors(this.$form.get(0), settings);
+    }
+    throw new Drupal.AjaxError(xmlhttprequest, uri, customMessage);
+  };
+
+  /**
+   * @typedef {object} Drupal.AjaxCommands~commandDefinition
+   *
+   * @prop {string} command
+   * @prop {string} [method]
+   * @prop {string} [selector]
+   * @prop {string} [data]
+   * @prop {object} [settings]
+   * @prop {bool} [asterisk]
+   * @prop {string} [text]
+   * @prop {string} [title]
+   * @prop {string} [url]
+   * @prop {object} [argument]
+   * @prop {string} [name]
+   * @prop {string} [value]
+   * @prop {string} [old]
+   * @prop {string} [new]
+   * @prop {bool} [merge]
+   * @prop {Array} [args]
+   *
+   * @see Drupal.AjaxCommands
+   */
+
+  /**
+   * Provide a series of commands that the client will perform.
+   *
+   * @constructor
+   */
+  Drupal.AjaxCommands = function () {};
+  Drupal.AjaxCommands.prototype = {
+
+    /**
+     * Command to insert new content into the DOM.
+     *
+     * @param {Drupal.Ajax} ajax
+     * @param {object} response
+     * @param {string} response.data
+     * @param {string} [response.method]
+     * @param {string} [response.selector]
+     * @param {object} [response.settings]
+     * @param {number} [status]
+     */
+    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
+      // https://www.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.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {string} response.selector
+     * @param {object} [response.settings]
+     * @param {number} [status]
+     */
+    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.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {string} response.selector
+     * @param {bool} [response.asterisk]
+     * @param {number} [status]
+     */
+    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.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {string} response.text
+     * @param {string} response.title
+     * @param {number} [status]
+     */
+    alert: function (ajax, response, status) {
+      window.alert(response.text, response.title);
+    },
+
+    /**
+     * Command to set the window.location, redirecting the browser.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {string} response.url
+     * @param {number} [status]
+     */
+    redirect: function (ajax, response, status) {
+      window.location = response.url;
+    },
+
+    /**
+     * Command to provide the jQuery css() function.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {object} response.argument
+     * @param {number} [status]
+     */
+    css: function (ajax, response, status) {
+      $(response.selector).css(response.argument);
+    },
+
+    /**
+     * Command to set the settings used for other commands in this response.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {bool} response.merge
+     * @param {object} response.settings
+     * @param {number} [status]
+     */
+    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.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {string} response.name
+     * @param {string} response.selector
+     * @param {string|object} response.value
+     * @param {number} [status]
+     */
+    data: function (ajax, response, status) {
+      $(response.selector).data(response.name, response.value);
+    },
+
+    /**
+     * Command to apply a jQuery method.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {Array} response.args
+     * @param {string} response.method
+     * @param {string} response.selector
+     * @param {number} [status]
+     */
+    invoke: function (ajax, response, status) {
+      var $element = $(response.selector);
+      $element[response.method].apply($element, response.args);
+    },
+
+    /**
+     * Command to restripe a table.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {string} response.selector
+     * @param {number} [status]
+     */
+    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.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {string} response.old
+     * @param {string} response.new
+     * @param {number} [status]
+     */
+    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.
+     *
+     * @param {Drupal.Ajax} [ajax]
+     * @param {object} response
+     * @param {string} response.data
+     * @param {number} [status]
+     */
+    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.
+ *
+ * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#the-dialog-element
+ */
+
+(function ($, Drupal, drupalSettings) {
+
+  'use strict';
+
+  /**
+   * Default dialog options.
+   *
+   * @type {object}
+   *
+   * @prop {bool} [autoOpen=true]
+   * @prop {string} [dialogClass='']
+   * @prop {string} [buttonClass='button']
+   * @prop {string} [buttonPrimaryClass='button--primary']
+   * @prop {function} close
+   */
+  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
+    // `jQuery(event.target).remove()` as well, to remove the dialog on
+    // closing.
+    close: function (event) {
+      Drupal.dialog(event.target).close();
+      Drupal.detachBehaviors(event.target, null, 'unload');
+    }
+  };
+
+  /**
+   * @typedef {object} Drupal.dialog~dialogDefinition
+   *
+   * @prop {boolean} open
+   *   Is the dialog open or not.
+   * @prop {*} returnValue
+   *   Return value of the dialog.
+   * @prop {function} show
+   *   Method to display the dialog on the page.
+   * @prop {function} showModal
+   *   Method to display the dialog as a modal on the page.
+   * @prop {function} close
+   *   Method to hide the dialog from the page.
+   */
+
+  /**
+   * Polyfill HTML5 dialog element with jQueryUI.
+   *
+   * @param {HTMLElement} element
+   * @param {object} options
+   *   jQuery UI options to be passed to the dialog.
+   *
+   * @return {Drupal.dialog~dialogDefinition}
+   */
+  Drupal.dialog = function (element, options) {
+    var undef;
+    var $element = $(element);
+    var dialog = {
+      open: false,
+      returnValue: undef,
+      show: function () {
+        openDialog({modal: false});
+      },
+      showModal: function () {
+        openDialog({modal: true});
+      },
+      close: closeDialog
+    };
+
+    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]);
+    }
+
+    return dialog;
+  };
+
+})(jQuery, Drupal, drupalSettings);
+;
+/**
+ * @file
+ * Positioning extensions for dialogs.
+ */
+
+/**
+ * Triggers when content inside a dialog changes.
+ *
+ * @event dialogContentResize
+ */
+
+(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 {@link Drupal.dialog}.
+   *
+   * @function Drupal.dialog~resetSize
+   *
+   * @param {jQuery.Event} event
+   *
+   * @fires event:dialogContentResize
+   */
+  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 Drupal.dialog~resetPosition
+   *
+   * @param {object} options
+   *
+   * @return {object}
+   */
+  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 = {};
+
+  /**
+   *
+   * @type {Drupal~behavior}
+   */
+  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));
+      }
+    }
+  };
+
+  /**
+   *
+   * @namespace
+   */
+  Drupal.quickedit = {
+
+    /**
+     * A {@link Drupal.quickedit.AppView} instance.
+     */
+    app: null,
+
+    /**
+     * @type {object}
+     *
+     * @prop {Array.<Drupal.quickedit.EntityModel>} entities
+     * @prop {Array.<Drupal.quickedit.FieldModel>} fields
+     */
+    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.
+     *
+     * @namespace
+     */
+    editors: {},
+
+    /**
+     * Per-field metadata that indicates whether in-place editing is allowed,
+     * which in-place editor should be used, etc.
+     *
+     * @namespace
+     */
+    metadata: {
+
+      /**
+       * Check if a field exists in storage.
+       *
+       * @param {string} fieldID
+       *   The field id to check.
+       *
+       * @return {bool}
+       *   Whether it was found or not.
+       */
+      has: function (fieldID) {
+        return storage.getItem(this._prefixFieldID(fieldID)) !== null;
+      },
+
+      /**
+       * Add metadata to a field id.
+       *
+       * @param {string} fieldID
+       *   The field ID to add data to.
+       * @param {object} metadata
+       *   Metadata to add.
+       */
+      add: function (fieldID, metadata) {
+        storage.setItem(this._prefixFieldID(fieldID), JSON.stringify(metadata));
+      },
+
+      /**
+       * Get a key from a field id.
+       *
+       * @param {string} fieldID
+       *   The field ID to check.
+       * @param {string} [key]
+       *   The key to check. If empty, will return all metadata.
+       *
+       * @return {object|*}
+       *   The value for the key, if defined. Otherwise will return all metadata
+       *   for the specified field id.
+       *
+       */
+      get: function (fieldID, key) {
+        var metadata = JSON.parse(storage.getItem(this._prefixFieldID(fieldID)));
+        return (typeof key === 'undefined') ? metadata : metadata[key];
+      },
+
+      /**
+       * Prefix the field id.
+       *
+       * @param {string} fieldID
+       *   The field id to prefix.
+       *
+       * @return {string}
+       *   A prefixed field id.
+       */
+      _prefixFieldID: function (fieldID) {
+        return 'Drupal.quickedit.metadata.' + fieldID;
+      },
+
+      /**
+       * Unprefix the field id.
+       *
+       * @param {string} fieldID
+       *   The field id to unprefix.
+       *
+       * @return {string}
+       *   An unprefixed field id.
+       */
+      _unprefixFieldID: function (fieldID) {
+        // Strip "Drupal.quickedit.metadata.", which is 26 characters long.
+        return fieldID.substring(26);
+      },
+
+      /**
+       * Intersection calculation.
+       *
+       * @param {Array} fieldIDs
+       *   An array of field ids to compare to prefix field id.
+       *
+       * @return {Array}
+       *   The intersection found.
+       */
+      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 quickedit.
+   *
+   * Queue contextual links to be processed.
+   *
+   * @param {jQuery.Event} event
+   *   The `drupalContextualLinkAdded` event.
+   * @param {object} data
+   *   An object containing the data relevant to the event.
+   *
+   * @listens event:drupalContextualLinkAdded
+   */
+  $(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 {HTMLElement} 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 {HTMLElement} 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 {HTMLElement} 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 find the lowest common parent element (deepest in the tree)
+    // and consider that the entity element.
+    if (entityElement.length === 0) {
+      var $lowestCommonParent = $(entityElementSelector).parents().has(fieldElement).first();
+      entityElement = $lowestCommonParent.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 {HTMLElement} 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://www.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 of this entity.
+   *
+   * @return {bool}
+   *   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';
+
+  /**
+   * @namespace
+   */
+  Drupal.quickedit.util = Drupal.quickedit.util || {};
+
+  /**
+   * @namespace
+   */
+  Drupal.quickedit.util.constants = {};
+
+  /**
+   *
+   * @type {string}
+   */
+  Drupal.quickedit.util.constants.transitionEnd = 'transitionEnd.quickedit webkitTransitionEnd.quickedit transitionend.quickedit msTransitionEnd.quickedit oTransitionEnd.quickedit';
+
+  /**
+   * Converts a field id into a formatted url path.
+   *
+   * @example
+   * Drupal.quickedit.util.buildUrl(
+   *   'node/1/body/und/full',
+   *   '/quickedit/form/!entity_type/!id/!field_name/!langcode/!view_mode'
+   * );
+   *
+   * @param {string} id
+   *   The id of an editable field.
+   * @param {string} urlFormat
+   *   The Controller route for field processing.
+   *
+   * @return {string}
+   *   The formatted URL.
+   */
+  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();
+  };
+
+  /**
+   * @namespace
+   */
+  Drupal.quickedit.util.form = {
+
+    /**
+     * Loads a form, calls a callback to insert.
+     *
+     * Leverages {@link 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:
+     * @param {string} options.fieldID
+     *   The field ID that uniquely identifies the field for which this form
+     *   will be loaded.
+     * @param {bool} options.nocssjs
+     *   Boolean indicating whether no CSS and JS should be returned (necessary
+     *   when the form is invisible to the user).
+     * @param {bool} options.reset
+     *   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('Network problem!'), 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 {@link Drupal.Ajax} instance that is used to save a form.
+     *
+     * @param {object} options
+     *   Submit options to the form.
+     * @param {bool} options.nocssjs
+     *   Boolean indicating whether no CSS and JS should be returned (necessary
+     *   when the form is invisible to the user).
+     * @param {Array.<string>} options.other_view_modes
+     *   Array containing view mode IDs (of other instances of this field on the
+     *   page).
+     * @param {jQuery} $submit
+     *   The submit element.
+     *
+     * @return {Drupal.Ajax}
+     *   A {@link 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.
+         *
+         * Ensure {@link Drupal.attachBehaviors} does not get called on the
+         * form.
+         *
+         * @param {Drupal.AjaxCommands~commandDefinition} response
+         *   The Drupal AJAX response.
+         * @param {number} [status]
+         *   The HTTP status code.
+         */
+        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 {@link Drupal.Ajax} instance that is used to save the form.
+     *
+     * @param {Drupal.Ajax} ajax
+     *   A {@link Drupal.Ajax} instance that was returned by
+     *   {@link 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(/** @lends Drupal.quickedit.BaseModel# */{
+
+    /**
+     * @constructs
+     *
+     * @augments Backbone.Model
+     *
+     * @param {object} options
+     *   Options for the base model-
+     *
+     * @return {Drupal.quickedit.BaseModel}
+     *   A quickedit base model.
+     */
+    initialize: function (options) {
+      this.__initialized = true;
+      return Backbone.Model.prototype.initialize.call(this, options);
+    },
+
+    /**
+     * Set a value on the model
+     *
+     * @param {object|string} key
+     *   The key to set a value for.
+     * @param {*} val
+     *   The value to set.
+     * @param {object} [options]
+     *   Options for the model.
+     *
+     * @return {*}
+     *   The result of `Backbone.Model.prototype.set` with the specified
+     *   parameters.
+     */
+    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';
+
+  /**
+   * @constructor
+   *
+   * @augments Backbone.Model
+   */
+  Drupal.quickedit.AppModel = Backbone.Model.extend(/** @lends Drupal.quickedit.AppModel# */{
+
+    /**
+     * @type {object}
+     *
+     * @prop {Drupal.quickedit.FieldModel} highlightedField
+     * @prop {Drupal.quickedit.FieldModel} activeField
+     * @prop {Drupal.dialog~dialogDefinition} activeModal
+     */
+    defaults: /** @lends Drupal.quickedit.AppModel# */{
+
+      /**
+       * The currently state='highlighted' Drupal.quickedit.FieldModel, if any.
+       *
+       * @type {Drupal.quickedit.FieldModel}
+       *
+       * @see Drupal.quickedit.FieldModel.states
+       */
+      highlightedField: null,
+
+      /**
+       * The currently state = 'active' Drupal.quickedit.FieldModel, if any.
+       *
+       * @type {Drupal.quickedit.FieldModel}
+       *
+       * @see Drupal.quickedit.FieldModel.states
+       */
+      activeField: null,
+
+      /**
+       * Reference to a {@link Drupal.dialog} instance if a state change
+       * requires confirmation.
+       *
+       * @type {Drupal.dialog~dialogDefinition}
+       */
+      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(/** @lends Drupal.quickedit.EntityModel# */{
+
+    /**
+     * @type {object}
+     */
+    defaults: /** @lends Drupal.quickedit.EntityModel# */{
+
+      /**
+       * 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.
+       *
+       * @type {HTMLElement}
+       */
+      el: null,
+
+      /**
+       * An entity ID, of the form `<entity type>/<entity ID>`
+       *
+       * @example
+       * "node/1"
+       *
+       * @type {string}
+       */
+      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.
+       *
+       * @type {number}
+       */
+      entityInstanceID: null,
+
+      /**
+       * The unique ID of this entity instance on the page, of the form
+       * `<entity type>/<entity ID>[entity instance ID]`
+       *
+       * @example
+       * "node/1[0]"
+       *
+       * @type {string}
+       */
+      id: null,
+
+      /**
+       * The label of the entity.
+       *
+       * @type {string}
+       */
+      label: null,
+
+      /**
+       * A FieldCollection for all fields of the entity.
+       *
+       * @type {Drupal.quickedit.FieldCollection}
+       *
+       * @see Drupal.quickedit.FieldCollection
+       */
+      fields: null,
+
+      // The attributes below are stateful. The ones above will never change
+      // during the life of a EntityModel instance.
+
+      /**
+       * Indicates whether this entity is currently being edited in-place.
+       *
+       * @type {bool}
+       */
+      isActive: false,
+
+      /**
+       * Whether one or more fields are already been stored in PrivateTempStore.
+       *
+       * @type {bool}
+       */
+      inTempStore: false,
+
+      /**
+       * Indicates whether a "Save" button is necessary or not.
+       *
+       * 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.
+       *
+       * @type {bool}
+       */
+      isDirty: false,
+
+      /**
+       * Whether the request to the server has been made to commit this entity.
+       *
+       * Used to prevent multiple such requests.
+       *
+       * @type {bool}
+       */
+      isCommitting: false,
+
+      /**
+       * The current processing state of an entity.
+       *
+       * @type {string}
+       */
+      state: 'closed',
+
+      /**
+       * IDs of 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.
+       *
+       * @type {Array.<string>}
+       */
+      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.
+       *
+       * @type {bool}
+       */
+      reload: false
+    },
+
+    /**
+     * @constructs
+     *
+     * @augments Drupal.quickedit.BaseModel
+     */
+    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
+     *   The entity model
+     * @param {string} state
+     *   The state of the associated entity. One of
+     *   {@link Drupal.quickedit.EntityModel.states}.
+     * @param {object} options
+     *   Options for the entity model.
+     */
+    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 Drupal.quickedit.EntityModel#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
+     *   {@link 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('Network problem!'), 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 {object} options
+     *   An object of options that contains:
+     * @param {function} [options.success]
+     *   A function to invoke if the entity is successfully 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();
+    },
+
+    /**
+     * Validate the entity model.
+     *
+     * @param {object} attrs
+     *   The attributes changes in the save or set call.
+     * @param {object} options
+     *   An object with the following option:
+     * @param {string} [options.reason]
+     *   A string that conveys a particular reason to allow for an exceptional
+     *   state change.
+     * @param {Array} options.accept-field-states
+     *   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.
+     *
+     * @return {string}
+     *   A string to say something about the state of the entity model.
+     */
+    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';
+      }
+    },
+
+    /**
+     * Checks if a state change can be accepted.
+     *
+     * @param {string} from
+     *   From state.
+     * @param {string} to
+     *   To state.
+     * @param {object} context
+     *   Context for the check.
+     * @param {string} context.reason
+     *   The reason for the state change.
+     * @param {bool} context.confirming
+     *   Whether context is confirming or not.
+     *
+     * @return {bool}
+     *   Whether the state change is accepted or not.
+     *
+     * @see Drupal.quickedit.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;
+    },
+
+    /**
+     * Checks if fields have acceptable states.
+     *
+     * @param {Array} acceptedFieldStates
+     *   An array of acceptable field states to check for.
+     *
+     * @return {bool}
+     *   Whether the fields have an acceptable state.
+     *
+     * @see Drupal.quickedit.EntityModel#validate
+     */
+    _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;
+    },
+
+    /**
+     * Destroys the entity model.
+     *
+     * @param {object} options
+     *   Options for the entity model.
+     */
+    destroy: function (options) {
+      Drupal.quickedit.BaseModel.prototype.destroy.call(this, options);
+
+      this.stopListening();
+
+      // Destroy all fields of this entity.
+      this.get('fields').reset();
+    },
+
+    /**
+     * @inheritdoc
+     */
+    sync: function () {
+      // We don't use REST updates to sync.
+      return;
+    }
+
+  }, /** @lends Drupal.quickedit.EntityModel */{
+
+    /**
+     * Sequence of all possible states an entity can be in during quickediting.
+     *
+     * @type {Array.<string>}
+     */
+    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 {@link Drupal.quickedit.EntityModel.states}.
+     * @param {string} to
+     *   One of {@link Drupal.quickedit.EntityModel.states}.
+     *
+     * @return {bool}
+     *   Whether the 'from' state comes before the 'to' state.
+     */
+    followsStateSequence: function (from, to) {
+      return _.indexOf(this.states, from) < _.indexOf(this.states, to);
+    }
+
+  });
+
+  /**
+   * @constructor
+   *
+   * @augments Backbone.Collection
+   */
+  Drupal.quickedit.EntityCollection = Backbone.Collection.extend(/** @lends Drupal.quickedit.EntityCollection# */{
+
+    /**
+     * @type {Drupal.quickedit.EntityModel}
+     */
+    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';
+
+  Drupal.quickedit.FieldModel = Drupal.quickedit.BaseModel.extend(/** @lends Drupal.quickedit.FieldModel# */{
+
+    /**
+     * @type {object}
+     */
+    defaults: /** @lends Drupal.quickedit.FieldModel# */{
+
+      /**
+       * 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>`
+       *
+       * @example
+       * "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]`.
+       *
+       * @example
+       * "node/1/field_tags/und/full[0]"
+       */
+      id: null,
+
+      /**
+       * A {@link 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.
+       *
+       * @example
+       * "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: {@link 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
+    },
+
+    /**
+     * State of an in-place editable field in the DOM.
+     *
+     * @constructs
+     *
+     * @augments Drupal.quickedit.BaseModel
+     *
+     * @param {object} options
+     *   Options for the field model.
+     */
+    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);
+    },
+
+    /**
+     * Destroys the field model.
+     *
+     * @param {object} options
+     *   Options for the field model.
+     */
+    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;
+    },
+
+    /**
+     * Validate function for the field model.
+     *
+     * @param {object} attrs
+     *   The attributes changes in the save or set call.
+     * @param {object} options
+     *   An object with the following option:
+     * @param {string} [options.reason]
+     *   A string that conveys a particular reason to allow for an exceptional
+     *   state change.
+     * @param {Array} options.accept-field-states
+     *   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.
+     *
+     * @return {string}
+     *   A string to say something about the state of the field model.
+     */
+    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;
+    }
+
+  }, /** @lends Drupal.quickedit.FieldModel */{
+
+    /**
+     * Sequence of all possible states a field can be in during quickediting.
+     *
+     * @type {Array.<string>}
+     */
+    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 {@link Drupal.quickedit.FieldModel.states}.
+     * @param {string} to
+     *   One of {@link Drupal.quickedit.FieldModel.states}.
+     *
+     * @return {bool}
+     *   Whether the 'from' state comes before the 'to' state.
+     */
+    followsStateSequence: function (from, to) {
+      return _.indexOf(this.states, from) < _.indexOf(this.states, to);
+    }
+
+  });
+
+  /**
+   * @constructor
+   *
+   * @augments Backbone.Collection
+   */
+  Drupal.quickedit.FieldCollection = Backbone.Collection.extend(/** @lends Drupal.quickedit.FieldCollection */{
+
+    /**
+     * @type {Drupal.quickedit.FieldModel}
+     */
+    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';
+
+  /**
+   * @constructor
+   *
+   * @augments Backbone.Model
+   */
+  Drupal.quickedit.EditorModel = Backbone.Model.extend(/** @lends Drupal.quickedit.EditorModel# */{
+
+    /**
+     * @type {object}
+     *
+     * @prop {string} originalValue
+     * @prop {string} currentValue
+     * @prop {Array} validationErrors
+     */
+    defaults: /** @lends Drupal.quickedit.EditorModel# */{
+
+      /**
+       * 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.
+       *
+       * @type {string}
+       */
+      originalValue: null,
+
+      /**
+       * Analogous to originalValue, but the current value.
+       *
+       * @type {string}
+       */
+      currentValue: null,
+
+      /**
+       * Stores any validation errors to be rendered.
+       *
+       * @type {Array}
+       */
+      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(/** @lends Drupal.quickedit.AppView# */{
+
+    /**
+     * @constructs
+     *
+     * @augments Backbone.View
+     *
+     * @param {object} options
+     *   An object with the following keys:
+     * @param {Drupal.quickedit.AppModel} options.model
+     *   The application state model.
+     * @param {Drupal.quickedit.EntityCollection} options.entitiesCollection
+     *   All on-page entities.
+     * @param {Drupal.quickedit.FieldCollection} options.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'];
+
+      // Track app state.
+      this.listenTo(options.entitiesCollection, 'change:state', this.appStateChange);
+      this.listenTo(options.entitiesCollection, '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
+     *   {@link 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.
+     *
+     * @return {bool}
+     *   Whether the editor change was accepted or rejected.
+     */
+    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.
+     *
+     * @param {Drupal.quickedit.EntityModel} entityModel
+     *   An instance of the EntityModel class.
+     *
+     * @see Drupal.quickedit.AppView#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
+     *   The `fieldModel` holding the state.
+     * @param {string} state
+     *   The state of the associated field. One of
+     *   {@link 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:
+     * @param {bool} options.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 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:
+     * @param {bool} options.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.
+     *
+     * Handler is called `change:isActive` and enforces a single active entity.
+     *
+     * @param {Drupal.quickedit.EntityModel} changedEntityModel
+     *   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(/** @lends Drupal.quickedit.FieldDecorationView# */{
+
+    /**
+     * @type {null}
+     */
+    _widthAttributeIsEmpty: null,
+
+    /**
+     * @type {object}
+     */
+    events: {
+      'mouseenter.quickedit': 'onMouseEnter',
+      'mouseleave.quickedit': 'onMouseLeave',
+      'click': 'onClick',
+      'tabIn.quickedit': 'onMouseEnter',
+      'tabOut.quickedit': 'onMouseLeave'
+    },
+
+    /**
+     * @constructs
+     *
+     * @augments Backbone.View
+     *
+     * @param {object} options
+     *   An object with the following keys:
+     * @param {Drupal.quickedit.EditorView} options.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
+     *   The `FieldModel` model.
+     * @param {string} state
+     *   The state of the associated field. One of
+     *   {@link 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} event
+     *   The mouse event.
+     */
+    onMouseEnter: function (event) {
+      var that = this;
+      that.model.set('state', 'highlighted');
+      event.stopPropagation();
+    },
+
+    /**
+     * Stops hover; transitions to 'candidate' state.
+     *
+     * @param {jQuery.Event} event
+     *   The mouse event.
+     */
+    onMouseLeave: function (event) {
+      var that = this;
+      that.model.set('state', 'candidate', {reason: 'mouseleave'});
+      event.stopPropagation();
+    },
+
+    /**
+     * Transition to 'activating' stage.
+     *
+     * @param {jQuery.Event} event
+     *   The click 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 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 {jQuery} $e
+     *   The element to get position properties from.
+     *
+     * @return {object}
+     *   An object containing css values for the needed properties.
+     */
+    _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]
+     *   The value for a CSS position declaration.
+     *
+     * @return {string}
+     *   A CSS value that is valid for `position`.
+     */
+    _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(/** @lends Drupal.quickedit.EntityDecorationView# */{
+
+    /**
+     * Associated with the DOM root node of an editable entity.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     */
+    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(/** @lends Drupal.quickedit.EntityToolbarView# */{
+
+    /**
+     * @type {jQuery}
+     */
+    _fieldToolbarRoot: null,
+
+    /**
+     * @return {object}
+     *   A map of events.
+     */
+    events: function () {
+      var map = {
+        'click button.action-save': 'onClickSave',
+        'click button.action-cancel': 'onClickCancel',
+        'mouseenter': 'onMouseenter'
+      };
+      return map;
+    },
+
+    /**
+     * @constructs
+     *
+     * @augments Backbone.View
+     *
+     * @param {object} options
+     *   Options to construct the view.
+     * @param {Drupal.quickedit.AppModel} options.appModel
+     *   A quickedit `AppModel` to use in the view.
+     */
+    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
+     *
+     * @return {Drupal.quickedit.EntityToolbarView}
+     *   The entity toolbar view.
+     */
+    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
+     *   The scroll or resize event.
+     */
+    windowChangeHandler: function (event) {
+      this.position();
+    },
+
+    /**
+     * Determines the actions to take given a change of state.
+     *
+     * @param {Drupal.quickedit.FieldModel} model
+     *   The `FieldModel` model.
+     * @param {string} state
+     *   The state of the associated field. One of
+     *   {@link 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 {HTMLElement} [element]
+     *   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 {*} view
+       *   The view the positions will be calculated from.
+       * @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:
+       * @param {object} info.element
+       *   A hash that contains information about the HTML element that will be
+       *   positioned. Also known as the 'my' element.
+       * @param {object} info.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} event
+     *   The click 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} event
+     *   The click 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} event
+     *   The mouse event.
+     */
+    onMouseenter: function (event) {
+      clearTimeout(this.timer);
+    },
+
+    /**
+     * Builds the entity toolbar HTML; attaches to DOM; sets starting position.
+     *
+     * @return {jQuery}
+     *   The toolbar element.
+     */
+    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 {
+        // @todo Add XSS regression test coverage in https://www.drupal.org/node/2547437
+        label = Drupal.checkPlain(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(/** @lends Drupal.quickedit.ContextualLinkView# */{
+
+    /**
+     * Define all events to listen to.
+     *
+     * @return {object}
+     *   A map of events.
+     */
+    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
+      };
+    },
+
+    /**
+     * Create a new contextual link view.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     *
+     * @param {object} options
+     *   An object with the following keys:
+     * @param {Drupal.quickedit.EntityModel} options.model
+     *   The associated entity's model.
+     * @param {Drupal.quickedit.AppModel} options.appModel
+     *   The application state model.
+     * @param {object} options.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);
+    },
+
+    /**
+     * Render function for the contextual link view.
+     *
+     * @param {Drupal.quickedit.EntityModel} entityModel
+     *   The associated `EntityModel`.
+     * @param {bool} isActive
+     *   Whether the in-place editor is active or not.
+     *
+     * @return {Drupal.quickedit.ContextualLinkView}
+     *   The `ContextualLinkView` in question.
+     */
+    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(/** @lends Drupal.quickedit.FieldToolbarView# */{
+
+    /**
+     * The edited element, as indicated by EditorView.getEditedElement.
+     *
+     * @type {jQuery}
+     */
+    $editedElement: null,
+
+    /**
+     * A reference to the in-place editor.
+     *
+     * @type {Drupal.quickedit.EditorView}
+     */
+    editorView: null,
+
+    /**
+     * @type {string}
+     */
+    _id: null,
+
+    /**
+     * @constructs
+     *
+     * @augments Backbone.View
+     *
+     * @param {object} options
+     *   Options object to construct the field toolbar.
+     * @param {jQuery} options.$editedElement
+     *   The element being edited.
+     * @param {Drupal.quickedit.EditorView} options.editorView
+     *   The EditorView the toolbar belongs to.
+     */
+    initialize: function (options) {
+      this.$editedElement = options.$editedElement;
+      this.editorView = options.editorView;
+
+      /**
+       * @type {jQuery}
+       */
+      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
+     *
+     * @return {Drupal.quickedit.FieldToolbarView}
+     *   The current FieldToolbarView.
+     */
+    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
+     *   The quickedit FieldModel
+     * @param {string} state
+     *   The state of the associated field. One of
+     *   {@link 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}
+     *   The toolgroup element.
+     */
+    _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';
+
+  Drupal.quickedit.EditorView = Backbone.View.extend(/** @lends Drupal.quickedit.EditorView# */{
+
+    /**
+     * 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.
+     *
+     * 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.
+     *
+     * @example
+     * <caption>If you override this method, you should call this
+     * method (the parent class' initialize()) first.</caption>
+     * Drupal.quickedit.EditorView.prototype.initialize.call(this, options);
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     *
+     * @param {object} options
+     *   An object with the following keys:
+     * @param {Drupal.quickedit.EditorModel} options.model
+     *   The in-place editor state model.
+     * @param {Drupal.quickedit.FieldModel} options.fieldModel
+     *   The field model.
+     *
+     * @see Drupal.quickedit.EditorModel
+     * @see Drupal.quickedit.editors.plain_text
+     */
+    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.
+     *
+     * @return {jQuery}
+     *   A jQuery-wrapped DOM element.
+     *
+     * @see Drupal.quickedit.editors.plain_text
+     */
+    getEditedElement: function () {
+      return this.$el;
+    },
+
+    /**
+     *
+     * @return {object}
+     * 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
+     *   The quickedit `FieldModel` that holds the state.
+     * @param {string} state
+     *   The state of the associated field. One of
+     *   {@link 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 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
+   *   Settings object used to construct the markup.
+   * @param {string} settings.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
+   *   Settings object used to construct the markup.
+   * @param {string} settings.id
+   *   the id to apply to the backstage.
+   *
+   * @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
+   *   Settings object used to construct the markup.
+   * @param {string} settings.entityLabel
+   *   The title of the active entity.
+   * @param {string} settings.fieldLabel
+   *   The label of the highlighted or active field.
+   *
+   * @return {string}
+   *   The corresponding HTML.
+   */
+  Drupal.theme.quickeditEntityToolbarLabel = function (settings) {
+    // @todo Add XSS regression test coverage in https://www.drupal.org/node/2547437
+    return '<span class="field">' + Drupal.checkPlain(settings.fieldLabel) + '</span>' + Drupal.checkPlain(settings.entityLabel);
+  };
+
+  /**
+   * Element defining a containing box for 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 {object} settings
+   *   Settings object used to construct the markup.
+   * @param {string} settings.id
+   *   The id to apply to the toolbar container.
+   *
+   * @return {string}
+   *   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
+   *   Settings object used to construct the markup.
+   * @param {string} [settings.id]
+   *   The id of the toolgroup.
+   * @param {string} settings.classes
+   *   The class of the toolgroup.
+   * @param {Array} settings.buttons
+   *   See {@link 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
+   *   Settings object used to construct the markup.
+   * @param {Array} settings.buttons
+   * - 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
+   *   Settings object used to construct the markup.
+   * @param {string} settings.id
+   *   The id to apply to the toolbar container.
+   * @param {string} settings.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…
+   *
+   * @type {Drupal~behavior}
+   */
+  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);
+;
+/**
+ * @file
+ * Adds an HTML element and method to trigger audio UAs to read system messages.
+ *
+ * Use {@link 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.
+ *
+ * @example
+ * $('#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 add it to the DOM.
+   *
+   * @type {Drupal~behavior}
+   */
+  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 {@link Drupal.announce} being
+   * read. By wrapping the call to announce in a debounce function, we allow for
+   * time for multiple calls to {@link 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='polite']
+   *   A string to indicate the priority of the message. Can be either
+   *   'polite' or 'assertive'.
+   *
+   * @return {function}
+   *
+   * @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}})();
+;
+/**
+ * @file
+ * Builds a nested accordion widget.
+ *
+ * Invoke on an HTML list element with the jQuery plugin pattern.
+ *
+ * @example
+ * $('.toolbar-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.toolbar-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 {number} 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);
+      }
+    }
+
+    // Return the jQuery object.
+    return this.each(function (selector) {
+      var $menu = $(this).once('toolbar-menu');
+      if ($menu.length) {
+        // Bind event handlers.
+        $menu
+          .on('click.toolbar', '.toolbar-box', toggleClickHandler)
+          .on('click.toolbar', '.toolbar-box a', linkClickHandler);
+
+        $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.
+   *
+   * @param {object} options
+   *   Options for the button.
+   * @param {string} options.class
+   *   Class to set on the button.
+   * @param {string} options.action
+   *   Action for the button.
+   * @param {string} options.text
+   *   Used as label for the button.
+   *
+   * @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
+ * 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().
+   *
+   * @type {Drupal~behavior}
+   *
+   * @prop {Drupal~behaviorAttach} attach
+   *   Attaches the toolbar rendering functionality to the toolbar element.
+   */
+  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);
+          var theme = drupalSettings.ajaxPageState.theme;
+          localStorage.setItem('Drupal.toolbar.subtrees.' + theme, 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.
+   *
+   * @namespace
+   */
+  Drupal.toolbar = {
+
+    /**
+     * A hash of View instances.
+     *
+     * @type {object.<string, Backbone.View>}
+     */
+    views: {},
+
+    /**
+     * A hash of Model instances.
+     *
+     * @type {object.<string, Backbone.Model>}
+     */
+    models: {},
+
+    /**
+     * A hash of MediaQueryList objects tracked by the toolbar.
+     *
+     * @type {object.<string, object>}
+     */
+    mql: {},
+
+    /**
+     * Accepts a list of subtree menu elements.
+     *
+     * A deferred object that is resolved by an inlined JavaScript callback.
+     *
+     * @type {jQuery.Deferred}
+     *
+     * @see toolbar_subtrees_jsonp().
+     */
+    setSubtrees: new $.Deferred(),
+
+    /**
+     * Respond to configured narrow media query changes.
+     *
+     * @param {Drupal.toolbar.ToolbarModel} model
+     *   A toolbar model
+     * @param {string} label
+     *   Media query label.
+     * @param {object} mql
+     *   A MediaQueryList object.
+     */
+    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>';
+  };
+
+  /**
+   * Ajax command to set the toolbar subtrees.
+   *
+   * @param {Drupal.Ajax} ajax
+   *   {@link Drupal.Ajax} object created by {@link Drupal.ajax}.
+   * @param {object} response
+   *   JSON response from the Ajax request.
+   * @param {number} [status]
+   *   XMLHttpRequest status.
+   */
+  Drupal.AjaxCommands.prototype.setToolbarSubtrees = function (ajax, response, status) {
+    Drupal.toolbar.setSubtrees.resolve(response.subtrees);
+  };
+
+}(jQuery, Drupal, drupalSettings));
+;
+/**
+ * @file
+ * A Backbone Model for collapsible menus.
+ */
+
+(function (Backbone, Drupal) {
+
+  'use strict';
+
+  /**
+   * Backbone Model for collapsible menus.
+   *
+   * @constructor
+   *
+   * @augments Backbone.Model
+   */
+  Drupal.toolbar.MenuModel = Backbone.Model.extend(/** @lends Drupal.toolbar.MenuModel# */{
+
+    /**
+     * @type {object}
+     *
+     * @prop {object} subtrees
+     */
+    defaults: /** @lends Drupal.toolbar.MenuModel# */{
+
+      /**
+       * @type {object}
+       */
+      subtrees: {}
+    }
+  });
+
+}(Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone Model for the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  'use strict';
+
+  /**
+   * Backbone model for the toolbar.
+   *
+   * @constructor
+   *
+   * @augments Backbone.Model
+   */
+  Drupal.toolbar.ToolbarModel = Backbone.Model.extend(/** @lends Drupal.toolbar.ToolbarModel# */{
+
+    /**
+     * @type {object}
+     *
+     * @prop activeTab
+     * @prop activeTray
+     * @prop isOriented
+     * @prop isFixed
+     * @prop areSubtreesLoaded
+     * @prop isViewportOverflowConstrained
+     * @prop orientation
+     * @prop locked
+     * @prop isTrayToggleVisible
+     * @prop height
+     * @prop offsets
+     */
+    defaults: /** @lends Drupal.toolbar.ToolbarModel# */{
+
+      /**
+       * 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'.
+       *
+       * @type {string}
+       */
+      activeTab: null,
+
+      /**
+       * Represents whether a tray is open or not. Stored as an ID selector e.g.
+       * '#toolbar-item--1-tray'.
+       *
+       * @type {string}
+       */
+      activeTray: null,
+
+      /**
+       * Indicates whether the toolbar is displayed in an oriented fashion,
+       * either horizontal or vertical.
+       *
+       * @type {bool}
+       */
+      isOriented: false,
+
+      /**
+       * Indicates whether the toolbar is positioned absolute (false) or fixed
+       * (true).
+       *
+       * @type {bool}
+       */
+      isFixed: false,
+
+      /**
+       * Menu subtrees are loaded through an AJAX request only when the Toolbar
+       * is set to a vertical orientation.
+       *
+       * @type {bool}
+       */
+      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.
+       *
+       * @type {bool}
+       */
+      isViewportOverflowConstrained: false,
+
+      /**
+       * The orientation of the active tray.
+       *
+       * @type {string}
+       */
+      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.
+       *
+       * @type {bool}
+       */
+      locked: false,
+
+      /**
+       * Indicates whether the tray orientation toggle is visible.
+       *
+       * @type {bool}
+       */
+      isTrayToggleVisible: false,
+
+      /**
+       * The height of the toolbar.
+       *
+       * @type {number}
+       */
+      height: null,
+
+      /**
+       * The current viewport offsets determined by {@link Drupal.displace}. The
+       * offsets suggest how a module might position is components relative to
+       * the viewport.
+       *
+       * @type {object}
+       *
+       * @prop {number} top
+       * @prop {number} right
+       * @prop {number} bottom
+       * @prop {number} left
+       */
+      offsets: {
+        top: 0,
+        right: 0,
+        bottom: 0,
+        left: 0
+      }
+    },
+
+    /**
+     * @inheritdoc
+     *
+     * @param {object} attributes
+     *   Attributes for the toolbar.
+     * @param {object} options
+     *   Options for the toolbar.
+     *
+     * @return {string|undefined}
+     *   Returns an error message if validation failed.
+     */
+    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';
+
+  Drupal.toolbar.BodyVisualView = Backbone.View.extend(/** @lends Drupal.toolbar.BodyVisualView# */{
+
+    /**
+     * Adjusts the body element with the toolbar position and dimension changes.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     */
+    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';
+
+  Drupal.toolbar.MenuVisualView = Backbone.View.extend(/** @lends Drupal.toolbar.MenuVisualView# */{
+
+    /**
+     * Backbone View for collapsible menus.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     */
+    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('.toolbar-menu')
+          .drupalToolbarMenu();
+      }
+    }
+  });
+
+}(jQuery, Backbone, Drupal));
+;
+/**
+ * @file
+ * A Backbone view for the aural feedback of the toolbar.
+ */
+
+(function (Backbone, Drupal) {
+
+  'use strict';
+
+  Drupal.toolbar.ToolbarAuralView = Backbone.View.extend(/** @lends Drupal.toolbar.ToolbarAuralView# */{
+
+    /**
+     * Backbone view for the aural feedback of the toolbar.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     *
+     * @param {object} options
+     *   Options for the view.
+     * @param {object} options.strings
+     *   Various strings to use in the view.
+     */
+    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
+     *   The toolbar model in question.
+     * @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
+     *   The toolbar model in question.
+     * @param {HTMLElement} tray
+     *   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';
+
+  Drupal.toolbar.ToolbarVisualView = Backbone.View.extend(/** @lends Drupal.toolbar.ToolbarVisualView# */{
+
+    /**
+     * Event map for the `ToolbarVisualView`.
+     *
+     * @return {object}
+     *   A map of events.
+     */
+    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
+      };
+    },
+
+    /**
+     * Backbone view for the toolbar element. Listens to mouse & touch.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     *
+     * @param {object} options
+     *   Options for the view object.
+     * @param {object} options.strings
+     *   Various strings to use in the view.
+     */
+    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
+     *
+     * @return {Drupal.toolbar.ToolbarVisualView}
+     *   The `ToolbarVisualView` instance.
+     */
+    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
+     *   The event triggered.
+     */
+    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
+     *   The event triggered.
+     */
+    onOrientationToggleClick: function (event) {
+      var orientation = this.model.get('orientation');
+      // Determine the toggle-to orientation.
+      var antiOrientation = (orientation === 'vertical') ? 'horizontal' : 'vertical';
+      var locked = antiOrientation === 'vertical';
+      // 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('margin-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('margin-top', this.$el.find('.toolbar-bar').outerHeight());
+      }
+    },
+
+    /**
+     * Calls the endpoint URI that builds an AJAX command with the rendered
+     * subtrees.
+     *
+     * 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 theme = drupalSettings.ajaxPageState.theme;
+        var endpoint = Drupal.url('toolbar/subtrees/' + subtreesHash);
+        var cachedSubtreesHash = localStorage.getItem('Drupal.toolbar.subtreesHash.' + theme);
+        var cachedSubtrees = JSON.parse(localStorage.getItem('Drupal.toolbar.subtrees.' + theme));
+        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.' + theme);
+          localStorage.removeItem('Drupal.toolbar.subtrees.' + theme);
+          // The AJAX response's command will trigger the resolve method of the
+          // Drupal.toolbar.setSubtrees Promise.
+          Drupal.ajax({url: endpoint}).execute();
+          // Cache the hash for the subtrees locally.
+          localStorage.setItem('Drupal.toolbar.subtreesHash.' + theme, 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
+   *
+   * @type {Drupal~behavior}
+   *
+   * @prop {Drupal~behaviorAttach} attach
+   *   Attach tour functionality on `tour` events.
+   */
+  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);
+        }
+      });
+    }
+  };
+
+  /**
+   * @namespace
+   */
+  Drupal.tour = Drupal.tour || {
+
+    /**
+     * @namespace Drupal.tour.models
+     */
+    models: {},
+
+    /**
+     * @namespace Drupal.tour.views
+     */
+    views: {}
+  };
+
+  /**
+   * Backbone Model for tours.
+   *
+   * @constructor
+   *
+   * @augments Backbone.Model
+   */
+  Drupal.tour.models.StateModel = Backbone.Model.extend(/** @lends Drupal.tour.models.StateModel# */{
+
+    /**
+     * @type {object}
+     */
+    defaults: /** @lends Drupal.tour.models.StateModel# */{
+
+      /**
+       * Indicates whether the Drupal root window has a tour.
+       *
+       * @type {Array}
+       */
+      tour: [],
+
+      /**
+       * Indicates whether the tour is currently running.
+       *
+       * @type {bool}
+       */
+      isActive: false,
+
+      /**
+       * Indicates which tour is the active one (necessary to cleanly stop).
+       *
+       * @type {Array}
+       */
+      activeTour: []
+    }
+  });
+
+  Drupal.tour.views.ToggleTourView = Backbone.View.extend(/** @lends Drupal.tour.views.ToggleTourView# */{
+
+    /**
+     * @type {object}
+     */
+    events: {click: 'onClick'},
+
+    /**
+     * Handles edit mode toggle interactions.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change:tour change:isActive', this.render);
+      this.listenTo(this.model, 'change:isActive', this.toggleTour);
+    },
+
+    /**
+     * @inheritdoc
+     *
+     * @return {Drupal.tour.views.ToggleTourView}
+     *   The `ToggleTourView` view.
+     */
+    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); },
+            // HTML segments for tip layout.
+            template: {
+              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.
+     *
+     * @param {jQuery.Event} event
+     *   The click event.
+     */
+    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 that are explicitly filtered out via the 'tips' query string.
+     *
+     * @example
+     * <caption>This will filter out tips that do not have a matching
+     * page element or don't have the "bar" class.</caption>
+     * http://example.com/foo?tips=bar
+     *
+     * @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 Drupal.tour.views.ToggleTourView#_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.
+ */
+
+/**
+ * Allow modules to respond to the constrain event.
+ *
+ * @event drupalTabbingConstrained
+ */
+
+/**
+ * Allow modules to respond to the tabbingContext release event.
+ *
+ * @event drupalTabbingContextReleased
+ */
+
+/**
+ * Allow modules to respond to the constrain event.
+ *
+ * @event drupalTabbingContextActivated
+ */
+
+/**
+ * Allow modules to respond to the constrain event.
+ *
+ * @event drupalTabbingContextDeactivated
+ */
+
+(function ($, Drupal) {
+
+  'use strict';
+
+  /**
+   * Provides an API for managing page tabbing order modifications.
+   *
+   * @constructor Drupal~TabbingManager
+   */
+  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.
+     *
+     * @type {Array.<Drupal~TabbingContext>}
+     */
+    this.stack = [];
+  }
+
+  /**
+   * Add public methods to the TabbingManager class.
+   */
+  $.extend(TabbingManager.prototype, /** @lends Drupal~TabbingManager# */{
+
+    /**
+     * 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 {Drupal~TabbingContext}
+     *
+     * @fires event:drupalTabbingConstrained
+     */
+    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 one 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 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 {Drupal~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 {Drupal~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} $el
+     *   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.
+   *
+   * @constructor Drupal~TabbingContext
+   *
+   * @param {object} options
+   *   A set of initiating values
+   * @param {number} options.level
+   *   The level in the TabbingManager's stack of this tabbingContext.
+   * @param {jQuery} options.$tabbableElements
+   *   The DOM elements that should be reachable via the tab key when this
+   *   tabbingContext is active.
+   * @param {jQuery} options.$disabledElements
+   *   The DOM elements that should not be reachable via the tab key when this
+   *   tabbingContext is active.
+   * @param {bool} options.released
+   *   A released tabbingContext can never be activated again. It will be
+   *   cleaned up when the TabbingManager unwinds its stack.
+   * @param {bool} options.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, /** @lends Drupal~TabbingContext# */{
+
+      /**
+       * @type {?number}
+       */
+      level: null,
+
+      /**
+       * @type {jQuery}
+       */
+      $tabbableElements: $(),
+
+      /**
+       * @type {jQuery}
+       */
+      $disabledElements: $(),
+
+      /**
+       * @type {bool}
+       */
+      released: false,
+
+      /**
+       * @type {bool}
+       */
+      active: false
+    }, options);
+  }
+
+  /**
+   * Add public methods to the TabbingContext class.
+   */
+  $.extend(TabbingContext.prototype, /** @lends Drupal~TabbingContext# */{
+
+    /**
+     * Releases this TabbingContext.
+     *
+     * Once a TabbingContext object is released, it can never be activated
+     * again.
+     *
+     * @fires event:drupalTabbingContextReleased
+     */
+    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.
+     *
+     * @fires event:drupalTabbingContextActivated
+     */
+    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.
+     *
+     * @fires event:drupalTabbingContextDeactivated
+     */
+    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;
+  }
+
+  /**
+   * @type {Drupal~TabbingManager}
+   */
+  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 {HTMLElement} context
+   *   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.
+   *
+   * @type {Drupal~behavior}
+   *
+   * @prop {Drupal~behaviorAttach} attach
+   *   Attaches contextual toolbar behavior on a contextualToolbar-init event.
+   */
+  Drupal.behaviors.contextualToolbar = {
+    attach: function (context) {
+      if ($('body').once('contextualToolbar-init').length) {
+        initContextualToolbar(context);
+      }
+    }
+  };
+
+  /**
+   * Namespace for the contextual toolbar.
+   *
+   * @namespace
+   */
+  Drupal.contextualToolbar = {
+
+    /**
+     * The {@link Drupal.contextualToolbar.StateModel} instance.
+     *
+     * @type {?Drupal.contextualToolbar.StateModel}
+     */
+    model: null
+  };
+
+})(jQuery, Drupal, Backbone);
+;
+/**
+ * @file
+ * A Backbone Model for the state of Contextual module's edit toolbar tab.
+ */
+
+(function (Drupal, Backbone) {
+
+  'use strict';
+
+  Drupal.contextualToolbar.StateModel = Backbone.Model.extend(/** @lends Drupal.contextualToolbar.StateModel# */{
+
+    /**
+     * @type {object}
+     *
+     * @prop {bool} isViewing
+     * @prop {bool} isVisible
+     * @prop {number} contextualCount
+     * @prop {Drupal~TabbingContext} tabbingContext
+     */
+    defaults: /** @lends Drupal.contextualToolbar.StateModel# */{
+
+      /**
+       * Indicates whether the toggle is currently in "view" or "edit" mode.
+       *
+       * @type {bool}
+       */
+      isViewing: true,
+
+      /**
+       * Indicates whether the toggle should be visible or hidden. Automatically
+       * calculated, depends on contextualCount.
+       *
+       * @type {bool}
+       */
+      isVisible: false,
+
+      /**
+       * Tracks how many contextual links exist on the page.
+       *
+       * @type {number}
+       */
+      contextualCount: 0,
+
+      /**
+       * A TabbingContext object as returned by {@link Drupal~TabbingManager}:
+       * the set of tabbable elements when edit mode is enabled.
+       *
+       * @type {?Drupal~TabbingContext}
+       */
+      tabbingContext: null
+    },
+
+    /**
+     * Models the state of the edit mode toggle.
+     *
+     * @constructs
+     *
+     * @augments Backbone.Model
+     *
+     * @param {object} attrs
+     *   Attributes for the backbone model.
+     * @param {object} options
+     *   An object with the following option:
+     * @param {Backbone.collection} options.contextualCollection
+     *   The collection of {@link 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);
+      this.listenTo(options.contextualCollection, 'add', this.lockNewContextualLinks);
+
+      // Automatically determine visibility.
+      this.listenTo(this, 'change:contextualCount', this.updateVisibility);
+
+      // Whenever edit mode is toggled, lock all contextual links.
+      this.listenTo(this, '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';
+
+  Drupal.contextualToolbar.AuralView = Backbone.View.extend(/** @lends Drupal.contextualToolbar.AuralView# */{
+
+    /**
+     * Tracks whether the tabbing constraint announcement has been read once.
+     *
+     * @type {bool}
+     */
+    announcedOnce: false,
+
+    /**
+     * Renders the aural view of the edit mode toggle (screen reader support).
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     *
+     * @param {object} options
+     *   Options for the view.
+     */
+    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
+     *
+     * @return {Drupal.contextualToolbar.AuralView}
+     *   The current contextual toolbar aural view.
+     */
+    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.
+     */
+    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
+     *   The keypress 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';
+
+  Drupal.contextualToolbar.VisualView = Backbone.View.extend(/** @lends Drupal.contextualToolbar.VisualView# */{
+
+    /**
+     * Events for the Backbone view.
+     *
+     * @return {object}
+     *   A mapping of events to be used in the view.
+     */
+    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
+      };
+    },
+
+    /**
+     * Renders the visual view of the edit mode toggle.
+     *
+     * Listens to mouse & touch and handles edit mode toggle interactions.
+     *
+     * @constructs
+     *
+     * @augments Backbone.View
+     */
+    initialize: function () {
+      this.listenTo(this.model, 'change', this.render);
+      this.listenTo(this.model, 'change:isViewing', this.persist);
+    },
+
+    /**
+     * @inheritdoc
+     *
+     * @return {Drupal.contextualToolbar.VisualView}
+     *   The current contextual toolbar visual view.
+     */
+    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 {@link 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.
+   *
+   * @type {Drupal~behavior}
+   *
+   * @prop {Drupal~behaviorAttach} attach
+   *   Attaches the replacement functionality to the toolbar-escape-admin element.
+   */
+  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_0iRDeuur_qkhMM38gyu9yKBEDUgqkYKHJagpFh1iVFM.js.gz b/sites/default/files/js/js_0iRDeuur_qkhMM38gyu9yKBEDUgqkYKHJagpFh1iVFM.js.gz
new file mode 100644
index 0000000..3c2d6c6
--- /dev/null
+++ b/sites/default/files/js/js_0iRDeuur_qkhMM38gyu9yKBEDUgqkYKHJagpFh1iVFM.js.gz
@@ -0,0 +1,559 @@
+     ܽcƕ0{
+J9$'!c;8vcIbIH$@eE<	woxy<Nv;W&mãyήOΣ?{|*3yMP=tNL:Oםo)c1	|rL+/M;|]%GG^ʡ{Y>ݮNYtwMZM'Kn:ϋ"/|OHo");q&fP&pAT"@+>cOi̼.?䟰ZpG!.:h4h/qDW<ƕf[..㫹XFw{F~4[+Y嫛uoXheMXG-'ND֟gPZћȣӟG_}ٸ?8];Y'}tz.gɯt	i\&~`QyEw9ZdUVyfLV	]zX%٢ZgʟE|kV[74Oǩ,ʁ5jՍE<Ē?}qV+󦊧N:)	[&^G,[%V݈^$t[QKWmoFIUNx09S]<#4z	>[Vo6[٣bAWb(C$3(-rre-SnFrN3=ߵ~N/t8hg5HE8%65rCSwth+h''6qH039  =n{ЏЯ`l$\W©l)+A" Z[0.ONAz`EgyGR`&+F^?nͰ{GG^isϰ$ǴA"<:2/p+v]Gj+d4Ι
+f; :1P{/j/~lV4O/@I<g"Aq UYol`ԯףe{,"בS_5QGLqQ5}&aXwE:mk ÓM\׫<zaab@an|[I7vޅGG+\cCY]P7Uѥ=_oۖX+{.#L0y^ang/z:\R9 6,TzW$^==A3Xkx!`!sZIG LO
+^DH*yJp^9-D4);lt5'A?$MNm iNVHf(d#<"<qދ,jh@N_m~}BQƍ 
+.; 6%&r!, a|7ţd5b 5}op[a"ڻ+ jf eڬTYƊY|du㗾D +C9MW{kodb<)R͚mZz2<9=tuۛ(@$ Ӌ`s덣hGD0ðKazR ?ؖQw:X\sh`uA͡QB,=Մ)3}647@hbIDjQ5 k0Fg@֜A.JhȉoYx. +lz8 Lo R#lSb"ɭkD<
+`.],{6aN$R0$`$h&|pҍ(Q=8v+f:@Q'IaiF!`o<%Kw Ay#7yco@@})1xM5;IϘd5h=입^C!Rږ՝\ c~rNǮUQSXT\kk\lQJl#LuxYt`|#1g]|Epuk4:s,w&߈/ߨp_Cd}fIABvE2$\[M:Xfͦx[s~IWow(i͒yRfiOV2͒l^v+EwJ7dv@7fyI	53O|yˏ./2=2ax	x7
+l<]RS_E}^e*y?z](Ooxw_\zAANry	}~^^۫v7~ 0+aCKlZ=B`mC?`NLsgc*YV:T+P# ?~C?mkt/"NHaQx?r?Ew/λ˩O}j޿}-A?y֋Wx^_@~ZB;\jN&8		"7	<rVoԃ]A3+_{xSKȟ!`d,IfS'-^%wC1~?]܋Fث4l+vd[Uy<8MB/q|x9*t.oN;1LyKqt:a	\޼)|;G,>4ᎇ{F <V+>=ST@]̆L"_?]SG_aˋg8/b31kԞV7y`C2}^eRCHEI1B6b߾-nzp'H$?@3S `P1M8{k}NtF|DV֟'&KgvC5E`92Eq|7pޅџna]o6$˲<zO>&$"1sZ_$}1]BKKvZSٮC泗 ZfMt[r5*6ѣz o&_ݾ($=chc|
+ĲS>CP*/Q쾇{߯DI2*-xksԍ$4]-P\^' 	+&!4	$PyA8]	\L+{U+Ǝ$GqTǫ`pűZKl@9._i
+pR>yӧc7	l؏4o<`÷PTF{SVF{#5jv/2ҬFS?XBشJ^~Krt4ނ4r+? oDeQ21M_m<_QMM5K?x^	Z({1@n9ٮcCJnh0 Y?&fd4%c@SA}*0vE⃝_ &/P9=33M43 o
+P(b%k<ܮ{C!ؖJ
+%nIw:7Z@Re.v{ v
+LDد@$tDTQJ E4w`` +t1& 3k ݥ 뵜Sǭxg? 39ާO/mJ̋8-[C/uoKդRH	괆>ۅzw~-؂, #Mn|@,jҏg0Wߦe@?Ghc@I,AFPg^‗7Qu BeteF*-q^׀ƶ%?X_H4_3:(k~% 7[<zmq-/W9" ٭*ĺIhyoƆ{e񬦜Iu8CljL"Cdp4ţ^`*)~Ӵw
+T׺M1~zgCg~>īm",d_A!yئԊYdeCb7}U=C= -**s:fjO-D&򩞥{5?0Vfx6C=alĠlvmsf,D<xǧcV'qg]L;paxҳS~qs[X㮣<*Ǒ1Jv;UfC+mՕ+ڿ\a˧{]!jR[]:gT0GAnae3uvϐ	١iѬmKwiuIK2RMz%PiPR8_5
+IʫS$'_vy&\K,X翶<J!k+6H9lBV*KH$rlG[R>!PRLԌiFؼybQ>*UqMgG
+uv/Dii
+pgߝBhftnzh.AV"Ӕ֮ǣoɾNEP#I( e22*b2tҝz	pD&@~S9O$:[=KONfB>fCr}q .59T
+w^_'}:<mthbڄ,2c<Y# .t_	:#j4F^gfXbI{.%?z=$&>`Su}
+5'm\'6.8&]fd^t	M@ΰݮ8:*L HW]@6BMNXc۵ WΙVВ<иE+[)	fN&"	QTFļ(oZLfz/y>YKZ`޿Q\0m9C[6ud>Zs5D	y$t&et8~ьLPIfE2Yk2$7ERhz1O6KMxꔦRhlZ=ۢ0pS$F|S!gȄ@ hшFDDA`ciL$N5-Ѣ)A[4l<<BusH|>hi3-[/29ˬH~H14C*>5^DlnK?rOK̼ѹ11(HWbPFw:Ù`ulgyƂI0(o`3.ngЮ'봼=H>wC{&?S6|៚/c PK4ZeQQ!҇ Ѐ,˪%7 TM_C;lr|bP<==<	ʾ LC(QŽ.h9]l63̎4Fi@C,SNQG07ScxZ|2	Nu@s9^/[EfB+Ok56R7BvٯQLIZ+L6a Z6wK&-hmj/'Ueu5z=lu`cuI,$6M(ἅ{`4T۟-%ΦA=4/zwNEԱh(;ÀFҝ.pjS=Q'D7FD]O3`/f1/=ƓF?5Hfr-][> {r?;hEi(B޻FfćDuӣ{"sIlVjoLAWu{>ȣR"̏ևFh}3Oc8:*hS;&c,BE7GGW@!yh,VƾcFX׃+F-,:P7>y=:P$;E4e[ly	w}" W.bP>OqqdK;:CX%Q~(9%EЂ[(e(qK%-~̐`qhm9mmt](|r( hV[5]?#ml[ؓrvhA<kCOAYC:MxUZИ݈Ms@1ZD3%h'b4F4VA@??G3ym=$BPfY-3xkPcX/I@-q͊-j'Pz91lwgm(98ԇ ''%0eY]T7W^;Pϵ9ynshɾa!c$Jz$F&QITUqb64f}tҞcW:!*[]Qokgx%55̵_xqY$ M<'d'Ct"ήAR~0p򬦕L;	N RFyqWj/U{l'NW@!Lr	X:U~UL}hKԥOG,:2&ESnV=?V-N迹L7d/ȒZP`GkQQ(ho:ܟ[OMyBזFr4992z	#.ioN$H,dGA\?'{jϾHupr@U3sY|v52Q 2Jd{|Wĳ4Gs#^Ȟɛupl2hi+u%Q$A5g\^G+
+LJc#!}l9ժgA$z@R{2<t @0kr;;o،{%![ꥬ&AUwe ETM UUblXŜ߱y.Tu|4c^ȩOVw+/O٧{ T9^rht_A+,V(bEExڎ7^LL'ɋqc]	 ԥ( ќVMi{nޫĻuOgbEM`_pO*Qn@.4U֡t]NĞF5aR YR˼KTZzp%
+Q=k2yR#f9sN-6ie2Ҵ[0%r$?<Z{]χVP*SW6Ot<Sb⊩?z~VFDw%.`Ǣu"(Ƨ݄%!ā("AV9$CO,M'\>Bח=w7!FAfEM j|9Hp4{6pIX>.D7ѕ(X G]ӌP|/V5q|#OZ_];hlW(wk|:-htJ_\,` Twant BgǥшtCѯ,Ty@,&rbu_1rɻ 1軋D ,xHÕ0QX%ǃE:Hy5cUAk dy&Vi9|O%OacL'Q:6vծݘ^ Dp7'
+* ,	'!lV P~}4Uhtjճ~Jd5د(4 ح0(ř4AY*Q};0lwVclU.CtӋX 0I]\|jO\s*65XpHZE1<5#pt
+0^Y.j}xKlq}SRF^ɉ,NhӋ(ٸmMGDlʜo.Τ{@1tz+鯏?l~(^aȠK:;11z>Y|!p-dA{̘)r lA9/;)P9*#BT"C7Ql8u%:]bBDmA=*p6QA6T	 |hy:!J/!v*`k;D+:&4CFqBβD$FtZ2	2 >~NĨNa]8z A#51)+E"8Aε) D-"Q'29 < .0`P^f97(iJ[4퉺]WT:\^1 mjl1֌kl~	(2:ˣ]Ǭ/ڑnteIgΦC6
+[G	(#b2_֡b\ <
+}b\T\~yhpb{X1gBaҡ!j2fg@jjGC6t3ˆnfb,0=U?qSDFp<MAeP5x!R巰	!]#mYKNܪF88ӟS(	8q:/G}1~(2>yv0>W1AYl2ЬbOdhҰmeYmdfYFF[yZ6Ղ茻W'ֹa/rVhhn0PH'@U7%{!!Hn<LFIS[+<G{m[vY#{MOp /:A)4oRiA1(QHŠRUs5B՞CY@
+Y~Qau7tzdǇ?euiO, m?]Yiut~^(/=3ߊ_9`q"|1~gR'8ehgc(/ZIe'c"b8bN*@Tw:%N kQ	tHFL~G `gSr6ĝNn( ,^RLmߖX-+ZMAZ0bk #<E$pp<*u
+zbGͰ;N1ȉu[=: l;jwba7gy"g:.68mf}v;~\e5K}&VWPc~'nqe(Z#['ܡUjGitGvWPk<C*ϙ%As;i!,<Uf
+1"ǬR[OrZSe$EVCOF[Q9.NUFcM1#-B&2-1bآ@۩GfAb]lPKhAgv"E.8zLduLij)0"68GMb`i!Zw>IPY>vNjDin>4	E
+Y@ӭfÖ A2SiC(6	ya+/U9"٬=r#a P&ȫ!H꾪'E+#\Ģ*ӎXY6G2]2h|N[Mgc]d#@A`O)JqV48q䡲u`Y7@ĽCiiShoG}Ms|ނf1)B`I(	MVGl᷆R{elGC
+g"A@ܖ0Bcb>=BR0Ni5jAN7mSո!	WFO,D$bGozutgϯqwZi-tSY &@f~MCCqB6:a2LWޠ:/nVhΤݳ`tx\Vw1Y_o^e_ǫ	`4COT)zp2Į췮;pBu69蚨>!-ŤCy05 Љ=3k4RQِ,<U<
+VLn1I'SqEa(m._p(.@")aˀ/F,ET)q/d~r"t{{Qg4C`*Œ/CB*|݆ҌDœ6L-o˽X6E7TY$ďZ+LZ01sxaº)'Q 1A	#  oyl}v=C][+tmgy1V+2_}@u,BFkt=YycRtJc@۟ll,0_r[}<Br݁<_M&-[%}!]1&* .fPM+@^;|ȕğA2¨cfĬp0XN}`rx6O=I"ՠ3g㞇獩]SS+g[p%'b}49сQeS9cW xu0i#{^Aj<9w
+1Gt!	Mȸ%#C:UpX<Kp
+f,,82Y,6Km4Cl|ZE K"''aZrD\xWT_ h6&䫑a|[($蠜N/INP>ts9+jstwjaZ47@-4W	!搬7X`Q+N݊d$3w8BՌ_8PVzP]]4SؘT}T5OdGGN3(3++1Rw\bC6/\?	j"ح+޶٫o<aWq{qvE<0Q78Vc,C7HԆeRMI|Yuh{,kuo4MY%g) vt4FBt1_w	JwOJw
+,:3f~WC	
+exM :tYS
+|&ڌvBNh^]3|U`@WCՏ L1+FS4a7ճOq ۳]jXٮ=DYSFL9nmݻ^2}5Ϡ>eot.&PFhౕ:mdߡLOMo0X=PmR:SgAX((Oi@N8sb}hmB<>Oh0(GXa$U:㤳^ivޯy=1*:=vcqi$0۴u{-6gݤEytЗG%Oe%W%_e}Zx0_N)XGdl/0#	wȨ9I+9	ǎMi'zE=A)DHhƒ`~f3GD墌0Q$xܘ`ڠe	)j@4.\	VT6Pq%oN`rxv*:GON6څ<{Q9Ǡ7)9z&+ᝠsãf$2$RbK4}Ji硇(8No7Sp4o^}GJ&+K:N#7tX˾|I\Zw7<Zz7ճ7KE mZ~[ju8Κ78-<dNYc:^♳:~o'gaDN bܠؗƋ>Fzgd/C1lF3MƃRu|KQ)uE7mH歉"0Zm̬.i%"j0甙Sί[h9n3@gHpNtN/-iȞ8ES7RjZHX 6&S#!OP!h֝qnDKX6 >71ALYe8(̌5Jbu#	54ZUDTİ]W8݇i>v$F*V-e6̴Ă|ٺ !6)qPe=~*4ㅘ"S>w=?N+,8襞9FUQ-i2F9)N@dր@*lcO{v5mr/(Z9ܢda`@lؼV2]%q{0nm:PS\$iBuF\o''3fQs68p
+oƑ읝E"#bX	ILޑ,zBZ>K|b+d<Dn.g=%nwL#F|	{ˇ߯pm2xs() <3R=Li?9fŨ2]n%2("&3ZC
+.92jwu su( = =u#7Ξ/<.ӥ<]d=vC-b/kZr)91S4j;'>,'HuG^u-&O*)v|}_]S|[MV%9?~H&~^ږiOvf."F" `=܋|00k0	XK;,+OZaZ: sPqm3IHeFwDcsSwm*S2@?Щ7֣Ɍ*6WMB%y$g8! yhQstɓ՘-7}&1 W&}*9\V}#x5IJd#=BDO$to#C)E.r=Kn3!-rr^'V0LdUxτe8@0$Hװ>J4䯣zPT?£|z&V#ya\H6bN$sSUW]1XCH&[ZU׈(PuD<#`V.;B|Ml7o;(ZF>:rv#ZĘo[C.F<O . NP"L<1tWhoûLe}d+Ky!T20>8n<'VP2G؜u؄W26jt-.f`qu>1)t4%Bq9@-A*	LI5&%`xSxٍ*LWK2N'=;hT@Y8`M(_J|$>9:S^~Z,ga$#}2F]Yhe9|]aMAT\l?W o;Y0aڀ1I^CTGf]D*iVCK	vώӸx37?¤7}rKv\m?XjO6h,I~Vw2h~L*:4<{\`<@MG` v/·ik,CYG>ӋنGcEOĝF\L1 bt= '`N`(6wOsBh̳[QRxqqk.C5'\6qUIoV'f1uРh30"^a@Yo{%wbyѷsܦϕZgvtc!evo#b+xR@`ɞ}uk{s}xIK+d5ρH`]ܟn1c>tt-IIU/db}(c#Fd2{
+а.X60Z1~@t/4ds4}$4ˁ:~J4g{J)5N?0ðlyYuCeYGUszD}0|GG杣IR5SdiXط4JCqeɌ"3*}6XR$^0Ц[Wh%$&$xotJKlJ2Ju*#`B#f0vfg{pǓԘB/rA
+Mz[rۙ3EGNZgZ+|k=P\X $3Y|k۩uכmo+P V^MH),m^?UQĶz*n5LT|h.ad+d/Ha?0m'N>g6\gI$٩rȉ8)/
+uc3ȩ[fRinTUVNW,8RU~@hZttjoV)cݟQZN9n
+ Ώ0#E%}r@֍b0m?Q0jR+FCFG 3T1-}#2 ݔʭ.|T[kcBM,i&be\Oۺ~icZHB<y{!Iax tJAbshXF{i/#SNrsh <T~n?姛ɷg@@iSgxAsh-6eUqu$'KXv>]Z:dZlkQn=@26idxϭ^`2]oWԌ?ɴ=I|#k`N@e5̻6RR=[jKxRg̀u6ks ԉX>T&3!*ZуP#I?l%,2H-b(b"E]V3|Vlp4VGEVD61m0| z| ] hz5'~ph}8OnfP*myn҇{L[I６^\"6]1JzxU?Y\F~^;3qtPd޽ᵃGcZ7բ`7awZqHˠ]ߠ|Qqw3$)M
+,H)o)ENjP	L1aRZ
+xa9ڒfFVfqF64`,!VA2tO0>]+y0Jv 7v&jjLHv!BL-5IH#Bt& c1]c(_JKI*+o!L:Y@wgNd*c"|(fS\kG7a& 0R	6Ic<kclk!k!젓	pu5t*f`ܓgcf4y}g
+++\*AZ`UP&h.	BT[+ޖ`Mal=9z\|#̡߉DZ#:v(8lЁbUGaiv4^YXeK׋U]P-^>=\^.R1S17qS!ڕ*T$R`a89"V@},6b??]BCK8_<?.,T&5Ϟ}r9ځt1^_@
+G{p2SUc_x0I>^^j8z_>./B.B/.Zrzx?HATԓa"`N5>y^1]T,KӥY[^HD;*W^Υzmo=걇ĲIY䇨]v|6Pwdմ5&Hx֧[CIǡ-صF
+(13FfR<<AThRXEφ(F6R)@G12cp0Ǝ1)H,@#+Gz	j	(F2p2ziu*7@}LoS;ahr>2SמV#]z4>	 J19Z)_6iU)DI6:^[$iHJO{mXEdyMǚkIu-yu΍&ΰ&2z-"X%Q2߼wf$h(1*l+<PQTD*ɥC=?o2# NXfLSl*NR7Y,`:zXN	fq=eZ=Ae]˓$Ь4Vjp'絃'?6a[7$yepndR4{c&oV*&s ]xA- a)˂n뫌fs;ֵMvk%ȁbp0!dHB9'4*% 3A;rmG%9OS9W`~"|tĎ^~&}"oj=@SST1Onz~J[%$_	&-+Ly2	laM>ew,j哗+|sՁu:fP,PР!O<sQ/4	geְe`rg%w4m>1P\:5)P5boЊ]{Po^˭:xfѨcx?3sh6(JS2('քy*hL1/Nݐĥi:TDBk&v(Wь#єn"0alJ&f9M@0!SY/YA1:.31o!kP,73[[jZyq7h#^|P$dͤD9)编?r^9u
+QDtf9'r;)\|da7ta#6Lcdw;O-*	3ylbf\Uk@GTbZV!28k>ɣɹPj߷!yn tGGMV-ꈤ~㑾B͍e7E+24Kh_+Rf}GxHnX+rq)|+s빌bEqMVW`*%F=<0fi_hY@
+8W-}Gsw6H\b`?S(Vwi]YH `ew	Xau/4`S_k1S-(,Ӂy񕧸|$/=acB=}B#z)D=ixęd,.'z0=-Lu1ђ򍚝Ϋ	fscϑbfEgi(b'0sN(&_5s(t6\.CXhS<כmޠBr|K`8Kg㐽<0I	w=M1SF\0g3G7{y,)7+Nx@Ȭi-	=mExSJ+ A =%BMLl|T~{^(>ƽ@S*7qh-E7x:A⃯,0ѡ^;TݐB	#n,"l4l>fFpmĵV7KMqrOihiZ>A lef?ƥ^<~Ȓlf+pp*ϵ*ӜU
+$8pIZe۽an_PuLA}ҁ'- ~Mr>r?Ay0Al[EjV$1T4El@7w̫o|s1'eDs+7s[?I&)uLŴ3!|28YxT	uzo#Kݏg-y_jʲGns{Fb-*-69a웕Ysn~LV*AfˎX 74K'@tmLQ*/i(F!sVhV[`; 5?ڌ8R}a>	
+@U1K$v[Ac-WC kyݬ7Yđjs胒̠W&] T@dmƊ4[±~E
+#_'Q>Z<9@E8/A$KBOe3CZtVLg$Zv8g1cl)8-&@ʏ/Π8y?BW.b_Krd6WQ܅Z5ܾ R;S^9J! y	O(^NeDD)&&Ґlt>>2g S7m,y4%֡$^H=ΆKa)Fˋ`ދC<{=jg\(lJUGnUFmHgAhf5S<3/j%#{>{QM ؊y+C|NFrg.EPg[:-Q[90Nܞaߠ%薛TDÃ3\6hBuKC43׸C"ʿvFJKjfFDh&1U%C̄fZȢ਌31RyZnJE:r"mjNY>8
+"R%hQ6:-T3K^d8	e蓡X9+psL9b]w͐t.D=YX˿2whPw(:#?St+ޮ)ufY5w4Kw,㌒7o|MLе8x˒vV6#Of}8FԩrLhvZP,}+2`f- ,t)y:#'_I5`O$<x }YxD;[瑗 ``:	Aņ$U 3kOϼFM0GFL4P[N2/.re݀a9koXW		+y&LuLIJ02bdMYT%a	s:6=cX")HCX0	f<Ic9nhEu<cROJ0ME2Ziuu/\P_kG6;:"ʮ9x?r&>ࣣZ) 5s-"h=䛘iN:I(c,Fb8
+nXyYIZp)/9/dåd>P Y!4Bmu_J#j~4chߓG{f7{MvW3_5ܨ5] Iī&&W"I|4j< wM,DB[@A
+%D1z-6_.fbj
+rZƆe6>6,o!'w?ݻ_H<Jac>HIЭr弽I,[,rѝk<]ؖEB` 唉^Ty& {uv 2(%ɍD@\I6f|$
+%A!9J-<CGp-J{#Gߋbے
+''?']s4YY38VF$LS^T2BլNzέ<IWɮtpT;Ef-д	N\z	+ K|WLf=S%1¸D3<n~*Gl2 =fꤔ?tO(Q;{$s#00(>7=J Z{M^/\?"jy3ȓэ=z$5`	!D07nwR#MsXtEpj@'Jxe,9^.bdJQWCJgG|Fq3X|GwC/N_vMlyFIJ+Ҁ*Iquuj]qzP2O%vt2#"Ϥ4Bw
+޵zh>e&4Z
+^V\dTc;ɬK̵Ioa[KAl6\-_<4[GobCLevzco19[19=y.r{FEN&4BN$#MmJ,GJLZ{N}LRh, nPZc0XdP<VYJȰlp(̪6uo7	ldLV^ZEP
+@7vyn"%̓^RUڞNNIA]ՆaK7dkA*3`Igts|~ka.~ MQ\GZow5So+w;0:JH
+?Vj9[c17jGG#R7*ǢOCڦ*gGks?7{vHٌ +RqsyzEc:@Jd3^'Xd;VD4&&G_cGGI32LFRiZ򥭃ZZ¹+r~,wjao |oIQ[R`9rQwi]Vv*ƷJ̲1x5 ˴lo`q3XV@!{4I^Hwz"3@jR`@ڎݏmNԛ)aSHs>eb=l2Ud,PӏX!Ɗ҉!=^HotƦ{Tp-ΗQ";Y&'d}ld̙Hn{e=h/[#Rh+^7ս+-0otj c0OftFW
+(c-h1ȇ *7+Xo\pձ`qA!0!m'O4H\ֳDωPV1	 É~p*Ԅz|S=5GbI`:1T خP8,I3}hy3OVhiˑzF-kKL0䋋W^)/\&$\ʬSTbhŨ-׭\杮U$\GkEulU3$ٷ*:}Ɵ*|>PgH752W&ͳ|efՠU_1Z>k3Cl)wPPn6`(30ӂѓlK3
+<T`E߻JX/I'tsdMؗ5dX|cz
+ EZRJKgo|Nh8azt4#k@|67B.:6{[)ՇJ>Bu{eeh.R-Ȕ\tftBYP-EK7G	0f}VFU7f\wm֛X_},@|v|=q]~/q45ORBZ
+qiK:EP82JMB>Z,ٹXq!U<ugW4=8Z@)n\m.{RK-f#_8m.R8yh	ǖ3Bk -ȅRt.b,Z_A0OlC=WW<N uJ~h>q"FuNx[o][ZoVԞ-Fjf=[;ӳ~\TRt'./G䥙_˻1&fZ'<V9kX,fb&֢grB3ɺt[#ƫ︳΍A<|,M`QsX&ɑsL
+qXi9opޒo$s%\Aa\9($bA#|O&L+`:ն^PMBVdiu5ʉB4<F4ߒvFM8<j)4[oܩ T+~EE"r'ÆV)+Ut0푾D2ʤz!zJJU+ڮX/w/KW'!ho?U.ϗggfoK>1˜"&X`b¶2`2zDJG"C|Fl2Xά2"
+|@?xqhOJy)&:'bV*L?➱6"TN꣋JXg,PJن)9
+}z&DRGR7jIvw`l3?3L (xÜS0As:dPz	Tgz~g͌LL'[F9yVL(A1eO'2_sԶ˛i;4Yqv*MxXgGiZQs2ŷd*uɩ80؅wsNMP|zUB^;G]{Dn;MP0d&d~[U)[m_v FrX)*;LGrN/ozyKk@fz"QKׂ?H4?kۆM㾓1NEqJ .O .>qvqY#Du&ߢ!p5\	o$-EIkGxFxFx9vTF'kO(1! c%8e%NS0[b07f'lL0@[mV'dj9Ae1좪|/cX[4PeHy!]Q1ıðtB߮L"{ɚx*[ݢQ[Td^K<̆Ox|%e2Ƅ{Xa|rXαp(	6!ANŕD겸.E͞"PYwؒQ[ԕX@?]jz{"bD"T7ؒVŜtX$:u<H)ke0tY#;Z!zGY0T`L٣<U2&ofΡC^w<\j1@	Nt>g6w_x֎oV":Pjo\Qk6ҿmYYD/e$kpvbG?aHo}&YVkYimq=ȴ (d$8  s7N$<q3	w>:((w8_̢Yj%wŻw^nk{TY@mŲ[g@Nxڃ)Fd1Y3Z:ݳbm3_s~K1qYԉpɇpNRU:~}xIɠfC ȢJFkmy{!HJ>Lڢ5@jțALYwLV[XĀg"<Jȑb!EcT)Lғn,jӉ 6ՉCd¡J6UN/(iC:o;ŹRm%+de4͘rX3?׬ىa8뜻YHX:H j) <T*{$pcaӷ5*m|G44':E;W=tZsB7l@M5MI$172DE[Q.0b*mĎ#%Q$@cX3ӛ3	psBXtͭIEN1ݥ2h	k<iQ.B,wmLx
+	lF/I"ż9zA6b"P3`St(OG>L)25{u(?]g6YYl9|/NQ٘:&sSdkDDvN+LJM.O" ⼭@@n晆0ꙆlҲLTũv&sLF`%"fĸfxQ=A2ib8@6k|R ݨx&᧳chWbh5=ĈTAz8?L'G̐'A.}6H\G"Kg(toBF1ふw(z+xOꯋ|>+h#u,4*jHyAUΘ`Be0=T6d%0C?|p*p叆G]4hT,&r?sYQGߊZ,''wfN*/ENK4vݤ3B/yw\SqMG7PѸr@/N?]u]9;XM}M3rz*4|J4It=ac伦dQAdX`H6@9mĕK4P҉{=2s_t!X	3z (c)F#";mI0hQXOP]K~jX+'3"1sU5Mvnѕ1`\țzhW@"<]|wnBm
+WŌY_$U}+U\IOk{'aAUCT` 	cICt;K59u%rЃ	)š};&NӵcMhoxTœDOrVYjP.ɮjCz5`0)Sa_i0n)l-Lc%{bDָ0	9@yUG0#hn<n'(/V.80WE]1hX$V"kIniNլ#<cELAT_eiQ! oa5O8V0:<id`NF)-aХ.+/)3dSf0@΂,y:AXXXk`ׂJjY77&a$++'qȨp1\wyiYgR8[N}8[nb 	L	2D, \&0:Pz"-
+ sEޣ@efS8@RfSOQʴ	K)Hhr/'50.a	f\@\'>z%:W%i
+YP{whįO9jkOQ}moSd#+:!Kʍ㦎y!m̴uh8|G974\%RCFx
+}B{Ǘ!P*"V.}B/S4_ksk`aVE"`Ea٦A5#|'o-IRݡF^ !vbmnꕕfaտXaqz}V) 1xlm`xL,&*`ƶ7٨;<f}CL4c;G5dRF0Jh'7H \q'OOV+[eKH0	ثđdUc vR37-P7@7HYtE9i[8sK].@;{Gɦ0W!浼vjW<B'5='Ec(2>6(Ib&ԷWAh睞RL*N_'2!ƪk@IͿ@A<o,5ڰ1HJDODJ)u.:2@@{LΒ=eUmBdGәz_~p9ڜr:oQBsrUNHD9V;Kq@NWrD2%dXg#NIFDsOwx#3tSI(ڙ*8hȟM>`Ά^ГÕF+|GKT.\عܜQTmlYOӹb}(Lzt_GTb~ʜIU{%i!`Gb3W3xg1N]$<-9pj	DO=Kr̵L[V77= n5A}t?;:4ՐIWaa"-5]Xo8V⃸d:fCzI\ӥ;r'ix.shD2ىiT #w*`!Fh]ۀb=#h^u1&Tѥ=<'Pp>
+ZQ7'IH\>'c!;=4Y>rVL(V܈d^EU#tRvNqX8_X#8; bٗ%mTMkXOʿx۫@\עa6ӘD7{ܻ38g(8p#_PQdC9~ZUGBc%!&q>n*2(w?!F*r9Cb85uIQQMi>VǮD|an;ȮD?rl*En̭\NR9Z.BnCQ1FƔѯ퓧rrr|c@\+JES,7oH<t,9?15oU3*d0qtbޔUwR 0dP7LX0
+͔%z׬ ^5V%kE Ay2[sU3չ"KVZc  :FgrF,bŤOl1|rA,ŜJpnDtin<5ub4LFÑȲ~-jFU5DA[/qRWi85K+ryi=qMafncZؔc!e3II*:w/~Ǧ~¥
+j(ln}Վ(*i.N?)C>L{tv7x 9?8ix[yGҘ}hCRZ_'_'$NS'<C%t\ az
+l:`X[y=Jd'{	Z:3=#\s؝1(D5/WA4$=R3㈵?|"LsC٥$;$'rּR&&ctsQ29хy34vZz80SA1ppqM<|ҌPОW'wxښFJRqSvhB"#ik
+A
+h%	{<MZ^h~|~T%fVBv -SC6
+ $&GXQ<'(l):m/ʩ:0qYΘ(Xqz7U⢔wbL=J+}Jy?z\|;[20sֳ8e;"O%-t<1Bq(n9Z! YyZ$+-OP^D,&@bAΉnlw6>wfƉ{_M8OĤY>;UlR7yGX	{c9!`z s|t4וm|	iN'JH۞G,2<7@X(Xä[KXRkAcɘIjH+-D(9z:l(q%6GX^u޷2p/ϪVE?jE_{5	MqM|}<#L2
+QuQ1ǸPz̽*御< [g=EyBhD9<<[<1oBa;,*V1J{E13\ӬP%OV{XW(tZ cNC-Jc?Q;sVgRJE(iHT{L-9Y1>=%X#ٗD CZLYAB2z,_В-
+.0:=vC6uЛB>ݨf'4/yXmx m	ssyLTHE|2&8ЃT&R{4{<iWO#c k.0(cF735}WX'hS4:u \W5uYS8iŧ%W"?TeM\v sSDȢ(	T&Nc$؍@4<wrB@Ec>Yp=r/Hg&֘(l(e]Yy毭cq2ǉ&9hR})qH>ݔHD*xaБ>|WA
+ߐGG6Wms뛉o&}6Cs>l<:m,M0S㣻3Sr<Kd8iGq#7orXcbٸG6b !YiTNYR9۠_#j
+NA,8&"Ҥ@~10ziQSjqGq.) mm)h֮] u<1!^*nZbi/-oPŬLQ]QezN-<өrRU+UhTd/|'\E` #l,|Ԧc"89ǳ,zAٌ2bDMn%eDE6f>R|w'K["6y隇7rK75	ZsK˓3ϧ0t<8#KBMIpR)ghv>	qHme90#	W*^vlv-<Խ9?y\'?xAOx=ORc	Ħ%;3OpXgbhV#eAZ搰p>|m}z-5@BD<Mc]쨍H%9L΅h~Z䘂ry+P'z-t&Dn^qoL6fk{1QM#4r-Τ:+߻qt[	6Kش3Y֜"ތeLM6U;1|.Fq+q><Щm|tzl8c{Wm4G6h8Iv-#w' wN~t7E~ķE;CJIN#msr&_7?(׋#Dˁc{'ig2YSl@閒;x*3^&XNMvOcr+#$nL<D$,e1R?!Is e=zTj{gjRV޶8"szD gZySwkt H>M,0
+wҊ  LL]&aޖCXR|Be<a9[Lh1bDN8Kèt{dɭ~5dX"wj:y9zE[]
+pqPaov:M@<)Ix|;Lw^d`Kb0;'l;GeOu|ۙ$y$,-C݂5M:/_Jw6ќxgF $9AJb`NnQv0$j+|AV3u7_K<^ECm	 ]nW(5xgó0>9ps~|#+*p[$=+y4|x}Lmʯl#</[5//~Ra
+["F2~&frxV`^Xi#05IA.^4sxqt]|R4B8̹tkUY&'LCNVNƳ[w*"z"bmFȳ>`5>@)^ѓX)F/F-E?:ʠ8+s{JiyDǩVCXfRXpT-9+_DI!k^d2K-ܘ<TSӐ^ܪǬ3De` f2"8I_3bC tP܈TO>"+~u>b~D˲(6U侈 |7 ^7/^}y=AD	 T԰MS|J^4-u6P`k%w?ҏRm_(x,2<[}@XR(1y-A6Imlaz!M]A0	H&@R]GLTߵ׉}T.>VPPXvYjm' yn $ODkP9":`}>J{X-JBD}3ywdt:s7YV3BĎIU ͪiC fVRaQ6>M`?|WэdPV:z+T*ԉLSEET!4$ 9^a/8ؒ N\@L-"$,0xZLMㅕ<J5i۷)|``t
+d2eh9=\b6@7A +p`|~"jW)HfiBfLfRү9O;)	C9<%Uۀ+yo7l~|V>@|)௥.Zf+#sV(V$
+N	U[jxgaƇm+(dgVkIvr9`qA|"a|g'V%Dp7]mguYE%[Q
+ʒ!-[|CQ":#vUyH}ȯNSGxLбJ h;laF0Uc)Kf.0N7aS-ՀE>jPEXg~S<.k~GC.6#!_*2J @N/A4	Wr"NY*y)|@6o ɫ̠[<#P1"o3v-"gr;晱aV[۠P8`^hπGQt6 zgl71XV]1@6z5FR#
+!aRBw	rWڷV6cCW6)w!iB{10<7oO$@FhH,$'Ow'{ŎT62s_P\bJC9
+R-[9:K__%  3@i|TB|UFǵgUN*#maHB̵k{+(7T89jڬ!Nqe
+CMw]CkؤvWjbFLI;O_'`mlt6FY0K>ӻ
+PӋCΞuVKa^G`<Z8KĤb
+;Ёaz;h;{M#eXo!JŶ(d
+8qmv|'Y$vJCcxHlM/ZVA GSWΔЗkeX#TIμRJ^jo,ρʦrlp|~,}϶/9 A>DE&gĉ2j5̴#7bp:~<I#ma14@?"s@0b ]l+p1Ma6:fgcMXyYF2"Q`&BRGIpjGj~lP\(F+Ә4f5:h=@E1^qnz#6v&y_́7oفpЈ2*I`yVȶ*9n+.&
+ljKE!ZV#\" (&. XWP@|8-!o(\
+>AFC,!,=_PO{ypNʑvFq<̣QH=v..|r^T08pkUPf-"Di]LtIGzE֋̰ڄ7!!"dKiQ_2]y[2)y0q8B`ceJвr(]a#+ޖu':jeCs>G=
+Z9|(2@8x-X}B?EA5_qCH~94l>2#Kd2BV4fz9ˎI)]*W
+1Ƃx"3$'忍 f[%I4xjXȧX; <hafIӱK鸃6i0WXJ4QsER}ٴXB̸NU"k	rhDFmsLʄ80&I[Vꩢ8mV.3ALj@FRc':'&}e"Zv|'M:'={{h݀Jv_R	ѡ@GGs<Of`}ySЌhy,͙sGS '~5F&xsHK*WoaOh݀{%meRmAe~Tdi%`:+;o뉦zrr=>?t~ՆMM`XYZĂȘ6Ia/i਑Z|Azci.E4b}ի'|Vv&rְ|ֱ+NԑTbf
+2$	I ^豈!Hoá&?0F"O8<mgp<xjrydۣDfdI5[Ԙ(؇YLLɣ@CմƼ[8C	%1jsI8f=i|lIn;__~ĲL9o_[r6(!3+a-ji=lNfrcoV;Hy">n]a;wĀ xMkY~泭HM`|<Hldj3[`te3 FmtĽ)*y-}JQb-Z9+cЁY SvmkId3G?\k=j҈X"iI;[{-e;JU7C3u4gbx~Yݮ\۶}BߵGvX >=?^*c']>~e,_x:QVAeƢlTX>Y<{JK!)beEE'g#z- X^jp
+]o.d|MفWGv
+J;apM_c<4FE@$ۋDQ'Ql {jM_*QMEAW#|jvÔi~a͞$|OX%=3fNC]֐6ɘ?m=8p.VQ5RM,`Mͣ6e~"U;5?DOAp;mK#QM&jdqruȑ"޴0B]b)k>8]vͯZFqoT܎Ax>GjK\k߯v\j\ FEpcGh|2tC
+c=Y[a)W4%	)$̂B'S㊯q̋M5- BweV<vc|3yVt^18!qpFcԱ4vľTn>B:PN֥}/K:?BTF0GuЫ҃'~y h<n^>va0jYY9@DKAc=1u:)X2NO1j6Y ǦFZNֳR* '&BT5S<TB pc^Uxy<6;7<x{6R2U oAD]^HSյƩ*`P K
+ҳhDDI97OO[n.AD9 "u˂T~!q9#&'uy^Zf{<} 1̀A%J0*Qq	;ܼ1]oƽaoAg|%F<||sN-:ϧW"cK? ^.G,@Ytzy;]lПo(]f5m,*2&eڔՓ_Ixb[3X{z<z#E{E jZяNJGB돞oʸSzǽ߽"=JV0;<>ɱ IxAԽ+.GB;QaZSTyŴbN{{┐SλJ@e1\սhB10Rq0dKr.,>RziT#V)u{g\f vleRn30pHGU*X9+OL/4kk[Cźg,P"YrF. $'u֐-_#RfYdxj<:g}yHl)C]ׁ7rE)ݢDVoN0/ mdq5RD82(k]GW=`*a
+m#ÅD=`@-
+7p8T׿0_ي}zdp'֤CQT'@<rJ(&B,5C5oO`(X)CZ*1ZBD#Cv;YzI__Pԣ፜Xt&1uL쎢]]]EWmZpa(DIY57L*Zܬq؆.grHEx k-HB*]#ɲAxhWI:	CQ1HHgZc[EB|F|-`eqJpz'NRZ16|(sȦb|ɸj-!'cZABdkQ~{(H-l7㨔nW:!jH^jO2rMl>WMiCc+SV;{Q0¿B-2H9`~hda3/["%&2FM\*	rXk8DBZ$}
+wI+e;6|'C^dPNXޞiẈ$&c͚ՀPQr<V+F3Fp[a0,<~8)m!"2]|ʃ6!PD#L'y&/=8uXaV$XNm-ĴVbUĞ@I%#-d΀3F0.ei`a±3wS-ʓ.dtߢT6$.ͭ:s%@!L}1CYͰ!3	l<+QF֤MFc5B@7XA@':AΎJHt$rBG[Ā@D:|1h9Kj \Thp
+}mV7ߪn6@KXhѳGqԗh6slf)0n6TPRA8YZ`/2]qB?5!c@摃8}G@ă5Et2Ac]XcmZP h9ڎJ1ww/1Su Z9%
+R.S9L$S,MG$~Ҭ򣣜_.A1sU|ttrrod#;snJ~6gLlNF'[*xn,e70cPO6h7lKi]kNU*vZM;4b'.{<`~	ɬpT8xLfs{Xq\92(	c@_AAf2(/z UJ:nM'ZC"%|;2K\;(עT]ڎNEfL(AD?苖QFÍz,S8fs"IS0B~Ga}7|iHl~˷"_+ϥAk=B*ynmA,bл䁖*oF^3>sQڇ#	31s/0RE7H)u[؄Sd,.z2cAͰct/{]@
+f j+B&RL)=?LgOL^:󄞨Лz4:j;Le,c1dғ>8024Jv:W'8}:eC{B]: )"vSyK	mcwEOݪW4QArBZ^֪dtM v*pId9	MpoR.|z)i-=v* o)ob4Ԝ|Ѕ`W̉-!%A+|BKadѾ;)r)޳<JNC9F9GE%s橼<#ˁGdd;1iˡ`qN3<bikZ;2fax{?RzAXv k{65=N:,&4j:qڬmb.kkܗŻFZ(XzE0w%{Р6Uض-{^3WJl(<f7
+T8ڂe"ܿP80]Po7qL,яlku/	Udxb@f՗p>Fo<P2"ѕ̊KMG!n,-$fC#5Ws,{SиC
+V{~#YN3=aOda4G7qZI[ZOJr{C0Vkiʢ(ۜR.!W3I*a< PJdɘh.4ip-MBs,:hU~,E,ؙ%7k<v`BlG?hކڀʿ2h[E\RA%h*P7켾wl-*j$,ޖ7<'So琳!u?fg\{ИmXqUqy^a"==7
+|[Y$Ҧ,t)&zA[hfr %2+'79m0wyn⟃2AOmA{֦.YKE?սvd+gƨk¥0ى@pq4C),]]-FXZe/P-s6e GGeM|N3c!L3|YxY%F7NQE`ƤtGJ4 AOԋ.%h?ŵwʲ'&Qnx6c*9qa!QW^7T"}D,iEBʣi qsbȒqa܋Q!=^ju.;~%7ϱHKU"~>_U|J2 K*yD<G̡҅k$jHQ1 aC`BCrWLʼjU*AёԻiT YQsVE$5e\"nKwβ:l^VZ4fGAY"+L\RKr,L9hݤ$4́
+bvLm_~kH{yz7n`;mm;ؠb{q3:~MkZ/~x˱[c&*UZx5h_gIY֨wX%+{EVhDQ@*XHDѣrѢ"ࣳ)[[ȉ4Rg)%ւFXS+9;/ЪZ7?0aۣ):$a<3پ)юyЭpYYک0Ze.8,6M[_,$JmP6CFJsً;+fCEYo3XD1. :O,w>d]vz rX!7qh%ZhJHhrsEw6A@mаڄҞ:#^]w
+nRیI	ܒE}ɹ@)N{3gO8a"\-Fi?mtϡL$CQP54΢Cۮ.Mn_̀vmVi	(nP\r	0=Ȣ	& G*N8Cke`oOSc%ÖudV3_Af+mVn	:$|xE
+	G<&-x+4
+`e2"VföyLoA_Լ:[?y%2%/}I)XS58oW8[<i6EsUCw,k-isj"6*S=acLt*"a=)ÙGnk;|ln2;yWr[i^d <Yѧ.ɰj۱lh=T6a(iܮ]@*j ^%O3khpaюۉ9P"e<6aex,+*vfONjbAfs"8OdSQ=Sfl*0UZVBY[_F4r	snDr)~[ܓ`yF$Cyi7*cIYֻ:֬DmS'Gb?[(i(Ř-XTW{D!p6>m5%6'kZnfJGti#M (nooCa$N(	 Wh+RP.<\paq-`.8)x
+~a=Hx#i\)EO	Ϡie\A6Px}|5֐zB1vq*~$sMp#Qs@3Vpm^鰵V+e.e)(Bf
+	@=GFx0 Hl #͆q8dV]"s>WlgM/,S;N{3	R[e`K.ㅼbUolFUˢ7K?xAQ6
+Cz\dof]6yJ&FYtzQP7z5(;BߙH[%.t(rZ0BkO1@nͭډ\Kaa#'l@1okghx]04|X⣞W[5;Jͣa93.ji~Ow,$Ar5S)7]TToW96"5x#Ljh?0Q=3
+_-fzAǱ=izq>=Nh9!?G76:(>wp8y8t\" g{-J {b{13]
+:C +ȊыdUޱKuěU8p%H9b;/IoI2|8A/(		!f=Jq 9mhm^GϞsuۧP)W՛d@Q8Ne2O(oBK0uE:oEI]F<fIZg8g$}Y	Pě*eboQEd2&RC)gYu9+Sd0iVP<|&DwRu"NCZOA`%
+(T+,P	ܠZ ;L?W*AW{ ښX"9#,u*PAm&q\z4:/a0/ozPNG'w7˟~Y^.gx~uɜCosE/,*Ey`+Ӝ`o<vT9#+*i:.B`*&-H .b8^= b8V]R}]VȞ-Z*p=?u6#EEjU౺܄Vn@BmQK~*E(L|GZlA@N(>H0Aj+[3QG<Zb^|:oo/p˄C=Zg`z]^o`#sa$<Ÿ09S+p4l1RzheKXo\
+c(tL nxEZC@@U9{nFz)o*ϣ_weDeioԣv)cR^1,чxLy6AΣ524YW8gTo (X4+u//u#FSώke7*`(-{ӅqzdeM=Z0q]Y^<{fxhM\.[OQZ߳"5Lg{eUe}tODSoXi,P[zXd[&2m&>o~}%Xַ#g/h3;XWKR۸NB3I#?b178!̕4ߕR~CO[چ7^aIN3@@%g۵w%ֻVQKi]gp.ۘWQm[V7_%8kxӻ^>ogJ+!Cv S
+3Gz¥kw;Dױ>{～6y_>Эaޜ)djkwFv`""&9r*=ǯne1C\NtSg]%YZn0&pT}˓X$J-bPW$@V|OŜJa#mILue&n?2GZ4Ez!YܐH<[ŊlsqU%c@ȳZ5>ƶ,+mf*Fj
+<!T>&ޓa27uTG";Ex2.1y?9g̹Vo@$0vٻ]uBBuExOjwE+R!
+Cv`.$RS0Nڨac"W50˰5b}U\glui9bZ$:UU$z7kXDHs|It'am# qV.?;Ĩi}V\u[4^OI\T+nwimJyozViJTObNCUgc"VBZ喝>{.!\P5ɔiM5+.ϱ}>NA,4RΑKUC09:#N&n8kQ* RNF.u(ۣÅRd۵Xii%͙6,H]$ŻwN5:iV
+.⥺xO+?aTGe?ddv,ݿEyf,TxƔ$@,}{+7>}]acw0ZãysYV&<=]r;A#" OcxoE/=y?U	nOϋũ,_Uy;#Si{A??D=%(ϳpwQ^S1 K$de,@wTV\פ?Ru=z_sfL:/鸁9@sjnh~P4ot<aR"59	sf+ Ev꘣%h,̊&^|2z!Om96s<@yZu]whNw]% -U%yu'-;@ؠ6BǲGR,D&Y!vCEԨj?"pNx'8n
+Õ<UJX\Z@gm}KFIb[PV:"_w^Oqg?wxAJQnOL(" Ts
+B`Zt'Ng;@Lp5h3Bj%_N_yCyMzxNRʵ=y/|b/,UbeY	{ۗߪDWeh.շ4݀ˎH;w^w>Ȇ5#FGJasp/<U˸,y`UE+*AQWp*MΰHzqKoK;X<~V6MG>ۮ~
+`*?@93XċDumTQ~Mo9s_1VL/.t+mW@Җ ̝Vۑi(#b9f	WM+S$u.I?1 7lpe~%skDA46#Hfud8OuXx-6 +:sܹ*]ArXnmN
+ (R!B<a1P 6SV2AevR5BӦ=
+>SuruQRkJc/n8oY!YȴhYћo{#:$ptgukX7-xegal:*SB} J(+d&̕%qrd]%b@ʤp;j|x`ϟqNNzNAۨ&s<}}zL 8i/9+9w:\: gL}
+.`E'#SV"a3.}Uc|39`Kţ1J`*A,A9$U#mJg*VKjPZ&3ww\I/-% ޾[P@XUɌ!B4^↶E~ 0- 1B⌼LJMBߣ[GœZތ`es,k5U^ىvVQJW_/Q^+cǿZ(g&ۙfbZ!/gQu_u-Qf6o43n|/7Ek)I"BNK3ýH1h΅ʺ@S{5gj,_[:x8`8II(c(P*JgZ ma"r8
+ĜYMe+>^K)ך`yWQr:ܵc)>CkWe9;6SC{{g3Id$+d'L2#Sa\E-<4|B#utYvI3jJW[^]`,B5=&jH[d&:$AL+6y1cfDAj고 2^i".WI4؋KXx8-'	F!sINXfz+tg9\2ߥD;3_{yLaN1$3jOx\nҊOUZsutZ;iVە~`#yJTR(Y7DJh1wJZ`JªPWG(w_|&j?R 4t
+.5GH6?,-u	kL'@IA.KMG$!`_j(v;(Bi%rR$-uR ex"__bGaMJ= ^#!?:GGץFXNN'@VrljN=G 'W!TQA(y<DK׵T -:;m}hYb(&HwS_CD7ީdCh+%vFuQ> fu+#՗OCԷIx5$^d&;HrṳK|C8t\+yC7[PcgTDM2X>"SěT;<[_)/A{\_6_Ӊ폏ډS?͌ z@+$sSD5ڑJY[;{Rq	06QGkD	z{b!Q+c$bCR|e߮Ep\½A_d°;JT-bnx;Og'1vPg~3OK)[9i7<$fW8f$y-cqvk-Q/ds5KcԔl 4NmQM&D->@pHL}/	)xe1X`T[kLa<^JΏ|"v X1H`	;?b
+=Im ӏDDF)&.>ǽLf@^R-:\Ŭ5	qfj7hVX1SB<Mh0at.qA6֊L7"*q	q5XʞQBmfj_3<)} X򂗷
+U+|aRH~s[KKlJ+(휵$r܇V|s
+/PjN\%<>`yW@mOd$ƅNQicwM_HVO6p>f{Љ:#udo!~qvԦ*jۯrI3h3Ns|yp|ۼj{_Z_^%T^{ s	x-[bi*8qEYJ~21k ~NfS >m:UGZτA2&&hb[Ԩ(5P9Al{N^'3m*콃 	;."Ӏۧ\}o-QMR[DɻV-Wŉku.tzևŨɽlT$U}"WU]oIgZYV%"e'A>6LYq!R$	v:!9m#U0fzE?CYjkGo-@[,Olfg4l:xU:I8D7ml,gxH`ý7l&NFJʳERVjI
+lerZ{i
+7R99s㤣	Adb8{n?kZ鳅[,JhBbϿ}mG?.oV*rgf[t\ &C3F5BKz *ҁCfK'>.~ЗQgAjMvRa,c^ &l*j2O{LC5]n'	jZD&ݯ1%U[-__za);vшDa#&)R"1h%"AԦGz55Nj^@Z?mnk[K= cp2fQr6jp7V*c<DfU<[lJ'ꡣNe%,>^OdzWAs) etUV4j3bKjž3F>\[F6g*k2这3WUt鴥ǵlu4Ӑkkw[iޏVZ/`(\R#jFl؄7(Q9DjnmP4jS3EI 0%\Fp%fYo7Gbl!p&Wז2~%9P{O+$ܙ)oX9)Q!U"O@>? P o>1AaS?I<sפ1d b*Å䍀kpOLDb,]KZPt'_<-i8aP!*۪6jO|z~~z鱗7e;zf'gݦܯ9n+oE
+0« 
+Yз]>Kl47q|<!qK#(yѼxyuOp_IU0氁:}?N&5ޗDK:]1(|F51|Uk"S/vhOgNM0geN`O69 fG:HP.uGI!~.P6LKuŰr*3762tΓ<_v٢Զ[l. 盛<⡥NIK4@ѺT]ȓ Q9j?нDw=:L1PdTM@޺-Z*`sާ@ySiHtG1Jxi(E_-Bϣ*}]jM"Mɉ.!B~ĩXify폃hK9I½1`M9(<{.soZj`/ob\4#_+eQ! ȯ7$.YkN)Ts
+@A615>Dз!
+[1:T42<_msm&8M[ʲaՎ`	, Pi%=@<Y!_%wi^$][u`Ðy4x>{v \i	l"K!tSQeuyJ<dFD/jSI~fI',K5NgK\Ua.rZY?x~:mC	g\_,:>F0eE'\Ni'?i#it+iso
+W\Z,udJ%gU,uqzd7
+Qqm?S݃\2HfO>Cc㎚w
+([41Bҏ!1Othc&YB~QZ-`XĘ1_^ށ1Ht#]Ő@5CG.3?EJY33dU6.y,/67#Z~ye#*9=`㐚kTL`BcqI&ޫ$@I쥭}Z~Ȕ	OC/%uv%ZS?HiRa;dszvC JJkQ$%yVBX	_a(l"w"kFgOڧs2dS	t-Ri N涙p|X"O!@\j?)(q+tA C[PdCĺ؎
++pSʏ@2^lZ$JRf4x&ǧ]j	-fC:jUo3W9[N<ъ1MUὶc]vjZf"++5T-5T:4&]ĐH֮Vl$|mrt,#ѹ@uu~k/GpXɨ@TfWsCfW:1~yU/*h_6rcLȳ.PѴU
+@L~|/-QZZCb;1[8$;2!kzC4mnLa>8)HQb',rĚ^xmG67ʆxnE^ܞnS'D5li8lihn0C0S)JmTQL~YUm~OcFΠսEvPdg*B@)u떘׾>7ް{y^^^^0:n7?:<?O3 ;v
+)WWg!N9D6B`MΫ.a`U׳bgIM!)9A.	( cN	?'aZ2?UE~$fLötۋDG'NC'@|
+}޼~y'˗O?Ipj?g~.L<Y/7O~>wͫ/(};/_ϿYx3|e,/O
+,@PG(
+C8Q&/`z(:KŜ' >;o3T,fāeHZ8:('
+ŐŚ/՞ܶ<K~?3i(ni1]e4f7iWD#)'gO0IivGk"7a8<Puz8@*?뺜6U:TN|JI1;ms䅀	VeÖg~K (S݄cfh!3ębGG_z	D7-ޫ	~t/n}ۀ+/y)Z灤E]k4'o0-ʑ< Ѱ1%VaeZ~ʗOx@Ҷyuw3JOd@ZofV @"iqMÑm2`Ñ6W9Г5LAe.rfǐpth?3z!rGUqԖIұK4G[u8{șFUA|'yQyVՍ<ֶ{T[!gЊ'oF$mLⅵ{E!08yh{ә{n\c|j[9#*_YɊ 1~z(b3fNetF7qyG''
+9kzrvF`iph]tlS64訐@au(l=}rddTC7e|K)0֡C>zv	-	jKI
+KsRdH(g Ec[fV{K0}RFH	GLi,98ͭjTfd!`Y;u>k.	=JσXf 8<Svf
+͟,$whe;c<g- 4 );>VzLWOEP*Ф:ovXUD4UV^FC=y~(ul2<#:Ii݇GGtu>֙e3W1z pTeȢVHs(E2̰٨˄*n}GD.!ғ(2i2W|Y0]6CF  a2ֽfqӉ҉'-Ij8GmN0V $FKژ,O-!!K؊"WWwlLPd/9ԙ 5JZ&Hk>B]bxj2hoK)Y2.բX458BS˛r3=7	1l;Un}?TM"mV3"IloDE$ԱGULHa9r+WN}!Pf9xU5wV0 $5ua%oORI9ZSE)gYPu/U^7-8Yp:magnIR/t
+{QT#3ZKފO"-$"79z|6Q>&"^wˁ	iIs>PiYQ9>-_-P
+1ֵ5SIsJwQ{]IW7SZf5f_*?, };G)ƴ;
+Q!F5wqM@-)d]7  ^{ܖj;Ǭf~|vzUwJVI'N3 v[
+Xcl>J1qɸc:wz2nJ$378~%&@^EUC/pw8p@	gs G@0wi֯jמh"WDJDOHz飆`b͙CÚ"S9n2q8c,/|MgQs3Jhab͡fai&=*d>@B]*=iE	^+I`3g1xA%X'RrYLU3:r5S|(S9H
+[TC'wsfC1a&BM;{6[I;]`Vo+D.߈+	R7r;,΢*C0:pqzp~Q`QVQ>v@pPlknQ\NӦfzշ݁8j5Ԫ԰L@FX+l*A,YʓO`ëlx
+q#
+SR:_,Z%ཐD[P$ ,5>?9ؠq$&4\[q=CRЫ	~Z
+
+{JIDq aL7lJcJ@ЕcƑh(@ mZ곶']+Uƾ	Ԭ6v'ڦx."ogγz[)ܖĨ4
+.0Ϣ4À9w~yܦ2iZ6 ɜm}@QRWv(ՋR97bX@ЯJwuiж@(vMei3gY&<?.ˇ~a4({uT.Vx}Q)cJQX׼yfQj:pI2ZFZ^Mj3~8SCH@x"OKi=mM4QU|[C+:a0	c-XaeslN{;-x6 pT
+L*1_ԓ[޾%,`Z`H>U˽荒k12P#3KY[Ȗ4iA,UQ(FqTOIZ<mUA?S҈/Q+2QOs?CTZx0*B@]Qni2-~]_˓|np'J+MY"2%|j[y)'w OZZm@M#]2zgt0Hgao`,!Ljo͢\Lx%e<J,P$[<_>ti]v<D*Qyg1!cξlsmM|EDWJVtTڸASy^u'7h=8'x6?8 $A)i10Q^ċPDZRF\kMS+^&7)o:qHgƵjӑPY<4Sǯ8& */S|JkTz1b,k
+gFA6NLhYqѻkڠWUYM1SYצ7qbHZ_T?Vf׺;YadRS;ܯʊ5d6hc +8DVoq8uEt?;fαN'&R_ј(Nl+:\2 zI 1=YmCܴ=KoSql@PuOL'\y2F7
+ڦ+2Ei|LA5=Q`cK[#Jpcs	ݪIw3"DgxiYpêlVLU[7)T@
+>OAH4fRf9 *s^b4xlz}lu9uz"&ã	f+>X LeB3([ƥ?0,EK29(qE'.ahCau(`2Q.N΃ΰs|t1S={& սfr$YzK|9
+n˭-qXZSLU2R&ssJC!썿݀=q^7a},x[мKɍӃ mq1k|73!<0U~˶ks7n'LDpm8_1n)eZ8N8h	IIKU}:7(Iw?m,3</ )u)b)8Mab291`Ʈ[3	Ð3$L^-A_vNr]:cWb:w:5Ll09s8&LI52>d;hK=V0}¼>磴g*ݓmosg:¾v { \+Ż=aT5r6ӨcQSl]W#t!Уb<i	*aQ9*P8$ӛdYS!`|.e>eY?)q@Dаb}ͯ]ρi)$ rkiQuȖfT{T˷I/Yh.cL9ӀX\ 42#Z\u~^eatDACg;=z29yhހKu[dxg$2C_);xpadH
+ AjN1{LJL	wI5NqS"Ip qY ЪsJƲV$].ӝvYEh_LS3#<{r&p+T<03o ?$"7p<]WQрUq*_E	i|+Ȭ8с\[dzNb"I͜lvQΔUT1zDǇ
+AM2(͍ad~f)1hhvn[˓%YR[} [جֶ|c(^Mt:+o\+dt\8v¸GAʩ-{3|WRxx5kp\bꗂ'*&ؑGbns/N@DgqtZPB|Z3܀q^c`yy^~.j>MO7ґTPI`>VS굵&7Yqٿ>?&aE4P4ݛ(VW|`Z5Zꎌ$E̦pR0^/,a%R<GqJHƜZ+kNx^nUKC0rIuJW(+>[GhUO 0;wLSI=f?g{֮	ņS=Q}w]9'pON#ovxk`wzN\:lU^VBFI0{v
+ypRà"]F ח?pl/@iY}inJE4o-[ .wPtFc-YVθ8g9q>8Xup4e)zRKƤ+`>jp%~c0-هƛ3eel0Eƛ36ϫrojF1&QѨіK.1}i2j 3V@g(
+	0ϰ=ǜ[Y
+rA9GW3_oL HS!YGS
+C4BJeh	+-GmU5ga2ȩΓu8>3uDȸw8 1gD`ӓOP:~JՄ$ʯr(VX<]:+&Te[]mrhrsT@j%s󜗃{i:][1nbJydѱuGL1ưD^ߊu,oLdӄѱƾQtMw~Sǀ͡ D3J -1K-G0O@A@w&F)CDuD a
+El>o/]Z^}WM>AIL`YbiZxQW7x/V=w-u3qcyvt(dLhҨ[fa
+xskĲgLHqMe݈&\si)||by(Q]eX, bQH G@%{!|J+j)DW	ӫϘ_'	3wM'[㱲m)lshޅ2뒕-Xă	bxnZjFəkڷ(8F؋t:bKH'fuaޤ O^z*Hi@9w9{J}6[/a*l]e\b͜]^XH'&79lc\׬'Tdjl#[ /fOZ:E7'ϖ~;|u/c:&TO8Z@N*C32T{vog;4Y3TY>'\o6vk5pOxUhGEi$@P`QdMce?onrglzǙ7iM]ԓ%WPwXj7Ɉu)A|_oF}?5̇7íA͗ċqwތߑ=lISVn+`Yq<$bi&bٰޢ`n))6.[E'V;?RA&*J@jZMvlg?
+=L9*xH/YqLn;8Bٚ?×}8oo-S'ȵB;鎒N59Q[';&70M;j?;
+RgEV(!XᯍFgꮤoM]B PHEz6dۀH67"uz$k+q\d'+9٫Ό+';\3ܪX]Ұd+X,^ \on15۝qZ .4ς_ndi*e}B:SFm؃j;9:Ӗ9*3 H2ۃ@SF9*VȧaC`r2`s40,TgDʟd3HmoYu7YEl[)bԸ[)|@hb8Qb8|9Haj=ѝ2iP /ѽ aS&i.bz:_,-FXףpnueJI',XNeH'PiXg.ݐ
+}rFơ91a*ބ<mJۘIue'IC;U#0y?q\RdI;0t30s MN˱\>>~L@-:i-gB?Z(\%',qwBdw`@e7zެo%i@\yʐmYX}aI7\X̗!;]5{0bG.<\<v
+=h'8
+s!y8V;y]vUc.CX3LĴŻEvLԀ-ĠA <ܕ"-/bT[Sw¹6-GPߔXs7qvtkk,sds[UL$ld YQ`QqXQŖt Bo2RVcImQ#_(
+.v;^𩑤h/[8tt.Yب'qZ[KEci#LEQ5OC}#Lx$0B-Ἄڴ2bVdӆQ~G^Goj)a3>/oZ̓[K&><<8_p%t:/(I?ɫ!j|m5$)7g؞+P}4!`]W!~W-oW.{}͘JWp&;}]B,Cn@Ѳ࡛cΑ2{Yv)1Y;713/_`݂^4«&.%>ZE3ab~&9v}6/(-btӌS>뜐dMOSU̳ZNm~sNy0I9O"@ׄNf˴C1,)O_^]U49ju>~>IɍyGgH/r\=iUD4Y/
+rņX`wբ9Ks'Zv椇l};'RoiajѰBOjEU3	ᬺ8n>RpG\f/]mϱhۆ!lQ`=*]l{Hxk^%-*_D9ďb9U"YFV/݂TK͌M[J-4;6"тq>s48{bs%QfU9*Z1+?лLΛ;-QdXRCg8ivtB1z?_6-7'Uz21яo^>F_mZz`u0#tSMY!+e˰
+09JˌL	FXzf;t`@EҊK7HU:KREAN+*!@0(Bkǚ"PT:_Ŭʦ@/Kɗ?^.JT)&٢2
+0 2^g!HG1|OiXd3fxԜVdWyh1Ճ[c`'zvzgn-e>?Ge:yxVؤjcu7{F3hՠ"0u8xf
+Kh)433i9f!{vmm}8n<*n_lJ\t SMȹ^m'˲wIGY494ee)`ɠb5]<w-GfgF>އ~3kI		Hfs&MTe<ˤv& fqN:N[l:E?=dsJaIIDl)Nu?2Lܳ,(g?Gzo7Myލmֽ1e63՝!B;[)Ka.4>crzLO չѢN8u]w'aƝ^0>v#']ջBA>1m042FD޷WE笚 ]9ѐcWS;"Bh%zzOg}=dy]~EUvcE?_N'Xj.sʌAyoϱ~CK$1{=zE2}Er5=)?׏T LxGḷ0}Ex!ֿvjlao#z	015$&e\q~{=GRtܑEeum˙ǝP޾w_QAׅu|6Ua8X8WCw%LM6,
+~`-pM>AI1=-/͈rG+C^EPy7~>^yQԶU8~^a:> PFµ:]j8$$ (Su=`ևw!m4K/;_u>(	=Bh_!`6aҊ[NtKtNjfs ObI:ͻCJ;.i3Oí8VF2/ZX4	\8Xڂ9Ǳk`hvK5]Zz@ްwR%nԋ{tDw R0G.8^3 ˿$9NC0!3bU)o9k*?<8U'?8 ic@G2~jAnFGdj~H2jT@Ք*/\e1:6'i?*`U̳s@.cZ(#ǴzJlnH0ֆϥN>@ƶUE+pwdd:l,_hR/'(]%eI:=*ݤgz|-r_èFأs},P\l|p4{r^2{'3x.da481[j
+?;K;O[<6OG:{X朔Ž~lk
+f?g+#YlHώ㳑O =bI>>Tu3vkEL,>vRTy۟XNb|gqI u*3	u^Qql+`5<Y,7+8N+ _$Q@#%:PTC-!{>J߻u/a!wG3Ybݠ)\Yup|DZXFB+6g0Qt\Hg~4Xo!kp3F YߘjvyM\`̘nrr~Lw7M__/gcd'&|8ӎrTNHcDtk)'U?r(N"}~0AM֔_X)s)\a,:_t+Ywi5h5fëěy2,[."Gж$Ǐ=bXV~~1U稓:{,7{6{Yvz\GqHfvVC,n
+<t|KG+KSVx˔:w;S3̟ |h }>
+ˢ7jW)pDly8]F,/0*Aeӷ{Iayk%\%FVC%bI;Z/iZZʂ|9#1Кq.
+-$FSO'zoV{6nl8"DWS67sjw{} Ǔ>ȌpanYS`ǩ!f?vN}Ę؃jt6M*
+9Q?F'JH @zv6`9nʒp)A&LqS-X+N?/dbP.`NǞ- Rihrt}^ON+-KQUIz)ZD)m[LɆ(9
+$< F1'`0zٔ+؏lb󸳷- ˋwxWՏX 5X@Z_#{"ul@JkON0o
+$2}ku8y#dߒ1{?\xD}Dov(MW [G~X]`ΑyuBgqzlghe$MD\~y{XY	 ZQiA>
+ׁezBSVLzygcy$6Y0:MFh#>pwcudX2gb7\r7pw:Rč#\-|zm1~4oc\xqeBB}P^LFc޻xCDOw<_<{L{YqݻuG?xtx  2
+Q,pBx	nJkャV@)?SQXVSS{]j `Zg+?[s*_	otՀkI$qrb2$A}TWz/<~\cTkR,lΡ=舾}a1>W|iE1g7N3s: ~Jzބ@vOݏ^Ԃ!!dZvk%lk"
+XҘCRqd)Ze
+}$}_G>S<渁JzSIsxaw<qNQ!FM`?Fŧyz`ĸǫ/_$'ϩX T`5ϵ) 愼1Fƕ.ޣl,UB[Ū>-х#KB=z>Z<MA)knaaS+,=} U52Sv<̽fRw&MtXIͦ74TFloآ7M :9Zu<&!u}S\>~<tc?*NvS>㸂Wqs'fWr>+<hc K!8''/?8]r,~x4$޺?ӏ4[f'4Qu~щ\>BA3FYe7
+2>kWyeݬw=+:M([遻dؠDN#[lݾLv^X!LMi@G0s֑R{;Dk}eCi3.]d~T[',۔wDH[gVu{[E6`Qoo{9αzoVX^Y(ZbsyvڠR$IHP"BEcE=de,dBX pz~ 1꣼DB#0K3،)7]񉳀F(2%ʿ}IbAO+:ؓZNs8J*qw8R2D >=?:W;'fanoNCp/qOAd%lbPAcZɸtkՊk7㼯8.`8/Fa(Qy/%)F=!6>x#DhRͪ-*V?h+ó9 ovu.1(q'|F>uyhE%DGKf2} 9>t2c9W%vrU@YH1<(11[c]IOZ=Cgq}Nw*P#[-/a$F'lD$d~UQtӞ+,ӏ2'S7s3`%TPpSK}{X[g@h#gllC3a2կ{Ex4c8~.&xO$4&u/5[/[T[jPILxZ+Ѭ'bƺ:WbQB.Q:^]8_U7-	[ZgȀ9ћ_ǫÃkKiwj=;		0/BK1U2 yz#[柏?]h5Aʤ@+9ڦTsٌP7~ q,]@SSa) *XqcxCʃ(fb0 ?S\@&1p]jT8k}?x;ǩN(-ݟ}aVpO{?N~4=}`>:GUq\#6w*G~
+j۸*1(uZ\%px0л82Vkuǃ#LHϪSwPiyY2B[C3/1ae1.1ƻVԬhᨁKѩ>u/Nfy7+ո,ɕ-<^Y(1@k9p/+UO|Y}Nnoni'?[:YzuU[H+[lo=F([q\,D1]qzNg,0{>*gG.Q! 60qXAKH1R47W&>D$|x)|2 *z/yC@}ru{%2ff n|V,:&bߡ+Ll<_1Hj3Iإj|ƻ/޺#Lo^҃Ó0D& s/YrN9*'LuH\m\'F>HNBb[14Eav9}.E;í1?Uq|RA%qݹ3 ϝ9H% z!29|{㫑N}/!`zol|{;%HotNq_؉>0,tk֙E+J
+<~G@|oyC;{+|<;|?x}~M8/o@4wv{k>hx2r޹-v >8P3/ǵE'ţij6vteB$\p}BΠ')ZO'v`*_y4E.[^LRTU>nϕ  4[H^ЗGنN֘Sa|Z93FܻÎ^ZBe(Dи+cM=L׌~]?8]ϵd^V?rlT?98OOT%:56ĳUN@rԙ7:;?9{ug	6'sjXG{0p?*gb%A@g!;zX^O1 ڎh!6<VaG9azhB5>C"
+pf4$@ԃ"=?
+?O?Ξ{uQ؏if~ՃpP{`83mɣJ>F YfeckA1xE []2hn/?o/"u {uwosqv-LZ⃊Q˱{.zw 
+ IV:g?T}{@ˆꆧ<o_I"qABlow[..A=6=
+Mw5ؠ"SMO΃wTΡ#P9׊\]z=osÓ3{pg̑`qsf;{?M+sWr__ͥssSSw!Wc6f/q!6Z-P~jՖ,ֶ>_ؖ"S)lb;rL+4%_Sf0)Ɵl
+ՑKI*ճjQNltN
+S`"b~d-+LfSWCT:=Zj9 oo2Xt9,8ȕ-CJyJݑQwFQ32lrx0ǣ nT@L.qb0]ab!O5Hvi@|\H֒zkU^0ݔ$;E֋lKbyb^8kpQ^IPHYi =b%,I8\04Ǌv^⡸y)u; 혳aCUE
+ddġD8%-c'%% :\p`X:Ru'	,0d>U]Nyi~94)WMq8y,v]/דKXuv#5wVnc&߄Ç^ҵ$~iC|`Rgd^_]LXَcE5MڲvlnY:*8!24e%!4~QZ_ѮLǧW02թ@ӭw[iCJJO-QӺbs ܜCék>7PꦡǿRQjgVO~fJ<N+FF|4t˾a|SMAM$e0LSi_aq3rqن$&IB5~exץ]>e'7@`X-U[wB2֓D
+^/%5&^jHZ˚˃Rbڬ+ZM9q8EK8{Kx_Ip)_+y7s攽I\mm P8\쵥\Mk|'*h
+{Bh0fLΕxL^=&ȻӨ(M46d!+*h=akl"羦	2w231$OrsĂB
+'ӽdXta|쪨vb}QyV3o2*[~rv:e`g"wL(@':73_k7RBH:7
+I/Ety߂Uv-t4Z:IZ/hX> $e?9[V8)gb"`o7Miae~"ՁɻNXft|l[_$zW`tt*AzTfj%ޥ/Qj؞$[b6hTO	FlRidʈE: a|zG|.a6$zf-hABƜT6K>]\1;=.,i|ohntbd]^].׶`A8tߐb{]xkE!$F6S
+h/lC=fXl/hZ=g9+y5l|x1Ir#%\&OWC88yy|Ukׄ?3dX AKyMQk;X͟ŦV--rO@R;apLR:N(bv^;*ૣ, S( aȈ_B~#DR}!a3W
+恕䳰%NFgF^o%l랸Mx"<Y}82&$)៽=W>uR:" bNrJ*?qadrˮx$WM9SΥ~Y`,G2-ܝIAu&
+,`gYBY6aV\Nvv.X	jHt&nQ}sfxʮAeݠCH-=F+axM=~{iu1g7s?ށL UA[Xr"+7،a:%8Pi0!
+<P5=S
+)?!Aŏ=w.U?hAV#&d{#a/ȥQuU}>FgS2-f#c)vp5!De0eIزO/4Oqڎe>..G90@EqeI?dKh:ߢK,Q[F,z.S,(vl]K#4𩍼X_svBcH{Oϡ{̳F$/8JMC4:# c&lI1?1A-)Tx02GhvƔ[?n&!}VE]I CEJ\ĊIE(W-P8CgHA4@r+9S=(@+uv|Mm\i:?ҶpDUͺ!@~iNQBB;0ib"сPXb	YFl+YOg}?L`3%{9\fوi2$%RP2u.ӯ+oHҾfnLtm1Ɇt18G5aa)Sg"V~yNhql#I4f;)'s;K'7lC#$Y7폦p.'"-(lYx7E8NCAd50+jᧀԥXӬ}a?~I\a|x'g=;N:B:fQ#wcLe8-`WVsp%EOnP a؀S*	1Ǽ#̬<Vq # iZRN͉R%b1^uƿ'Ű,)r	9/>&x{l|[#"KDf'?/	6Gǘ]}x"(# \zw
+B$$6bN_yBp3STe\SG^w8/l ED^@UR*JK&P	*679<8@Uُmu"+E5۱ 2޸Be;%,K=|GXi~eQz6_5WVlmuL~EEq)*/;V|s!ǮFE-ԏSMJ>l ʶb{yoGm9ƻ\l\ŞoUHͮЬ꼊Uj2[YNjYY7
+?F^ɖ*ÚCT$]_{E:mzdUP^G\H=xȂĂ&5 	,Eg<=e	pXA?NEs].2nߴ(ҨABa>hv]$Zq&+,*77N*')US{HdV05: H4W\	UlUuΧ݊`~~/Uψ$&Oؐ<B+̧ɺ$MC菭yy@솇RƜG9"f`B+&dU7\|xbnԫ|v^,8O.`G>N"L[@hYVX/=WDktvelM$O3k2'jv !Q6Ȗ_5+#eJĐ;^nTzYïHL.Kt$B˾>H]y?&\wN>{z:pd"έ²~"Jր4ЩHTu@;S(EN7+ġnv(?U˗<+95ˁ׳Yu|w6rdPJjevZ}`I<S`Z(lYF`6aϦӌ{I^UM6HhY$!I?uvK,OC-;	uإD*c`b1WR5k̎@tDn)}JgyUqb39;tsf#xeto=di@S?~Ƴd2TY~rRWoDw틊0+Nq/Ww^boq^ϑj}qCF;;IVU!~p9\q&?'s4J|ieMǄPm5SiYgqG8o,v/3:)nki(	}&%yWd<y Ü֬ƣQkL&#Hc~&~%ŃVn/QLz{:Ȝ7;a7N*/lg1cঐ	uO6]Iokژ(R͡75g]tM0X,ZXj6^;:q@;ac*qG=HYA.uW;fy5%nq	1!
+Lmz2#J@C}5ɍgM* yw85TÛ8e4j=kG9aJaypAN`Hsή7Sk>!##BurIZ;.ƘGn|vY۶!<6 F즜]CιDNרb@]fWcpQtrk;FW6<JL#<{Y#h[`TڒӺt<_1yC])g5NIM& [eB:eo=c$Aķ,!/U" x*^h!@bhhĀXP>\Mr;>We%zOGߊclwbxr
+O6i{t
+P[)v-5K0y(ﻊ$+w.]PR	ua0R8Jgi<w+HӪq-.iw<dg?8Ǣz|[fʷq$tCpng9;[ЍA=U	yU-_D7mYD8L1q%jdC!Y".PJFYDa~>liqaY©`y]XodoQx/@,/y7PZNF!?jcd4J:)Nq\@zj{[Gg`4ϫ&5{NVC<zYEȠ? |置PGlR懥Hxxtj\o+7ML*)}vR^2<q^9o|wg?y+0]1gٔpawv;;V.$grn2;wjq_÷ӻ卒WԠj]W]L:)y'̲wtE6PfVSh/gc}޿egqyV/8}ЯCi%,eξsEX<f.Ӝ=ѫu b!|f6ZU b'nMK0
+ʚ)
+`vB5ђ#X.Rٷ6keuʅ76?Sav^]ǃuI"catb0}mgopHj >wr$-tT>HE|@{yYl*z87uLOP.9e(GHcvxN3>ߎΟ<{Ed %g:0A֚aNXX 1M\"e.^0TWfI_řsh;> ˳slWADiFf84JUl]Y5>
+q~?9xd[X`^ܝu=.cl))dGON<'RC( sNr9]Fa`,kpc馉MRɌ/ޗw(̻ew#gFiDM7+4ΫY9mj~>BzYA4e7>^D.9E#tA,5\-|ԾjӢu">i;U?XK7(2SݏDzbum`Fq4:%ʦg"߱ME!~&Rަ!aR&Mn59r@&? s]⡡#CCmJzļ=[
+(Qc2Xʏ^zI8tpU8Hݝq}1$8q-qOuV].#>63[tE]LB"@ʗp8_K;mz=^$ C3ݦ\̌b,u>O5%'>7_|nYqEe	绯DUO w6=0T8>ؒ\=v@'e!A~OwTDOnaEwp KaRҨp`@-+iyYคuŔ\6B1r@/)^( '#ƄJ !X}A5AmTD,}`4R+*{K
+3f%Pp0:V\o9I3d9|0l+My_=J͟Ix87F1te}(ᙒ8,/5;ܢ.4>FbA(KfUvvE)MOb-2ʫ\_wNFV3Ec}ѺWBOvϵ<g?tBS+!"}1J?	OөhxfUaV0;X-1)~2$?f_Ebg)-PwJ>i3vD1i1);)}<S*YmfЬ0ӱ{ˬ|-!6šh,+,`q*GKvr&`dl P>HXk&Pª谋GF̳37MCʬiWn]WG&H`Jq1{Mϱ_f(ykVIjodHrww\@4;n&-AgZdpį[h.з 7_p1ڧa6}7t0O86g9#{wxxWȅ7&e*1F#޺p:)2p"lS$X(du/		d7%9
+Wp0Fu`b40(˶eG5cyjԆÒ#΄|ca̶j
+E	~RM/ocKR	IO.I7x	 `9 \;l@Ygw߂ *M"`ךe(묘Q@Vŧu|C8-c2d]ue5:Pa62g{27iR{%Vu$V0@r:lzM9O(n,ʴǻSozg Ó.E`=Nxn|ߣğKi1Acfx5r;n]ΰ{qƪx-<w)kPz(,C8~^9A<]=e5/K2R:eGwPGvg&.G\j{Q;XU|yfIJ|5IMXpHu<J"d.á4;6f\tNiW37]	νmwߚd{y'@unon.i{GVR%ꚓ.9Қ rV]0Np$";>נyC=ۜ{U+%d)ݐjc >^_0}0vNOuIs__toO/ mwmnF;<@}k]0T\Ta1Ar"=,=rMnLF>>raw}O4&h!DK08o؈jYk~]tm.M}EE{נ~9PS3,B|xntߺ(.PǪybQ` {ۡڴa|?na1cȒŢIW@*_9jwaI_+ZP1VӟPN#h-.#lFWG%m$?-(9?iqB\28oWsU~q/'/TjYu$cV>f42ZϦ,
+'}qR
+C`^` ;"g>mM+ßvC<dK92l"{1ewa_Z2,gˆIOZM4;F'O|Rl075QŹvf^{XfBwyeKH6tz`vnjYݘDo	ϗ)p:rL4V|a.lvS5P^lW85J.V t"xS+
+𘊂@8LI@a-a'6Baaڐ3ԭE&F/ÇSHSwtK$jCM۹nJih^X( X
+|.ϒPd<[s^\Bj0/?`-}
+z,kAz.ҩ[q+cy6Շ5Tb~ix7Iu}u5^FG$;YR96æ
+6cDg=0	:be١Cm|fўWu#b/	QQ7da##28|;+:LvfH<Tɯ`&k$$SBr4	}6B_N$:TͷTXQ,fqӉZMq!^uW`c2{OTNp~,Ŗc+x(#lK!ȡL*̡9\>Rٗc$	r$%LOC5x*ʦ?*!SeNe窘qTճgeláɧc ,:ˉf4JٛMES=yTDawXj':or>q;pM;ͥ߾NX o2B W/2[@L˯%+v.o9V55B'*m"EZ]}܇<237u;G0iY?|dp")t+lrL 6@13D	$|6NAW
+L{y46Xsأ@)Kf?${56K7\Y!cy'|7qc.:!dső-lq[&׊l̇(R !XĬqRgθ {8GjRQNR]Yu4Xf.PKN4=X#/A2	lt8LqKyP
+e/pW|~CNVXg	HzTolJD&Uu-f?Xkuo~7w}+=~	_z/4hG?Oƙ}<GN+kY;M=gJR)0Ѝq'
+I;y#jNZGyXG3R:4ٙ%޴wxF֌S{;JMW~uS[,îsrnqDj/!>T)ں̂74xeÐ&jSD﴾@ޖUj`PR9jYRa&+;B(\X
+R#)3ɮ#$a:euН8F'D3 9	"Ԣ;~m V"+LYa2D#--Hv6+14ݐ;jڤ'LM UFv7-A@^WxmQ\2ϡAv`nD
+& Qm"0{N_/%0(*}h17&<k&H}i'~ ^ϟ'R& b6ȕ?!:VFcŬaΎggm9u3A3Op,C%yh"%jnHYV\W( 	?r)UjfeuWnJpq_G68K#D4\6͐fƹ1%_Ib߼y{Oе)c	<\XiqI4zČFFvFĩ'FJaeU4^/]!#T[V䝻ꮔ`(tFż'0ś;s7:ӠMCOіQ,(WXنm"tmxarcRJܧ.DnR,le*bТCWB@;?!p:-C*!HruJ(el4r,bUi&@&ίl=Y=Ǉ8nc}kg_x޼zǌ,SimA7CK׍H8˫df(p_Lձ)4RmSTo=R÷SH7)}dkL]g]˟o͋w7qvEk]=àUIRʖSR~u;&![$F3u(*_RRd6D
+[sU4tUwۦ=AXpܯ%
+:%!	Dq0Ur<pL1HI%D7Z>u:L|ڣ]of9)[MQٸИ9.Js	¥SJ۬M[xy52Ԉf-sȼ$H~$14Z9%tN2fho^_}3d3߽xCs$N9K"ұo>cL1+}3!3Nw#N_J*u1+:XFtTQ:k1g_ \tC&p)-B[;6I׿:WO.B\RDmE豄삂9l,4PڦPr+0
+a( :IT8;!zb,[' 2ίz0z>DdOf~#~!vyI~fRxbc/Ă	7'b5;9+5`UzN^}T(Ô+T/:.P7/{g_|; SJ2ZN9ԾYʆѳDf芴HJXThsJo10%|YߎeZL,~d[F	9XHb+WRꆪuZcBg5fD4k/GGfFaC:uvx_`&~J,Ƭǟ~\=jzwAE/%t]`]3Iќ9G%U[ [{.㈧N>޽Ő Q>=p21aqbwOǿҵYI?Ax.Aڛ7Îsjo1.h+{N6$Qk.B-\a*MJM-UcC*'ixw
+eZ|dV:)|1+)uWSpFJ= !&"DY8ۣ&O/mV`0Z{̋BL"fUsGSDe9z*p^U)_FS)C5>t"-뜭QX
+ڡ
+6GiB75_`+9GW?(eܒ?";kJVIZtpBX})ZS]Qz
+J.Yr%It8Ôo|62M5ὙMA9T#d6Jv3>%exr]
+.cKi^)"
+ݳ`û{h}9T-=8,Ĩ!>
+yi8ԕ=ȴz1a6lQabt"KNMUVWBZZx@qZ'0{jS@)KM0C25m!-t`u8vF.QZg9B5b5Sc3o_Kb#%VWGe5U=X5?Z| l[3kjv*KJz$t"K6$tz:ĞaR?VNJ<oRAT&bcW5Wl]xvq*WBppx(#ղ3 ۫+ΖB.p^
+΀Lv2hG(y6{uptϵagXRq:3cfQxO%+N(i˙w~jfE^إWXƫPǋpKhk ;Q-C`Y~K&	2> 迀u^aJz!R5 i30O3DʓeBo=ݭRSaӒPJeԳ2>yX뒩+DP>l}Ay0֮TȃtkKt&]cfgh5{rsD%XP8gwr!
+ Ejɩ-1s+9I -c	p8K+?w;`Kr>-fۺ{¡hC',nd?7{]lH9)J2-l9EqfCt{o' <HLƑg8)1m,"/eK]+Nd4sU`h6χ'勿{ųmh>C z8}{w+m9sۄܓLrwgg8E2PJ714_9̳c*9r"\Q>QMk	fw|HMՊY/A~SK]ܓXuCR(hsQD4i#:}{l˕js+>u"9|-k^Jڣe>ɁcGKrѢ8Af*"D|^F0U`T(xj35xǠŐcfR??>j1.1YšJ&t[xD($Ռ"r.gY޽WBX)Da{7aR^;HpUF_{mͩwյ&Im1 IKSSi5DV1(fb0u>ob[~s|m(߰6#3kS˪ZhE9~H$vЙ[dpB}<5#/M2M H؏:3S0҄?GQ@G[du l)_>ukjMA2:?MebucUzi|;ͯz1
+rP0=7{oJT\}yoj4h@ko ç<?֝c}׽nѹFfn9Rɽwevw^תmw>&ťyc+Ҿ/QWk#,R6ڴeyNъ3,j*Z':CH~ɿBb=n5ꤔb-{Y\\? &u9l+,uZ#o_<A~@5Ͻ>UiYx)9,Z(NS&x,Ses=Z{vcYs׮='Lٔ7yhc}d
+Iq5L1;4:mom-ΫF|?[w>ēҪYۊ{5nZ0m;Dr;ɯλJ1GDy6_a6PǢ6
+=Lhhi6"0%[T)̕ֈ.N#?|L&GI9xPOtIV.cwOS4S=SooXZ'vt:4)̬8
+^l|ꒆЪWE4PQFr$.^`Mdb),jQLW)TobwbmaVѵn@3d6;qeQPz>fr<!e_$,%:d@fސSBьgL.CxX[elkEu˄$Y>:WF<0mOBNm9:snjqCef_
+[`2n3rΟy6se}"j\dZb_i|W]\޴unI{lhMf.lF'ʶ0FC/!Ѧ|*#h4<oD	:~үC{3?6%ʗ3IFFߝx!×FF^36gU5YBYeXx*V'[:'-Y۶0D=ρiߐ SOw]߀NX_Gɬ`{k >9=(Ϋ[nJs?j+HE/lcbK^}л;M՝D~%us+t6qX:>d3w6Wec+c XVFbW9!	 :unW{6s5@@f^L~[5/..WzD`@1U*ROP^ #`*7jð+ό(*x3&fujЕ#ˁ]fKtC׬,Y^8bcSd +z/@V}Thp̡{^TtҬJb]a_%.ڣPZs>$>hB=;:Z [+$(7)kvV<)"r`Gie5܄ْ9E[DUi^
+M&p","AT-_7;p2t)N6|ݳ{&ޤssmKjya<ך_FL~r!%x$_?.SH׹3Ka߿s+8}ǌGya[]&|Ś."ՔƠ&(Pؤ;
+Y[=5nvĕU!ow0[dw$M%`&}9ӂJ[ 9!˺zP,)~Z@ Cb&hHL%.D^>);֚jY^=Y@E49h[W{_~/WyēƾBUQ{*8{~['	-񂠂I%u8<lbnT3rvHW{@>	.U7u8$Yj
+2n!IDQ"Ju2]"E)/	d8^}d@K1&s8^ӫ授1MP/G.:Sb|ಠ8g'c?1n7Kё4;jn$;;[zNXNB=";ekund"~œ}izl/-ieu.h(/ܛ]c2,5d-qD-yʟn+j5k'@7ܲPk~,;&N\3{Ayḱ9F8Y~}ez(-w[lN%*<aJEa}H)6>Iqɒ	g^Gb}6S!.8 ӽ6Hg`N;]Gkg"F4ww	ODޗJ75OǰҬaҾN!;9V_xAy4(i..zTM!3F5*I=\V'oaʮŨB[Ou&%*T/@1q6ᅕTɔ=hgOF&$rtUe wubH+nStG5t<ֶ 15H@fw2ra.ꓟ¸C	%t)(@=jmi&q:+m_Ωdf](mWKÐI{R{36bܦ7Rsf,/skI_`6'hy0
+]E,JYb!yx2x)o=U\;GZ^ydudz _;?s7lTqD?v4XúML+O1)=1tFwLG
+	wr 9HȌC_<| @(ǗW5098-KY .,ȒUR=)?/'"f\JbW/%
+RUI2.[Н>g<žC'	
+>c1?f1;𘝴3ܟ N?8l4\~rYJIYp@a^Nt
+4ت=Q[j{8 D;G<{Wi-~c4Y8hpFB2?poC1'R}08}Mqdw"SOX9SngtOOlZT[nk5r=ʚ8K)q"O4@e:')"9IjyMvR71#13zxgN~IsM] FYqYU#>$ l]Rgu-zߔ iOҎḃJ<+;IopG9n{F:6ɻˬ~Gd:mB- +"j~0]O*6s{='x}:APsT餡)$>F!N6џ.roOrv\b60ܠ^	Ay/[,io=A$qq8řs$VzXrc _U+dvxs{@
+pny#rqs(h'
+NkݖBݞ;Km Y?~]7
+2ܹˡ YXfwÍ@~o 2P0) Tjln gxT
+g&EJtJvkCMuvP^QuLmrVjC7W׋!M/3_VXHy5E͇D! *^_Bߖ$<ܵ]'FK
+hu_w4a7Ʈ.2Epa?I3@4)8O?
+T|DZ)vbkʏܧ9_r>%F}cw9yi5#85;$v=d-"@43FS>ow|jɽg8qV9n؈6شV4l̯~I:dٓ.CZV7bDxl<eI򤳷T#o?)ԫ$ w#6g8 d"K5=8OJ3FFLRa!XI  -ύ/k8_*oWQCǁiqʵ	QضGqT{',͕pW`9h⸍ۆ)168<ܺqv@r3!\
+@rBۗDʧOtyuݻ
+PE H]@Y*)POC|Jyw{;?~\k;UegWwwQfgԱtVƜ{%@(I73.fqh%\)Y?~cW'mǴì6
+Ý&tWio=`MhxBQ5* Y$x56h9QQufHє3ˏNgkFdl!iɈ|SukC1~V4jyq8]i"zuLNj	QmKORyfOT!Gz5k-ıPR]Etsu	:xR:uuA迟G;毹-בdoG;+Թ4#״"l<?<4V$cEYƨq05ۊ'ar6YO%GieF4e7^ Zt#).ә9|=౯y6DI|R/Qu<ѣ@ь쟖[4)h:|ҕ@0p9r-FSCPC\]d[׋]\f}pV*;[-0?@0.]\䆼 O#>]fzK42ލ
+#CgϹ	]={ýN|6}68n_NtL;
+ydaZ6^_ٴ\ubW|^ҹj#kCzx~y7BFj?3
+u*z͂Wpno3Õ0}W5ivis[Ό($6QQs cV,%7Hd۳j=!<	NEPqsp_jE.k[_KX"1zql-c\*$MtQS[0E.lu	ѣb_9On%&Mr m vMv{ bq{bυ,6?m1qA>#N7qU1`G#fa9F܅@5Q:Jyk\uؘI9LaK=Uo%ECLdCqs娓u3zs,/x4TpE:)W7ST9ӳ+5}^xp֓jBwpy[  
+<80Tn9w,_ąW>ƿpoǏ.	׊ZZzySPdűc S^G=]~rc|NK'<"i>Vq1DĶ/&ѢMIu6beee瀇;l]޾|W\[ugЯ`aL]ۼjH`{pq9bJ TlVM>|f 9oP<p:{ACsI=(q1zӵQu(]c;f1-q@$̗.KxWH#XxY.ȊLjT/a=F T 1}YO62d4˛O0sZ Qڀ`\=. xL0P~sfe-=
+nM+25E.$Vw:g%0Kr]u.ՏljQ M%'cw>ȪJ($W}Z/zf(4w_8pI3uMm.FLI9X_FjآǠZ;~9I-_J`V6@@9a,rCտ˫IY)ez3fYlC><Y?NRԈ;C@2(yBf[Qhˑoo}UV<n$*d~:^*+7y	|?!;	hi6ŧ~[|bÔ{d_
+i{اr&#R}O_E齄相|JK٘*ɐ!΅o.zO-!z:$HJɨZQ6CUg1h.㚩OG̗M`| vu;iAp@Ba\Xt-Y:׫~]-H#G!cS,̱4?TּHxx )0ߘ=h6SVU "n^rpĕxQY>jzբ
+Dx/Wk+_s=f.*PBssxdgF[T`1lێ{2"HnyEcܷoR,]ixn,c« G4"np8w)#熗z;b$Ӡޔ?%pLOVt4/p|e90K,Pb°,{zažeq0;{B<~\kUەEaʷJL_\u=ۥڴ`_{ǣmv{_i:F9T+)L,9(D}a_̮Q7iX/fŊR)Ch_!tȯs-;D0#ĿBo幣Eq .	Cp;:ǧuI	7UŠTvO`0( 
+
+JtR":
+2 yq ̷DzFMa}qVƍN;xԊN; &v,4p}03ҕ=|	$`lvE68
+/fç@1oPcqDrF	Tр稚O,[,խ4뭎Fwt$Nn!w!vU5HYA~=s@X.H	;?j/F2wwcmgj49aޑr)c{nP:JtxuIs3s-,A4tt	7#Hϓ/Tyj"c/0Og>l'Mtv{=R"r6e<v.
+ѓ9H`g/G:u`E1c$<5P6Uzk+ 1oҭ|luʨ=;H^kzX$ŭ8[H*W̃u0AL|~_1,Gxn[]W^S:a#8)Z"(PZFd1Ǉaȑ("r/(VchlNU>[R|Js/Ld/Jff}wpLt"HӶEwI
+_NxlNG	;uLlIeH#4ƕN`{K1ur
+7_wt:DDtަ1;۟_eDDicdl8{6;<yym1	>n6)/˯;4MQ! wy\̙زb7m?_97."KĬĿ%%Dqv[m;z?ogP9㑢 =  ,iDȑF<>Z۩e/}Xo$E@ݢ[L1E4TZqy[GxsN@$BCφZD"%=*6, 5}gΗ2I.u"iE!~%гڧK2V1m1[XL!ܒ-FRo8qggrYv́8oMӯGk?~wHC(n7>6&Vv$ 3ONÇ~_3>7J\T)L0Z' /m[f*JG\-|t9_%$Ȣ9Vjr.
+La]|y0%G¢+d5A2O};d@)L{Yͦ1:	[vX]x·ݤB[@nk託/#47#4_]6DLk,1JEޠ˼O\)-x]O[±y7}c:Rg36W5so%ZJ_ue;^EY|dkxo9r>H湔w٤t1d
+^^J4b\61,1}ՆGxfw|S/˼r2ߕu~)RX.Hsj)?Wu1 v TI]rp[z\0NnUktM-T]ALqKj {vi9]3 \~m.yɝ>l]Ф[^|Pd>0'|ߒ1@zM,Qmw.:1EȺ8|kVn>PHc҃'ֶ{XmEZ}K)TE8SXqp\VNPtݫPtX<|-m<Nl86>IeGS֘-)g[)H4%3#
+HRy<)*Ǩ3Lk@bSn"#uL嚫dqٺ8T_;Se닌p֞i:z4{5ۃ^-Kv	#uRFͼ͝lM->~q4Kc?`!h.~`(k%/cyG	no;&@Cb.DR/AG"-=?7VAC=qH/mGil_&4˥4KY:I/E:ux:S8|ofNolk&ژWtt^-{`Kxpxtt|pt9?eASC8k"c,&Yd.'v|9{2_7O'#63F}LU 	hJ9CkJyɊ؜Poʋro~0C+ؤOW3G=lpA`N
+dX#"[D٠(T${Ԫz(<_s.Ɯ[]IiM$Ϛ'9o/;_v_|y6ҳ|{7'Nmt&ۙW9J"Qɇ>z~(+ﬓfw`1D=0_ц9J:coEc݁BdeS]boe
+/ZK~]k3"~_CD76vf\Po4	\P&\Pf~E]s7Ԭ(Gķ:<K]\Kk1HzOVo%S2F]\Vu$AT=bƈ^ͳ̴sZ%I*Jyyx?-ə nMTph /}O#»Y})BÔ4?[{Ǐɝ,+avF#_cP:Yb֝Qbp=KAZh㍨^83FY[*GC|zFmƋc}0kI3,+y+
+xS}K?$4T$+V8RZ[N|i.oE~p\/3ԘP6!x>It2JV`h:-&J[Dp,͗bJ7ŪZۢL[a~YF|aLǋX'tgw"nҝ|dyѲg	#zKP>+!1[fcPkYvYӾ>ծI'
+p(C:ҝ;n::g`Zi-iR?Wcg5InhZC۲+-mƐoSV֞;XYD/u b	n5';e߹/a0SҌ/ai'8OҜャ;*@CWV')r>-uSL:{5׏at,'aIc9l,}IiHz1n
+)yp 8]>sY 
+ygȵTO[}npu:i|FAub6YCa%V6֗5H'і;ϑ@cƧlMɔKUN^M(Ji4@6>Ayes> xݯo!nZ#A([-'Iy àgԎP_G7RT'Ex vB{xHOmICӈya3e0zG3 rA
+rkb[3]L4
+)	G
+)ބz|rXbLJp)0"Ԫ:Q#$w0أ#UPx_TĻm\X_|-ow*ShV0(z$8:mمě.3BLfNx	2hWWoL9}kSvE_/WεY.,kCO({jrLmOK 	3Xg֔Ī;ZR@wBeLƱtH$0j.AЯ}0m-&5ڈNro=N!'v3C6S솜0$\
+MBPC#Y$Hf$ueU"UA?k8?GD4h]m;YW%d@+)i!!{GU7bnoY^rGctPŴpCǦ^g hTŏ5K$_NXvLK[@g
+M[kN[x2\vԒz1"] C>ՆI얞-0<ƿ:}Ef%68_0֠1-5`WbhuH8 ;@^*XFzN!4݋1[#,nkg/g?ü{Kkefb]X_֔y`Q6OffReil*{2+]ьF=o=5zg*ŋ jňasӠa^y=٬}{KuP|"CY_F<W+Ab+|ypͼoy͛%o金)lV+1UNʚFoBK$v2V9$%5;fb\nz85>;%3vg)}{〭UD4ֶ4X;457FiÏisvqGrX75!Gj6WۿIeyuokKLjkN?i!yq79tɯl95-F5;3SgZa|TĎo3+}+}Q7 2њ۾]Gw7L^6 5htίk玌-hbuF0ެG~*Ld4g}l?{Qԝu^G9BLR{qP(%	FKR$Cvgڶ$RX9o~tʽΏ'}V0i[kz[TQ `R_^;%~3ڥcKN~^0F-lwwfD g6fQ4=4$s!^Q[sb<i૓ka(C=`&S %_ޚ/o-d<E3MIGty$)iVOp'S+$,zP=LvWH4
+.!;̓wwUOhʇZM׹%_sTlYQ:xKi94=/V>k4O~*а9lj%v/0lTUcQ7KI{Sû)^X8@48۹	Xɦr)	WZo o]j5RV}ʃrKi=c	ǍJC"
+ar)NCᆓrqcU 3/֍MGKkj3̖dq<`°.Z_nXyϕdeo𱖕	!Lv%h.ɓSJXj]DrQE}Wisl=QQ+θ܄s^GG̎(!ZuZ#^UooW][
+
+딮eC{s?)`pjUk0ZY렎iGvgena+~~oFXT# 6 9耴^勐Xꖶ-Y}nkʯW|mRA!mЅ@\N1K_wgC	\ВD?)-slpR'wܻqV2n&s/xh<ɏ'C?9A[Ixf]ɄvCl6+-c@*fx<=XpM4NzÌ?){
+i/:4al|S:x[䵗_Bv8Υ8{i#,OS89v9lyl˼2(N6w
+K6,2Ju?^)BP|cѭ&|ʙE_G7-D\@ef@Fqhc_DFo=pw!3fWZ5nY嗜 G(˥M
+jҫqڃ>5ZXǞӡ
+h>vyf;~i.j<vL>-5 @{";fJ"rfSVͨ~>mʼɉGA rqrSX l)vO+'ߜy5jehD{_ *`st(`7f
+;?!yIr!2Š;Kz6pF3.no{=mi=7m߷644-HӘړI[5)*#	&j`8p[8t[`yr<#JaP`:hx|!
+CgT1Sx꫖zdW©	knw?##ޑΠ8p1gëӐ\"lYLվm?s2+8-Xq	M}~Z1VJ(|KT|9U;[jWp>mk2cNDMU`=5qNmO${QŒ];/]>`	pJ)N#o"ɷmh;/ET
+w0,~B|.ΛJFr4aЧɷa=z=DMk	y-ť='#!;Fꞡٚ-_ygM|t'ba_O˯ve1`k٤GR2Dhe搩J8'$NG|QݖCTPCܚ1/A?1NKzMR,lez5^:^'tίԻd^K5a~HoxELd;%-3%NƳ~zSCO5Eۼ~չlOM$(-/-C)ʥ;\}y	[˒őfO9ԱwO{x6P^aU"tS`j㫃-a\ҝziE'f,BSoBH*L	4CNmtCN$ѐ&$lkJ<=<HyxP'"w]sǈLڰ5gr*býs?	G5fpOs`&
+XٿgM'lV6pk2[|rAڠDS9.\7bVj&[49 ?)M?%!Rz^M5Y_nD<TT;`Gggu	~"?<pNsPUP%-=h4g}^OQ	ge(o#)ul+}F+>n1_LRmu,w҂<UyLf~ow~ƇlZ#qU :B	DA.3>;(g$a5#?}. L,h^g<4L6tQ</T}<z6WAz;moFl곽_-ɇoS;޷_.,?CfK3Jasvc+΁ ݫwTwRd=ZH\^4<ǲ9;D]<N
+!`=]TnHEZfT}-]foqGkC&;q%Lx7F-EtٛT|F9 |/_L"8Zτ3:cLn*~G/	|6l[^egby:#[1=T?x9 TK]dR 3kGQtgBI>ófBE'
+D9/1f9{9]Do[ʮnRw;_i4HCGeP=u)f}K7*)%-dn؞T@uO{$4r%:Q-AzPu$8hxüY`)Ȇ4,dCA &hB{	8iX>4)޶Y!W쨱GhNĦC:_^8϶z<{
+C\sc&q$W	Rcj|[|Xn~!jn)_(sEW|A!z;	X-4)^@fEEzFɭOe#KfUXjqrML%L#QėH	}IsČ'8$M
+ #&d|g h4s>}o(e{nLRWuE-7h+L]e#xxm'#9[=as=
+9dܨ W4͖c.;29 V0\=0
+8B}кLQxIa_Lj18
+"7!TzPUmTj$5HpYd`&, .4h?#Nء˹k3]L;B^
+Ezvέ3H6.5QT GuH9id7Lb>*y~
+ @HmT}/*iQs0LbY̳Hhf}Me|p}uI-r஝BVԔԋvö@8aj[ҥ{%hgr#Bgc3|<?Q!n'oF`;ǩd
+~'ݾ 
++v156ޓ8?ɍژ5_9hc@D@eG'7=3hStȴ:Cii-oݲ,e7_K"8QG|Q;ȗm:o|bҿ% U6)|'`΂)֪]pi\vmnQF*]2|yA\M+HhO\wiNO (Fr:^5r4:)A0),%=y|ʭƒXf]aNCpt	q9MVI+iIGN`\	vE>E{ำAדjzkm\hE+&mKuyVR
+؛<Tv:
+صᅿKGknlsnq
+;YˏB-7&8\hBk5 1'Xi|>)o.u.B7ֶ[V=rixH5n[#r$ёśjfz43Ƒ4I7;u.7ֽ˙&]c]F_ xpukWjjy~dllծ*yGxלDnǯKy1߷
+]ԆEG!Ȁ?8$}>&p[tY-a}≤ءgKn 0dՅDdXGT/:o_h[>fOguGy(8໌j),7e0-stħ:grhG'iٗk" -\N6>A-k*&B:erjb	$l"Y5xG[7--4<6z.5wemQqRGeU3sȨ%}Ÿt0pWa(iSY+3sw	oɆA 2ڤδj`v!Պ@2?B:Pp~b)2SV9bdu(obbĪh\HvȒ\4`K؁&	w:~ա&^~Gm uA۲|}~|ɛUXL6\#j09>
+[J4~RM
+\m.{TF,8Ɖx#`J*af*qY=M-_h6_ce6znF5?9|5E1 =N,<dJ}E50UY%6
+tk;	ͧp6B+dZt1nͥ*e:QQJ3cxj(}]Dǚ~;of}{ؽ3n(?uYyU\D%_3"#&^t^]~A2&g7ɷ^}Dӊ7Ou2[]_=F	 ޟj>v&VK>˗"ɔ}VO>=x$]ɪ{h	.D^r?!L>U5߸/0K鬪fD#ǫ:?Z0mnv4b.Q}lklzbmBnvZ$ơ?ťuO]~/0.΋IB|Ψ \p?qϼۉnP:uvf˄ Nn'MһƷؔZe>u&  jirS9 DLg	xyn28¢GP'K:g 0?+:L}4z_N)>QД<O/Z^4!,<ʦ]W`_""&|Sn׼Dy`R&I^ޞZ_lֹv~Ü>KP1#[nr)xCUm`2mo7%<k;,˓bu)AU?!0<DIbv[(0R)@/y?y?³a96y 9F:BH1&|2Ni}`ʄh6Q&.txx}C=μU恘EJ<;+iX#C	_zvhGc&Ssg\̪3!JNЗgbވ_(=R?Tv+%n:5ovj&6f/'5?s"<68'#gcW>4B5=
+AHզ/1у&Ed,#f)0d^T:
+mG.COoFܜ)La>l۝υYT$o}Ot:?OlaJjT8)ڋn~1J_6T
+$_1 x{8.x<LYxQ"6%{r13a:~J6y6rD.F>[ՠ(4-ep	3sHz$8q:34	4!RN<`uOG3Ds[@Ay-WLٯJxYD峫H=uŔ`t%\.+/Յ
+XôҁTgӟ׵ ط$<zEjMpf51m"#I>OA9[G^Ÿƣba[ys: +8mzL01L%	M= ہXDyQ|g5780M?Nf`&o+_93}@^ܤl2:c](3Jy0_:E1ŤA޹gGB]!L<3fp`(Jd%ZV˅u Q#S"z+7]i]w=Ȧ) PB}q;oq6wo8V_(W`XD&!ĿÊl0G:G0s<DL&,wk]fcj3Sgg_ЉxHjҬIG0rZKN2cmJ~; 1k٦zb>=ir'ݽnL̠$aE:z~et8ĦCGx]sz ?,v4h4Ưi[;cj2bu>vTaR4}S˘jIcqQZ̎3\G|i+)$%n92_jjá1xm.Fw|@D`r.-G9i!:q༺3ːfg09o<"q,*[_#S~ȧvg@nt"pV[@"4Bd.<gI@.CMAM8|~y]vJe;4ٝ-5aaQH$<?MGR<+F)be0;6S/'OvyxÎNPlٶ׊b|] [[e`l6+I\*R''1;Sa.
+QԦEhEz0 q.u+M;S	>[o]L>$/
+5kRP_7#p/|}SN.UYMj0)s|ʪX'6AH=TsLp>l"M>Z&Sy؀H$n#|ӡ Wl'C%)́},_ɔ0.,TX̣|=ʊXF/u򡬮˔£xYL.8{rKa.lk+|?hV׸iUf\U1jMeepr&FeQN@
+QD5;wgᮅp q'`ʃhcq>-}:>|SOɇۉ쿾{WL*Ql89cj~//xRLcRWFnqKTk9F"~) ޹n5;t\&%B79;!5MJUo/n<gXߑˎmK1!8/Yڧ-XGl~e~"!vp	4j76PTT	',q\Y"+EǛΛ49!+ri{;|iS	w</m_ܧeB $d:C(3Gv=)9	(5 zJr)苒;1A@y<|*[þ;j9(v=M8M9^/+8Ța71w1'*!4fmUs,%KJ#H0%lƗUr`⎽๵mc^T"#ke=&﬽bSgU"X (3pQ E}4xԎV́B^bmnu=屋KnRMؾT8j2Y/kgv(/dߜ@pe111M)m.k,iR|B21"7b]WٮIj5M}ġ(|E{=7Hdy_.t+\uB#e^_ja@w$H%Y4	YS{ۭI=p[u| Wg_
+ "_obGOŰh0He!JcVS3iCҺ랥<1D)18c>d|ebՍ,i]Ac6}e"E4Gtc֎}xs<\8ۑ ΟE%-{fOof<+(cVI-+7A#Q?ox*/ݯUK!(+u>k
+ =H3{+¾Fڨ"T8U^@C m M	zq=*ljuN#ܱXwdB)I49 ~0RUfњ	~(:N)Ϻo+@v wq(BjuY/\sY,7*	[6>_Y^s4 |@6Rômڑ^ӚN;#;=ͫw<DyMؿc7D٥W COp:o<LS-MC#
+|`_l¯$ъ%` V:m#b sq!%kc>jr 9,F-"rl92qRf/lih(Ϥ_L(Mu $z;H;vr׺+M훦v6WP)H:QY^ϳʕJda>uPŵֹxgzF5}m:f`ؑV>Ud6Tszx<S<7m9:)zrz5QJ.$P4mgb8~"l9Ydފ餉x&`: %9clXRށlXh/\x%%+eHdi_}՗iYW C|䛝pàvF3y҂
+W=k6(4
+πgsR}K IAv.pPpolYs4}-&vgVMvڳĮǑY$І/o%|7qM{k*W$x'Wcfs歗,W|*CP,M0@ۄ"M#~YŞl [UAC9kˏ `PjI}*q3bTV6"$.ΫIoV3MhszIΣݧi'tLcSݶ^I`λ@v;g:F>ź ~ 肝x÷lѭKe6+ά"CawS[SU79GL"U 	z%kk{N$mgq|i'ÝQa?f@׀ϫ"FߢaW,,m	mtOy^r.fŪ5eCb\ħMڲb|g5_	)rIϳ)t(T)EgP_ttHb;fzX4a&hT8j"}'	FbOCfXY2Ք7vzze9(޴A̧'bwhZy}gD<n ?kx'vJ]%m4HCUafwTb̝I3~5<2øw2._/+93~zD[wS];yB!=3"r"B/g'!W׻&G Fӭ(zNRq=8<J$& ZkN \q7|=; llxPCw~t]'ֽR-dX/L.@6o	V˝h;JGwYlgjʸZI{Is=H\љw]{)MVO/|L0q]hqL]M2\[O"0NiЊe	;#=EuwAI8*L#	(kڣYF1u>GHUsz<_kq\Y-s<s){'ھ aȋ'C	b;/7lՇ3n~]ԶndYeu/c/f 2lCk<?"Fd#ta>yV<7
+pDYk>yzގm1 /owMg>mS3&n6Ae3*U _qLTr|o sp1 'DRT4ډe%3B>ENn8 egդ-66I㗩0yN2uTQ[dEUN444HSɰ\4nJ$N,d+#tq"a>szl4IvV'tw;)h!)5_&u܅<wDk3fL$_7`]rgAT9$S|ݸ[u,x{ڴњbj!swb=Bp8<onvˊC) bG!%)4`9Ҩ-%rLK|Bu	oyq~.і)2r(?A^NFI8e=\oQ$/Cso:S`!Cujy@l=JyaKZ╕<\0(w ҡl
+LG~%!́aa͔rW O̦9[LrЩ-׳؛d5090AUײB޾릞ilӮtuWRB-JE%$8]ׁz){y'uia]#2Qe>b`o0/O6mwؿ}]M-
+<i1"ҷOo& +^Ǫ9~b,%sUnlƮ$: c%"}DWc;mq\H˗;Ȇp/I1̇Ћ9U.cZ7.fTZ \t58w]TJgcP8h]hLI=o'}Iw地ۑFj}DD'kDO6Sw<9}?yp].ҭ$~[!dlFLrhJx{yYvG?5;-u[虴A7^QAWN'A_7\L fs|}\ugkFyUSB%Pj,fg@l'cC˔VBm5|#wnTtTxg/d`#]EZ0v*$)au9Q	&ڷ;{ɓ[\E,ժBesU;4u%
+b<pCmjQ|\׮#lA:14iNJk\4pj{%A.1t ё%F#XFwA3ܮV_;Y3]ՔCnI4"l,r  >/
+G:abtvF_PգyauFzoi!㐣͍B&.k@MSwh=V`eP-R[kFbq"I&Jfwi0먟ejNẃΨ`5ˆwR\صtj%Ҷtg$d11A*7EtIWA	oV׌zsaf,xmjYV_{0C:Y\\=Ik3B5Q.$ZȚ&r'_XIqz9-eY'aHu37Әy,AX>1̂ Z$Jl4T	qIqUK}g'nRg>t$`_ٻ&%s|&Mճû5M*._}e74ȨՂ?h'[GvM];qDCS,KUԑ!9dg_Zzc|p#;fʭy3Yπ%-k xۚ.uPwP圊:Uyl&oYT!\S~"rC4_5nhc/sk%4CM؄ZMf77HSCb%3 F- a&n,A
+a#%	$]ʨHYO<R=\
+$&ޯ뚛zd0r=Gg+4SNf.3K5oԼMXR4sqqGY3F,\N.,ׂٝ$[`qgnJaP^w546Q8;-
+ʗUܷn̖dC5Rэ̌U 46~|20<!M NQmQCopla\\1n)sNLs'D3rRΣNz :
+SÁ
+NTEzȹS,gBdkԌֆq]QΣCuEC<zҜ<Q`Sv;/`q3NޤQ~Ofש]W+Tj$mc-YzEx$5ۂ97#(G*X}CD+TRX:L{G{e;r6s%rw4B=<ˡ7J+]pBB|;.=ֽ͵(gzckƘa]rW"gh#6b٤r0I|Ҹ׏%r129O!<Q_=xh2S^~\mtLI-tv1r-ס;bI.DG(qN% <qo1Ԁq&pBCw Co(6oP2s9zD^.+u^36kWyI緷aD)ZɣFYuv^H8][+Uˋ`ӟs"~-DH#^΀UZ]zL1K/ZaN\ztܶ@{Xwڱ~a1H|C'8C#P|MZm@%陊Kkv/xnÄX*ϺjX]Vĥp<ْ໘:^.
+ρ͜i{㛗ϫoճ[{=?\Ǉc{k=dK{.aeu]Su%YTX]Lks8sL|$dI/pETۃiqA~zLiqt/>٧#-P`OG 2$4z}3:n<1UM!v=5d÷E51=I3m\cVVɶ}ے[ޟYHVlIݞW\`)+4u~OG!E䠩&&:N3%xdfæZ}/vkw&ስ	Z*JW뙽fQQ",k'JFM7Θ<#٥L,d_RߧB2f<~᜜5ضqa%e(l&Ex3Ǜv!Zx=];N49vդvVCRA9w_:i6LE˫TDRӤ;M$Ңi[ulv
+ƻ|`u?1:Fe"YS)è=Oi&ڊ`>yMl6zKV03K׌pb694	C ]3vԔ7|Uwlc)-pHC䆍+z,5f@OLgrI|h3ee(S!\aN;4Vx,dtP>]''VЀO4M=luW2@~O	iuI ɻOΖO_9&
+^4VV#_سk^f#SxO"zA(䏄}NRniw,m5|r1؁jNFCCHzl|,kVLmA_DN\sPGydǱ]9n	{:Kt0Д:jnsّwF5s|\^5hMwjEeo</h5'(2owgV5mpH	~ohtR&e'aG=ܕxZqޭ.(l81c1cJsO[\p١m>w
+VeEd~2M>.>Ku:әlrk!C>]3.feSVSzVzQnnЋ%GTR_F3T^2p<7&q-x$~?mJmi'!r;
+5/AW`-6v	DRI7	SP߾{ZD|;Ts.J3PfW3 ](?}{R*D*DJv㼭Ϋ 4' ,CUKaZ)'$/+>(B\R3(^Hޮj:sS[)^7>]ȗ0׼!yȳ*Z/>#8^tld1<F!FLm56+;况[q؃'w0OdZ'ʛ7CޗmaaxH=tGQrk c`dZ#-xo[萉j!NdsSC[|j̓XY܈v/6Aw,p3hz9Ŀn-LoVi$L2ǰkxB;y.B%9gY%T'x0AaTa0u}xXCApKK_&^c:6GO;v L9עy.zFu"0i8!hypB#Z!1ֻ-Ms+`W9}p'j=Ln!ڹPqK:MrY\\WRF>}M۟qiIz.O󹌒{nIP0`RrBBnezEɛG3 y޽db^-M.&T6ɥ\YdtM?/ORm`ݲsgU(s[<R7>M5vn_l5.>x#=jXֱs^cHyBy>OΊȖ\UkU-s<[2Fl Znnrm-ڑ::LqO'}aUFX.suzYDrG$;p U0^Jr.J"-	kN$+ 2mzGd8G|{g|q'm$2w$jwx%A0jUHtvl-L>pE͍	3`AWDu׳!5}1C<RMKr\aa DͲ>=(nh\oWJ;SftP\$7aWʡV[ܴ,J<2aEɄm_8d34dP;);bXbfΙ%8(3Ϧ'ky5}bAƦɥ~5=ϯXھ0Ghp<=Q%Bƺq6]5G.<M;vC%k!Z.̞o=-ݿqbi4Rr\S&)lW+'#R Oj	LX@BJRr㰃&̝X[KYh|[Ka1Na!
+-.Oe&k,.2)$I<z,bwwѭ<;(vmrmtRj^,x^&k}D'xu^6<!(λPUgK RkcDN?)Ӥo[e%׳,wVn<h>9/8&;Q9w{{7٘8pGH~,aw[ݼg"jHps;Nz
+n1-nӘ
+QsoUn\unhA`C{a.$΀}pyvkEl[:u?(z;{K
+0'&Sv^-6	.5$V_Kmg0iaR&2=?-`RkXWI0Ð_0l*^0&'>Yg3@A	[6]T7K჈bY_zQg`Y7=e9ů4'rS8K߾PV\dn8<fkYi&e 40~EW;TG>C@6wq*Ӣd˩xJCeR\JK[Cl9*B:z<*#⦅׶-'ĻMj;Tr0!eSdmB\m6^el4Y.!%HYBmie0E}xyOSu6#v<c3~x7I('[ y]bҿf;|)iI  a(nJ&)ኄF*4mz{n҂y~E4dlv#L+/,D{vW)cM:q5&`(^>j[ k]-8.5WK>s"x>.TsbGdI;׌LRB?Sqɢ[mYs(R
+܊ %'$ʕ-!<8AsoT\^9wOZ&Bт$~F;jfU"9G. \Ti4ϙ c`[Wբ{
+h]7Kr]wIux^8zntvD@%j6<khNԆg&\_"+f$8sN[=-3b/?javkB}{Ct)V]*Zj܆?ha+u֧.K1!nٮFװ]0z<G/kF	a69tQNѯ:Bjh5ѷd;:zI$\sE5KGY.2lO]-ʫ^g]%FKZOq~3&z Blڈ]}ӀhD\uP:!ɸʥDjږycҤ}}.SG0vJs&WaY\TEm2x`W~S[TS){YȞu;36o=sڧP.irпHAֳ%M1NlOKڨgX<Ft9QbnvpϜL)[VqbpTIfMv>km"UCefh\q;صAfu݉Ҫ'9_V, v)Fi?]^J`xL#vf尺RQ9+Հ*q2:>:idlv0Vn"]9)I1N)
+3,+m(y<p )Z˲?T@l8wXl3yq&=T?\Sјbԉ)S,	{GKX5ԺR'!S(dE/ɐb[W<󵒁2+9'ELsScޭl'k RQ&}fDmhA!ǺMjǋ_CB0\CY]>jiQ/fgFKUl)fQyE $/:B<ŝpɂtGDOFU-3xRJj.ռFˉ]YBaIė:m-KC`)o&L2;]U>Gn
+ktd127; e7K9e[nXwm"f_A,=IVQZ6kF@lNn{Ʒv았eua4 [y6%Iruws'o@c8񠦆]+.)HZ} EU,{ia۽jI!n22G$n:D:pWKߘ%,Vᚔ3$2dЛB~ib)!)cH)C1$Pm|o~wT#K~"M+W.\`yq_V2ֱTC(x'
+p6~$In#Qłyױ:eo~xO:O{Dwh_dYyH7/޾c7Ir_91g$M|GiOw3nZ(ҴV~Xqw]mOզ/Gk;2Miy}R%3[:79'\&Zi\M0͋IMm
+{~EMey^H.xX뫉7S6'5stLAM!,z(X=Ϋ4"XT$?%'-u52m]wIɥ9$f3w4LBQ/wg7~t\'I?Q3@9*ݕs3&kj#io5sxx֒uT֭3N|g*pCĮ4[abeX#y2;˅7|.[mFY #j8w,$`ĎwVo	-)Im[D{\;B&%=7DUtG/
+Yk2C/h @~*rd8MߖC/GK!caDS=9u9so#Ka t`iCf8,p+hTr9A4!N=Ilr<u*ld
+	v̟x}@aj	#pEʬ9|
+0߀lvل6-n7q*#.p֍%TM8/2SR6q`4'uтhܙVm|^d<Էp>|zqi-,&ү<2hek\BK2}z*2TCqvw>o~PEDNaUcU4	F)Y	ɫ,7n)/%_ߠd޳HYDVZ+;Rސ	.[ZQy0o0Q~
+VKqh6Ɏy{a9?4jrNzwpZ\=^`emhǝnlun ~iwY,̗WrՀ@[ElEeH`ʳԑ(H<M&#)0Lm#3-q>s5m[g8(ef2x*>Fmמz1 $'E),Xƒ̑y&$;p7 8~yy$֭jե E9ɞXDweUժu?Y,\u8@"-P|l%-rKe񒏥}*ae8ь8BB+
+;-nw1TTDX|ƀɖO3s42bgR#wUFI$gL]yfmf;j$tNI\&2ѾqFAz}%BEk1k	I'}m{R#r	y_;$j<&-/cj#HOK*[%+R1[7"$e^t`1e $7uGW)'P+cRqetм~(v:oyoZ.a`jyᛩHѺ;P6I3hUi=EY+kvY~uBҵG<8ÎE|41"|20[ raQUSv=N;
+;<9}Nr-!1;	."eC.|Ģ3҄Mk;q]=DRHc9J'1Hާv}ٿQlN}&׼'.!nB&@z_?y4gs6FLp	57zuAc:`u1$()gj[A"wȡE:P5~P  &	륛l@z|gXA40̋3Q_e cJF"M΅.C[i+!M:{kP`?ZcXxRM>Nȣq=-ҶA+RHl	HmnS*tSa4]*.O[Pl[	]/mlK:&Xu,:&rae}K`	Nzmu#AApKF)N<#L.qV.>S7rrb%TҁKIq+toe]+ͼirJ6e_ݱ~nxPViȲZSo,zGr8/!,āDe@8k)MϓFlmInڵmsc+f1s 'lڷtpp9YK$C>X6S].,Vg?0Ntsp|
+`B#ՠA)TbOcD6IQTya5f-Z<X_Hj0)\W3},(q,`UUoit=c0S7ugWpx,8uL!)Xavi(,wy~t<*r~ZR΂R ?0Q&uj?i/H|]_OT+U{1CG-/Ejy*"^_aE-ku&	*us*gE~56R'ixvu{O;H7t-rt@T+i$mkɑ}5Xywh67*R#SeaY^U 8MICߌ"V^qKeU7/^g^ad"_ Y0srM]:5Ⱦ/ܧs'{̨:\.2Q@ޘW'b~2YϜK_cfY(`%T)/8}^NBhdDLX|+^LviKO6O\([VT =:ANv;JF;ӷW(,*/ƇP.8xރseWעGSQ&:g%/ 5J 3Ӫ΁Ok<_c:<}@W.%7;N^ʝE^
+XRx0=W8D>LXC
+71Ri9
+Msq͎ļNgԳ˫MP9s|ѩt`5#sY&`{ze#9yŵ-[qB=ۯ;lF-%|eTحyv!=_@|D<6c-yn'%@ń
+2{lR@G`~uxLY1<B
+x)%|±ټs^NQoU_	*|ƛb6	e~`FXQ(EA_raWʰ<fd)rA~:OCqg6f_MvMs6ٴOѶe2vyl磉9aC>0?bЍ~i3OށZb~fe~]&S۠"F0oVC'ΐelvRJߊ V¿xE%c&_wӥХoiu݄ ͋Y#XU!+"'sFt$0pLDu[|L}hmҚ8/Jfs0{އV4M5򕆡*86GI"B?yzmMyȐ8B0 - PY{)ԧQi"HX+	鉆4ꢿ+Uu:aN7}R3+J紐}*KXݛl`&%3_YᅸJq9FU `Op*	
+t-Al I?UaYa;EmbuyqG4\d?ѡ-phKilԊ2/'6#\O3U1P1 x
+lG6j]L!UEQPVjk$?)mG	orNuʆal 2 EOrPdA{j#'	a;	"0z?<h8uaƻx)IWg;A16G\CuYe?
+Ġ.2z~[چ!*#}3+9dQcKV)$o*1FGsJnuJS{[s8N~+sCKrܹ"jj3EElM쬀,OSODmF*l既&J`.-mq!{3±ҩx6};67^11}8\|k0UYuwEӢ09Nh;X9'f	|I({
+!W/>+ZfsQer;qkz&e$0ʬf,tsyZfZ6Ҡjb<裤\ϪmiF@M	ܶre|9cRpT?)ϖaS_FE*$}ֶ eCD}y]U\GB3,'"ڰ_m!Zs./96R^a[\!?= POժ3.+:beZ]
+w9@2nBsHBGy8rr
+YijbYi	=O
+V;-W't+G{Lw]cA96r]P6A;PǻphgF bTz}9=Z.S(!Ԯc],8Eu̩ 16FS4	k|C*Ã6X'X)b)ecT^t{9FݶҞ 3L*I4`螐p+5GATp>4:paJ1ЏF%nD-xˢpE[3yczz]D8N6VBRJVzz#_iAQX{j&#g98A8O{F$	Y^*RR|Wu*ֽNҹy8>60?gq"M|0PDfo*'Rֆ\[-Gl=1M2"aեGrZU@ZRf(-0yjr(`ɖ9YoӯMC8eXoKhc[O/o op9w+R;8fA[Iwo<0[( :gRjs&écyk?(kބj5eS.yˉ@0.hŠ%[A49 gAo.JJ[3̳lE]A5.,N`D::jMX\~wf%Ʋm,
+хcd3mUd!=п?"]Yoټ
+ŭx6]	u9R0D:"-4}-`|oW_Ύ?UUJ/za`b*n)𴣂ԐpQƙ!qqx{/~ga.jh*/n1CsJw扁خ=oLZZ:R;A۬XeY8]> U/!Tewrw8x/@!,RWw|k4lhP*_
+:4@}gmLV} 9a{2pw;oF`% L]'dTV:q%μ2l_f[p&;@Y@(\F71+a7VtqwQ"i%$M}H#xV1 cH6gE@*ys-hIf,F܋MnWSL[M*LPI栶!VB"Rb/&d#]Ԕ.y}Iٮ^ v\E`NEԅջ;G`|N b^
+[hn$:QڀrhAy!"+PX@e*cJ8żI3jHȍbZb1JuZ0qZV=J	 a\cY~:Oi\cpʳٿA3J+ekTm0s1-ڐZ[l8T1L hhTRow(HpwipEq7nzF0lʄa;HzݼWRvz%m[~#gNaWOrK}l,چ~Jl-VxDl-K%}1ċdwɕ.d+Vv&d}6'g=]o {SҾᓶL`Rk&ߖ
+Y7er[Ë8 sTs*ѝG{-BVJHHrEk @
+/3Fo[s^0/!368쾸 F_OkZpt]#˳-r(
+]'6XGh!<
+7J5LK7bM=~bixxJdc	;Ւ/l=fJK,4]l$ xP>/nMJxB,3)ۋU?uõzH2	8䆺2x3`7r-t/RK+T17
+ߟ>L0Z"nPQ_(W*$)	>)A|ldP(rr}~}f8givK~z j85\u{Ƒ[»]>>_|MKVrUx]U+A):FzLaMVtcr3?@FL
+hO})TL{+amcݐkáឹO'N%<K,H{rfϕ+ba&I3<j'!^mZ RKގ-vO^DD[=wprfq|q|jM%fAbJM !Yp_)=mjzoOE{(3Ws]|DlKՎJ<IN
+dȻӺ(8Mȴ*S){W2d[PcM'زz7"CU̠iv͗uuj%x׵ٱō${,>Xؒi .M$BR"
+3]}@0|uQ0|%$zމQX	~{{pF%נ z^g/Ŭx"R,sBޓ
+i4G׋sJ5H#|[F+49]kKIKxԓ.sBFU	sv70H+Z-^cD~t+\n.Q>@tDgUInлl^K0zy4BhH`csY:i{3t-QnxZE=XQWb[yһѪǷln44p]J#{oP:JlVq~t6mZJE㷖sDk)@ы	UڰwKZ>l=t.ޖ@Vm]MW1/ρSg L4?5
+}YO_ogw5[ ri3:A8λÑGvCy1QC`!=?cZ~r]-x/$)w[CSbIRnH`e>-,F/EBd
+7jQhxu
+_Lx6y_yMQ ʒBE%hU	`NWso /hc_w~_?=9ŌCY]DE$Fj@oHx].ýo=?LF>{KVE,Ěv e8
+&QMṮ1ݭ-Ӻ5O}ypcIW_N>3jyuT''tI(Fw(j!vT@$/IzdT^KZJ$V-ߊb	GyVuᎎ>N;/on-pawiK1*!;-@ؽ ^ eHv])hTn#5XdTըo6\ARcIZ-ՃYKfr03~*
+5vaVmʴ¦ƟA,ȁ$>{.EeH^8jW(gCi|+G @wHv UOث(A"m↥¢j-/5kT>-}7E $0(	LKQsW \fTQyP5\]HC*eT1Ɣcyj#3tcȿOAҠ-,hA"8*{ Tº@9f`R9]FΗ2ցVԢ#Ƃ1Du:c#]z cxzFggCYTAQA g/	DApn.'@-Q̆@fmx@oaFCI=F^̡*y*QD7R(#S3?cȵJN.jX
+	/Qoyljy57GK2}5ʝ8=/r]epr^o.xCy!鈒R3Yko1<۱jz洃1YzG5(PBDz쿰5j;M6{
+Kyi1Y
+@>-CWiVRZ\^1W$,wɖtl6əg梁d$[QpmZ E&yRO7qZ[1֖ʡ|Nt~ۋo\|)Y+$p8"(3#T)]4PX$(%0Wz/k|,(H@$94L]\E n|[
+^IG? i܁2܈aHAsCD).ym=*ND	4$;~ָZv0Yx+$?|8\׭ai bkwWXVbG)fNJcZECOY#aJـ,/"JH2~k=
+Yqp?ݽnԦgo_sٷ{͂/t9F2]qUtM=t\QE"h &b+L*wmmcb:>OB.Tu|͟p3	yr$WiX.B^Q*!AxPAGqG6P[ǆ"IB	3`1Q'ꊶE3el_J#WD 7Xmh<<ަ2S qǥ5e7 u8[i%q. N*$D6qhoƾM\Ut~ ߕ_y9[>i=M%$h#N.2anp3x%ԗ|[Loc=~OtM֫Ĺ+pǃ
+)TA+eqVҹQjlkY~XXk_..Wjs铎xbseˉZJR5;Rj]jt|t@$vp[#n`PtW+*E$9,g$c(/EVJyU\QKԤ6;)Wj$]8 
+QCflA٦j1!Sa4ehf`vbiQZ&nNL 뻗Ohڥwa._7ϓ3X 4x,)חUSo]Q;)!Z iǌzVw77~#a/xtf r >ֿelf͋A,м3@|[GTdmή2\u6(q&fih@v( U"h2d׫Mv~=0kpoa>މQ1b]0<m!DE3l_ iSVQm<I	,J';[rD(GzMoL.TVl^^iP!F/W*W&K~o truʗ0# OS-RaIi_QɁPJ+Z6؞(g*ayX|$to70t'Qn<;_ⶭ;ʿO7UTOxVѢ$8f}z<#f2zI9SUY5:C~(ж3c#IdO4qea+>o$'mdl\FE\XLtY-
+80	X[-G5+=M([H{+ljQY(֝%Zk}wna|ĺ˽!tRumt7g` irtػ1lR	nuj>(r45rsySz{d5Yҫ~nswr5xlvΒ2Y~TMH"zчDuQA59?n^CaFy]s=22@VT{k7wPjl\zD~upvLMbP%vDҪRT@6=lS~?2y˪aU_>qeRK"ۙK<){+[CdmL/
+_ BA?cy/g}QT&B1 eyqR/3_y?/7|w}kTЃ-Z8V,?h,O7?84Twv9n'F.^FF)=-TLF|Eɫ槽KOH*hg^_٦YhJȸnKL8aY^ aHtxs9qKr#c8Uo?^Gpۻpŕ>+}4W޻\vWNZިVw1M)%Y~,e\s3`&QbyUfY)I9}b}V֮y]x=xDc.Oz.(-
+Zv`/v(n^ZBY$qxmrsf̜بT.dtTԘhny֬ Ae~Xw/[]ia~VM~@$/v2Pńܮ3 f^3OpG'ovCVKtox<kjw
+=v3
+(dԫ#˿z0Fs$ڰbBaMx4/71޾<tSjy).V,1pB|Fowr8F;D8lJf<zU/^d?Ɇdq<I6
+z{wz
+|2Џ'inWGCԦ$kp]0ӃONS`[)\
+	Cv{'ooYF9aQͷۄh9GMgXͭc4Gc4S4#MaPz4m+]1B+/svuW	+'칬c.Fy 1Fש gٿ	!.-V89P=20'ȯ`ppfIg!||kxs\ad%0q291঄OeFc䴇.Ei9OT}~V8?,]ٌ%-#*9WҾ$=""n(HҍEFO>{[ #h%!|:?/U|ib6nThٽ(d";,j	O]LXdn!ӇjG?]XiT^k-HDaK@QzHV^Lfء˪^Y$bH7Tٷpkpn|86vcUELjX[pS+4`ۻ}4I4e3OLɟ	#ink{ќf#\4NoZA x	ˢSDUPa5=bX?QK+n-Kc{Ѻ)D ySP](sȐOzOw` i0]֛%Tch
+&QIAYz*6	mfU=6.zTÿt6f͈_Er0wlVx;ZYlqq̜B`T°L@Q Vں5.񶳴[F9I)Ч(9_SC~7Ⱥ;DLs-hɱg@ ,QA].o#jyq*l5b(pA1W˦0{Br6.]Pn.T-`d0LgLhApF̹(>%JPL(jiCK^C	=qvzVQ&o޸m*O,C|\&HEdDRP`G]^Y9(5k.`tV",i#߄EĈM!湦܂sÄ'6 D:W&"%j'ǧfk{lV,LqCgUAH&C;K*1D;ka[,hm	E]'搤t[bL(S̮/ӓ}Y`xf+	DiI[1;JSWB"wH<Fבg6"'9÷[nC&%| sI0+NYFACr) 3a*	9kV玜k*ܦ&6Gͺ.Ίi1F]]f]cVHݖ {u D A_<?#5}'o M!1Y'iO@Ep,`B&7YCqfvj0sߵ!뼅Njvw;A q@1V̚f?PVĦJÂcQܠ?j~1\B<ԱZ AGQ$zؕ녠3sOH!iUu{YbnEupzo?~ąK"=L$NmdܮEgΠ˗,
+$%$@;Zw!K3MӪ9*3kNB^,5bZӔ<e-'!>m'Ī8ߣZjQ[K^C׭}S>1bckXM[H$O'1Rm;C+.Jdwk\'evv<޸rY}ۻvgBS5Q4lvo~їU2MܻcΪfZTDTR^xW9
+§%Dx^%;f!X&s?I]L6ϓx})<ޝ57jQIsD_236oLjLeʲ߾mxNܬ.<V	\g0KS^`2=G\*ՔE6g6;KF%nF5ߛLT@EkhV6	=FZ<E^J H>OWA~wT{ʬ/d́
+@!5"5;A2Ul]Jv~u׍7E=/X"Z+ w9>x&sَ
+ze(?^ׁU3HC
+x6,ZBc،ZI%$ks' ]#pFpQV$AHܱ`;()w.͗0s⁦}b'9/sh(>\"|~	oe}\aVD/ڼ{*8O<PDC,i9$-erjK?B!_%}BilL)_S L~]@3R_쥷V}wiʣI奆;K ܏?ߜ!l	8Ů3d[ӡxfc,nȬ~	nvf,1ɞj5Ox6#ny<&+F6c&]խbn谞Mq^6%Ad:ۧ.&d弝(GDBڽ;oWC2']rۅR`R(qæ|8qdh&dl:decUrDh5 ûlD?r|r$G1X.p>kˇF%z"ŊHjKt9ʳZ?޼~Co7d{f9ta~ޅh'(U,όDdFo]4oԩg}kEO~Ml*Z)
+59xC攃s>,M3Y.v4o_ݻ%r6B*T'8Cp̪Do5TCh  !2 7ϣ-+Oe ,wtM#.p%;ǥwrٷKܱME
+eq5k/S'k^
+,EC2=IF)ΖsTy~!	G
+VII
+%^C!0fE\1u1ڍ:YJjl!#:r*sQdX/;A7!%Z$NR6)Z:.KL/: 'l$hZ	T cp|76%b .rJLnvEnKW0N,aTꛟ
+؀	B/!=DUT+;>p܆$T4A', {fط~킎)83su|gR-ɋHƸesZ6=XHja-{)mxSZt`C-DpDda(sXvoGgحơ 5i5CU%(E*6IL73(s
+-?Axl(Es6A[	Zb|VbP@uܳc86@\Ot3~<~l#kljr/^ۍ}TꌜΦX:KbRN9	7{叏EW	zu:gGW)3_PX"RfdؖѦrdd?58N}*jPfUæ9nU/axRA\
+G+oTmp,
+DGN"9KU/:VsрN
+*ɺZ6;w>;qw耾s(&[1",v{
+M0h&xNwrrKz|
+{^!!1C{ ٷBcy9H|AzKΊfv.#o¾0aY">#Yȯҭ>ntE' }q1%B't}rh!:TbtÆnr	alTFrp
+x8̮bH0d\oǶoMWE[I|bZRǺ;0wT1BL iYUHF]h8dvDL:DFmzsiXv i8>TOH9ovo/UTĜD.J@cVӒv% D)ői;A@1&̞rs)=?#!Fxxψ/mjEti^[z(qSd+eŘC֤vuܢmf*jm՞I}Szi
+-pQ/xk	$7~ѺGEddg܎TKP0~0୞Xt|N@=1{욂Ӂgp3>N-4TD+K{ۭnGmQHthLҞvx[ Xb/]v*>B,+jB?2W6[_tr<TCwz0w)OL RP݋?LuOH	KXa'7ΖFOӯ%g\&cVK0	'{:xpՏw~|sV.M c!.Jm4ĥT^3h5[kV.r<97Σ*>m.[j#]E5&6D^ՠߥ̼_@BM~Q*fo +<*9bjk*!Sk
+_67hz4$v;[2듷ըߩ}^m0T(*!dӈ-S)qQ91xx`*mv]OK?}x\0~9R0Bn\K4yES_/^t
+y:WK0f^8y1^8oVmU^0u㙑	@3?ñH+jhcbTEF.o뽃R2tVFܚ~Kn,tFTp9%aw$R5v4Tet\I0G
+#\Ճӓ2sH$	>8"c+/ږu.7luZݮJ\LOc7}؏ti3:_P,x) '`h
+ϐ@ZzI˻\V >ѭZ"s*cF<rJǻ5 0P,atAf_ivHGQ~ׂcK
+I3fI͒\HJ(㍹`L]'R[FQæ<e$*7D>wdn)΂ir-cfnHd^ה&L	9\M^? u4#ڱYsZTpAoVg"bn|ŲbE&EIhStXe6vzt[V>go1O׮3![AlEm5)dv[/.4G8GWZ &ўWvpH@ wCklߕ
+ ٵ@GbnЊN{q^#2O{Ⱥf0%	WCn~ow9hbp !
+2j`S22\͑ǃٍ/мZPw|t\P  (PNIG3s1{J[@5dN-1QF^iR"|(b)>'\Cm Uj7%>g	\
+Iֻ[QngnU_$ɯ@9/>f%їT G10nas~-a)\%z~x
+W<Z*f2m}iTٌ2QJ ^0Y[6@v`^}d@|sEͤSj({"mvRnublHLk{P}):R.E1LGd)F)
+k (ovf.R
+)unC'|%@1BsL/~%unCTI] ӫVZ籖>=OFF}tp-\HKGtDETٷ Q%v W,@ѻ
+SU6fE\ĖA,1ٓwb"m%֋'Yk~{Sˤ7L)J"ןTԵ#?)wU781TΉݪABz)nQ3ydw_Lrc-ߝ346981ˎvvLGcQ02o5s2#E`xf=8^TT;3-r%WS>o	rCD{AgPՒo-ngejLn@0,s	zq;Fzp5nfMcڪ{6J5Ym>;ͫ¹붤戊W[PJ=8[R1Dֲˬ@~9
+Xn<F4BG(Û[B|t<l6LeQH.ƎFX4RfF+rQc{΍<܎syJ<B9M&:vqxuxofѰl1hlwՉ&]h*Ȭ^,.rhM/aF^o=scAɅ};|_G,-@ ˸Ϛ?g ]1CTWgjl]jAwF>pwu/'b|cC{*>eh1{S_W "zC =xt7dgxX,	Ζq\,׫
+nIbnj:#OW`%yУvz7;30[ sи[ xp(wޏ?w~w<)6'!=ncP
+p.楮OKˁZI)ODիy((bs?/i!0s5haC9u3^ 6H;-^w -/V>fCRm1`}[!,s+Ы1^Ows'B #VJq]đ@OeMEa Qˡ/EYKNS2`/Pa|x1Bߴl@J1rMd7PV.=^-FZ<gб 𳑗Pom޺zTI)fhcLC9f(p:5܀|"=Z/a=VntsѲQGzzTQr~ѓ13tl(4F!8C-7P/%Zu/\||&)EWc"Xqcp)\9C]^Z
+jzPgꬮ	x:}?!ͦ0L*B&=np_`.1D%+33Yx1KFo
+w)?L蠿".St(mE	;pRNPi@]݄ut^]F$xâUOj߫--ry×]pAJȸpcg}iq_;3f]d^7>YbBp	TQd70ѫa/
+sXoq1fK	}upuб2Q.k-@%Q
+RKhȁiؚ^ 6=jy+sYt*=qPjA%d=Z*f
+1!luGܪg/I!香聃EW}hCߥmt.B}Rho:qVej6{G͘)lеk6_._%? &ۺsY	~FCzvHj1
+!+sqH/ 8D'sA@,|A9XZ0~acbM8/nf/*f+W.WWܛ^4N/q뭆b1mctc:ok	;=8mBNA|KQ='f˽7İ7:C?)Ldkc fOrR>պ(#iT\BR<ĺ3h뙍w"#~13]-En͕;b)niZohq|;O28OQj
+Hw޽|.=V2h͹{JTyqnpH-;D&ƄazBma"ˢgT5]x2EySjy!&Ei#H)oc9;V|;}5|?\nxTm>+1V18-)9.D;|]lQYVN@zXB,|Z9\R,[0H3 3?], ĩ{@\@{0@U{~!  ڹ'2_ydxK +Q6lY/ӫ8-DR{'`>}vh	+|;c]-"S4ORdEk%)N.d^Y+`]vyR+Wr>74ÕYA w(nXȃM1`l7p^:e>dYEsZBL'¡w7J̵aJ3ڠ3+,){=g\~`4*-,p[
+CnZ":Ԕ̙C:ҝh/{X"Cu>Hfh;ppFhfA\jXO)axw~DXN۷}$S Uy
+-ٟwS:êJ".ׁ]nkp>|p?x,_;VNކ|[E1c))9!<$rݜ+P\x=J}FďY)	/ڳz&r2`^LbmUPQd9--dO'/[2v
+Y6&wQ|DӉEH4W(/].R%W@ȞM_m )aҮR~j;\Ylthk/b&[Fp!8|$y8Y'bZ6'[ǟ6@Є|CY
+~fx ѭJ[MKM"Шp$b]CD\,W-@fߐR[V;Ƭ<41tJbSg['DQ!9@4|&/.If-FYݡc[ P\ PG'@
+7
+,%FI>_ĢA륔xy̻ 0+JB6g:=1áWTrd(ofU>B={T#j(ͧ6#w1F`ܟ`}|H΋\Qi$i/DGQ QfS)Q&!M@8n>
+pdNZbjjwbH9ˁUwC+'X,$!lwsB&״qkWپӆQs>bYbhMrIfkZfQj.mFF'QLj☕7 GJGŶD@Ut cw-+
+l#+# <T-	}ǉIlEiAEP'fNkBT(&׳~xb>ˈL:D	MbU/	*eQ>RZPF/n(Sx%_kڣHQ,=9a@SC]aDax{GRֆVR7D$z瘋y==݃a'+Gp#̳ǭy(Á|0v]1zzBsnχ9RB:P[`sO/+&9?6=ݟdjltFFY_}/iSRlК٦`HaRUsG	L;Zr]4Թ*+2csC¿*1X)3"wC9MQ+~IK*n![}C"͞GccYbOO,Oޖ&iQ2E'ư; 7~e5/WE!wvFG#M$gV1Jy=,aH&Ϩ+Oŉmc=N8grz?rX*QWbWދT%p p>dZGQw&wnuzC[[VKE8{X+cyKx+7S
+iYHw`cG&&'Z47N ~=H/{#ܫ֧D!o> 	!P	:d/Z8MXXp|?RVh.\$EeV).9X6 0^ДR]uth?LnR6h x<-d$N㞽^ön5c@&g0ᇛV7)?.!6eøqA8G/ZQ|WY}>	MBZ	JʜF"6m]9m.lMjyprs-M -/:G#_V˒P2p4۹EB}.jmb7?0-%[ 4湖gv}fF].煛R`08Ȁ+SܒU$`9끠4R䌄kG<n5.P~mJXXŀȁ>0՜~4s'<yQJJ4#bcIW,إ~lൿ<zzwd.Ӣ+ &5`;AT4@4":.4_P<w)MfPR&{&	֍{uh{`.2;ͼNl&^ _n@'_7tnH
+\~ԧ'|#9:ξkP4m֤pnud,*X- !tc @x G dZch c?%*`;bpπT>^zr Vې&xpG)E7׽toXˋ	hE_=-BjLNnwM标31كP~9&?!L/ը/zFD1\p>ioaVb볉%#S<n{_E#$|]f=犨(V? ea.$!?&7bag]^;F.DS(I1V>|k,w"jۘ1G4&8@Fa0܇fߘA~FlmaʮWrԥQ$Vff:cY8xtLϕ΄,fu`%?j?}1j鶹?oUsH@Djh9~9^шqDQtݯ4v3\R\_Hҏ	AIߋި!R|67;ܐ֤YBM%3~YXZӥy7F4"./՚bTr=#svءSXP';-L'6FKY Y|sXMML6HlN|B4ONY/)m㺞UR$ɭ"FCnR2Q 5)O'Xcš0[RWylGUz7!Y'Ge5C)-k>pU;7BsrC#?S(	ʌY0'^Ü`|<^٤KVIk/avfoW-m2'r !iA8H԰<o-x41eaсg?,N#tvUik#@w-]8*AW;QQPF<-1JM,
+8lG٘ЛE	vU!SM
+ɀ5F 8ᦚR<>8/<@E܉PBGSk&M!^3LpoOP6_h->F0
+b/(C0j+BwkƂDpfCI?eCtEf7Ku0;v59gQI@uA WF\OMCܡ1z3h=Eɻsŕ8h$m:곶v%>=9EH_ܤ\NN#]+ 88mW;8l0{?n9H =
+O7ieXn{6nRy9>/\"bPtVu{eSsv5Y*5#(\T!B[}!eF7`SJ0T?z b(<A95@dJR8{&w!r_-A`r워[i޺A-۫G״F$yK]U+g[-~񚵜dx>V[%C/S̎jll] de,k?;pYn	,V1P؊.5~MRR̃H6z+\tr=5!`wƝmU1 i]	Γ:#={+6$wSG]VPUrA5p͊KHN#;FY׍075j,דzߝf.$X'w0<WZ[ώ8'ˆ=@tB [hpZw;:;hz0gT:&19i#	Ij?>w]1&=j~ BF${(Ʌ!P6r`'PN"W3ԼC=Zj0G蒺xsy5%Ux9[Di13gv`Dܡ^cmP/$>^V8]+ǰ(G˪~دbm~iӠ6(q?#{-*z9}^|;z[3/˰ZBTۙ.+$unkSFzE&qKq@oeSc[Ĝmb'TXM̧lR D.ElWT^ɫm@V+Q$~w\ Qr}+$Zܺ(PM
+St'@Z]bd(
+z\'62NL
+c5;(
+l6ؔoW}*FM<haT4}zǽpZI?Wh]WbrvBh'gt[]$|#nIy\!aXa>"(~
+Q=?7o_v^IoFrcT%p	+g6ÃAloܔiU@|c {``՟7(vAA~1qm11$s~#sp2аb"I] b+Tz
+ń!pm\ʨgܻ䴪޼ƝO͂oP%~,o`me'`jgJX:<BĺP_oj$|Cv`1k1TBc}GLD;)hZ[ }}UA}Tukw¶ ;-BF,+o|$؂bݤbldwJD4~3a^<ŗ{J"+&@k03DΝ(Ap]|mC.	b̏&Y"Tˋ&Iڀ|B4E-G2'1-Ö;yȏ#oNK)sfA2?=<LП&B@C{'"ă;zwyڰeLᔌ@b}2Y)A@HqQאPvAٙyEF:fUBo{8TM(bbxnK~}ZN'}&^;tS<`0Hjs.b<BH-		5x0^-˓5(?~Im,v˪E!RJ&~6h~r Q~Y,ǜ<+?^לNW8<4m˨&Rx63V6CApFG bWJƴ&uɑk2ˍG$<i]<-!-x# KK\K^R
+Ejs(]1X$@8 fVpPNb#i#fׂ^CWN,jc&4@UCéX/"JÅfXvg(A:T33Un 2F1/m`ne}(:%ua	gs6	nL+ζ.JX~Dui^*1LsơY.?˴ɕ6ʛF*oݻaQt"]OfP51L}7|_3~6=x>q8EhWjԋj}Ldl+g݇eڲÁvQ͒0_a +7hk~8YmQ]1(APy"]\INMSe>S}BahDRFn}mےC'm
+rWX:Nfm0GXʞuQ(XB!PMC=8&1X22++V -zږ-ty{jǮ$G4cE>'
+^Iry/-Ǝ,B
+Xe$ҷnmyXbj$뎑{t?٤_$5GNm0^ZCnWe$n2E^oMXm	*lP9ryE*+y <ͿXݥ*+æ!735|4?oYwYrDk'kh͌3E"NRYy`-NPp$,x	:rJMȚR9ۂ*~CSbWaxH8jLAi%ǁ^|SQ 7Znvazo({/ve^;%<r[-/fxkۺfo>=
+g2wncA-4Ok&Pقݴvo>W!-bh>\ɂ	ꐈ'HVxi{ju{RIm~vi%0=8>4K 5ufa,L+h}
+zW?\[t2jty8ZXWT%"Lٷ߬V#F~,Pupakgz@#'&%9nJ[ݲ,;c)|E]p.ObF~`m4kZ$.l1QٮA~wLJsnW3G|vYK׽/^n]ʻêɟm$wFBMx^?Fdd𪺠>=QqѲxɕ?t\.usq-,gӲDϞ<.Π:0Oi\H<][9sYH#<'#?{}+l@I:P tr$iCPּ@P&BP6ǄB6b`4tȾ񛯻& ~O7 k{V6y~cGh{)r0w!ĚU<#[<~r̕&ͶW|(wX(@'ZUHizɃ,z@G|W[l#Ok9m+jID,ǁF63:9eg
+ЀT94gO)ev/
+T9A1n383KJ5vt*v0Nb~Z#xd]3`);Vk2h6-s b@67$֭4Nٳʃ{Sg^pJ̤Ũ`h+6Y"I@WbTY]v.RMNtYLo	p6pPdsaӘ`Yc@FPs8ռzQhWղYįӣjZϋU|:.`u&֚VHBy?A0>˅jVM[szʄj|t	9锜6o{`.]SV2TQ uc&<~wCe]s:yMbm	<xa
+pb> GZdCJAQ9cgIqJl/S^\'?ȯF
+QU.T{|ަMwj%T6i-=hQ&cpJVoY-	Ċ-1Ie3V01Q'L?_~!)!A>ġæf.=_T]`i%9A!썛q{~Ad;]Ts1(8AEYvUWsr:LsyE1{쇰y7LxEӒ9!p_/^0p,THr& aϩav^[Yt7ؼU~Ui|O	"xL_ZmlUjrV	@ M91uunVG	i	 ,gmuԶ5I4"S8#)Pڇs	DʔvDѼ+L(v2kM9p`t	B~\VΈx;Og>A@A`C`+Po-<=o饢|=K͵[
+0^dHLrS_%z4)3y/^,:jtXa'	d-&~gb}ZL-FP%o2[v!T*|"y{YjQ΂x-/"J ԍGpp lގU9;(rȨvtXy{kͦa^ 	~
+k`@KidN"t
+㢘!NdoCL"lai6l]nM{ʟOT)Xr"\i ފ;W E076腿s{o^s(V8#ReDH*󕚂pԷ|m^QzL['[W4|$6Ծ@sxQOv;*~XypT֕C1w%wdS[0ziX ,f<1	E;Aܒ	,߻ATq%x
+rDM[H@#P÷=֧=I8~]
+s2$shJA Pdh6Ó*]2"(
+n? vuL;\MؤjY)V_Д`[Zw|á,fT	)^tB`),f/+g{g+
+zpDjcۚK=|2F!5YXu~508q}yǋA	Se.G r' یg$gA_|c繘MDzne@wvB+Gg?åD}q5Ih:lޔI)Q.Ftk]frI8-*Cj&}bEIe^;@ B**q-s^X[,nˍ&h'VQG!|A
+[! ;!?[!"qubgO!zgnR>yQ0mB s)c,V~Ƿ`~nZ@#\]GP@P8)۷g7& <ͩ@$*%i#=u59,A.=Fx۽_?H>&2=)N S))
+$_ y\Q>HP|8u)>"T}8oNj[E5+஁<?s+^1$ N1jQ*#p<i%CDpN.@Ɔ%	T*d5XYý#()ϫ Ukp|O~^+SWs있.L,WB3%0HVUk1s(ܪ0Ԩ*RnqADOfꈕ#IݣSҴֱgu-*4Xyutj{kYA(a}w}vKty]k*pmPBh"Kp3H^Dv\cAFh}"˲琦HJH@'84Bpև;bV"o:XKEuW,k+2cNÁec>7 \:}TdT"B@֑yj`%H,8A=xAod[U4񀾒$a|$:y{\eY̄T+/C33T9 ba7Bإ]3Bn1VUD,wEYmm[ѓ^C$b9ID%'<:JfAtKw^H<FIK.*=43ı[lxXY<3THhN#ruɦǑe~wDG֓J$JUT:Y( &,j<Gb	v!2)()Z.9XEJj^ood־y&cs L<X\hyk|?d)^lԛ<E|̞OQ\{xɉ9KNe}"~
+z}dh:zM+#X?
+1.;eWj( `&zʕsð'U0(,zguKoaR{<J@Ku`5-f'
+h{x2!E/P^A&T70ÈNC>Fz=u-k=ᰲ֛_.<f;*pùj4 Pf'Xq+Pػ!jVstof )$nJ,eQwqt.v+Ʈe]!	1(ߐ\0=*9ۥWFvl)T;Y!u}̵d+so0#{0,?sNF! Jh]gE<2H|q 4AкwMx2ף:Xbi.WVK45Em}ώfi->U ^4i@8svUla1I]|rDhF@Ǖw{$kvK"gy<q_fXzl3\CqSiQW7G<Sɐab9wz؆!9[!Me?0p	Lsn)06IP~2N)--v-(	OaznY\]|?j]F]MӻVԊ.VpZ*O	B`0Ғ{DpxGuW0SfЉU2vB[ȝ729rs@L*0qYi1̈́;;/w/,,YnN޽fXdb)7J| r|g%>(Zj
+WpFa1|r8.SC~wwev8UkHtMdõ9t\d WX] TH{هq Eei~>??C Wɝy95n{Ve/O u@A1Z=.8 Ĥ׽Ѫ\~%'=Oz9ULzzUF=ybYɯAzrw｀p{# yK걘Ż՗hgfܮ27x0W_nӪzS ׼jz a?~UAZ{y:>
+Ņjǌ@Eo}YnY5؀	'xQUˑd7-E?cU,S~Z>>y<d%|=3ރ޿?zh2>cQ|}ny03.Xq,ͩ{R/38|^ld5h[HEeOvT5o3;p
+o./GAÃ=M,0AuZŸl-Wax>4$Z2j1̯ߢ4;+#Ok3F̳ܼy =Kx9 52X́aTcÃza(	^I˰&zC{{oEO1ՌecS̌=Ng=neo	>5c3Vc84``gv}j5|_	|ּZP43Xfا744tÉx8ԻE(*8<l呻`ᐄq1ɼC!{{X'jyI3P_`pB0xfޖs~dxؗRÞ˿u "42]<lxjzR&̹y<CCu@_3%3-LrF^P]W O֗(4Wzp׽^a徰1O;Կ?|ax)V<0|lx|:ܮty&kx[y	Z/?G·pV8bvt3H6dd_G)Xm0!-m⋹z9Cū#^w4vqA7YTl~A_̛C3
+3ˑZyo3vRJ\7?'=Qv+t8YV#a⹛_"
+b:{=ڟX{{<&g)#sa.v{\tGA+G#lF@9 4h_YŇFrX<~мw	?4,3'~nPԛh(`63BZ>3bj^ׁٵɌIo8nr5<޽ooox|~U1mH[1=qMepW8!_$W:
+tq8y;9?jK PG^*bZ.қwë2ݱPβZ1is:)gS㮮NՈ\ЏRŤczC}cFvpr-6cˁC#O֔_rEG[qp|ld7*?:A%eǼ)"DR~_X]yjьa9>ٰ01+YnnnCҰ{Nto=ywr`BYj{͕8]@ivҮe+[d(OXkh/9#&/PyPH5.tm!#F5 оy _b+'qn{T;q$DPb`?*g(JcP[F@p//j{WC	fM8С7	HaF}SR|u:\do f~PF	3C@FczY-'`EʎlL9qZdRR#~bi1Win`2	MZY
+ݭݙA\`C%-yN#5[^Y0iXg'<$DuoF;xk`Q/]åw'By
+Ld粽CPPϕzbK]C7dDA$8l}O,5MVմo{4V#M4,nMs&oO/VSOCT)b5!;kK{n{mu0dCo'rrֽ|2L6>:miPzR0_a6̭%ӿ-71ӆSNڨwh7iV6IG[%#$PY
+nEt-a[-n<J K`_'-\$JW]OMW[0<g[栭Yۺ]"n<E^5z<رȘ~jdѴ'gY^
+>eOi閧
+6 %ݻGx^U YAy, SĆgWwŞ@?>v7Y"Au/M3кL =1DC,FaO
+ºe-7WmbJ\%|l#0a-%a8Nߠ/ǟ߻}|sprߜ/Xn+F>5eM##	
+sQߵVH(LnXA_l:"$\8;zee͇)*b9ljVV?0ʫO8ITu0 prTswzI|̓:<fNΥ>.|4c,?[6[RmQOj _>@ `CR\7d&IBVbOЋףIK|y/9ft3~}?دo@WB QbPى{y9"#<Ʌ3[kBY֦Үtyv1&;pE 5߲UU{_~Za`xwu}z@CL|
+d)+7AOFeZxIl]tdK핷&Jt6\I>?U'z$?0zVsPG
+oQyoF7j_^XhOPw~ZBP>S?	!Yt􅑨U.`:ACKof6b4F*\L.VTE3hF&ESD-AD5Wg@(ptSO-j.'4&bqc;A#H :(x1݉qS;3	8aVb>:>
+2Ղn3csfj02}틢&TDI%/!y3gػS.T@o.8b|Ek@¦a̓|,pPܛȨQ?x`?a~_0H֟}f&ќ+sFm<@g	:K}[>ޫAxgxfi~#4תQi܀2VA%K
+z
++Hmp
+([w{uͪ+0 z./Cᤩ[@v/4պFcnU'nd1(ڊ9ΡBx, UO4aQ^OO	3	`]ôS)
+r%f=W	~|>u<Os#f"x8B6#%mO岙d!/RƜ@:,N6/joYF7'[)]9j9s3WٝC3d՟SyrZ%oPZ4m{Ua@UV9&a_?Z`yy'HLtx`GmQ\[[nh^H"֖:>6n]Srl3Ƽb,(z3hb>1!Uޣю78.c[f#̛ϫ2xEpÀ~I.gQˆjcXH9@} ,j0u5:!|Z-<=!s@>4;bjO@A4#BR濢U2,)81w,{kĉEwh>EL1Ҡ좂S@G^am 2	s!&Tt+xFh#n<ӈm{qՔgrB<A(*H'bf"*g
+]Nd̊ƞXVWՊu_fx(=ٔ.W Ϭ9Gzg&Ҹw9"£<R50X}ܨv	%}w'm0qLlݲKa&vyRW(ni
+O`#bx>a+K)ӲqDɥ1~A]`$GL\@w><tB-!:&VU$ӡ)f}otUp٢S<Ԗjd!NF-ۃc_3pGm8_7f@Ł*ie؂/;M#RB5NPX[4ŚYJ2z5^錁pefGI1F43$6	^9zo-\` ^㗞 ށhݯ޵x=tziq7mrPt657
+0\#^\{CTf#DV{fK$ %ukL"W91f;`J<?ݯ~Cd3E>6+6yNJCI#8t8RVnrQkHfːRvTJv'BQ7	.F
+G)D+C+LhT@Zg; +Ԧa}eS[eOs̱| I&C8]Z3K\3샙Q>n3)\+3$zg(Bw-zſp˞.Κj}rU]{,Җm]q4a(׈W6Avlyuavlz2frOzVte`Q;< 7m?7{z[ wT`A;u[rgV"gM5&cyˁV$}Fɺ2FZ
+RzF_}liU5s7y`vEه-d NN}Nkha,-PHL.tм6S!9472FR?n,/{;oBgUEU?P\EB$↧hrnBhd.T]\5it0X:hrXr=O2ll{Ll	3h1tl()w_K 1н'Xۓ.?L8H!-#0ѺV<)|CK<+co6Ly\1<nV ,09_rCG@nܧ$P},]@:vs);?{z	H5OݏS6K9iS9KhMoJϟX|[
+W_ގi[pL[
+;N`p+pkSQa(Gƨ7ch𪉛ka~._@<c6G8U+⹋}j9-YʣBW pa[fxT6&@})@o~gv@ lP"v2zӹ􈡂aگ1]Y\G:=/o3ŵbQҾ^e15^mǢbEHgW+gD֋COB{oP/jK*c&ŚLgǼ\kG5
+!
+93hSO}~k.÷!٤f홒x_UhDfYPAm5BS"o#	֏VHPzq ik69mN+q`aΉ7L #K}۷"m=@+hu^TWC+n{dyQbzq(xѤEDAǕT	_.+ܴn`U:quI#L'NH+(9TTxJm>Mw%C/bNbY\XXoAP.BNkHNgb='QKD	# mv)qILU~	.<eU<a
+[̪ZUugaS+%adQ-j+ݓ,2Bw,~SPeddv8xfUي	֙eaB6P<0l8esR+MU<Wv-ҋkKSg#.iVYq|lil䀓V5|q8IԀ%'2K	JN-yjPLn톧V0=k+
+цr\]B׫
+#|]J^}3{Pk)Q[MlLcA[,E!rg}_%8stz
+RݮHvS5lV
+хy"ˬl-O"rwz$T0^TAǒ+1n퐟(iKMË[]-hBv)HO#qUkzCx?/mT_*qxinwF( AYOBp#SXeCd1vŢ5dp8XUX]Ucxl=c8<+!ԯARI%9bկ`J)]Jv~lǌn\;VNn3:37VA6o]/krdK_ItJ|M7N1wqk>!k^rWl|%}U;-$'Z/7r/gGE}I3DHtx7'9AFC+&
+{#ޘ
+Br徻WMG<쫻H.DcW~c]-r؁l1v+.͆bWP . sO|n'[;׿t`RoS>b,}{1+BUi_58O[rpܬ#Ei8Ecn#0UP101fW;:BqZBح%[{5٭q\/P nt9
+eQϯ)?5Ke̻}$0Yԫy1V,/}mW`u
+e9g+AKᕔFSLUMx%0Wf92j<H8b7̕?[&+,ꋄo(c'?7t}2ޞ<leH{F%Dw-m1;8m3n3\m7B'fBEw1DKKd^0Mumk576T4)U%F\n	+{IQf}T(-KǖAø5AQ<e`܈ wj'(X3jVߧ|S՚
+y;";[u-Wf;A86{9R2etUH^о<5Cu
+II3#:%-+7Ls!,ɇ}ݸ6.ӣ`OO/-yDά7@n3+XcWv_j	ºXYZ/*p-Gx9m?bZB	Ku5tZqːy	 _H"DINo0zmNBe_F>؍/]F|D} MLu>w0M@	Im&Akag\شR^üZ`_rc1(uĪ臨q;@Cd'j?i5SdM'Żr5F_&b!fP5u#5Fn4`P%!EKiiAWVP#|SoٸKΠUd0	/Ç,s"@o(#iرKJaW)~ԍ\wSD4fCK(ʵUKb.aXX|<vuZ<?1:ج,2	h$KV6iYBcxkioxar*0HWxZ_SV*a7JeO@rɣue5I8OĎި',@iQnZzIn+|&'%gL$oeZD%Ll;^tbӉi$"+SC,E@RHd*$mŏ-VW3;`9WKYC.bՌw23זTu 4{-{ރuG-;˙'DXCt?=2.rf+tHmer
+JY;*i3NSdwӃybZ@8+=jF.Vf4m;lbcR{ؕ.5>KDapF.z\eY3Sq[CM-d!; fۓ1;t'9BJjk@϶;ѻd!rTt8c	$vh̚A`xGa$[]FYf31atAz܆TFOx<nV=♍mn x]T|lz(#qޠs~;qOj鲋aV{O
+ҷf:h ]FS@99vG;	upIPH57\>@VXn~`(i
+t%t(9 H6L ^HFy en-_qѫfkg^A*;<+AnE !NAtki#B)TIjmûUgDY6K64 a]lewAg{8܎FJ#siOaEC)YjUXNV#R.U+ے?4Zٓ岪WZVCȼ1mZd:5K.pޏ ur=G͈u'i).K1WR`Ouwl XE2bO t;JH<+U!kv.m}&A2>BsRtϣy~acI08xqtG9'56%~8S9cgD]clpu˲I]nr˙@iOE'Y"O39ՠMAF04N^,Ѡ3C7d+.l%G޾uWQs].,>o}R@fg'3'sg0(J/;p=rt3E_Co@q#Jul%\,bbiUZoNg1f7Orw9*'Bf%;ʎqȰzlmB#Pɋǈx=yg
+kQ)kw4vS) RմQhs&&ZIxkI%HU&r/h=f ki|GƕaSwSP-A>Y^VUQlmf޸<+BO!Jz'~7֚7R%fP4=x٭mɽ-%Ҵ(_`Vi'wןbV[CmJ)iSOQKWGUcۦ+8^T?ᾃ['-cg:rT\	"mZY	{q1fTx3rh`Ӱ%/k1/d+WmIM6Qo#xt U{~_,繨i[	de>A"ݔ+z^JaR+Zs[F7ɗţYh (1x(ERi!*/LBtZ+A(xhy Fjքl%}qAC
+`EdE(,)
+݌F	͸9PW_"u%w^oyOo:m j5؃;T'ӕ`Ӷ`.}cq1nޗjdژ/ÝM%#lW6݅qHY0K`i0))Z_VRDԦyXXL8Q%WġT}	~cva&:A8
+(CNTKD`(cevevYA22 `B9b6宖0Մfm05(E: 
\ 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..90292f4
--- /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_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..a544973
--- /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_VtafjXmRvoUgAzqzYTA3Wrjkx9wcWhjP0G4ZnnqRamA.js b/sites/default/files/js/js_VtafjXmRvoUgAzqzYTA3Wrjkx9wcWhjP0G4ZnnqRamA.js
new file mode 100644
index 0000000..830cac7
--- /dev/null
+++ b/sites/default/files/js/js_VtafjXmRvoUgAzqzYTA3Wrjkx9wcWhjP0G4ZnnqRamA.js
@@ -0,0 +1,4 @@
+/**
+* @preserve HTML5 Shiv 3.7.3 | @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.3",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),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);;
diff --git a/sites/default/files/js/js_VtafjXmRvoUgAzqzYTA3Wrjkx9wcWhjP0G4ZnnqRamA.js.gz b/sites/default/files/js/js_VtafjXmRvoUgAzqzYTA3Wrjkx9wcWhjP0G4ZnnqRamA.js.gz
new file mode 100644
index 0000000..02ccb31
--- /dev/null
+++ b/sites/default/files/js/js_VtafjXmRvoUgAzqzYTA3Wrjkx9wcWhjP0G4ZnnqRamA.js.gz
@@ -0,0 +1,10 @@
+     }V[o6~ϯ!bNvu	-뀶)M<ˤ"N}rE\ӣSrQVPCȧ\%qy5FxA.*Xȇ>O^	5ȣh*CN衟׼"XT-Q2lV|G0ȁ ^;citr
+B*	j)u0N٤P2}sSA(m
+[sUuhZ˜::Am+1)	?q]
+!A>Pԫ*q(oҍGTd*Ҙӛ01yk>eӖ:aKVfiDӽ#TFj
+<"~rXN$
+IQ47LƂ~hh$QRj<Ks;+yIG;hL9-ϾTYlC.7qsI@4*:>CM4cS3DU,Йgu65ʮ].^i*_v˚t<n~JyP8D=Rvlu>ڸƖlnd}zGO(?2.{AN:;S-5$U0},:	ƘAQ\AYpן$&&}#'c>>	m4v 
+tvjs6o?}rnᜌs^7w׀WV(*/F2KoWй1*ꛪeYtɕiWRa/$-Xlx<\,ɳLTɳtDic˱pS"`>-5Pxհɷ3-<Oҕ+-yjm:cIo\aL5qD?M-Q.uZB`]/\忸u<ʙ%љkgy꿩g[[|obe
+hz tH>7>o@,ȕ9Lmʣz'MZcuVJ\l{v9't6[Ʊ`)9nqٲrKC<M1<+I"vS	Wf=3H2 -3g'KHbV\YR*a2>jґԫ%ؐĪ%5hFdI;^c\h9Wei*[mt J
+:bݡn	NL8_6h$7 IFYS.&lgCm4h	U?y첇Fp݃Nii_bsUfG!靬
+  
\ 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..1238c0d
--- /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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_block--search-form-block.html.twig_b464333b6b24337e48b6e9d9da876915a4e97b13d6aa0c20cd03304fd4c12193/.htaccess b/sites/default/files/php/twig/9f912b15_block--search-form-block.html.twig_b464333b6b24337e48b6e9d9da876915a4e97b13d6aa0c20cd03304fd4c12193/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--search-form-block.html.twig_b464333b6b24337e48b6e9d9da876915a4e97b13d6aa0c20cd03304fd4c12193/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_block--search-form-block.html.twig_b464333b6b24337e48b6e9d9da876915a4e97b13d6aa0c20cd03304fd4c12193/59e82cb66084dd4bb8e2a896b6a01058bb0a9b07f136bb613211c0318aa4f5f8.php b/sites/default/files/php/twig/9f912b15_block--search-form-block.html.twig_b464333b6b24337e48b6e9d9da876915a4e97b13d6aa0c20cd03304fd4c12193/59e82cb66084dd4bb8e2a896b6a01058bb0a9b07f136bb613211c0318aa4f5f8.php
new file mode 100644
index 0000000..96a2b14
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--search-form-block.html.twig_b464333b6b24337e48b6e9d9da876915a4e97b13d6aa0c20cd03304fd4c12193/59e82cb66084dd4bb8e2a896b6a01058bb0a9b07f136bb613211c0318aa4f5f8.php
@@ -0,0 +1,104 @@
+<?php
+
+/* core/themes/bartik/templates/block--search-form-block.html.twig */
+class __TwigTemplate_7c72408db85594fd9e31366aae01c1ac59a69ce30f2fe6b94ab2659231b8d3c8 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        // line 1
+        $this->parent = $this->loadTemplate("@classy/block/block--search-form-block.html.twig", "core/themes/bartik/templates/block--search-form-block.html.twig", 1);
+        $this->blocks = array(
+            'content' => array($this, 'block_content'),
+        );
+    }
+
+    protected function doGetParent(array $context)
+    {
+        return "@classy/block/block--search-form-block.html.twig";
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array();
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array(),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        $this->parent->display($context, array_merge($this->blocks, $blocks));
+    }
+
+    // line 19
+    public function block_content($context, array $blocks = array())
+    {
+        // line 20
+        echo "  <div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["content_attributes"]) ? $context["content_attributes"] : null), "addClass", array(0 => "content", 1 => "container-inline"), "method"), "html", null, true));
+        echo ">
+    ";
+        // line 21
+        $this->displayParentBlock("content", $context, $blocks);
+        echo "
+  </div>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/bartik/templates/block--search-form-block.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  60 => 21,  55 => 20,  52 => 19,  11 => 1,);
+    }
+}
+/* {% extends "@classy/block/block--search-form-block.html.twig" %}*/
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Bartik's theme implementation for a search form block. Extends Classy's*/
+/*  * search form block template.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - content: The content of this block.*/
+/*  * - content_attributes: A list of HTML attributes applied to the main content*/
+/*  *   tag that appears in the template.*/
+/*  **/
+/*  * @see template_preprocess_block()*/
+/*  * @see search_preprocess_block()*/
+/*  **/
+/*  * @ingroup themeable*/
+/*  *//* */
+/* #}*/
+/* {% block content %}*/
+/*   <div{{ content_attributes.addClass('content', 'container-inline') }}>*/
+/*     {{ parent() }}*/
+/*   </div>*/
+/* {% endblock %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_block--search-form-block.html.twig_f581d78216039a9e0c54a867a9086c2e3ee40f0829912b4579b802c1f0976ec1/.htaccess b/sites/default/files/php/twig/9f912b15_block--search-form-block.html.twig_f581d78216039a9e0c54a867a9086c2e3ee40f0829912b4579b802c1f0976ec1/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--search-form-block.html.twig_f581d78216039a9e0c54a867a9086c2e3ee40f0829912b4579b802c1f0976ec1/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_block--search-form-block.html.twig_f581d78216039a9e0c54a867a9086c2e3ee40f0829912b4579b802c1f0976ec1/9301cc8baf903a24955f10f567fab91043fc18d478b128f6e8e352a91c91d5da.php b/sites/default/files/php/twig/9f912b15_block--search-form-block.html.twig_f581d78216039a9e0c54a867a9086c2e3ee40f0829912b4579b802c1f0976ec1/9301cc8baf903a24955f10f567fab91043fc18d478b128f6e8e352a91c91d5da.php
new file mode 100644
index 0000000..2285256
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--search-form-block.html.twig_f581d78216039a9e0c54a867a9086c2e3ee40f0829912b4579b802c1f0976ec1/9301cc8baf903a24955f10f567fab91043fc18d478b128f6e8e352a91c91d5da.php
@@ -0,0 +1,146 @@
+<?php
+
+/* @classy/block/block--search-form-block.html.twig */
+class __TwigTemplate_667373af10f5c4e962dfd33115cba003600f3d47ea2059393693648ccb7315ce extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+            'content' => array($this, 'block_content'),
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 30, "if" => 38, "block" => 42);
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if', 'block'),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 30
+        $context["classes"] = array(0 => "block", 1 => "block-search", 2 => "container-inline");
+        // line 36
+        echo "<div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+        echo ">
+  ";
+        // line 37
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_prefix"]) ? $context["title_prefix"] : null), "html", null, true));
+        echo "
+  ";
+        // line 38
+        if ((isset($context["label"]) ? $context["label"] : null)) {
+            // line 39
+            echo "    <h2";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_attributes"]) ? $context["title_attributes"] : null), "html", null, true));
+            echo ">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["label"]) ? $context["label"] : null), "html", null, true));
+            echo "</h2>
+  ";
+        }
+        // line 41
+        echo "  ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_suffix"]) ? $context["title_suffix"] : null), "html", null, true));
+        echo "
+  ";
+        // line 42
+        $this->displayBlock('content', $context, $blocks);
+        // line 45
+        echo "</div>
+";
+    }
+
+    // line 42
+    public function block_content($context, array $blocks = array())
+    {
+        // line 43
+        echo "    ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["content"]) ? $context["content"] : null), "html", null, true));
+        echo "
+  ";
+    }
+
+    public function getTemplateName()
+    {
+        return "@classy/block/block--search-form-block.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  80 => 43,  77 => 42,  72 => 45,  70 => 42,  65 => 41,  57 => 39,  55 => 38,  51 => 37,  46 => 36,  44 => 30,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for the search form block.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - plugin_id: The ID of the block implementation.*/
+/*  * - label: The configured label of the block if visible.*/
+/*  * - configuration: A list of the block's configuration values, including:*/
+/*  *   - label: The configured label for the block.*/
+/*  *   - label_display: The display settings for the label.*/
+/*  *   - provider: The module or other provider that provided this block plugin.*/
+/*  *   - Block plugin specific settings will also be stored here.*/
+/*  * - content: The content of this block.*/
+/*  * - attributes: A list HTML attributes populated by modules, intended to*/
+/*  *   be added to the main container tag of this template. Includes:*/
+/*  *   - id: A valid HTML ID and guaranteed unique.*/
+/*  * - title_attributes: Same as attributes, except applied to the main title*/
+/*  *   tag that appears in the template.*/
+/*  * - title_prefix: Additional output populated by modules, intended to be*/
+/*  *   displayed in front of the main title tag that appears in the template.*/
+/*  * - title_suffix: Additional output populated by modules, intended to be*/
+/*  *   displayed after the main title tag that appears in the template.*/
+/*  **/
+/*  * @see template_preprocess_block()*/
+/*  * @see search_preprocess_block()*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     'block',*/
+/*     'block-search',*/
+/*     'container-inline',*/
+/*   ]*/
+/* %}*/
+/* <div{{ attributes.addClass(classes) }}>*/
+/*   {{ title_prefix }}*/
+/*   {% if label %}*/
+/*     <h2{{ title_attributes }}>{{ label }}</h2>*/
+/*   {% endif %}*/
+/*   {{ title_suffix }}*/
+/*   {% block content %}*/
+/*     {{ content }}*/
+/*   {% endblock %}*/
+/* </div>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_block--system-branding-block.html.twig_17f468a7ab48602153c7522aa59ebdd2e10eff4e715cdc38f77a0525f5ba10f4/.htaccess b/sites/default/files/php/twig/9f912b15_block--system-branding-block.html.twig_17f468a7ab48602153c7522aa59ebdd2e10eff4e715cdc38f77a0525f5ba10f4/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--system-branding-block.html.twig_17f468a7ab48602153c7522aa59ebdd2e10eff4e715cdc38f77a0525f5ba10f4/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_block--system-branding-block.html.twig_17f468a7ab48602153c7522aa59ebdd2e10eff4e715cdc38f77a0525f5ba10f4/95c053eabf891c40b74c7a7a517a48674202cba366e759e097519512bf7a2ab6.php b/sites/default/files/php/twig/9f912b15_block--system-branding-block.html.twig_17f468a7ab48602153c7522aa59ebdd2e10eff4e715cdc38f77a0525f5ba10f4/95c053eabf891c40b74c7a7a517a48674202cba366e759e097519512bf7a2ab6.php
new file mode 100644
index 0000000..4b0fc06
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--system-branding-block.html.twig_17f468a7ab48602153c7522aa59ebdd2e10eff4e715cdc38f77a0525f5ba10f4/95c053eabf891c40b74c7a7a517a48674202cba366e759e097519512bf7a2ab6.php
@@ -0,0 +1,161 @@
+<?php
+
+/* core/themes/bartik/templates/block--system-branding-block.html.twig */
+class __TwigTemplate_d522344be7ba7f42b5421923cc118b6a8578b53f000a3a93afae56cd3b18ea33 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        // line 1
+        $this->parent = $this->loadTemplate("block.html.twig", "core/themes/bartik/templates/block--system-branding-block.html.twig", 1);
+        $this->blocks = array(
+            'content' => array($this, 'block_content'),
+        );
+    }
+
+    protected function doGetParent(array $context)
+    {
+        return "block.html.twig";
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 16, "if" => 18);
+        $filters = array("t" => 19);
+        $functions = array("path" => 19);
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if'),
+                array('t'),
+                array('path')
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 16
+        $context["attributes"] = $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => "site-branding"), "method");
+        // line 1
+        $this->parent->display($context, array_merge($this->blocks, $blocks));
+    }
+
+    // line 17
+    public function block_content($context, array $blocks = array())
+    {
+        // line 18
+        echo "  ";
+        if ((isset($context["site_logo"]) ? $context["site_logo"] : null)) {
+            // line 19
+            echo "    <a href=\"";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar($this->env->getExtension('drupal_core')->getPath("<front>")));
+            echo "\" title=\"";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Home")));
+            echo "\" rel=\"home\" class=\"site-branding__logo\">
+      <img src=\"";
+            // line 20
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["site_logo"]) ? $context["site_logo"] : null), "html", null, true));
+            echo "\" alt=\"";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Home")));
+            echo "\" />
+    </a>
+  ";
+        }
+        // line 23
+        echo "  ";
+        if (((isset($context["site_name"]) ? $context["site_name"] : null) || (isset($context["site_slogan"]) ? $context["site_slogan"] : null))) {
+            // line 24
+            echo "    <div class=\"site-branding__text\">
+      ";
+            // line 25
+            if ((isset($context["site_name"]) ? $context["site_name"] : null)) {
+                // line 26
+                echo "        <div class=\"site-branding__name\">
+          <a href=\"";
+                // line 27
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar($this->env->getExtension('drupal_core')->getPath("<front>")));
+                echo "\" title=\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Home")));
+                echo "\" rel=\"home\">";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["site_name"]) ? $context["site_name"] : null), "html", null, true));
+                echo "</a>
+        </div>
+      ";
+            }
+            // line 30
+            echo "      ";
+            if ((isset($context["site_slogan"]) ? $context["site_slogan"] : null)) {
+                // line 31
+                echo "        <div class=\"site-branding__slogan\">";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["site_slogan"]) ? $context["site_slogan"] : null), "html", null, true));
+                echo "</div>
+      ";
+            }
+            // line 33
+            echo "    </div>
+  ";
+        }
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/bartik/templates/block--system-branding-block.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  106 => 33,  100 => 31,  97 => 30,  87 => 27,  84 => 26,  82 => 25,  79 => 24,  76 => 23,  68 => 20,  61 => 19,  58 => 18,  55 => 17,  51 => 1,  49 => 16,  11 => 1,);
+    }
+}
+/* {% extends "block.html.twig" %}*/
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Bartik's theme implementation for a branding block.*/
+/*  **/
+/*  * Each branding element variable (logo, name, slogan) is only available if*/
+/*  * enabled in the block configuration.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - site_logo: Logo for site as defined in Appearance or theme settings.*/
+/*  * - site_name: Name for site as defined in Site information settings.*/
+/*  * - site_slogan: Slogan for site as defined in Site information settings.*/
+/*  *//* */
+/* #}*/
+/* {% set attributes = attributes.addClass('site-branding') %}*/
+/* {% block content %}*/
+/*   {% if site_logo %}*/
+/*     <a href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home" class="site-branding__logo">*/
+/*       <img src="{{ site_logo }}" alt="{{ 'Home'|t }}" />*/
+/*     </a>*/
+/*   {% endif %}*/
+/*   {% if site_name or site_slogan %}*/
+/*     <div class="site-branding__text">*/
+/*       {% if site_name %}*/
+/*         <div class="site-branding__name">*/
+/*           <a href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home">{{ site_name }}</a>*/
+/*         </div>*/
+/*       {% endif %}*/
+/*       {% if site_slogan %}*/
+/*         <div class="site-branding__slogan">{{ site_slogan }}</div>*/
+/*       {% endif %}*/
+/*     </div>*/
+/*   {% endif %}*/
+/* {% endblock %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_block--system-menu-block.html.twig_217cdaf5f7d7bac41fe7c72b0fdcc2b2c1227bf9514137f3fa4513a59152b5b5/.htaccess b/sites/default/files/php/twig/9f912b15_block--system-menu-block.html.twig_217cdaf5f7d7bac41fe7c72b0fdcc2b2c1227bf9514137f3fa4513a59152b5b5/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--system-menu-block.html.twig_217cdaf5f7d7bac41fe7c72b0fdcc2b2c1227bf9514137f3fa4513a59152b5b5/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_block--system-menu-block.html.twig_217cdaf5f7d7bac41fe7c72b0fdcc2b2c1227bf9514137f3fa4513a59152b5b5/83e7efabfe723b34311f09bbf435ff305cb014a56b826037be0d5fde7ff3a0c3.php b/sites/default/files/php/twig/9f912b15_block--system-menu-block.html.twig_217cdaf5f7d7bac41fe7c72b0fdcc2b2c1227bf9514137f3fa4513a59152b5b5/83e7efabfe723b34311f09bbf435ff305cb014a56b826037be0d5fde7ff3a0c3.php
new file mode 100644
index 0000000..c20333e
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--system-menu-block.html.twig_217cdaf5f7d7bac41fe7c72b0fdcc2b2c1227bf9514137f3fa4513a59152b5b5/83e7efabfe723b34311f09bbf435ff305cb014a56b826037be0d5fde7ff3a0c3.php
@@ -0,0 +1,169 @@
+<?php
+
+/* @classy/block/block--system-menu-block.html.twig */
+class __TwigTemplate_286be89695be62461793c7a848ea6662148a8e014affbf80286cfa0942d9eb20 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+            'content' => array($this, 'block_content'),
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 35, "if" => 45, "block" => 53);
+        $filters = array("clean_class" => 39, "clean_id" => 42, "without" => 43);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if', 'block'),
+                array('clean_class', 'clean_id', 'without'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 35
+        $context["classes"] = array(0 => "block", 1 => "block-menu", 2 => "navigation", 3 => ("menu--" . \Drupal\Component\Utility\Html::getClass(        // line 39
+(isset($context["derivative_plugin_id"]) ? $context["derivative_plugin_id"] : null))));
+        // line 42
+        $context["heading_id"] = ($this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "id", array()) . \Drupal\Component\Utility\Html::getId("-menu"));
+        // line 43
+        echo "<nav role=\"navigation\" aria-labelledby=\"";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["heading_id"]) ? $context["heading_id"] : null), "html", null, true));
+        echo "\"";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, twig_without($this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "role", "aria-labelledby"), "html", null, true));
+        echo ">
+  ";
+        // line 45
+        echo "  ";
+        if ( !$this->getAttribute((isset($context["configuration"]) ? $context["configuration"] : null), "label_display", array())) {
+            // line 46
+            echo "    ";
+            $context["title_attributes"] = $this->getAttribute((isset($context["title_attributes"]) ? $context["title_attributes"] : null), "addClass", array(0 => "visually-hidden"), "method");
+            // line 47
+            echo "  ";
+        }
+        // line 48
+        echo "  ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_prefix"]) ? $context["title_prefix"] : null), "html", null, true));
+        echo "
+  <h2";
+        // line 49
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["title_attributes"]) ? $context["title_attributes"] : null), "setAttribute", array(0 => "id", 1 => (isset($context["heading_id"]) ? $context["heading_id"] : null)), "method"), "html", null, true));
+        echo ">";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["configuration"]) ? $context["configuration"] : null), "label", array()), "html", null, true));
+        echo "</h2>
+  ";
+        // line 50
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_suffix"]) ? $context["title_suffix"] : null), "html", null, true));
+        echo "
+
+  ";
+        // line 53
+        echo "  ";
+        $this->displayBlock('content', $context, $blocks);
+        // line 56
+        echo "</nav>
+";
+    }
+
+    // line 53
+    public function block_content($context, array $blocks = array())
+    {
+        // line 54
+        echo "    ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["content"]) ? $context["content"] : null), "html", null, true));
+        echo "
+  ";
+    }
+
+    public function getTemplateName()
+    {
+        return "@classy/block/block--system-menu-block.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  92 => 54,  89 => 53,  84 => 56,  81 => 53,  76 => 50,  70 => 49,  65 => 48,  62 => 47,  59 => 46,  56 => 45,  49 => 43,  47 => 42,  45 => 39,  44 => 35,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a menu block.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - plugin_id: The ID of the block implementation.*/
+/*  * - label: The configured label of the block if visible.*/
+/*  * - configuration: A list of the block's configuration values.*/
+/*  *   - label: The configured label for the block.*/
+/*  *   - label_display: The display settings for the label.*/
+/*  *   - provider: The module or other provider that provided this block plugin.*/
+/*  *   - Block plugin specific settings will also be stored here.*/
+/*  * - content: The content of this block.*/
+/*  * - attributes: HTML attributes for the containing element.*/
+/*  *   - id: A valid HTML ID and guaranteed unique.*/
+/*  * - title_attributes: HTML attributes for the title element.*/
+/*  * - content_attributes: HTML attributes for the content element.*/
+/*  * - title_prefix: Additional output populated by modules, intended to be*/
+/*  *   displayed in front of the main title tag that appears in the template.*/
+/*  * - title_suffix: Additional output populated by modules, intended to be*/
+/*  *   displayed after the main title tag that appears in the template.*/
+/*  **/
+/*  * Headings should be used on navigation menus that consistently appear on*/
+/*  * multiple pages. When this menu block's label is configured to not be*/
+/*  * displayed, it is automatically made invisible using the 'visually-hidden' CSS*/
+/*  * class, which still keeps it visible for screen-readers and assistive*/
+/*  * technology. Headings allow screen-reader and keyboard only users to navigate*/
+/*  * to or skip the links.*/
+/*  * See http://juicystudio.com/article/screen-readers-display-none.php and*/
+/*  * http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     'block',*/
+/*     'block-menu',*/
+/*     'navigation',*/
+/*     'menu--' ~ derivative_plugin_id|clean_class,*/
+/*   ]*/
+/* %}*/
+/* {% set heading_id = attributes.id ~ '-menu'|clean_id %}*/
+/* <nav role="navigation" aria-labelledby="{{ heading_id }}"{{ attributes.addClass(classes)|without('role', 'aria-labelledby') }}>*/
+/*   {# Label. If not displayed, we still provide it for screen readers. #}*/
+/*   {% if not configuration.label_display %}*/
+/*     {% set title_attributes = title_attributes.addClass('visually-hidden') %}*/
+/*   {% endif %}*/
+/*   {{ title_prefix }}*/
+/*   <h2{{ title_attributes.setAttribute('id', heading_id) }}>{{ configuration.label }}</h2>*/
+/*   {{ title_suffix }}*/
+/* */
+/*   {# Menu. #}*/
+/*   {% block content %}*/
+/*     {{ content }}*/
+/*   {% endblock %}*/
+/* </nav>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_block--system-menu-block.html.twig_ad408633bd48c000aa0c25bef0b7820c16d25d34fa5cc698bf8c1e78354553d9/.htaccess b/sites/default/files/php/twig/9f912b15_block--system-menu-block.html.twig_ad408633bd48c000aa0c25bef0b7820c16d25d34fa5cc698bf8c1e78354553d9/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--system-menu-block.html.twig_ad408633bd48c000aa0c25bef0b7820c16d25d34fa5cc698bf8c1e78354553d9/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_block--system-menu-block.html.twig_ad408633bd48c000aa0c25bef0b7820c16d25d34fa5cc698bf8c1e78354553d9/ddc443d8eec61b4b4873baac05d6ea2578e849a7a86c3e3835590c4d539c2bb8.php b/sites/default/files/php/twig/9f912b15_block--system-menu-block.html.twig_ad408633bd48c000aa0c25bef0b7820c16d25d34fa5cc698bf8c1e78354553d9/ddc443d8eec61b4b4873baac05d6ea2578e849a7a86c3e3835590c4d539c2bb8.php
new file mode 100644
index 0000000..4938676
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--system-menu-block.html.twig_ad408633bd48c000aa0c25bef0b7820c16d25d34fa5cc698bf8c1e78354553d9/ddc443d8eec61b4b4873baac05d6ea2578e849a7a86c3e3835590c4d539c2bb8.php
@@ -0,0 +1,128 @@
+<?php
+
+/* core/themes/bartik/templates/block--system-menu-block.html.twig */
+class __TwigTemplate_499b4f4229629f47dd69890e28ecb35f94db6751def3d6351fab76116f14803a extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        // line 1
+        $this->parent = $this->loadTemplate("@classy/block/block--system-menu-block.html.twig", "core/themes/bartik/templates/block--system-menu-block.html.twig", 1);
+        $this->blocks = array(
+            'content' => array($this, 'block_content'),
+        );
+    }
+
+    protected function doGetParent(array $context)
+    {
+        return "@classy/block/block--system-menu-block.html.twig";
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 10, "trans" => 17);
+        $filters = array("clean_id" => 10);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'trans'),
+                array('clean_id'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 10
+        $context["show_anchor"] = ("show-" . \Drupal\Component\Utility\Html::getId($this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "id", array())));
+        // line 11
+        $context["hide_anchor"] = ("hide-" . \Drupal\Component\Utility\Html::getId($this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "id", array())));
+        // line 1
+        $this->parent->display($context, array_merge($this->blocks, $blocks));
+    }
+
+    // line 12
+    public function block_content($context, array $blocks = array())
+    {
+        // line 13
+        echo "  <div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["content_attributes"]) ? $context["content_attributes"] : null), "addClass", array(0 => "content"), "method"), "html", null, true));
+        echo ">
+    ";
+        // line 15
+        echo "    <div class=\"menu-toggle-target menu-toggle-target-show\" id=\"";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["show_anchor"]) ? $context["show_anchor"] : null), "html", null, true));
+        echo "\"></div>
+    <div class=\"menu-toggle-target\" id=\"";
+        // line 16
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["hide_anchor"]) ? $context["hide_anchor"] : null), "html", null, true));
+        echo "\"></div>
+    <a class=\"menu-toggle\" href=\"#";
+        // line 17
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["show_anchor"]) ? $context["show_anchor"] : null), "html", null, true));
+        echo "\">";
+        echo t("Show &mdash; @configuration.label", array("@configuration.label" => $this->getAttribute((isset($context["configuration"]) ? $context["configuration"] : null), "label", array()), ));
+        echo "</a>
+    <a class=\"menu-toggle menu-toggle--hide\" href=\"#";
+        // line 18
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["hide_anchor"]) ? $context["hide_anchor"] : null), "html", null, true));
+        echo "\">";
+        echo t("Hide &mdash; @configuration.label", array("@configuration.label" => $this->getAttribute((isset($context["configuration"]) ? $context["configuration"] : null), "label", array()), ));
+        echo "</a>
+    ";
+        // line 19
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["content"]) ? $context["content"] : null), "html", null, true));
+        echo "
+  </div>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/bartik/templates/block--system-menu-block.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  86 => 19,  80 => 18,  74 => 17,  70 => 16,  65 => 15,  60 => 13,  57 => 12,  53 => 1,  51 => 11,  49 => 10,  11 => 1,);
+    }
+}
+/* {% extends "@classy/block/block--system-menu-block.html.twig" %}*/
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Bartik's theme implementation for a menu block.*/
+/*  **/
+/*  * @ingroup themeable*/
+/*  *//* */
+/* #}*/
+/* {% set show_anchor = "show-" ~ attributes.id|clean_id %}*/
+/* {% set hide_anchor = "hide-" ~ attributes.id|clean_id %}*/
+/* {% block content %}*/
+/*   <div{{ content_attributes.addClass('content') }}>*/
+/*     {# When rendering a menu without label, render a menu toggle. #}*/
+/*     <div class="menu-toggle-target menu-toggle-target-show" id="{{ show_anchor }}"></div>*/
+/*     <div class="menu-toggle-target" id="{{ hide_anchor }}"></div>*/
+/*     <a class="menu-toggle" href="#{{ show_anchor }}">{% trans %} Show &mdash; {{ configuration.label }}{% endtrans %}</a>*/
+/*     <a class="menu-toggle menu-toggle--hide" href="#{{ hide_anchor }}">{% trans %} Hide &mdash; {{ configuration.label }}{% endtrans %}</a>*/
+/*     {{ content }}*/
+/*   </div>*/
+/* {% endblock %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_block--system-messages-block.html.twig_f0232361520e300cc81efcbd6e4469db77afab07cdf90994f654dbc9abf1a883/.htaccess b/sites/default/files/php/twig/9f912b15_block--system-messages-block.html.twig_f0232361520e300cc81efcbd6e4469db77afab07cdf90994f654dbc9abf1a883/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--system-messages-block.html.twig_f0232361520e300cc81efcbd6e4469db77afab07cdf90994f654dbc9abf1a883/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_block--system-messages-block.html.twig_f0232361520e300cc81efcbd6e4469db77afab07cdf90994f654dbc9abf1a883/02197976e36f6e2a500209fca77287f933c2a07585caff9db73e4860f5f144d1.php b/sites/default/files/php/twig/9f912b15_block--system-messages-block.html.twig_f0232361520e300cc81efcbd6e4469db77afab07cdf90994f654dbc9abf1a883/02197976e36f6e2a500209fca77287f933c2a07585caff9db73e4860f5f144d1.php
new file mode 100644
index 0000000..b637db7
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block--system-messages-block.html.twig_f0232361520e300cc81efcbd6e4469db77afab07cdf90994f654dbc9abf1a883/02197976e36f6e2a500209fca77287f933c2a07585caff9db73e4860f5f144d1.php
@@ -0,0 +1,76 @@
+<?php
+
+/* core/themes/stable/templates/block/block--system-messages-block.html.twig */
+class __TwigTemplate_01abb53133aeec0d0869c692ac92819c76f689b5c54c35e650981e0b362c04c3 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array();
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array(),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 13
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["content"]) ? $context["content"] : null), "html", null, true));
+        echo "
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/stable/templates/block/block--system-messages-block.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  43 => 13,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for the messages block.*/
+/*  **/
+/*  * Removes wrapper elements from block so that empty block does not appear when*/
+/*  * there are no messages.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - content: The content of this block.*/
+/*  *//* */
+/* #}*/
+/* {{ content }}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_block.html.twig_147f4ea2f2940f4ae2ecae3c806942aa50545583914efd053fd1dc7dd4977cfd/.htaccess b/sites/default/files/php/twig/9f912b15_block.html.twig_147f4ea2f2940f4ae2ecae3c806942aa50545583914efd053fd1dc7dd4977cfd/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block.html.twig_147f4ea2f2940f4ae2ecae3c806942aa50545583914efd053fd1dc7dd4977cfd/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_block.html.twig_147f4ea2f2940f4ae2ecae3c806942aa50545583914efd053fd1dc7dd4977cfd/e201459b75adc807565a77fe34a2a575951faae0356578ab4f28d51ef5b74eb8.php b/sites/default/files/php/twig/9f912b15_block.html.twig_147f4ea2f2940f4ae2ecae3c806942aa50545583914efd053fd1dc7dd4977cfd/e201459b75adc807565a77fe34a2a575951faae0356578ab4f28d51ef5b74eb8.php
new file mode 100644
index 0000000..eff9b72
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block.html.twig_147f4ea2f2940f4ae2ecae3c806942aa50545583914efd053fd1dc7dd4977cfd/e201459b75adc807565a77fe34a2a575951faae0356578ab4f28d51ef5b74eb8.php
@@ -0,0 +1,158 @@
+<?php
+
+/* core/themes/bartik/templates/block.html.twig */
+class __TwigTemplate_b868e5e3e0ceb9b220dded8032ff609e8a2b4491cb1f5a7294fff9fb501c5890 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+            'content' => array($this, 'block_content'),
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 33, "if" => 41, "block" => 45);
+        $filters = array("clean_class" => 35);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if', 'block'),
+                array('clean_class'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 33
+        $context["classes"] = array(0 => "block", 1 => ("block-" . \Drupal\Component\Utility\Html::getClass($this->getAttribute(        // line 35
+(isset($context["configuration"]) ? $context["configuration"] : null), "provider", array()))), 2 => ("block-" . \Drupal\Component\Utility\Html::getClass(        // line 36
+(isset($context["plugin_id"]) ? $context["plugin_id"] : null))));
+        // line 39
+        echo "<div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+        echo ">
+  ";
+        // line 40
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_prefix"]) ? $context["title_prefix"] : null), "html", null, true));
+        echo "
+  ";
+        // line 41
+        if ((isset($context["label"]) ? $context["label"] : null)) {
+            // line 42
+            echo "    <h2";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_attributes"]) ? $context["title_attributes"] : null), "html", null, true));
+            echo ">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["label"]) ? $context["label"] : null), "html", null, true));
+            echo "</h2>
+  ";
+        }
+        // line 44
+        echo "  ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_suffix"]) ? $context["title_suffix"] : null), "html", null, true));
+        echo "
+  ";
+        // line 45
+        $this->displayBlock('content', $context, $blocks);
+        // line 50
+        echo "</div>
+";
+    }
+
+    // line 45
+    public function block_content($context, array $blocks = array())
+    {
+        // line 46
+        echo "    <div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["content_attributes"]) ? $context["content_attributes"] : null), "addClass", array(0 => "content"), "method"), "html", null, true));
+        echo ">
+      ";
+        // line 47
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["content"]) ? $context["content"] : null), "html", null, true));
+        echo "
+    </div>
+  ";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/bartik/templates/block.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  87 => 47,  82 => 46,  79 => 45,  74 => 50,  72 => 45,  67 => 44,  59 => 42,  57 => 41,  53 => 40,  48 => 39,  46 => 36,  45 => 35,  44 => 33,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Default theme implementation to display a block.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - plugin_id: The ID of the block implementation.*/
+/*  * - label: The configured label of the block if visible.*/
+/*  * - configuration: A list of the block's configuration values.*/
+/*  *   - label: The configured label for the block.*/
+/*  *   - label_display: The display settings for the label.*/
+/*  *   - provider: The module or other provider that provided this block plugin.*/
+/*  *   - Block plugin specific settings will also be stored here.*/
+/*  * - content: The content of this block.*/
+/*  * - attributes: array of HTML attributes populated by modules, intended to*/
+/*  *   be added to the main container tag of this template.*/
+/*  *   - id: A valid HTML ID and guaranteed unique.*/
+/*  * - title_attributes: Same as attributes, except applied to the main title*/
+/*  *   tag that appears in the template.*/
+/*  * - content_attributes: Same as attributes, except applied to the main content*/
+/*  *   tag that appears in the template.*/
+/*  * - title_prefix: Additional output populated by modules, intended to be*/
+/*  *   displayed in front of the main title tag that appears in the template.*/
+/*  * - title_suffix: Additional output populated by modules, intended to be*/
+/*  *   displayed after the main title tag that appears in the template.*/
+/*  **/
+/*  * @see template_preprocess_block()*/
+/*  **/
+/*  * @ingroup themeable*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     'block',*/
+/*     'block-' ~ configuration.provider|clean_class,*/
+/*     'block-' ~ plugin_id|clean_class,*/
+/*   ]*/
+/* %}*/
+/* <div{{ attributes.addClass(classes) }}>*/
+/*   {{ title_prefix }}*/
+/*   {% if label %}*/
+/*     <h2{{ title_attributes }}>{{ label }}</h2>*/
+/*   {% endif %}*/
+/*   {{ title_suffix }}*/
+/*   {% block content %}*/
+/*     <div{{ content_attributes.addClass('content') }}>*/
+/*       {{ content }}*/
+/*     </div>*/
+/*   {% endblock %}*/
+/* </div>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_block.html.twig_349f12e10a88862a80883dc857b6c37f52abd5d726279ec21c6b343985eab587/.htaccess b/sites/default/files/php/twig/9f912b15_block.html.twig_349f12e10a88862a80883dc857b6c37f52abd5d726279ec21c6b343985eab587/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block.html.twig_349f12e10a88862a80883dc857b6c37f52abd5d726279ec21c6b343985eab587/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_block.html.twig_349f12e10a88862a80883dc857b6c37f52abd5d726279ec21c6b343985eab587/ee1d64e851c5c66944a9584945d02efbf33923c220c3a0ec3e49a4808b4d205c.php b/sites/default/files/php/twig/9f912b15_block.html.twig_349f12e10a88862a80883dc857b6c37f52abd5d726279ec21c6b343985eab587/ee1d64e851c5c66944a9584945d02efbf33923c220c3a0ec3e49a4808b4d205c.php
new file mode 100644
index 0000000..88b222a
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_block.html.twig_349f12e10a88862a80883dc857b6c37f52abd5d726279ec21c6b343985eab587/ee1d64e851c5c66944a9584945d02efbf33923c220c3a0ec3e49a4808b4d205c.php
@@ -0,0 +1,158 @@
+<?php
+
+/* block.html.twig */
+class __TwigTemplate_427ceffeef7118469d7753956e2b0d458f0c2f44d3b385e4ec36128cfc86801f extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+            'content' => array($this, 'block_content'),
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 33, "if" => 41, "block" => 45);
+        $filters = array("clean_class" => 35);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if', 'block'),
+                array('clean_class'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 33
+        $context["classes"] = array(0 => "block", 1 => ("block-" . \Drupal\Component\Utility\Html::getClass($this->getAttribute(        // line 35
+(isset($context["configuration"]) ? $context["configuration"] : null), "provider", array()))), 2 => ("block-" . \Drupal\Component\Utility\Html::getClass(        // line 36
+(isset($context["plugin_id"]) ? $context["plugin_id"] : null))));
+        // line 39
+        echo "<div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+        echo ">
+  ";
+        // line 40
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_prefix"]) ? $context["title_prefix"] : null), "html", null, true));
+        echo "
+  ";
+        // line 41
+        if ((isset($context["label"]) ? $context["label"] : null)) {
+            // line 42
+            echo "    <h2";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_attributes"]) ? $context["title_attributes"] : null), "html", null, true));
+            echo ">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["label"]) ? $context["label"] : null), "html", null, true));
+            echo "</h2>
+  ";
+        }
+        // line 44
+        echo "  ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_suffix"]) ? $context["title_suffix"] : null), "html", null, true));
+        echo "
+  ";
+        // line 45
+        $this->displayBlock('content', $context, $blocks);
+        // line 50
+        echo "</div>
+";
+    }
+
+    // line 45
+    public function block_content($context, array $blocks = array())
+    {
+        // line 46
+        echo "    <div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["content_attributes"]) ? $context["content_attributes"] : null), "addClass", array(0 => "content"), "method"), "html", null, true));
+        echo ">
+      ";
+        // line 47
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["content"]) ? $context["content"] : null), "html", null, true));
+        echo "
+    </div>
+  ";
+    }
+
+    public function getTemplateName()
+    {
+        return "block.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  87 => 47,  82 => 46,  79 => 45,  74 => 50,  72 => 45,  67 => 44,  59 => 42,  57 => 41,  53 => 40,  48 => 39,  46 => 36,  45 => 35,  44 => 33,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Default theme implementation to display a block.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - plugin_id: The ID of the block implementation.*/
+/*  * - label: The configured label of the block if visible.*/
+/*  * - configuration: A list of the block's configuration values.*/
+/*  *   - label: The configured label for the block.*/
+/*  *   - label_display: The display settings for the label.*/
+/*  *   - provider: The module or other provider that provided this block plugin.*/
+/*  *   - Block plugin specific settings will also be stored here.*/
+/*  * - content: The content of this block.*/
+/*  * - attributes: array of HTML attributes populated by modules, intended to*/
+/*  *   be added to the main container tag of this template.*/
+/*  *   - id: A valid HTML ID and guaranteed unique.*/
+/*  * - title_attributes: Same as attributes, except applied to the main title*/
+/*  *   tag that appears in the template.*/
+/*  * - content_attributes: Same as attributes, except applied to the main content*/
+/*  *   tag that appears in the template.*/
+/*  * - title_prefix: Additional output populated by modules, intended to be*/
+/*  *   displayed in front of the main title tag that appears in the template.*/
+/*  * - title_suffix: Additional output populated by modules, intended to be*/
+/*  *   displayed after the main title tag that appears in the template.*/
+/*  **/
+/*  * @see template_preprocess_block()*/
+/*  **/
+/*  * @ingroup themeable*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     'block',*/
+/*     'block-' ~ configuration.provider|clean_class,*/
+/*     'block-' ~ plugin_id|clean_class,*/
+/*   ]*/
+/* %}*/
+/* <div{{ attributes.addClass(classes) }}>*/
+/*   {{ title_prefix }}*/
+/*   {% if label %}*/
+/*     <h2{{ title_attributes }}>{{ label }}</h2>*/
+/*   {% endif %}*/
+/*   {{ title_suffix }}*/
+/*   {% block content %}*/
+/*     <div{{ content_attributes.addClass('content') }}>*/
+/*       {{ content }}*/
+/*     </div>*/
+/*   {% endblock %}*/
+/* </div>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_checkboxes.html.twig_894408092b24f77f43b5434a5213edf003da7d739da303ba1ba6de15d4079c37/.htaccess b/sites/default/files/php/twig/9f912b15_checkboxes.html.twig_894408092b24f77f43b5434a5213edf003da7d739da303ba1ba6de15d4079c37/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_checkboxes.html.twig_894408092b24f77f43b5434a5213edf003da7d739da303ba1ba6de15d4079c37/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_checkboxes.html.twig_894408092b24f77f43b5434a5213edf003da7d739da303ba1ba6de15d4079c37/1326f8cb0322b3527d7a679b772ce02d5290884d75475c093629305fa267c237.php b/sites/default/files/php/twig/9f912b15_checkboxes.html.twig_894408092b24f77f43b5434a5213edf003da7d739da303ba1ba6de15d4079c37/1326f8cb0322b3527d7a679b772ce02d5290884d75475c093629305fa267c237.php
new file mode 100644
index 0000000..7d5009e
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_checkboxes.html.twig_894408092b24f77f43b5434a5213edf003da7d739da303ba1ba6de15d4079c37/1326f8cb0322b3527d7a679b772ce02d5290884d75475c093629305fa267c237.php
@@ -0,0 +1,81 @@
+<?php
+
+/* core/themes/classy/templates/form/checkboxes.html.twig */
+class __TwigTemplate_16cbfed1da90728eb4cca2e9a2428d3081261ca822c1ad63293d513eac559b3f extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array();
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array(),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 15
+        echo "<div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => "form-checkboxes"), "method"), "html", null, true));
+        echo ">";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["children"]) ? $context["children"] : null), "html", null, true));
+        echo "</div>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/form/checkboxes.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  43 => 15,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a 'checkboxes' #type form element.*/
+/*  **/
+/*  * Available variables*/
+/*  * - attributes: A list of HTML attributes for the wrapper element.*/
+/*  * - children: The rendered checkboxes.*/
+/*  **/
+/*  * @see template_preprocess_checkboxes()*/
+/*  *//* */
+/*  @todo: remove this file once https://www.drupal.org/node/1819284 is resolved.*/
+/*  This is identical to core/modules/system/templates/container.html.twig*/
+/* #}*/
+/* <div{{ attributes.addClass('form-checkboxes') }}>{{ children }}</div>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_container.html.twig_0914cf556a46411aaa92b9f06b1392d13b27077f24f5c6fe0eb89ca666022431/.htaccess b/sites/default/files/php/twig/9f912b15_container.html.twig_0914cf556a46411aaa92b9f06b1392d13b27077f24f5c6fe0eb89ca666022431/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_container.html.twig_0914cf556a46411aaa92b9f06b1392d13b27077f24f5c6fe0eb89ca666022431/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_container.html.twig_0914cf556a46411aaa92b9f06b1392d13b27077f24f5c6fe0eb89ca666022431/7330ce68b44be4564c88ed206dcbdce21ec2028d2a57ea292cfc27e11a66b004.php b/sites/default/files/php/twig/9f912b15_container.html.twig_0914cf556a46411aaa92b9f06b1392d13b27077f24f5c6fe0eb89ca666022431/7330ce68b44be4564c88ed206dcbdce21ec2028d2a57ea292cfc27e11a66b004.php
new file mode 100644
index 0000000..1424a6b
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_container.html.twig_0914cf556a46411aaa92b9f06b1392d13b27077f24f5c6fe0eb89ca666022431/7330ce68b44be4564c88ed206dcbdce21ec2028d2a57ea292cfc27e11a66b004.php
@@ -0,0 +1,98 @@
+<?php
+
+/* core/themes/classy/templates/form/container.html.twig */
+class __TwigTemplate_8bdb729bf1bdbd4209176eed04adee16631b10a0f46982481302895b6ed6abdf extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 23);
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set'),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 23
+        $context["classes"] = array(0 => ((        // line 24
+(isset($context["has_parent"]) ? $context["has_parent"] : null)) ? ("js-form-wrapper") : ("")), 1 => ((        // line 25
+(isset($context["has_parent"]) ? $context["has_parent"] : null)) ? ("form-wrapper") : ("")));
+        // line 28
+        echo "<div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+        echo ">";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["children"]) ? $context["children"] : null), "html", null, true));
+        echo "</div>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/form/container.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  47 => 28,  45 => 25,  44 => 24,  43 => 23,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override of a container used to wrap child elements.*/
+/*  **/
+/*  * Used for grouped form items. Can also be used as a theme wrapper for any*/
+/*  * renderable element, to surround it with a <div> and HTML attributes.*/
+/*  * See \Drupal\Core\Render\Element\RenderElement for more*/
+/*  * information on the #theme_wrappers render array property, and*/
+/*  * \Drupal\Core\Render\Element\container for usage of the container render*/
+/*  * element.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - attributes: HTML attributes for the containing element.*/
+/*  * - children: The rendered child elements of the container.*/
+/*  * - has_parent: A flag to indicate that the container has one or more parent*/
+/*      containers.*/
+/*  **/
+/*  * @see template_preprocess_container()*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     has_parent ? 'js-form-wrapper',*/
+/*     has_parent ? 'form-wrapper',*/
+/*   ]*/
+/* %}*/
+/* <div{{ attributes.addClass(classes) }}>{{ children }}</div>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_feed-icon.html.twig_7d94478be44ef41a5e3ecf8dbe79a9a708b4daa864a947075f9809820b44396f/.htaccess b/sites/default/files/php/twig/9f912b15_feed-icon.html.twig_7d94478be44ef41a5e3ecf8dbe79a9a708b4daa864a947075f9809820b44396f/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_feed-icon.html.twig_7d94478be44ef41a5e3ecf8dbe79a9a708b4daa864a947075f9809820b44396f/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_feed-icon.html.twig_7d94478be44ef41a5e3ecf8dbe79a9a708b4daa864a947075f9809820b44396f/d57ad8ae3d62c31424f6cce57b09b1e82b73072391823296cd6d7ba0c4ffaccc.php b/sites/default/files/php/twig/9f912b15_feed-icon.html.twig_7d94478be44ef41a5e3ecf8dbe79a9a708b4daa864a947075f9809820b44396f/d57ad8ae3d62c31424f6cce57b09b1e82b73072391823296cd6d7ba0c4ffaccc.php
new file mode 100644
index 0000000..e97aa54
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_feed-icon.html.twig_7d94478be44ef41a5e3ecf8dbe79a9a708b4daa864a947075f9809820b44396f/d57ad8ae3d62c31424f6cce57b09b1e82b73072391823296cd6d7ba0c4ffaccc.php
@@ -0,0 +1,86 @@
+<?php
+
+/* core/themes/stable/templates/misc/feed-icon.html.twig */
+class __TwigTemplate_f4f2ead4e60de174b730b6bf52b664d9bee9dc43df3837e3bd76be0930bee5ec extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array();
+        $filters = array("t" => 14);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array(),
+                array('t'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 13
+        echo "<a href=\"";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["url"]) ? $context["url"] : null), "html", null, true));
+        echo "\"";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => "feed-icon"), "method"), "html", null, true));
+        echo ">
+  ";
+        // line 14
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Subscribe to @title", array("@title" => (isset($context["title"]) ? $context["title"] : null)))));
+        echo "
+</a>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/stable/templates/misc/feed-icon.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  50 => 14,  43 => 13,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a feed icon.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - url: An internal system path or a fully qualified external URL of the feed.*/
+/*  * - attributes: Remaining HTML attributes for the feed link.*/
+/*  *   - title: A descriptive title of the feed link.*/
+/*  *   - class: HTML classes to be applied to the feed link.*/
+/*  *//* */
+/* #}*/
+/* <a href="{{ url }}"{{ attributes.addClass('feed-icon') }}>*/
+/*   {{ 'Subscribe to @title'|t({'@title': title}) }}*/
+/* </a>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_fieldset.html.twig_a0290a9fc9753b9afe8733b0646fefa3ccc52e0c6f83be52ecf22b9180406ed6/.htaccess b/sites/default/files/php/twig/9f912b15_fieldset.html.twig_a0290a9fc9753b9afe8733b0646fefa3ccc52e0c6f83be52ecf22b9180406ed6/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_fieldset.html.twig_a0290a9fc9753b9afe8733b0646fefa3ccc52e0c6f83be52ecf22b9180406ed6/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_fieldset.html.twig_a0290a9fc9753b9afe8733b0646fefa3ccc52e0c6f83be52ecf22b9180406ed6/309e424066b7722cc3f76c229b874ae865d86f022930dfe6a4c392b2ea8cd421.php b/sites/default/files/php/twig/9f912b15_fieldset.html.twig_a0290a9fc9753b9afe8733b0646fefa3ccc52e0c6f83be52ecf22b9180406ed6/309e424066b7722cc3f76c229b874ae865d86f022930dfe6a4c392b2ea8cd421.php
new file mode 100644
index 0000000..5254eaf
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_fieldset.html.twig_a0290a9fc9753b9afe8733b0646fefa3ccc52e0c6f83be52ecf22b9180406ed6/309e424066b7722cc3f76c229b874ae865d86f022930dfe6a4c392b2ea8cd421.php
@@ -0,0 +1,193 @@
+<?php
+
+/* core/themes/classy/templates/form/fieldset.html.twig */
+class __TwigTemplate_1bc68c84608a5fa19b6ddb75b7ec1229773b7a99b146f46b7a5fe51b11e897fa extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 24, "if" => 44);
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if'),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 24
+        $context["classes"] = array(0 => "js-form-item", 1 => "form-item", 2 => "js-form-wrapper", 3 => "form-wrapper");
+        // line 31
+        echo "<fieldset";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+        echo ">
+  ";
+        // line 33
+        $context["legend_span_classes"] = array(0 => "fieldset-legend", 1 => ((        // line 35
+(isset($context["required"]) ? $context["required"] : null)) ? ("js-form-required") : ("")), 2 => ((        // line 36
+(isset($context["required"]) ? $context["required"] : null)) ? ("form-required") : ("")));
+        // line 39
+        echo "  ";
+        // line 40
+        echo "  <legend";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["legend"]) ? $context["legend"] : null), "attributes", array()), "html", null, true));
+        echo ">
+    <span";
+        // line 41
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute((isset($context["legend_span"]) ? $context["legend_span"] : null), "attributes", array()), "addClass", array(0 => (isset($context["legend_span_classes"]) ? $context["legend_span_classes"] : null)), "method"), "html", null, true));
+        echo ">";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["legend"]) ? $context["legend"] : null), "title", array()), "html", null, true));
+        echo "</span>
+  </legend>
+  <div class=\"fieldset-wrapper\">
+    ";
+        // line 44
+        if ((isset($context["errors"]) ? $context["errors"] : null)) {
+            // line 45
+            echo "      <div class=\"form-item--error-message\">
+        <strong>";
+            // line 46
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["errors"]) ? $context["errors"] : null), "html", null, true));
+            echo "</strong>
+      </div>
+    ";
+        }
+        // line 49
+        echo "    ";
+        if ((isset($context["prefix"]) ? $context["prefix"] : null)) {
+            // line 50
+            echo "      <span class=\"field-prefix\">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["prefix"]) ? $context["prefix"] : null), "html", null, true));
+            echo "</span>
+    ";
+        }
+        // line 52
+        echo "    ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["children"]) ? $context["children"] : null), "html", null, true));
+        echo "
+    ";
+        // line 53
+        if ((isset($context["suffix"]) ? $context["suffix"] : null)) {
+            // line 54
+            echo "      <span class=\"field-suffix\">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["suffix"]) ? $context["suffix"] : null), "html", null, true));
+            echo "</span>
+    ";
+        }
+        // line 56
+        echo "    ";
+        if ($this->getAttribute((isset($context["description"]) ? $context["description"] : null), "content", array())) {
+            // line 57
+            echo "      <div";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute((isset($context["description"]) ? $context["description"] : null), "attributes", array()), "addClass", array(0 => "description"), "method"), "html", null, true));
+            echo ">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["description"]) ? $context["description"] : null), "content", array()), "html", null, true));
+            echo "</div>
+    ";
+        }
+        // line 59
+        echo "  </div>
+</fieldset>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/form/fieldset.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  113 => 59,  105 => 57,  102 => 56,  96 => 54,  94 => 53,  89 => 52,  83 => 50,  80 => 49,  74 => 46,  71 => 45,  69 => 44,  61 => 41,  56 => 40,  54 => 39,  52 => 36,  51 => 35,  50 => 33,  45 => 31,  43 => 24,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a fieldset element and its children.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - attributes: HTML attributes for the fieldset element.*/
+/*  * - errors: (optional) Any errors for this fieldset element, may not be set.*/
+/*  * - required: Boolean indicating whether the fieldeset element is required.*/
+/*  * - legend: The legend element containing the following properties:*/
+/*  *   - title: Title of the fieldset, intended for use as the text of the legend.*/
+/*  *   - attributes: HTML attributes to apply to the legend.*/
+/*  * - description: The description element containing the following properties:*/
+/*  *   - content: The description content of the fieldset.*/
+/*  *   - attributes: HTML attributes to apply to the description container.*/
+/*  * - children: The rendered child elements of the fieldset.*/
+/*  * - prefix: The content to add before the fieldset children.*/
+/*  * - suffix: The content to add after the fieldset children.*/
+/*  **/
+/*  * @see template_preprocess_fieldset()*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     'js-form-item',*/
+/*     'form-item',*/
+/*     'js-form-wrapper',*/
+/*     'form-wrapper',*/
+/*   ]*/
+/* %}*/
+/* <fieldset{{ attributes.addClass(classes) }}>*/
+/*   {%*/
+/*     set legend_span_classes = [*/
+/*       'fieldset-legend',*/
+/*       required ? 'js-form-required',*/
+/*       required ? 'form-required',*/
+/*     ]*/
+/*   %}*/
+/*   {#  Always wrap fieldset legends in a SPAN for CSS positioning. #}*/
+/*   <legend{{ legend.attributes }}>*/
+/*     <span{{ legend_span.attributes.addClass(legend_span_classes) }}>{{ legend.title }}</span>*/
+/*   </legend>*/
+/*   <div class="fieldset-wrapper">*/
+/*     {% if errors %}*/
+/*       <div class="form-item--error-message">*/
+/*         <strong>{{ errors }}</strong>*/
+/*       </div>*/
+/*     {% endif %}*/
+/*     {% if prefix %}*/
+/*       <span class="field-prefix">{{ prefix }}</span>*/
+/*     {% endif %}*/
+/*     {{ children }}*/
+/*     {% if suffix %}*/
+/*       <span class="field-suffix">{{ suffix }}</span>*/
+/*     {% endif %}*/
+/*     {% if description.content %}*/
+/*       <div{{ description.attributes.addClass('description') }}>{{ description.content }}</div>*/
+/*     {% endif %}*/
+/*   </div>*/
+/* </fieldset>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_form--search-block-form.html.twig_a7a6ad74e9dd32d502d40a254290b6bb8c4a07634c4b0d320119aae29e13a2a3/.htaccess b/sites/default/files/php/twig/9f912b15_form--search-block-form.html.twig_a7a6ad74e9dd32d502d40a254290b6bb8c4a07634c4b0d320119aae29e13a2a3/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_form--search-block-form.html.twig_a7a6ad74e9dd32d502d40a254290b6bb8c4a07634c4b0d320119aae29e13a2a3/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_form--search-block-form.html.twig_a7a6ad74e9dd32d502d40a254290b6bb8c4a07634c4b0d320119aae29e13a2a3/104ec40d2319e918ab0e8204ea45b0df9b18aace283f5f5d05cb9e17c56bd65d.php b/sites/default/files/php/twig/9f912b15_form--search-block-form.html.twig_a7a6ad74e9dd32d502d40a254290b6bb8c4a07634c4b0d320119aae29e13a2a3/104ec40d2319e918ab0e8204ea45b0df9b18aace283f5f5d05cb9e17c56bd65d.php
new file mode 100644
index 0000000..2a87c2f
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_form--search-block-form.html.twig_a7a6ad74e9dd32d502d40a254290b6bb8c4a07634c4b0d320119aae29e13a2a3/104ec40d2319e918ab0e8204ea45b0df9b18aace283f5f5d05cb9e17c56bd65d.php
@@ -0,0 +1,84 @@
+<?php
+
+/* core/themes/bartik/templates/form--search-block-form.html.twig */
+class __TwigTemplate_d764b805b64489db04bdbbaebf82f8a0a6aa23826589706ad18a8e110794e9dc extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array();
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array(),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 13
+        echo "<form";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => "search-form", 1 => "search-block-form"), "method"), "html", null, true));
+        echo ">
+  ";
+        // line 14
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["children"]) ? $context["children"] : null), "html", null, true));
+        echo "
+</form>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/bartik/templates/form--search-block-form.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  48 => 14,  43 => 13,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Default theme implementation for a 'form' element.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - attributes: A list of HTML attributes for the wrapper element.*/
+/*  * - children: The child elements of the form.*/
+/*  **/
+/*  * @see template_preprocess_form()*/
+/*  *//* */
+/* #}*/
+/* <form{{ attributes.addClass('search-form', 'search-block-form') }}>*/
+/*   {{ children }}*/
+/* </form>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_form-element-label.html.twig_35b08fb07166ea55e4426c9fda35fe8745fce64c3e2af3388bb07cb7c4c2b958/.htaccess b/sites/default/files/php/twig/9f912b15_form-element-label.html.twig_35b08fb07166ea55e4426c9fda35fe8745fce64c3e2af3388bb07cb7c4c2b958/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_form-element-label.html.twig_35b08fb07166ea55e4426c9fda35fe8745fce64c3e2af3388bb07cb7c4c2b958/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_form-element-label.html.twig_35b08fb07166ea55e4426c9fda35fe8745fce64c3e2af3388bb07cb7c4c2b958/c8b9c7abc14c40f958ac481d19fe15d8629f60acaf1294ca0464e8e80f6ee2bc.php b/sites/default/files/php/twig/9f912b15_form-element-label.html.twig_35b08fb07166ea55e4426c9fda35fe8745fce64c3e2af3388bb07cb7c4c2b958/c8b9c7abc14c40f958ac481d19fe15d8629f60acaf1294ca0464e8e80f6ee2bc.php
new file mode 100644
index 0000000..3f528ef
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_form-element-label.html.twig_35b08fb07166ea55e4426c9fda35fe8745fce64c3e2af3388bb07cb7c4c2b958/c8b9c7abc14c40f958ac481d19fe15d8629f60acaf1294ca0464e8e80f6ee2bc.php
@@ -0,0 +1,99 @@
+<?php
+
+/* core/themes/classy/templates/form/form-element-label.html.twig */
+class __TwigTemplate_c58bd49268c027a0d6cec8ce020e324cb8d1df1824acc00bf34116279609f64f extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 16, "if" => 23);
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if'),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 16
+        $context["classes"] = array(0 => (((        // line 17
+(isset($context["title_display"]) ? $context["title_display"] : null) == "after")) ? ("option") : ("")), 1 => (((        // line 18
+(isset($context["title_display"]) ? $context["title_display"] : null) == "invisible")) ? ("visually-hidden") : ("")), 2 => ((        // line 19
+(isset($context["required"]) ? $context["required"] : null)) ? ("js-form-required") : ("")), 3 => ((        // line 20
+(isset($context["required"]) ? $context["required"] : null)) ? ("form-required") : ("")));
+        // line 23
+        if (( !twig_test_empty((isset($context["title"]) ? $context["title"] : null)) || (isset($context["required"]) ? $context["required"] : null))) {
+            // line 24
+            echo "<label";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+            echo ">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title"]) ? $context["title"] : null), "html", null, true));
+            echo "</label>";
+        }
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/form/form-element-label.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  51 => 24,  49 => 23,  47 => 20,  46 => 19,  45 => 18,  44 => 17,  43 => 16,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a form element label.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - title: The label's text.*/
+/*  * - title_display: Elements title_display setting.*/
+/*  * - required: An indicator for whether the associated form element is required.*/
+/*  * - attributes: A list of HTML attributes for the label.*/
+/*  **/
+/*  * @see template_preprocess_form_element_label()*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     title_display == 'after' ? 'option',*/
+/*     title_display == 'invisible' ? 'visually-hidden',*/
+/*     required ? 'js-form-required',*/
+/*     required ? 'form-required',*/
+/*   ]*/
+/* %}*/
+/* {% if title is not empty or required -%}*/
+/*   <label{{ attributes.addClass(classes) }}>{{ title }}</label>*/
+/* {%- endif %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_form-element.html.twig_f79c7ab2862c647e144070e1bb5a657ebe2bff4b44b784405983b6e941ad76d8/.htaccess b/sites/default/files/php/twig/9f912b15_form-element.html.twig_f79c7ab2862c647e144070e1bb5a657ebe2bff4b44b784405983b6e941ad76d8/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_form-element.html.twig_f79c7ab2862c647e144070e1bb5a657ebe2bff4b44b784405983b6e941ad76d8/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_form-element.html.twig_f79c7ab2862c647e144070e1bb5a657ebe2bff4b44b784405983b6e941ad76d8/7862b1f355bddf6da84d643593202014d601fcd240da05bca32585fd60ebb12b.php b/sites/default/files/php/twig/9f912b15_form-element.html.twig_f79c7ab2862c647e144070e1bb5a657ebe2bff4b44b784405983b6e941ad76d8/7862b1f355bddf6da84d643593202014d601fcd240da05bca32585fd60ebb12b.php
new file mode 100644
index 0000000..8119a29
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_form-element.html.twig_f79c7ab2862c647e144070e1bb5a657ebe2bff4b44b784405983b6e941ad76d8/7862b1f355bddf6da84d643593202014d601fcd240da05bca32585fd60ebb12b.php
@@ -0,0 +1,253 @@
+<?php
+
+/* core/themes/classy/templates/form/form-element.html.twig */
+class __TwigTemplate_20cd9d78b5f17ce5a1f34948a243256b8a64307d70d103486d00b7aaf07ab624 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 48, "if" => 67);
+        $filters = array("clean_class" => 51);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if'),
+                array('clean_class'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 48
+        $context["classes"] = array(0 => "js-form-item", 1 => "form-item", 2 => ("js-form-type-" . \Drupal\Component\Utility\Html::getClass(        // line 51
+(isset($context["type"]) ? $context["type"] : null))), 3 => ("form-type-" . \Drupal\Component\Utility\Html::getClass(        // line 52
+(isset($context["type"]) ? $context["type"] : null))), 4 => ("js-form-item-" . \Drupal\Component\Utility\Html::getClass(        // line 53
+(isset($context["name"]) ? $context["name"] : null))), 5 => ("form-item-" . \Drupal\Component\Utility\Html::getClass(        // line 54
+(isset($context["name"]) ? $context["name"] : null))), 6 => ((!twig_in_filter(        // line 55
+(isset($context["title_display"]) ? $context["title_display"] : null), array(0 => "after", 1 => "before"))) ? ("form-no-label") : ("")), 7 => (((        // line 56
+(isset($context["disabled"]) ? $context["disabled"] : null) == "disabled")) ? ("form-disabled") : ("")), 8 => ((        // line 57
+(isset($context["errors"]) ? $context["errors"] : null)) ? ("form-item--error") : ("")));
+        // line 61
+        $context["description_classes"] = array(0 => "description", 1 => (((        // line 63
+(isset($context["description_display"]) ? $context["description_display"] : null) == "invisible")) ? ("visually-hidden") : ("")));
+        // line 66
+        echo "<div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+        echo ">
+  ";
+        // line 67
+        if (twig_in_filter((isset($context["label_display"]) ? $context["label_display"] : null), array(0 => "before", 1 => "invisible"))) {
+            // line 68
+            echo "    ";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["label"]) ? $context["label"] : null), "html", null, true));
+            echo "
+  ";
+        }
+        // line 70
+        echo "  ";
+        if ( !twig_test_empty((isset($context["prefix"]) ? $context["prefix"] : null))) {
+            // line 71
+            echo "    <span class=\"field-prefix\">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["prefix"]) ? $context["prefix"] : null), "html", null, true));
+            echo "</span>
+  ";
+        }
+        // line 73
+        echo "  ";
+        if ((((isset($context["description_display"]) ? $context["description_display"] : null) == "before") && $this->getAttribute((isset($context["description"]) ? $context["description"] : null), "content", array()))) {
+            // line 74
+            echo "    <div";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["description"]) ? $context["description"] : null), "attributes", array()), "html", null, true));
+            echo ">
+      ";
+            // line 75
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["description"]) ? $context["description"] : null), "content", array()), "html", null, true));
+            echo "
+    </div>
+  ";
+        }
+        // line 78
+        echo "  ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["children"]) ? $context["children"] : null), "html", null, true));
+        echo "
+  ";
+        // line 79
+        if ( !twig_test_empty((isset($context["suffix"]) ? $context["suffix"] : null))) {
+            // line 80
+            echo "    <span class=\"field-suffix\">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["suffix"]) ? $context["suffix"] : null), "html", null, true));
+            echo "</span>
+  ";
+        }
+        // line 82
+        echo "  ";
+        if (((isset($context["label_display"]) ? $context["label_display"] : null) == "after")) {
+            // line 83
+            echo "    ";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["label"]) ? $context["label"] : null), "html", null, true));
+            echo "
+  ";
+        }
+        // line 85
+        echo "  ";
+        if ((isset($context["errors"]) ? $context["errors"] : null)) {
+            // line 86
+            echo "    <div class=\"form-item--error-message\">
+      <strong>";
+            // line 87
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["errors"]) ? $context["errors"] : null), "html", null, true));
+            echo "</strong>
+    </div>
+  ";
+        }
+        // line 90
+        echo "  ";
+        if ((twig_in_filter((isset($context["description_display"]) ? $context["description_display"] : null), array(0 => "after", 1 => "invisible")) && $this->getAttribute((isset($context["description"]) ? $context["description"] : null), "content", array()))) {
+            // line 91
+            echo "    <div";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute((isset($context["description"]) ? $context["description"] : null), "attributes", array()), "addClass", array(0 => (isset($context["description_classes"]) ? $context["description_classes"] : null)), "method"), "html", null, true));
+            echo ">
+      ";
+            // line 92
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["description"]) ? $context["description"] : null), "content", array()), "html", null, true));
+            echo "
+    </div>
+  ";
+        }
+        // line 95
+        echo "</div>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/form/form-element.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  139 => 95,  133 => 92,  128 => 91,  125 => 90,  119 => 87,  116 => 86,  113 => 85,  107 => 83,  104 => 82,  98 => 80,  96 => 79,  91 => 78,  85 => 75,  80 => 74,  77 => 73,  71 => 71,  68 => 70,  62 => 68,  60 => 67,  55 => 66,  53 => 63,  52 => 61,  50 => 57,  49 => 56,  48 => 55,  47 => 54,  46 => 53,  45 => 52,  44 => 51,  43 => 48,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a form element.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - attributes: HTML attributes for the containing element.*/
+/*  * - errors: (optional) Any errors for this form element, may not be set.*/
+/*  * - prefix: (optional) The form element prefix, may not be set.*/
+/*  * - suffix: (optional) The form element suffix, may not be set.*/
+/*  * - required: The required marker, or empty if the associated form element is*/
+/*  *   not required.*/
+/*  * - type: The type of the element.*/
+/*  * - name: The name of the element.*/
+/*  * - label: A rendered label element.*/
+/*  * - label_display: Label display setting. It can have these values:*/
+/*  *   - before: The label is output before the element. This is the default.*/
+/*  *     The label includes the #title and the required marker, if #required.*/
+/*  *   - after: The label is output after the element. For example, this is used*/
+/*  *     for radio and checkbox #type elements. If the #title is empty but the*/
+/*  *     field is #required, the label will contain only the required marker.*/
+/*  *   - invisible: Labels are critical for screen readers to enable them to*/
+/*  *     properly navigate through forms but can be visually distracting. This*/
+/*  *     property hides the label for everyone except screen readers.*/
+/*  *   - attribute: Set the title attribute on the element to create a tooltip but*/
+/*  *     output no label element. This is supported only for checkboxes and radios*/
+/*  *     in \Drupal\Core\Render\Element\CompositeFormElementTrait::preRenderCompositeFormElement().*/
+/*  *     It is used where a visual label is not needed, such as a table of*/
+/*  *     checkboxes where the row and column provide the context. The tooltip will*/
+/*  *     include the title and required marker.*/
+/*  * - description: (optional) A list of description properties containing:*/
+/*  *    - content: A description of the form element, may not be set.*/
+/*  *    - attributes: (optional) A list of HTML attributes to apply to the*/
+/*  *      description content wrapper. Will only be set when description is set.*/
+/*  * - description_display: Description display setting. It can have these values:*/
+/*  *   - before: The description is output before the element.*/
+/*  *   - after: The description is output after the element. This is the default*/
+/*  *     value.*/
+/*  *   - invisible: The description is output after the element, hidden visually*/
+/*  *     but available to screen readers.*/
+/*  * - disabled: True if the element is disabled.*/
+/*  * - title_display: Title display setting.*/
+/*  **/
+/*  * @see template_preprocess_form_element()*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     'js-form-item',*/
+/*     'form-item',*/
+/*     'js-form-type-' ~ type|clean_class,*/
+/*     'form-type-' ~ type|clean_class,*/
+/*     'js-form-item-' ~ name|clean_class,*/
+/*     'form-item-' ~ name|clean_class,*/
+/*     title_display not in ['after', 'before'] ? 'form-no-label',*/
+/*     disabled == 'disabled' ? 'form-disabled',*/
+/*     errors ? 'form-item--error',*/
+/*   ]*/
+/* %}*/
+/* {%*/
+/*   set description_classes = [*/
+/*     'description',*/
+/*     description_display == 'invisible' ? 'visually-hidden',*/
+/*   ]*/
+/* %}*/
+/* <div{{ attributes.addClass(classes) }}>*/
+/*   {% if label_display in ['before', 'invisible'] %}*/
+/*     {{ label }}*/
+/*   {% endif %}*/
+/*   {% if prefix is not empty %}*/
+/*     <span class="field-prefix">{{ prefix }}</span>*/
+/*   {% endif %}*/
+/*   {% if description_display == 'before' and description.content %}*/
+/*     <div{{ description.attributes }}>*/
+/*       {{ description.content }}*/
+/*     </div>*/
+/*   {% endif %}*/
+/*   {{ children }}*/
+/*   {% if suffix is not empty %}*/
+/*     <span class="field-suffix">{{ suffix }}</span>*/
+/*   {% endif %}*/
+/*   {% if label_display == 'after' %}*/
+/*     {{ label }}*/
+/*   {% endif %}*/
+/*   {% if errors %}*/
+/*     <div class="form-item--error-message">*/
+/*       <strong>{{ errors }}</strong>*/
+/*     </div>*/
+/*   {% endif %}*/
+/*   {% if description_display in ['after', 'invisible'] and description.content %}*/
+/*     <div{{ description.attributes.addClass(description_classes) }}>*/
+/*       {{ description.content }}*/
+/*     </div>*/
+/*   {% endif %}*/
+/* </div>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_form.html.twig_a0d9240771036a6188ea0913cbf7788e7066bda18a60fd29abf690f037a49f9a/.htaccess b/sites/default/files/php/twig/9f912b15_form.html.twig_a0d9240771036a6188ea0913cbf7788e7066bda18a60fd29abf690f037a49f9a/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_form.html.twig_a0d9240771036a6188ea0913cbf7788e7066bda18a60fd29abf690f037a49f9a/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_form.html.twig_a0d9240771036a6188ea0913cbf7788e7066bda18a60fd29abf690f037a49f9a/8780ec0756f76a69901bc6bb5497db67daaf36e5af1cc84f13d16c0b1a0d4214.php b/sites/default/files/php/twig/9f912b15_form.html.twig_a0d9240771036a6188ea0913cbf7788e7066bda18a60fd29abf690f037a49f9a/8780ec0756f76a69901bc6bb5497db67daaf36e5af1cc84f13d16c0b1a0d4214.php
new file mode 100644
index 0000000..9aabddf
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_form.html.twig_a0d9240771036a6188ea0913cbf7788e7066bda18a60fd29abf690f037a49f9a/8780ec0756f76a69901bc6bb5497db67daaf36e5af1cc84f13d16c0b1a0d4214.php
@@ -0,0 +1,84 @@
+<?php
+
+/* core/themes/classy/templates/form/form.html.twig */
+class __TwigTemplate_8cd08c51eedded929b98b274b029a95d82fe89af264d80dc52a7fae8bb2226f9 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array();
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array(),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 13
+        echo "<form";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["attributes"]) ? $context["attributes"] : null), "html", null, true));
+        echo ">
+  ";
+        // line 14
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["children"]) ? $context["children"] : null), "html", null, true));
+        echo "
+</form>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/form/form.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  48 => 14,  43 => 13,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a 'form' element.*/
+/*  **/
+/*  * Available variables*/
+/*  * - attributes: A list of HTML attributes for the wrapper element.*/
+/*  * - children: The child elements of the form.*/
+/*  **/
+/*  * @see template_preprocess_form()*/
+/*  *//* */
+/* #}*/
+/* <form{{ attributes }}>*/
+/*   {{ children }}*/
+/* </form>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_html.html.twig_18765a7321db7aeed3a25a6d8d22d453134716fd1d07d800482f15883ab66245/.htaccess b/sites/default/files/php/twig/9f912b15_html.html.twig_18765a7321db7aeed3a25a6d8d22d453134716fd1d07d800482f15883ab66245/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_html.html.twig_18765a7321db7aeed3a25a6d8d22d453134716fd1d07d800482f15883ab66245/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_html.html.twig_18765a7321db7aeed3a25a6d8d22d453134716fd1d07d800482f15883ab66245/c514aa23d258a3ec93d9fcba248c6a8b135b6a130b5378580452440e22aeee87.php b/sites/default/files/php/twig/9f912b15_html.html.twig_18765a7321db7aeed3a25a6d8d22d453134716fd1d07d800482f15883ab66245/c514aa23d258a3ec93d9fcba248c6a8b135b6a130b5378580452440e22aeee87.php
new file mode 100644
index 0000000..6aad1b4
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_html.html.twig_18765a7321db7aeed3a25a6d8d22d453134716fd1d07d800482f15883ab66245/c514aa23d258a3ec93d9fcba248c6a8b135b6a130b5378580452440e22aeee87.php
@@ -0,0 +1,169 @@
+<?php
+
+/* core/themes/classy/templates/layout/html.html.twig */
+class __TwigTemplate_a5bc35daf928b7a76d7eeb1b3daa698638beb91e077ae210e49f9206b87b24d6 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 27);
+        $filters = array("clean_class" => 29, "raw" => 37, "safe_join" => 38, "t" => 44);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set'),
+                array('clean_class', 'raw', 'safe_join', 't'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 27
+        $context["body_classes"] = array(0 => ((        // line 28
+(isset($context["logged_in"]) ? $context["logged_in"] : null)) ? ("user-logged-in") : ("")), 1 => (( !        // line 29
+(isset($context["root_path"]) ? $context["root_path"] : null)) ? ("path-frontpage") : (("path-" . \Drupal\Component\Utility\Html::getClass((isset($context["root_path"]) ? $context["root_path"] : null))))), 2 => ((        // line 30
+(isset($context["node_type"]) ? $context["node_type"] : null)) ? (("page-node-type-" . \Drupal\Component\Utility\Html::getClass((isset($context["node_type"]) ? $context["node_type"] : null)))) : ("")), 3 => ((        // line 31
+(isset($context["db_offline"]) ? $context["db_offline"] : null)) ? ("db-offline") : ("")));
+        // line 34
+        echo "<!DOCTYPE html>
+<html";
+        // line 35
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["html_attributes"]) ? $context["html_attributes"] : null), "html", null, true));
+        echo ">
+  <head>
+    <head-placeholder token=\"";
+        // line 37
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar((isset($context["placeholder_token"]) ? $context["placeholder_token"] : null)));
+        echo "\">
+    <title>";
+        // line 38
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar($this->env->getExtension('drupal_core')->safeJoin($this->env, (isset($context["head_title"]) ? $context["head_title"] : null), " | ")));
+        echo "</title>
+    <css-placeholder token=\"";
+        // line 39
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar((isset($context["placeholder_token"]) ? $context["placeholder_token"] : null)));
+        echo "\">
+    <js-placeholder token=\"";
+        // line 40
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar((isset($context["placeholder_token"]) ? $context["placeholder_token"] : null)));
+        echo "\">
+  </head>
+  <body";
+        // line 42
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["body_classes"]) ? $context["body_classes"] : null)), "method"), "html", null, true));
+        echo ">
+    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">
+      ";
+        // line 44
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Skip to main content")));
+        echo "
+    </a>
+    ";
+        // line 46
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["page_top"]) ? $context["page_top"] : null), "html", null, true));
+        echo "
+    ";
+        // line 47
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["page"]) ? $context["page"] : null), "html", null, true));
+        echo "
+    ";
+        // line 48
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["page_bottom"]) ? $context["page_bottom"] : null), "html", null, true));
+        echo "
+    <js-bottom-placeholder token=\"";
+        // line 49
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar((isset($context["placeholder_token"]) ? $context["placeholder_token"] : null)));
+        echo "\">
+  </body>
+</html>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/layout/html.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  96 => 49,  92 => 48,  88 => 47,  84 => 46,  79 => 44,  74 => 42,  69 => 40,  65 => 39,  61 => 38,  57 => 37,  52 => 35,  49 => 34,  47 => 31,  46 => 30,  45 => 29,  44 => 28,  43 => 27,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for the basic structure of a single Drupal page.*/
+/*  **/
+/*  * Variables:*/
+/*  * - logged_in: A flag indicating if user is logged in.*/
+/*  * - root_path: The root path of the current page (e.g., node, admin, user).*/
+/*  * - node_type: The content type for the current node, if the page is a node.*/
+/*  * - head_title: List of text elements that make up the head_title variable.*/
+/*  *   May contain or more of the following:*/
+/*  *   - title: The title of the page.*/
+/*  *   - name: The name of the site.*/
+/*  *   - slogan: The slogan of the site.*/
+/*  * - page_top: Initial rendered markup. This should be printed before 'page'.*/
+/*  * - page: The rendered page markup.*/
+/*  * - page_bottom: Closing rendered markup. This variable should be printed after*/
+/*  *   'page'.*/
+/*  * - db_offline: A flag indicating if the database is offline.*/
+/*  * - placeholder_token: The token for generating head, css, js and js-bottom*/
+/*  *   placeholders.*/
+/*  **/
+/*  * @see template_preprocess_html()*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set body_classes = [*/
+/*     logged_in ? 'user-logged-in',*/
+/*     not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class,*/
+/*     node_type ? 'page-node-type-' ~ node_type|clean_class,*/
+/*     db_offline ? 'db-offline',*/
+/*   ]*/
+/* %}*/
+/* <!DOCTYPE html>*/
+/* <html{{ html_attributes }}>*/
+/*   <head>*/
+/*     <head-placeholder token="{{ placeholder_token|raw }}">*/
+/*     <title>{{ head_title|safe_join(' | ') }}</title>*/
+/*     <css-placeholder token="{{ placeholder_token|raw }}">*/
+/*     <js-placeholder token="{{ placeholder_token|raw }}">*/
+/*   </head>*/
+/*   <body{{ attributes.addClass(body_classes) }}>*/
+/*     <a href="#main-content" class="visually-hidden focusable skip-link">*/
+/*       {{ 'Skip to main content'|t }}*/
+/*     </a>*/
+/*     {{ page_top }}*/
+/*     {{ page }}*/
+/*     {{ page_bottom }}*/
+/*     <js-bottom-placeholder token="{{ placeholder_token|raw }}">*/
+/*   </body>*/
+/* </html>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_input.html.twig_49d9c62aabe7a06c982108c6a5b2b78291b4ae02ed99f98ab6d47f43047b11d8/.htaccess b/sites/default/files/php/twig/9f912b15_input.html.twig_49d9c62aabe7a06c982108c6a5b2b78291b4ae02ed99f98ab6d47f43047b11d8/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_input.html.twig_49d9c62aabe7a06c982108c6a5b2b78291b4ae02ed99f98ab6d47f43047b11d8/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_input.html.twig_49d9c62aabe7a06c982108c6a5b2b78291b4ae02ed99f98ab6d47f43047b11d8/0b223625554b6f0aed2711fa1fbad71e822f783337c214abaef2a972f6630d24.php b/sites/default/files/php/twig/9f912b15_input.html.twig_49d9c62aabe7a06c982108c6a5b2b78291b4ae02ed99f98ab6d47f43047b11d8/0b223625554b6f0aed2711fa1fbad71e822f783337c214abaef2a972f6630d24.php
new file mode 100644
index 0000000..dd8f2c7
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_input.html.twig_49d9c62aabe7a06c982108c6a5b2b78291b4ae02ed99f98ab6d47f43047b11d8/0b223625554b6f0aed2711fa1fbad71e822f783337c214abaef2a972f6630d24.php
@@ -0,0 +1,79 @@
+<?php
+
+/* core/themes/classy/templates/form/input.html.twig */
+class __TwigTemplate_90797a98999325c2ebbfdad51c6d8e24b35d7e77bc756adacdd1e7b2f8f86700 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array();
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array(),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 13
+        echo "<input";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["attributes"]) ? $context["attributes"] : null), "html", null, true));
+        echo " />";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["children"]) ? $context["children"] : null), "html", null, true));
+        echo "
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/form/input.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  43 => 13,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for an 'input' #type form element.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - attributes: A list of HTML attributes for the input element.*/
+/*  * - children: Optional additional rendered elements.*/
+/*  **/
+/*  * @see template_preprocess_input()*/
+/*  *//* */
+/* #}*/
+/* <input{{ attributes }} />{{ children }}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_install-page.html.twig_eb4d223c9f824f07637a8db3b52a2f60c1241294216c45e22a91cb4ec5827f8d/.htaccess b/sites/default/files/php/twig/9f912b15_install-page.html.twig_eb4d223c9f824f07637a8db3b52a2f60c1241294216c45e22a91cb4ec5827f8d/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_install-page.html.twig_eb4d223c9f824f07637a8db3b52a2f60c1241294216c45e22a91cb4ec5827f8d/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_install-page.html.twig_eb4d223c9f824f07637a8db3b52a2f60c1241294216c45e22a91cb4ec5827f8d/bb0c98d2d041028bdf4fbfc912e23489f94ab927819fd08de17019d817cb4966.php b/sites/default/files/php/twig/9f912b15_install-page.html.twig_eb4d223c9f824f07637a8db3b52a2f60c1241294216c45e22a91cb4ec5827f8d/bb0c98d2d041028bdf4fbfc912e23489f94ab927819fd08de17019d817cb4966.php
new file mode 100644
index 0000000..4fb0c55
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_install-page.html.twig_eb4d223c9f824f07637a8db3b52a2f60c1241294216c45e22a91cb4ec5827f8d/bb0c98d2d041028bdf4fbfc912e23489f94ab927819fd08de17019d817cb4966.php
@@ -0,0 +1,204 @@
+<?php
+
+/* core/themes/seven/templates/install-page.html.twig */
+class __TwigTemplate_9bab89db5199e25272e185fbada965f258caa15bc953f925e6f84bef226b9c12 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("if" => 15);
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('if'),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 12
+        echo "<div class=\"layout-container\">
+
+  <header role=\"banner\">
+    ";
+        // line 15
+        if ((isset($context["site_name"]) ? $context["site_name"] : null)) {
+            // line 16
+            echo "      <h1 class=\"page-title\">
+        ";
+            // line 17
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["site_name"]) ? $context["site_name"] : null), "html", null, true));
+            echo "
+        ";
+            // line 18
+            if ((isset($context["site_version"]) ? $context["site_version"] : null)) {
+                // line 19
+                echo "          <span class=\"site-version\">";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["site_version"]) ? $context["site_version"] : null), "html", null, true));
+                echo "</span>
+        ";
+            }
+            // line 21
+            echo "      </h1>
+    ";
+        }
+        // line 23
+        echo "  </header>
+
+  ";
+        // line 25
+        if ($this->getAttribute((isset($context["page"]) ? $context["page"] : null), "sidebar_first", array())) {
+            // line 26
+            echo "    <aside class=\"layout-sidebar-first\" role=\"complementary\">
+      ";
+            // line 27
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "sidebar_first", array()), "html", null, true));
+            echo "
+    </aside>";
+            // line 29
+            echo "  ";
+        }
+        // line 30
+        echo "
+  <main role=\"main\">
+    ";
+        // line 32
+        if ((isset($context["title"]) ? $context["title"] : null)) {
+            // line 33
+            echo "      <h1>";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title"]) ? $context["title"] : null), "html", null, true));
+            echo "</h1>
+    ";
+        }
+        // line 35
+        echo "    ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "highlighted", array()), "html", null, true));
+        echo "
+    ";
+        // line 36
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "content", array()), "html", null, true));
+        echo "
+  </main>
+
+  ";
+        // line 39
+        if ($this->getAttribute((isset($context["page"]) ? $context["page"] : null), "sidebar_second", array())) {
+            // line 40
+            echo "    <aside class=\"layout-sidebar-second\" role=\"complementary\">
+      ";
+            // line 41
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "sidebar_second", array()), "html", null, true));
+            echo "
+    </aside>";
+            // line 43
+            echo "  ";
+        }
+        // line 44
+        echo "
+  ";
+        // line 45
+        if ($this->getAttribute((isset($context["page"]) ? $context["page"] : null), "page_bottom", array())) {
+            // line 46
+            echo "    <footer role=\"contentinfo\">
+      ";
+            // line 47
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "page_bottom", array()), "html", null, true));
+            echo "
+    </footer>
+  ";
+        }
+        // line 50
+        echo "
+</div>";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/seven/templates/install-page.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  134 => 50,  128 => 47,  125 => 46,  123 => 45,  120 => 44,  117 => 43,  113 => 41,  110 => 40,  108 => 39,  102 => 36,  97 => 35,  91 => 33,  89 => 32,  85 => 30,  82 => 29,  78 => 27,  75 => 26,  73 => 25,  69 => 23,  65 => 21,  59 => 19,  57 => 18,  53 => 17,  50 => 16,  48 => 15,  43 => 12,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Seven theme implementation to display a Drupal installation page.*/
+/*  **/
+/*  * All available variables are mirrored in page.html.twig.*/
+/*  * Some may be blank but they are provided for consistency.*/
+/*  **/
+/*  * @see template_preprocess_install_page()*/
+/*  *//* */
+/* #}*/
+/* <div class="layout-container">*/
+/* */
+/*   <header role="banner">*/
+/*     {% if site_name %}*/
+/*       <h1 class="page-title">*/
+/*         {{ site_name }}*/
+/*         {% if site_version %}*/
+/*           <span class="site-version">{{ site_version }}</span>*/
+/*         {% endif %}*/
+/*       </h1>*/
+/*     {% endif %}*/
+/*   </header>*/
+/* */
+/*   {% if page.sidebar_first %}*/
+/*     <aside class="layout-sidebar-first" role="complementary">*/
+/*       {{ page.sidebar_first }}*/
+/*     </aside>{# /.layout-sidebar-first #}*/
+/*   {% endif %}*/
+/* */
+/*   <main role="main">*/
+/*     {% if title %}*/
+/*       <h1>{{ title }}</h1>*/
+/*     {% endif %}*/
+/*     {{ page.highlighted }}*/
+/*     {{ page.content }}*/
+/*   </main>*/
+/* */
+/*   {% if page.sidebar_second %}*/
+/*     <aside class="layout-sidebar-second" role="complementary">*/
+/*       {{ page.sidebar_second }}*/
+/*     </aside>{# /.layout-sidebar-second #}*/
+/*   {% endif %}*/
+/* */
+/*   {% if page.page_bottom %}*/
+/*     <footer role="contentinfo">*/
+/*       {{ page.page_bottom }}*/
+/*     </footer>*/
+/*   {% endif %}*/
+/* */
+/* </div>{# /.layout-container #}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_links.html.twig_0153e8551430c99e118c3a06493a2235046632fe9a2cb6bc95be5ffd2238e3c4/.htaccess b/sites/default/files/php/twig/9f912b15_links.html.twig_0153e8551430c99e118c3a06493a2235046632fe9a2cb6bc95be5ffd2238e3c4/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_links.html.twig_0153e8551430c99e118c3a06493a2235046632fe9a2cb6bc95be5ffd2238e3c4/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_links.html.twig_0153e8551430c99e118c3a06493a2235046632fe9a2cb6bc95be5ffd2238e3c4/570cd701ba42680f0f903c346df2bc836840f70e7dc0ccd06a7b8d9a07f2a88a.php b/sites/default/files/php/twig/9f912b15_links.html.twig_0153e8551430c99e118c3a06493a2235046632fe9a2cb6bc95be5ffd2238e3c4/570cd701ba42680f0f903c346df2bc836840f70e7dc0ccd06a7b8d9a07f2a88a.php
new file mode 100644
index 0000000..677657d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_links.html.twig_0153e8551430c99e118c3a06493a2235046632fe9a2cb6bc95be5ffd2238e3c4/570cd701ba42680f0f903c346df2bc836840f70e7dc0ccd06a7b8d9a07f2a88a.php
@@ -0,0 +1,176 @@
+<?php
+
+/* core/themes/classy/templates/navigation/links.html.twig */
+class __TwigTemplate_98d9b4fede5dff1d5144cee7d26fcfe429c71d215a6590bcc74b9da09fd6ac1b extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("if" => 35, "for" => 44);
+        $filters = array("clean_class" => 45);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('if', 'for'),
+                array('clean_class'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 35
+        if ((isset($context["links"]) ? $context["links"] : null)) {
+            // line 36
+            if ((isset($context["heading"]) ? $context["heading"] : null)) {
+                // line 37
+                if ($this->getAttribute((isset($context["heading"]) ? $context["heading"] : null), "level", array())) {
+                    // line 38
+                    echo "<";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["heading"]) ? $context["heading"] : null), "level", array()), "html", null, true));
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["heading"]) ? $context["heading"] : null), "attributes", array()), "html", null, true));
+                    echo ">";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["heading"]) ? $context["heading"] : null), "text", array()), "html", null, true));
+                    echo "</";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["heading"]) ? $context["heading"] : null), "level", array()), "html", null, true));
+                    echo ">";
+                } else {
+                    // line 40
+                    echo "<h2";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["heading"]) ? $context["heading"] : null), "attributes", array()), "html", null, true));
+                    echo ">";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["heading"]) ? $context["heading"] : null), "text", array()), "html", null, true));
+                    echo "</h2>";
+                }
+            }
+            // line 43
+            echo "<ul";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["attributes"]) ? $context["attributes"] : null), "html", null, true));
+            echo ">";
+            // line 44
+            $context['_parent'] = $context;
+            $context['_seq'] = twig_ensure_traversable((isset($context["links"]) ? $context["links"] : null));
+            foreach ($context['_seq'] as $context["key"] => $context["item"]) {
+                // line 45
+                echo "<li";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute($context["item"], "attributes", array()), "addClass", array(0 => \Drupal\Component\Utility\Html::getClass($context["key"])), "method"), "html", null, true));
+                echo ">";
+                // line 46
+                if ($this->getAttribute($context["item"], "link", array())) {
+                    // line 47
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["item"], "link", array()), "html", null, true));
+                } elseif ($this->getAttribute(                // line 48
+$context["item"], "text_attributes", array())) {
+                    // line 49
+                    echo "<span";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["item"], "text_attributes", array()), "html", null, true));
+                    echo ">";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["item"], "text", array()), "html", null, true));
+                    echo "</span>";
+                } else {
+                    // line 51
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["item"], "text", array()), "html", null, true));
+                }
+                // line 53
+                echo "</li>";
+            }
+            $_parent = $context['_parent'];
+            unset($context['_seq'], $context['_iterated'], $context['key'], $context['item'], $context['_parent'], $context['loop']);
+            $context = array_intersect_key($context, $_parent) + $_parent;
+            // line 55
+            echo "</ul>";
+        }
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/navigation/links.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  101 => 55,  95 => 53,  92 => 51,  85 => 49,  83 => 48,  81 => 47,  79 => 46,  75 => 45,  71 => 44,  67 => 43,  59 => 40,  49 => 38,  47 => 37,  45 => 36,  43 => 35,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a set of links.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - attributes: Attributes for the UL containing the list of links.*/
+/*  * - links: Links to be output.*/
+/*  *   Each link will have the following elements:*/
+/*  *   - title: The link text.*/
+/*  *   - href: The link URL. If omitted, the 'title' is shown as a plain text*/
+/*  *     item in the links list. If 'href' is supplied, the entire link is passed*/
+/*  *     to l() as its $options parameter.*/
+/*  *   - attributes: (optional) HTML attributes for the anchor, or for the <span>*/
+/*  *     tag if no 'href' is supplied.*/
+/*  *   - link_key: The link CSS class.*/
+/*  * - heading: (optional) A heading to precede the links.*/
+/*  *   - text: The heading text.*/
+/*  *   - level: The heading level (e.g. 'h2', 'h3').*/
+/*  *   - attributes: (optional) A keyed list of attributes for the heading.*/
+/*  *   If the heading is a string, it will be used as the text of the heading and*/
+/*  *   the level will default to 'h2'.*/
+/*  **/
+/*  *   Headings should be used on navigation menus and any list of links that*/
+/*  *   consistently appears on multiple pages. To make the heading invisible use*/
+/*  *   the 'visually-hidden' CSS class. Do not use 'display:none', which*/
+/*  *   removes it from screen readers and assistive technology. Headings allow*/
+/*  *   screen reader and keyboard only users to navigate to or skip the links.*/
+/*  *   See http://juicystudio.com/article/screen-readers-display-none.php and*/
+/*  *   http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.*/
+/*  **/
+/*  * @see template_preprocess_links()*/
+/*  *//* */
+/* #}*/
+/* {% if links -%}*/
+/*   {%- if heading -%}*/
+/*     {%- if heading.level -%}*/
+/*       <{{ heading.level }}{{ heading.attributes }}>{{ heading.text }}</{{ heading.level }}>*/
+/*     {%- else -%}*/
+/*       <h2{{ heading.attributes }}>{{ heading.text }}</h2>*/
+/*     {%- endif -%}*/
+/*   {%- endif -%}*/
+/*   <ul{{ attributes }}>*/
+/*     {%- for key, item in links -%}*/
+/*       <li{{ item.attributes.addClass(key|clean_class) }}>*/
+/*         {%- if item.link -%}*/
+/*           {{ item.link }}*/
+/*         {%- elseif item.text_attributes -%}*/
+/*           <span{{ item.text_attributes }}>{{ item.text }}</span>*/
+/*         {%- else -%}*/
+/*           {{ item.text }}*/
+/*         {%- endif -%}*/
+/*       </li>*/
+/*     {%- endfor -%}*/
+/*   </ul>*/
+/* {%- endif %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_maintenance-task-list.html.twig_75186b360fad57a2e624881eba47ce6cbba7d2b692dc37db0dd031e2d56fab69/.htaccess b/sites/default/files/php/twig/9f912b15_maintenance-task-list.html.twig_75186b360fad57a2e624881eba47ce6cbba7d2b692dc37db0dd031e2d56fab69/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_maintenance-task-list.html.twig_75186b360fad57a2e624881eba47ce6cbba7d2b692dc37db0dd031e2d56fab69/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_maintenance-task-list.html.twig_75186b360fad57a2e624881eba47ce6cbba7d2b692dc37db0dd031e2d56fab69/25b208e737b62168bef73e4ed75994a9234e2215d543f1aed1d48782a4b2a533.php b/sites/default/files/php/twig/9f912b15_maintenance-task-list.html.twig_75186b360fad57a2e624881eba47ce6cbba7d2b692dc37db0dd031e2d56fab69/25b208e737b62168bef73e4ed75994a9234e2215d543f1aed1d48782a4b2a533.php
new file mode 100644
index 0000000..b175020
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_maintenance-task-list.html.twig_75186b360fad57a2e624881eba47ce6cbba7d2b692dc37db0dd031e2d56fab69/25b208e737b62168bef73e4ed75994a9234e2215d543f1aed1d48782a4b2a533.php
@@ -0,0 +1,117 @@
+<?php
+
+/* core/themes/stable/templates/admin/maintenance-task-list.html.twig */
+class __TwigTemplate_e997f167403d92ef5901a913401859708aafd731ec5bfc461e7294f7d0061f1e extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("for" => 17, "if" => 20);
+        $filters = array("t" => 15);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('for', 'if'),
+                array('t'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 15
+        echo "<h2 class=\"visually-hidden\">";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Installation tasks")));
+        echo "</h2>
+<ol class=\"task-list\">
+";
+        // line 17
+        $context['_parent'] = $context;
+        $context['_seq'] = twig_ensure_traversable((isset($context["tasks"]) ? $context["tasks"] : null));
+        foreach ($context['_seq'] as $context["_key"] => $context["task"]) {
+            // line 18
+            echo "  <li";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["task"], "attributes", array()), "html", null, true));
+            echo ">
+    ";
+            // line 19
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["task"], "item", array()), "html", null, true));
+            echo "
+    ";
+            // line 20
+            if ($this->getAttribute($context["task"], "status", array())) {
+                echo "<span class=\"visually-hidden\"> (";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["task"], "status", array()), "html", null, true));
+                echo ")</span>";
+            }
+            // line 21
+            echo "  </li>
+";
+        }
+        $_parent = $context['_parent'];
+        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['task'], $context['_parent'], $context['loop']);
+        $context = array_intersect_key($context, $_parent) + $_parent;
+        // line 23
+        echo "</ol>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/stable/templates/admin/maintenance-task-list.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  75 => 23,  68 => 21,  62 => 20,  58 => 19,  53 => 18,  49 => 17,  43 => 15,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a list of maintenance tasks to perform.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - tasks: A list of maintenance tasks to perform. Each item in the list has*/
+/*  *   the following variables:*/
+/*  *   - item: The maintenance task.*/
+/*  *   - attributes: HTML attributes for the maintenance task.*/
+/*  *   - status: (optional) Text describing the status of the maintenance task,*/
+/*  *     'active' or 'done'.*/
+/*  *//* */
+/* #}*/
+/* <h2 class="visually-hidden">{{ 'Installation tasks'|t }}</h2>*/
+/* <ol class="task-list">*/
+/* {% for task in tasks %}*/
+/*   <li{{ task.attributes }}>*/
+/*     {{ task.item }}*/
+/*     {% if task.status %}<span class="visually-hidden"> ({{ task.status }})</span>{% endif %}*/
+/*   </li>*/
+/* {% endfor %}*/
+/* </ol>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_menu--toolbar.html.twig_a19a4953293e3d1d38261b00a7f8bca150ea33fd89a7f59edaaff7e85144b818/.htaccess b/sites/default/files/php/twig/9f912b15_menu--toolbar.html.twig_a19a4953293e3d1d38261b00a7f8bca150ea33fd89a7f59edaaff7e85144b818/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_menu--toolbar.html.twig_a19a4953293e3d1d38261b00a7f8bca150ea33fd89a7f59edaaff7e85144b818/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_menu--toolbar.html.twig_a19a4953293e3d1d38261b00a7f8bca150ea33fd89a7f59edaaff7e85144b818/9b9af1feb76f4ecdd402ff611fdced59c9520cd8e6f32cefb0ebe58617ce9903.php b/sites/default/files/php/twig/9f912b15_menu--toolbar.html.twig_a19a4953293e3d1d38261b00a7f8bca150ea33fd89a7f59edaaff7e85144b818/9b9af1feb76f4ecdd402ff611fdced59c9520cd8e6f32cefb0ebe58617ce9903.php
new file mode 100644
index 0000000..a6e7569
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_menu--toolbar.html.twig_a19a4953293e3d1d38261b00a7f8bca150ea33fd89a7f59edaaff7e85144b818/9b9af1feb76f4ecdd402ff611fdced59c9520cd8e6f32cefb0ebe58617ce9903.php
@@ -0,0 +1,206 @@
+<?php
+
+/* core/themes/stable/templates/navigation/menu--toolbar.html.twig */
+class __TwigTemplate_2f9cac9f83ab8399b41ad1b2c3d8ee9dab36a2f3d74bcb15998f2ef980df855b extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("import" => 21, "macro" => 29, "if" => 31, "for" => 37, "set" => 39);
+        $filters = array();
+        $functions = array("link" => 47);
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('import', 'macro', 'if', 'for', 'set'),
+                array(),
+                array('link')
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 21
+        $context["menus"] = $this;
+        // line 22
+        echo "
+";
+        // line 27
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar($context["menus"]->getmenu_links((isset($context["items"]) ? $context["items"] : null), (isset($context["attributes"]) ? $context["attributes"] : null), 0)));
+        echo "
+
+";
+    }
+
+    // line 29
+    public function getmenu_links($__items__ = null, $__attributes__ = null, $__menu_level__ = null, ...$__varargs__)
+    {
+        $context = $this->env->mergeGlobals(array(
+            "items" => $__items__,
+            "attributes" => $__attributes__,
+            "menu_level" => $__menu_level__,
+            "varargs" => $__varargs__,
+        ));
+
+        $blocks = array();
+
+        ob_start();
+        try {
+            // line 30
+            echo "  ";
+            $context["menus"] = $this;
+            // line 31
+            echo "  ";
+            if ((isset($context["items"]) ? $context["items"] : null)) {
+                // line 32
+                echo "    ";
+                if (((isset($context["menu_level"]) ? $context["menu_level"] : null) == 0)) {
+                    // line 33
+                    echo "      <ul";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => "toolbar-menu"), "method"), "html", null, true));
+                    echo ">
+    ";
+                } else {
+                    // line 35
+                    echo "      <ul class=\"toolbar-menu\">
+    ";
+                }
+                // line 37
+                echo "    ";
+                $context['_parent'] = $context;
+                $context['_seq'] = twig_ensure_traversable((isset($context["items"]) ? $context["items"] : null));
+                foreach ($context['_seq'] as $context["_key"] => $context["item"]) {
+                    // line 38
+                    echo "      ";
+                    // line 39
+                    $context["classes"] = array(0 => "menu-item", 1 => (($this->getAttribute(                    // line 41
+$context["item"], "is_expanded", array())) ? ("menu-item--expanded") : ("")), 2 => (($this->getAttribute(                    // line 42
+$context["item"], "is_collapsed", array())) ? ("menu-item--collapsed") : ("")), 3 => (($this->getAttribute(                    // line 43
+$context["item"], "in_active_trail", array())) ? ("menu-item--active-trail") : ("")));
+                    // line 46
+                    echo "      <li";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute($context["item"], "attributes", array()), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+                    echo ">
+        ";
+                    // line 47
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->env->getExtension('drupal_core')->getLink($this->getAttribute($context["item"], "title", array()), $this->getAttribute($context["item"], "url", array())), "html", null, true));
+                    echo "
+        ";
+                    // line 48
+                    if ($this->getAttribute($context["item"], "below", array())) {
+                        // line 49
+                        echo "          ";
+                        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar($context["menus"]->getmenu_links($this->getAttribute($context["item"], "below", array()), (isset($context["attributes"]) ? $context["attributes"] : null), ((isset($context["menu_level"]) ? $context["menu_level"] : null) + 1))));
+                        echo "
+        ";
+                    }
+                    // line 51
+                    echo "      </li>
+    ";
+                }
+                $_parent = $context['_parent'];
+                unset($context['_seq'], $context['_iterated'], $context['_key'], $context['item'], $context['_parent'], $context['loop']);
+                $context = array_intersect_key($context, $_parent) + $_parent;
+                // line 53
+                echo "    </ul>
+  ";
+            }
+        } catch (Exception $e) {
+            ob_end_clean();
+
+            throw $e;
+        }
+
+        return ('' === $tmp = ob_get_clean()) ? '' : new Twig_Markup($tmp, $this->env->getCharset());
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/stable/templates/navigation/menu--toolbar.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  124 => 53,  117 => 51,  111 => 49,  109 => 48,  105 => 47,  100 => 46,  98 => 43,  97 => 42,  96 => 41,  95 => 39,  93 => 38,  88 => 37,  84 => 35,  78 => 33,  75 => 32,  72 => 31,  69 => 30,  55 => 29,  48 => 27,  45 => 22,  43 => 21,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override to display a toolbar menu.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - menu_name: The machine name of the menu.*/
+/*  * - items: A nested list of menu items. Each menu item contains:*/
+/*  *   - attributes: HTML attributes for the menu item.*/
+/*  *   - below: The menu item child items.*/
+/*  *   - title: The menu link title.*/
+/*  *   - url: The menu link url, instance of \Drupal\Core\Url*/
+/*  *   - localized_options: Menu link localized options.*/
+/*  *   - is_expanded: TRUE if the link has visible children within the current*/
+/*  *     menu tree.*/
+/*  *   - is_collapsed: TRUE if the link has children within the current menu tree*/
+/*  *     that are not currently visible.*/
+/*  *   - in_active_trail: TRUE if the link is in the active trail.*/
+/*  *//* */
+/* #}*/
+/* {% import _self as menus %}*/
+/* */
+/* {#*/
+/*   We call a macro which calls itself to render the full tree.*/
+/*   @see http://twig.sensiolabs.org/doc/tags/macro.html*/
+/* #}*/
+/* {{ menus.menu_links(items, attributes, 0) }}*/
+/* */
+/* {% macro menu_links(items, attributes, menu_level) %}*/
+/*   {% import _self as menus %}*/
+/*   {% if items %}*/
+/*     {% if menu_level == 0 %}*/
+/*       <ul{{ attributes.addClass('toolbar-menu') }}>*/
+/*     {% else %}*/
+/*       <ul class="toolbar-menu">*/
+/*     {% endif %}*/
+/*     {% for item in items %}*/
+/*       {%*/
+/*         set classes = [*/
+/*           'menu-item',*/
+/*           item.is_expanded ? 'menu-item--expanded',*/
+/*           item.is_collapsed ? 'menu-item--collapsed',*/
+/*           item.in_active_trail ? 'menu-item--active-trail',*/
+/*         ]*/
+/*       %}*/
+/*       <li{{ item.attributes.addClass(classes) }}>*/
+/*         {{ link(item.title, item.url) }}*/
+/*         {% if item.below %}*/
+/*           {{ menus.menu_links(item.below, attributes, menu_level + 1) }}*/
+/*         {% endif %}*/
+/*       </li>*/
+/*     {% endfor %}*/
+/*     </ul>*/
+/*   {% endif %}*/
+/* {% endmacro %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_menu.html.twig_2f8d3bd579367b04d9305b05840a3ae98f50ecf3d24b4423b5ab209e4fe12ef3/.htaccess b/sites/default/files/php/twig/9f912b15_menu.html.twig_2f8d3bd579367b04d9305b05840a3ae98f50ecf3d24b4423b5ab209e4fe12ef3/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_menu.html.twig_2f8d3bd579367b04d9305b05840a3ae98f50ecf3d24b4423b5ab209e4fe12ef3/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_menu.html.twig_2f8d3bd579367b04d9305b05840a3ae98f50ecf3d24b4423b5ab209e4fe12ef3/49afa14e397f5043a7c23cd5637c86d6e3eb9c62212dbec436f877523b4b22ac.php b/sites/default/files/php/twig/9f912b15_menu.html.twig_2f8d3bd579367b04d9305b05840a3ae98f50ecf3d24b4423b5ab209e4fe12ef3/49afa14e397f5043a7c23cd5637c86d6e3eb9c62212dbec436f877523b4b22ac.php
new file mode 100644
index 0000000..6b0f984
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_menu.html.twig_2f8d3bd579367b04d9305b05840a3ae98f50ecf3d24b4423b5ab209e4fe12ef3/49afa14e397f5043a7c23cd5637c86d6e3eb9c62212dbec436f877523b4b22ac.php
@@ -0,0 +1,206 @@
+<?php
+
+/* core/themes/classy/templates/navigation/menu.html.twig */
+class __TwigTemplate_2f0de7aa8af954f5fb75113f1f5b82dc6d2caaf01aa85cda112ce2c8a6f5fd9e extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("import" => 21, "macro" => 29, "if" => 31, "for" => 37, "set" => 39);
+        $filters = array();
+        $functions = array("link" => 47);
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('import', 'macro', 'if', 'for', 'set'),
+                array(),
+                array('link')
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 21
+        $context["menus"] = $this;
+        // line 22
+        echo "
+";
+        // line 27
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar($context["menus"]->getmenu_links((isset($context["items"]) ? $context["items"] : null), (isset($context["attributes"]) ? $context["attributes"] : null), 0)));
+        echo "
+
+";
+    }
+
+    // line 29
+    public function getmenu_links($__items__ = null, $__attributes__ = null, $__menu_level__ = null, ...$__varargs__)
+    {
+        $context = $this->env->mergeGlobals(array(
+            "items" => $__items__,
+            "attributes" => $__attributes__,
+            "menu_level" => $__menu_level__,
+            "varargs" => $__varargs__,
+        ));
+
+        $blocks = array();
+
+        ob_start();
+        try {
+            // line 30
+            echo "  ";
+            $context["menus"] = $this;
+            // line 31
+            echo "  ";
+            if ((isset($context["items"]) ? $context["items"] : null)) {
+                // line 32
+                echo "    ";
+                if (((isset($context["menu_level"]) ? $context["menu_level"] : null) == 0)) {
+                    // line 33
+                    echo "      <ul";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => "menu"), "method"), "html", null, true));
+                    echo ">
+    ";
+                } else {
+                    // line 35
+                    echo "      <ul class=\"menu\">
+    ";
+                }
+                // line 37
+                echo "    ";
+                $context['_parent'] = $context;
+                $context['_seq'] = twig_ensure_traversable((isset($context["items"]) ? $context["items"] : null));
+                foreach ($context['_seq'] as $context["_key"] => $context["item"]) {
+                    // line 38
+                    echo "      ";
+                    // line 39
+                    $context["classes"] = array(0 => "menu-item", 1 => (($this->getAttribute(                    // line 41
+$context["item"], "is_expanded", array())) ? ("menu-item--expanded") : ("")), 2 => (($this->getAttribute(                    // line 42
+$context["item"], "is_collapsed", array())) ? ("menu-item--collapsed") : ("")), 3 => (($this->getAttribute(                    // line 43
+$context["item"], "in_active_trail", array())) ? ("menu-item--active-trail") : ("")));
+                    // line 46
+                    echo "      <li";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute($context["item"], "attributes", array()), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+                    echo ">
+        ";
+                    // line 47
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->env->getExtension('drupal_core')->getLink($this->getAttribute($context["item"], "title", array()), $this->getAttribute($context["item"], "url", array())), "html", null, true));
+                    echo "
+        ";
+                    // line 48
+                    if ($this->getAttribute($context["item"], "below", array())) {
+                        // line 49
+                        echo "          ";
+                        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar($context["menus"]->getmenu_links($this->getAttribute($context["item"], "below", array()), (isset($context["attributes"]) ? $context["attributes"] : null), ((isset($context["menu_level"]) ? $context["menu_level"] : null) + 1))));
+                        echo "
+        ";
+                    }
+                    // line 51
+                    echo "      </li>
+    ";
+                }
+                $_parent = $context['_parent'];
+                unset($context['_seq'], $context['_iterated'], $context['_key'], $context['item'], $context['_parent'], $context['loop']);
+                $context = array_intersect_key($context, $_parent) + $_parent;
+                // line 53
+                echo "    </ul>
+  ";
+            }
+        } catch (Exception $e) {
+            ob_end_clean();
+
+            throw $e;
+        }
+
+        return ('' === $tmp = ob_get_clean()) ? '' : new Twig_Markup($tmp, $this->env->getCharset());
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/navigation/menu.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  124 => 53,  117 => 51,  111 => 49,  109 => 48,  105 => 47,  100 => 46,  98 => 43,  97 => 42,  96 => 41,  95 => 39,  93 => 38,  88 => 37,  84 => 35,  78 => 33,  75 => 32,  72 => 31,  69 => 30,  55 => 29,  48 => 27,  45 => 22,  43 => 21,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override to display a menu.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - menu_name: The machine name of the menu.*/
+/*  * - items: A nested list of menu items. Each menu item contains:*/
+/*  *   - attributes: HTML attributes for the menu item.*/
+/*  *   - below: The menu item child items.*/
+/*  *   - title: The menu link title.*/
+/*  *   - url: The menu link url, instance of \Drupal\Core\Url*/
+/*  *   - localized_options: Menu link localized options.*/
+/*  *   - is_expanded: TRUE if the link has visible children within the current*/
+/*  *     menu tree.*/
+/*  *   - is_collapsed: TRUE if the link has children within the current menu tree*/
+/*  *     that are not currently visible.*/
+/*  *   - in_active_trail: TRUE if the link is in the active trail.*/
+/*  *//* */
+/* #}*/
+/* {% import _self as menus %}*/
+/* */
+/* {#*/
+/*   We call a macro which calls itself to render the full tree.*/
+/*   @see http://twig.sensiolabs.org/doc/tags/macro.html*/
+/* #}*/
+/* {{ menus.menu_links(items, attributes, 0) }}*/
+/* */
+/* {% macro menu_links(items, attributes, menu_level) %}*/
+/*   {% import _self as menus %}*/
+/*   {% if items %}*/
+/*     {% if menu_level == 0 %}*/
+/*       <ul{{ attributes.addClass('menu') }}>*/
+/*     {% else %}*/
+/*       <ul class="menu">*/
+/*     {% endif %}*/
+/*     {% for item in items %}*/
+/*       {%*/
+/*         set classes = [*/
+/*           'menu-item',*/
+/*           item.is_expanded ? 'menu-item--expanded',*/
+/*           item.is_collapsed ? 'menu-item--collapsed',*/
+/*           item.in_active_trail ? 'menu-item--active-trail',*/
+/*         ]*/
+/*       %}*/
+/*       <li{{ item.attributes.addClass(classes) }}>*/
+/*         {{ link(item.title, item.url) }}*/
+/*         {% if item.below %}*/
+/*           {{ menus.menu_links(item.below, attributes, menu_level + 1) }}*/
+/*         {% endif %}*/
+/*       </li>*/
+/*     {% endfor %}*/
+/*     </ul>*/
+/*   {% endif %}*/
+/* {% endmacro %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_page-title.html.twig_3543c0a88bc7cd4b8fd02c39c441789e27d43d5e25926c535a5f2a2cb579a181/.htaccess b/sites/default/files/php/twig/9f912b15_page-title.html.twig_3543c0a88bc7cd4b8fd02c39c441789e27d43d5e25926c535a5f2a2cb579a181/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_page-title.html.twig_3543c0a88bc7cd4b8fd02c39c441789e27d43d5e25926c535a5f2a2cb579a181/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_page-title.html.twig_3543c0a88bc7cd4b8fd02c39c441789e27d43d5e25926c535a5f2a2cb579a181/e328eb66acd5aa5c956857a15e75a8c50e83c26d8afd252318bd198e6ee6be77.php b/sites/default/files/php/twig/9f912b15_page-title.html.twig_3543c0a88bc7cd4b8fd02c39c441789e27d43d5e25926c535a5f2a2cb579a181/e328eb66acd5aa5c956857a15e75a8c50e83c26d8afd252318bd198e6ee6be77.php
new file mode 100644
index 0000000..1f8b30e
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_page-title.html.twig_3543c0a88bc7cd4b8fd02c39c441789e27d43d5e25926c535a5f2a2cb579a181/e328eb66acd5aa5c956857a15e75a8c50e83c26d8afd252318bd198e6ee6be77.php
@@ -0,0 +1,96 @@
+<?php
+
+/* @classy/content/page-title.html.twig */
+class __TwigTemplate_d4fa59a4739284e2356e57293c640a884a4e394dfdf1cd74fcd131681ed4e856 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("if" => 16);
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('if'),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 15
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_prefix"]) ? $context["title_prefix"] : null), "html", null, true));
+        echo "
+";
+        // line 16
+        if ((isset($context["title"]) ? $context["title"] : null)) {
+            // line 17
+            echo "  <h1";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["title_attributes"]) ? $context["title_attributes"] : null), "addClass", array(0 => "page-title"), "method"), "html", null, true));
+            echo ">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title"]) ? $context["title"] : null), "html", null, true));
+            echo "</h1>
+";
+        }
+        // line 19
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_suffix"]) ? $context["title_suffix"] : null), "html", null, true));
+        echo "
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "@classy/content/page-title.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  57 => 19,  49 => 17,  47 => 16,  43 => 15,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for page titles.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - title_attributes: HTML attributes for the page title element.*/
+/*  * - title_prefix: Additional output populated by modules, intended to be*/
+/*  *   displayed in front of the main title tag that appears in the template.*/
+/*  * - title: The page title, for use in the actual content.*/
+/*  * - title_suffix: Additional output populated by modules, intended to be*/
+/*  *   displayed after the main title tag that appears in the template.*/
+/*  *//* */
+/* #}*/
+/* {{ title_prefix }}*/
+/* {% if title %}*/
+/*   <h1{{ title_attributes.addClass('page-title') }}>{{ title }}</h1>*/
+/* {% endif %}*/
+/* {{ title_suffix }}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_page-title.html.twig_58e2d43e2b18de3bba22a37b80d211cd0f41c72a29d957c9cff18eb0c9ed4148/.htaccess b/sites/default/files/php/twig/9f912b15_page-title.html.twig_58e2d43e2b18de3bba22a37b80d211cd0f41c72a29d957c9cff18eb0c9ed4148/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_page-title.html.twig_58e2d43e2b18de3bba22a37b80d211cd0f41c72a29d957c9cff18eb0c9ed4148/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_page-title.html.twig_58e2d43e2b18de3bba22a37b80d211cd0f41c72a29d957c9cff18eb0c9ed4148/3b13153fb671afc9fcd513d3c04edcd29aa749ac6291e2aee019f0118e903e55.php b/sites/default/files/php/twig/9f912b15_page-title.html.twig_58e2d43e2b18de3bba22a37b80d211cd0f41c72a29d957c9cff18eb0c9ed4148/3b13153fb671afc9fcd513d3c04edcd29aa749ac6291e2aee019f0118e903e55.php
new file mode 100644
index 0000000..1840e9d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_page-title.html.twig_58e2d43e2b18de3bba22a37b80d211cd0f41c72a29d957c9cff18eb0c9ed4148/3b13153fb671afc9fcd513d3c04edcd29aa749ac6291e2aee019f0118e903e55.php
@@ -0,0 +1,84 @@
+<?php
+
+/* core/themes/bartik/templates/page-title.html.twig */
+class __TwigTemplate_da627bad8878c4063b80dbb1ab8328f96812c3900a347ec380742bb7bdc4d496 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        // line 1
+        $this->parent = $this->loadTemplate("@classy/content/page-title.html.twig", "core/themes/bartik/templates/page-title.html.twig", 1);
+        $this->blocks = array(
+        );
+    }
+
+    protected function doGetParent(array $context)
+    {
+        return "@classy/content/page-title.html.twig";
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 16);
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set'),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 16
+        $context["title_attributes"] = $this->getAttribute((isset($context["title_attributes"]) ? $context["title_attributes"] : null), "addClass", array(0 => "title"), "method");
+        // line 1
+        $this->parent->display($context, array_merge($this->blocks, $blocks));
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/bartik/templates/page-title.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  50 => 1,  48 => 16,  11 => 1,);
+    }
+}
+/* {% extends "@classy/content/page-title.html.twig" %}*/
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Bartik's theme implementation for a page title.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - title_attributes: HTML attributes for the page title element.*/
+/*  * - title_prefix: Additional output populated by modules, intended to be*/
+/*  *   displayed in front of the main title tag that appears in the template.*/
+/*  * - title: The page title, for use in the actual content.*/
+/*  * - title_suffix: Additional output populated by modules, intended to be*/
+/*  *   displayed after the main title tag that appears in the template.*/
+/*  *//* */
+/* #}*/
+/* {% set title_attributes = title_attributes.addClass('title') %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_page.html.twig_fc8a2afaf7a3b198ffca974b670d19d2a01335511a87b50bcc572897c8e1431a/.htaccess b/sites/default/files/php/twig/9f912b15_page.html.twig_fc8a2afaf7a3b198ffca974b670d19d2a01335511a87b50bcc572897c8e1431a/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_page.html.twig_fc8a2afaf7a3b198ffca974b670d19d2a01335511a87b50bcc572897c8e1431a/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_page.html.twig_fc8a2afaf7a3b198ffca974b670d19d2a01335511a87b50bcc572897c8e1431a/08999e8d7c97d23c0e1654a76fe63200fda4e530ea082cb31af7581fb18ff205.php b/sites/default/files/php/twig/9f912b15_page.html.twig_fc8a2afaf7a3b198ffca974b670d19d2a01335511a87b50bcc572897c8e1431a/08999e8d7c97d23c0e1654a76fe63200fda4e530ea082cb31af7581fb18ff205.php
new file mode 100644
index 0000000..2985fad
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_page.html.twig_fc8a2afaf7a3b198ffca974b670d19d2a01335511a87b50bcc572897c8e1431a/08999e8d7c97d23c0e1654a76fe63200fda4e530ea082cb31af7581fb18ff205.php
@@ -0,0 +1,351 @@
+<?php
+
+/* core/themes/bartik/templates/page.html.twig */
+class __TwigTemplate_475e85d1679df663a9bac996e3386eb0525c4588cc8e3c27cee89662f809c0a5 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("if" => 62);
+        $filters = array("t" => 55);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('if'),
+                array('t'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 53
+        echo "<div id=\"page-wrapper\">
+  <div id=\"page\">
+    <header id=\"header\" class=\"header\" role=\"banner\" aria-label=\"";
+        // line 55
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Site header")));
+        echo "\">
+      <div class=\"section layout-container clearfix\">
+        ";
+        // line 57
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "secondary_menu", array()), "html", null, true));
+        echo "
+        ";
+        // line 58
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "header", array()), "html", null, true));
+        echo "
+        ";
+        // line 59
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "primary_menu", array()), "html", null, true));
+        echo "
+      </div>
+    </header>
+    ";
+        // line 62
+        if ($this->getAttribute((isset($context["page"]) ? $context["page"] : null), "highlighted", array())) {
+            // line 63
+            echo "      <div class=\"highlighted\">
+        <aside class=\"layout-container section clearfix\" role=\"complementary\">
+          ";
+            // line 65
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "highlighted", array()), "html", null, true));
+            echo "
+        </aside>
+      </div>
+    ";
+        }
+        // line 69
+        echo "    ";
+        if ($this->getAttribute((isset($context["page"]) ? $context["page"] : null), "featured_top", array())) {
+            // line 70
+            echo "      <div class=\"featured-top\">
+        <aside class=\"featured-top__inner section layout-container clearfix\" role=\"complementary\">
+          ";
+            // line 72
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "featured_top", array()), "html", null, true));
+            echo "
+        </aside>
+      </div>
+    ";
+        }
+        // line 76
+        echo "    <div id=\"main-wrapper\" class=\"layout-main-wrapper layout-container clearfix\">
+      <div id=\"main\" class=\"layout-main clearfix\">
+        ";
+        // line 78
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "breadcrumb", array()), "html", null, true));
+        echo "
+        <main id=\"content\" class=\"column main-content\" role=\"main\">
+          <section class=\"section\">
+            <a id=\"main-content\" tabindex=\"-1\"></a>
+            ";
+        // line 82
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "content", array()), "html", null, true));
+        echo "
+          </section>
+        </main>
+        ";
+        // line 85
+        if ($this->getAttribute((isset($context["page"]) ? $context["page"] : null), "sidebar_first", array())) {
+            // line 86
+            echo "          <div id=\"sidebar-first\" class=\"column sidebar\">
+            <aside class=\"section\" role=\"complementary\">
+              ";
+            // line 88
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "sidebar_first", array()), "html", null, true));
+            echo "
+            </aside>
+          </div>
+        ";
+        }
+        // line 92
+        echo "        ";
+        if ($this->getAttribute((isset($context["page"]) ? $context["page"] : null), "sidebar_second", array())) {
+            // line 93
+            echo "          <div id=\"sidebar-second\" class=\"column sidebar\">
+            <aside class=\"section\" role=\"complementary\">
+              ";
+            // line 95
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "sidebar_second", array()), "html", null, true));
+            echo "
+            </aside>
+          </div>
+        ";
+        }
+        // line 99
+        echo "      </div>
+    </div>
+    ";
+        // line 101
+        if ((($this->getAttribute((isset($context["page"]) ? $context["page"] : null), "featured_bottom_first", array()) || $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "featured_bottom_second", array())) || $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "featured_bottom_third", array()))) {
+            // line 102
+            echo "      <div class=\"featured-bottom\">
+        <aside class=\"layout-container clearfix\" role=\"complementary\">
+          ";
+            // line 104
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "featured_bottom_first", array()), "html", null, true));
+            echo "
+          ";
+            // line 105
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "featured_bottom_second", array()), "html", null, true));
+            echo "
+          ";
+            // line 106
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "featured_bottom_third", array()), "html", null, true));
+            echo "
+        </aside>
+      </div>
+    ";
+        }
+        // line 110
+        echo "    <footer class=\"site-footer\">
+      <div class=\"layout-container\">
+        ";
+        // line 112
+        if (((($this->getAttribute((isset($context["page"]) ? $context["page"] : null), "footer_first", array()) || $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "footer_second", array())) || $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "footer_third", array())) || $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "footer_fourth", array()))) {
+            // line 113
+            echo "          <div class=\"site-footer__top clearfix\">
+            ";
+            // line 114
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "footer_first", array()), "html", null, true));
+            echo "
+            ";
+            // line 115
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "footer_second", array()), "html", null, true));
+            echo "
+            ";
+            // line 116
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "footer_third", array()), "html", null, true));
+            echo "
+            ";
+            // line 117
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "footer_fourth", array()), "html", null, true));
+            echo "
+          </div>
+        ";
+        }
+        // line 120
+        echo "        ";
+        if ($this->getAttribute((isset($context["page"]) ? $context["page"] : null), "footer_fifth", array())) {
+            // line 121
+            echo "          <div class=\"site-footer__bottom\">
+            ";
+            // line 122
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "footer_fifth", array()), "html", null, true));
+            echo "
+          </div>
+        ";
+        }
+        // line 125
+        echo "      </div>
+    </footer>
+  </div>
+</div>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/bartik/templates/page.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  201 => 125,  195 => 122,  192 => 121,  189 => 120,  183 => 117,  179 => 116,  175 => 115,  171 => 114,  168 => 113,  166 => 112,  162 => 110,  155 => 106,  151 => 105,  147 => 104,  143 => 102,  141 => 101,  137 => 99,  130 => 95,  126 => 93,  123 => 92,  116 => 88,  112 => 86,  110 => 85,  104 => 82,  97 => 78,  93 => 76,  86 => 72,  82 => 70,  79 => 69,  72 => 65,  68 => 63,  66 => 62,  60 => 59,  56 => 58,  52 => 57,  47 => 55,  43 => 53,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Bartik's theme implementation to display a single page.*/
+/*  **/
+/*  * The doctype, html, head and body tags are not in this template. Instead they*/
+/*  * can be found in the html.html.twig template normally located in the*/
+/*  * core/modules/system directory.*/
+/*  **/
+/*  * Available variables:*/
+/*  **/
+/*  * General utility variables:*/
+/*  * - base_path: The base URL path of the Drupal installation. Will usually be*/
+/*  *   "/" unless you have installed Drupal in a sub-directory.*/
+/*  * - is_front: A flag indicating if the current page is the front page.*/
+/*  * - logged_in: A flag indicating if the user is registered and signed in.*/
+/*  * - is_admin: A flag indicating if the user has permission to access*/
+/*  *   administration pages.*/
+/*  **/
+/*  * Site identity:*/
+/*  * - front_page: The URL of the front page. Use this instead of base_path when*/
+/*  *   linking to the front page. This includes the language domain or prefix.*/
+/*  **/
+/*  * Page content (in order of occurrence in the default page.html.twig):*/
+/*  * - node: Fully loaded node, if there is an automatically-loaded node*/
+/*  *   associated with the page and the node ID is the second argument in the*/
+/*  *   page's path (e.g. node/12345 and node/12345/revisions, but not*/
+/*  *   comment/reply/12345).*/
+/*  **/
+/*  * Regions:*/
+/*  * - page.header: Items for the header region.*/
+/*  * - page.highlighted: Items for the highlighted region.*/
+/*  * - page.primary_menu: Items for the primary menu region.*/
+/*  * - page.secondary_menu: Items for the secondary menu region.*/
+/*  * - page.featured_top: Items for the featured top region.*/
+/*  * - page.content: The main content of the current page.*/
+/*  * - page.sidebar_first: Items for the first sidebar.*/
+/*  * - page.sidebar_second: Items for the second sidebar.*/
+/*  * - page.featured_bottom_first: Items for the first featured bottom region.*/
+/*  * - page.featured_bottom_second: Items for the second featured bottom region.*/
+/*  * - page.featured_bottom_third: Items for the third featured bottom region.*/
+/*  * - page.footer_first: Items for the first footer column.*/
+/*  * - page.footer_second: Items for the second footer column.*/
+/*  * - page.footer_third: Items for the third footer column.*/
+/*  * - page.footer_fourth: Items for the fourth footer column.*/
+/*  * - page.footer_fifth: Items for the fifth footer column.*/
+/*  * - page.breadcrumb: Items for the breadcrumb region.*/
+/*  **/
+/*  * @see template_preprocess_page()*/
+/*  * @see html.html.twig*/
+/*  *//* */
+/* #}*/
+/* <div id="page-wrapper">*/
+/*   <div id="page">*/
+/*     <header id="header" class="header" role="banner" aria-label="{{ 'Site header'|t}}">*/
+/*       <div class="section layout-container clearfix">*/
+/*         {{ page.secondary_menu }}*/
+/*         {{ page.header }}*/
+/*         {{ page.primary_menu }}*/
+/*       </div>*/
+/*     </header>*/
+/*     {% if page.highlighted %}*/
+/*       <div class="highlighted">*/
+/*         <aside class="layout-container section clearfix" role="complementary">*/
+/*           {{ page.highlighted }}*/
+/*         </aside>*/
+/*       </div>*/
+/*     {% endif %}*/
+/*     {% if page.featured_top %}*/
+/*       <div class="featured-top">*/
+/*         <aside class="featured-top__inner section layout-container clearfix" role="complementary">*/
+/*           {{ page.featured_top }}*/
+/*         </aside>*/
+/*       </div>*/
+/*     {% endif %}*/
+/*     <div id="main-wrapper" class="layout-main-wrapper layout-container clearfix">*/
+/*       <div id="main" class="layout-main clearfix">*/
+/*         {{ page.breadcrumb }}*/
+/*         <main id="content" class="column main-content" role="main">*/
+/*           <section class="section">*/
+/*             <a id="main-content" tabindex="-1"></a>*/
+/*             {{ page.content }}*/
+/*           </section>*/
+/*         </main>*/
+/*         {% if page.sidebar_first %}*/
+/*           <div id="sidebar-first" class="column sidebar">*/
+/*             <aside class="section" role="complementary">*/
+/*               {{ page.sidebar_first }}*/
+/*             </aside>*/
+/*           </div>*/
+/*         {% endif %}*/
+/*         {% if page.sidebar_second %}*/
+/*           <div id="sidebar-second" class="column sidebar">*/
+/*             <aside class="section" role="complementary">*/
+/*               {{ page.sidebar_second }}*/
+/*             </aside>*/
+/*           </div>*/
+/*         {% endif %}*/
+/*       </div>*/
+/*     </div>*/
+/*     {% if page.featured_bottom_first or page.featured_bottom_second or page.featured_bottom_third %}*/
+/*       <div class="featured-bottom">*/
+/*         <aside class="layout-container clearfix" role="complementary">*/
+/*           {{ page.featured_bottom_first }}*/
+/*           {{ page.featured_bottom_second }}*/
+/*           {{ page.featured_bottom_third }}*/
+/*         </aside>*/
+/*       </div>*/
+/*     {% endif %}*/
+/*     <footer class="site-footer">*/
+/*       <div class="layout-container">*/
+/*         {% if page.footer_first or page.footer_second or page.footer_third or page.footer_fourth %}*/
+/*           <div class="site-footer__top clearfix">*/
+/*             {{ page.footer_first }}*/
+/*             {{ page.footer_second }}*/
+/*             {{ page.footer_third }}*/
+/*             {{ page.footer_fourth }}*/
+/*           </div>*/
+/*         {% endif %}*/
+/*         {% if page.footer_fifth %}*/
+/*           <div class="site-footer__bottom">*/
+/*             {{ page.footer_fifth }}*/
+/*           </div>*/
+/*         {% endif %}*/
+/*       </div>*/
+/*     </footer>*/
+/*   </div>*/
+/* </div>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_pager.html.twig_78795477c9befbd8a55eae02fe0700d91bda34cc63d1e7782741101beabf94bf/.htaccess b/sites/default/files/php/twig/9f912b15_pager.html.twig_78795477c9befbd8a55eae02fe0700d91bda34cc63d1e7782741101beabf94bf/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_pager.html.twig_78795477c9befbd8a55eae02fe0700d91bda34cc63d1e7782741101beabf94bf/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_pager.html.twig_78795477c9befbd8a55eae02fe0700d91bda34cc63d1e7782741101beabf94bf/b076f1d1b618e92bdd1f3e9ec977af7733ea59b74521abc9542d4962312fef4a.php b/sites/default/files/php/twig/9f912b15_pager.html.twig_78795477c9befbd8a55eae02fe0700d91bda34cc63d1e7782741101beabf94bf/b076f1d1b618e92bdd1f3e9ec977af7733ea59b74521abc9542d4962312fef4a.php
new file mode 100644
index 0000000..6a9a276
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_pager.html.twig_78795477c9befbd8a55eae02fe0700d91bda34cc63d1e7782741101beabf94bf/b076f1d1b618e92bdd1f3e9ec977af7733ea59b74521abc9542d4962312fef4a.php
@@ -0,0 +1,346 @@
+<?php
+
+/* core/themes/classy/templates/navigation/pager.html.twig */
+class __TwigTemplate_1a3c49b52d42026b863ea5d67de43e58001a7c7468b8ad44c5d462c9ee77efea extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("if" => 32, "for" => 59, "set" => 62);
+        $filters = array("t" => 34, "without" => 39, "default" => 41);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('if', 'for', 'set'),
+                array('t', 'without', 'default'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 32
+        if ((isset($context["items"]) ? $context["items"] : null)) {
+            // line 33
+            echo "  <nav class=\"pager\" role=\"navigation\" aria-labelledby=\"pagination-heading\">
+    <h4 id=\"pagination-heading\" class=\"visually-hidden\">";
+            // line 34
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Pagination")));
+            echo "</h4>
+    <ul class=\"pager__items js-pager__items\">
+      ";
+            // line 37
+            echo "      ";
+            if ($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "first", array())) {
+                // line 38
+                echo "        <li class=\"pager__item pager__item--first\">
+          <a href=\"";
+                // line 39
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "first", array()), "href", array()), "html", null, true));
+                echo "\" title=\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Go to first page")));
+                echo "\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, twig_without($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "first", array()), "attributes", array()), "href", "title"), "html", null, true));
+                echo ">
+            <span class=\"visually-hidden\">";
+                // line 40
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("First page")));
+                echo "</span>
+            <span aria-hidden=\"true\">";
+                // line 41
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "first", array(), "any", false, true), "text", array(), "any", true, true)) ? (_twig_default_filter($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "first", array(), "any", false, true), "text", array()), t("« First"))) : (t("« First"))), "html", null, true));
+                echo "</span>
+          </a>
+        </li>
+      ";
+            }
+            // line 45
+            echo "      ";
+            // line 46
+            echo "      ";
+            if ($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "previous", array())) {
+                // line 47
+                echo "        <li class=\"pager__item pager__item--previous\">
+          <a href=\"";
+                // line 48
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "previous", array()), "href", array()), "html", null, true));
+                echo "\" title=\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Go to previous page")));
+                echo "\" rel=\"prev\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, twig_without($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "previous", array()), "attributes", array()), "href", "title", "rel"), "html", null, true));
+                echo ">
+            <span class=\"visually-hidden\">";
+                // line 49
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Previous page")));
+                echo "</span>
+            <span aria-hidden=\"true\">";
+                // line 50
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "previous", array(), "any", false, true), "text", array(), "any", true, true)) ? (_twig_default_filter($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "previous", array(), "any", false, true), "text", array()), t("‹ Previous"))) : (t("‹ Previous"))), "html", null, true));
+                echo "</span>
+          </a>
+        </li>
+      ";
+            }
+            // line 54
+            echo "      ";
+            // line 55
+            echo "      ";
+            if ($this->getAttribute((isset($context["ellipses"]) ? $context["ellipses"] : null), "previous", array())) {
+                // line 56
+                echo "        <li class=\"pager__item pager__item--ellipsis\" role=\"presentation\">&hellip;</li>
+      ";
+            }
+            // line 58
+            echo "      ";
+            // line 59
+            echo "      ";
+            $context['_parent'] = $context;
+            $context['_seq'] = twig_ensure_traversable($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "pages", array()));
+            foreach ($context['_seq'] as $context["key"] => $context["item"]) {
+                // line 60
+                echo "        <li class=\"pager__item";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(((((isset($context["current"]) ? $context["current"] : null) == $context["key"])) ? (" is-active") : (""))));
+                echo "\">
+          ";
+                // line 61
+                if (((isset($context["current"]) ? $context["current"] : null) == $context["key"])) {
+                    // line 62
+                    echo "            ";
+                    $context["title"] = t("Current page");
+                    // line 63
+                    echo "          ";
+                } else {
+                    // line 64
+                    echo "            ";
+                    $context["title"] = t("Go to page @key", array("@key" => $context["key"]));
+                    // line 65
+                    echo "          ";
+                }
+                // line 66
+                echo "          <a href=\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["item"], "href", array()), "html", null, true));
+                echo "\" title=\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title"]) ? $context["title"] : null), "html", null, true));
+                echo "\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, twig_without($this->getAttribute($context["item"], "attributes", array()), "href", "title"), "html", null, true));
+                echo ">
+            <span class=\"visually-hidden\">
+              ";
+                // line 68
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(((((isset($context["current"]) ? $context["current"] : null) == $context["key"])) ? (t("Current page")) : (t("Page")))));
+                echo "
+            </span>";
+                // line 70
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $context["key"], "html", null, true));
+                // line 71
+                echo "</a>
+        </li>
+      ";
+            }
+            $_parent = $context['_parent'];
+            unset($context['_seq'], $context['_iterated'], $context['key'], $context['item'], $context['_parent'], $context['loop']);
+            $context = array_intersect_key($context, $_parent) + $_parent;
+            // line 74
+            echo "      ";
+            // line 75
+            echo "      ";
+            if ($this->getAttribute((isset($context["ellipses"]) ? $context["ellipses"] : null), "next", array())) {
+                // line 76
+                echo "        <li class=\"pager__item pager__item--ellipsis\" role=\"presentation\">&hellip;</li>
+      ";
+            }
+            // line 78
+            echo "      ";
+            // line 79
+            echo "      ";
+            if ($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "next", array())) {
+                // line 80
+                echo "        <li class=\"pager__item pager__item--next\">
+          <a href=\"";
+                // line 81
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "next", array()), "href", array()), "html", null, true));
+                echo "\" title=\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Go to next page")));
+                echo "\" rel=\"next\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, twig_without($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "next", array()), "attributes", array()), "href", "title", "rel"), "html", null, true));
+                echo ">
+            <span class=\"visually-hidden\">";
+                // line 82
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Next page")));
+                echo "</span>
+            <span aria-hidden=\"true\">";
+                // line 83
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "next", array(), "any", false, true), "text", array(), "any", true, true)) ? (_twig_default_filter($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "next", array(), "any", false, true), "text", array()), t("Next ›"))) : (t("Next ›"))), "html", null, true));
+                echo "</span>
+          </a>
+        </li>
+      ";
+            }
+            // line 87
+            echo "      ";
+            // line 88
+            echo "      ";
+            if ($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "last", array())) {
+                // line 89
+                echo "        <li class=\"pager__item pager__item--last\">
+          <a href=\"";
+                // line 90
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "last", array()), "href", array()), "html", null, true));
+                echo "\" title=\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Go to last page")));
+                echo "\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, twig_without($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "last", array()), "attributes", array()), "href", "title"), "html", null, true));
+                echo ">
+            <span class=\"visually-hidden\">";
+                // line 91
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar(t("Last page")));
+                echo "</span>
+            <span aria-hidden=\"true\">";
+                // line 92
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "last", array(), "any", false, true), "text", array(), "any", true, true)) ? (_twig_default_filter($this->getAttribute($this->getAttribute((isset($context["items"]) ? $context["items"] : null), "last", array(), "any", false, true), "text", array()), t("Last »"))) : (t("Last »"))), "html", null, true));
+                echo "</span>
+          </a>
+        </li>
+      ";
+            }
+            // line 96
+            echo "    </ul>
+  </nav>
+";
+        }
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/navigation/pager.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  227 => 96,  220 => 92,  216 => 91,  208 => 90,  205 => 89,  202 => 88,  200 => 87,  193 => 83,  189 => 82,  181 => 81,  178 => 80,  175 => 79,  173 => 78,  169 => 76,  166 => 75,  164 => 74,  156 => 71,  154 => 70,  150 => 68,  140 => 66,  137 => 65,  134 => 64,  131 => 63,  128 => 62,  126 => 61,  121 => 60,  116 => 59,  114 => 58,  110 => 56,  107 => 55,  105 => 54,  98 => 50,  94 => 49,  86 => 48,  83 => 47,  80 => 46,  78 => 45,  71 => 41,  67 => 40,  59 => 39,  56 => 38,  53 => 37,  48 => 34,  45 => 33,  43 => 32,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override to display a pager.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - items: List of pager items.*/
+/*  *   The list is keyed by the following elements:*/
+/*  *   - first: Item for the first page; not present on the first page of results.*/
+/*  *   - previous: Item for the previous page; not present on the first page*/
+/*  *     of results.*/
+/*  *   - next: Item for the next page; not present on the last page of results.*/
+/*  *   - last: Item for the last page; not present on the last page of results.*/
+/*  *   - pages: List of pages, keyed by page number.*/
+/*  *   Sub-sub elements:*/
+/*  *   items.first, items.previous, items.next, items.last, and each item inside*/
+/*  *   items.pages contain the following elements:*/
+/*  *   - href: URL with appropriate query parameters for the item.*/
+/*  *   - attributes: A keyed list of HTML attributes for the item.*/
+/*  *   - text: The visible text used for the item link, such as "‹ Previous"*/
+/*  *     or "Next ›".*/
+/*  * - current: The page number of the current page.*/
+/*  * - ellipses: If there are more pages than the quantity allows, then an*/
+/*  *   ellipsis before or after the listed pages may be present.*/
+/*  *   - previous: Present if the currently visible list of pages does not start*/
+/*  *     at the first page.*/
+/*  *   - next: Present if the visible list of pages ends before the last page.*/
+/*  **/
+/*  * @see template_preprocess_pager()*/
+/*  *//* */
+/* #}*/
+/* {% if items %}*/
+/*   <nav class="pager" role="navigation" aria-labelledby="pagination-heading">*/
+/*     <h4 id="pagination-heading" class="visually-hidden">{{ 'Pagination'|t }}</h4>*/
+/*     <ul class="pager__items js-pager__items">*/
+/*       {# Print first item if we are not on the first page. #}*/
+/*       {% if items.first %}*/
+/*         <li class="pager__item pager__item--first">*/
+/*           <a href="{{ items.first.href }}" title="{{ 'Go to first page'|t }}"{{ items.first.attributes|without('href', 'title') }}>*/
+/*             <span class="visually-hidden">{{ 'First page'|t }}</span>*/
+/*             <span aria-hidden="true">{{ items.first.text|default('« First'|t) }}</span>*/
+/*           </a>*/
+/*         </li>*/
+/*       {% endif %}*/
+/*       {# Print previous item if we are not on the first page. #}*/
+/*       {% if items.previous %}*/
+/*         <li class="pager__item pager__item--previous">*/
+/*           <a href="{{ items.previous.href }}" title="{{ 'Go to previous page'|t }}" rel="prev"{{ items.previous.attributes|without('href', 'title', 'rel') }}>*/
+/*             <span class="visually-hidden">{{ 'Previous page'|t }}</span>*/
+/*             <span aria-hidden="true">{{ items.previous.text|default('‹ Previous'|t) }}</span>*/
+/*           </a>*/
+/*         </li>*/
+/*       {% endif %}*/
+/*       {# Add an ellipsis if there are further previous pages. #}*/
+/*       {% if ellipses.previous %}*/
+/*         <li class="pager__item pager__item--ellipsis" role="presentation">&hellip;</li>*/
+/*       {% endif %}*/
+/*       {# Now generate the actual pager piece. #}*/
+/*       {% for key, item in items.pages %}*/
+/*         <li class="pager__item{{ current == key ? ' is-active' : '' }}">*/
+/*           {% if current == key %}*/
+/*             {% set title = 'Current page'|t %}*/
+/*           {% else %}*/
+/*             {% set title = 'Go to page @key'|t({'@key': key}) %}*/
+/*           {% endif %}*/
+/*           <a href="{{ item.href }}" title="{{ title }}"{{ item.attributes|without('href', 'title') }}>*/
+/*             <span class="visually-hidden">*/
+/*               {{ current == key ? 'Current page'|t : 'Page'|t }}*/
+/*             </span>*/
+/*             {{- key -}}*/
+/*           </a>*/
+/*         </li>*/
+/*       {% endfor %}*/
+/*       {# Add an ellipsis if there are further next pages. #}*/
+/*       {% if ellipses.next %}*/
+/*         <li class="pager__item pager__item--ellipsis" role="presentation">&hellip;</li>*/
+/*       {% endif %}*/
+/*       {# Print next item if we are not on the last page. #}*/
+/*       {% if items.next %}*/
+/*         <li class="pager__item pager__item--next">*/
+/*           <a href="{{ items.next.href }}" title="{{ 'Go to next page'|t }}" rel="next"{{ items.next.attributes|without('href', 'title', 'rel') }}>*/
+/*             <span class="visually-hidden">{{ 'Next page'|t }}</span>*/
+/*             <span aria-hidden="true">{{ items.next.text|default('Next ›'|t) }}</span>*/
+/*           </a>*/
+/*         </li>*/
+/*       {% endif %}*/
+/*       {# Print last item if we are not on the last page. #}*/
+/*       {% if items.last %}*/
+/*         <li class="pager__item pager__item--last">*/
+/*           <a href="{{ items.last.href }}" title="{{ 'Go to last page'|t }}"{{ items.last.attributes|without('href', 'title') }}>*/
+/*             <span class="visually-hidden">{{ 'Last page'|t }}</span>*/
+/*             <span aria-hidden="true">{{ items.last.text|default('Last »'|t) }}</span>*/
+/*           </a>*/
+/*         </li>*/
+/*       {% endif %}*/
+/*     </ul>*/
+/*   </nav>*/
+/* {% endif %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_progress-bar.html.twig_acdbf06322d64461a75102bccffdb648b9f4515fff4e0fa43e6540f94d032e57/.htaccess b/sites/default/files/php/twig/9f912b15_progress-bar.html.twig_acdbf06322d64461a75102bccffdb648b9f4515fff4e0fa43e6540f94d032e57/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_progress-bar.html.twig_acdbf06322d64461a75102bccffdb648b9f4515fff4e0fa43e6540f94d032e57/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_progress-bar.html.twig_acdbf06322d64461a75102bccffdb648b9f4515fff4e0fa43e6540f94d032e57/91e5680ad3c4770904fbf82b9563425b2ce5d335955f87d6fd025fd6c09e89cf.php b/sites/default/files/php/twig/9f912b15_progress-bar.html.twig_acdbf06322d64461a75102bccffdb648b9f4515fff4e0fa43e6540f94d032e57/91e5680ad3c4770904fbf82b9563425b2ce5d335955f87d6fd025fd6c09e89cf.php
new file mode 100644
index 0000000..256a8b6
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_progress-bar.html.twig_acdbf06322d64461a75102bccffdb648b9f4515fff4e0fa43e6540f94d032e57/91e5680ad3c4770904fbf82b9563425b2ce5d335955f87d6fd025fd6c09e89cf.php
@@ -0,0 +1,108 @@
+<?php
+
+/* core/themes/classy/templates/misc/progress-bar.html.twig */
+class __TwigTemplate_ca53072ffc842e84c1854b4d9fbe27e2488cece37f170115cb6e542d635351da extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("if" => 16);
+        $filters = array();
+        $functions = array("attach_library" => 14);
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('if'),
+                array(),
+                array('attach_library')
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 14
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->env->getExtension('drupal_core')->attachLibrary("classy/progress"), "html", null, true));
+        echo "
+<div class=\"progress\" data-drupal-progress>
+  ";
+        // line 16
+        if ((isset($context["label"]) ? $context["label"] : null)) {
+            // line 17
+            echo "    <div class=\"progress__label\">";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["label"]) ? $context["label"] : null), "html", null, true));
+            echo "</div>
+  ";
+        }
+        // line 19
+        echo "  <div class=\"progress__track\"><div class=\"progress__bar\" style=\"width: ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["percent"]) ? $context["percent"] : null), "html", null, true));
+        echo "%\"></div></div>
+  <div class=\"progress__percentage\">";
+        // line 20
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["percent"]) ? $context["percent"] : null), "html", null, true));
+        echo "%</div>
+  <div class=\"progress__description\">";
+        // line 21
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["message"]) ? $context["message"] : null), "html", null, true));
+        echo "</div>
+</div>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/misc/progress-bar.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  65 => 21,  61 => 20,  56 => 19,  50 => 17,  48 => 16,  43 => 14,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a progress bar.*/
+/*  **/
+/*  * Note that the core Batch API uses this only for non-JavaScript batch jobs.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - label: The label of the working task.*/
+/*  * - percent: The percentage of the progress.*/
+/*  * - message: A string containing information to be displayed.*/
+/*  *//* */
+/* #}*/
+/* {{ attach_library('classy/progress') }}*/
+/* <div class="progress" data-drupal-progress>*/
+/*   {% if label %}*/
+/*     <div class="progress__label">{{ label }}</div>*/
+/*   {% endif %}*/
+/*   <div class="progress__track"><div class="progress__bar" style="width: {{ percent }}%"></div></div>*/
+/*   <div class="progress__percentage">{{ percent }}%</div>*/
+/*   <div class="progress__description">{{ message }}</div>*/
+/* </div>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_region--header.html.twig_e8f78c5aff851b6267a05bd9ea256d4ba818913620112bf7072134f5f26929f7/.htaccess b/sites/default/files/php/twig/9f912b15_region--header.html.twig_e8f78c5aff851b6267a05bd9ea256d4ba818913620112bf7072134f5f26929f7/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_region--header.html.twig_e8f78c5aff851b6267a05bd9ea256d4ba818913620112bf7072134f5f26929f7/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_region--header.html.twig_e8f78c5aff851b6267a05bd9ea256d4ba818913620112bf7072134f5f26929f7/57d83cffc6c28202423ef104a41bd89c94435f9593e90caca066b0e9f8b4a27f.php b/sites/default/files/php/twig/9f912b15_region--header.html.twig_e8f78c5aff851b6267a05bd9ea256d4ba818913620112bf7072134f5f26929f7/57d83cffc6c28202423ef104a41bd89c94435f9593e90caca066b0e9f8b4a27f.php
new file mode 100644
index 0000000..72c0388
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_region--header.html.twig_e8f78c5aff851b6267a05bd9ea256d4ba818913620112bf7072134f5f26929f7/57d83cffc6c28202423ef104a41bd89c94435f9593e90caca066b0e9f8b4a27f.php
@@ -0,0 +1,84 @@
+<?php
+
+/* core/themes/bartik/templates/region--header.html.twig */
+class __TwigTemplate_f6f9d2315d44ba9fa437078483d971b6f9708b82e8b2a7dd7beaa2f80d4fb29d extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        // line 1
+        $this->parent = $this->loadTemplate("region.html.twig", "core/themes/bartik/templates/region--header.html.twig", 1);
+        $this->blocks = array(
+        );
+    }
+
+    protected function doGetParent(array $context)
+    {
+        return "region.html.twig";
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 16);
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set'),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 16
+        $context["attributes"] = $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => "clearfix"), "method");
+        // line 1
+        $this->parent->display($context, array_merge($this->blocks, $blocks));
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/bartik/templates/region--header.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  50 => 1,  48 => 16,  11 => 1,);
+    }
+}
+/* {% extends "region.html.twig" %}*/
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Bartik's theme implementation to display a header region.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - content: The content for this region, typically blocks.*/
+/*  * - attributes: HTML attributes for the region div.*/
+/*  * - region: The name of the region variable as defined in the theme's*/
+/*  *   .info.yml file.*/
+/*  **/
+/*  * @see template_preprocess_region()*/
+/*  *//* */
+/* #}*/
+/* {% set attributes = attributes.addClass('clearfix') %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_region.html.twig_311ddf326c3de6a6e9b8316f6f2b88f501e51bf84e82b8fa0d148f094acefd22/.htaccess b/sites/default/files/php/twig/9f912b15_region.html.twig_311ddf326c3de6a6e9b8316f6f2b88f501e51bf84e82b8fa0d148f094acefd22/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_region.html.twig_311ddf326c3de6a6e9b8316f6f2b88f501e51bf84e82b8fa0d148f094acefd22/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_region.html.twig_311ddf326c3de6a6e9b8316f6f2b88f501e51bf84e82b8fa0d148f094acefd22/aac3439a4078ba55d3ef5850f483a7d310e2f05d991b800e8b346d719d71f8bd.php b/sites/default/files/php/twig/9f912b15_region.html.twig_311ddf326c3de6a6e9b8316f6f2b88f501e51bf84e82b8fa0d148f094acefd22/aac3439a4078ba55d3ef5850f483a7d310e2f05d991b800e8b346d719d71f8bd.php
new file mode 100644
index 0000000..2830e16
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_region.html.twig_311ddf326c3de6a6e9b8316f6f2b88f501e51bf84e82b8fa0d148f094acefd22/aac3439a4078ba55d3ef5850f483a7d310e2f05d991b800e8b346d719d71f8bd.php
@@ -0,0 +1,100 @@
+<?php
+
+/* region.html.twig */
+class __TwigTemplate_a3ec482b72170cf0e4eac5b38376f1d0d1ca3289bf1a14e3f7979726189b8cab extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 16, "if" => 21);
+        $filters = array("clean_class" => 18);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if'),
+                array('clean_class'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 16
+        $context["classes"] = array(0 => "region", 1 => ("region-" . \Drupal\Component\Utility\Html::getClass(        // line 18
+(isset($context["region"]) ? $context["region"] : null))));
+        // line 21
+        if ((isset($context["content"]) ? $context["content"] : null)) {
+            // line 22
+            echo "  <div";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+            echo ">
+    ";
+            // line 23
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["content"]) ? $context["content"] : null), "html", null, true));
+            echo "
+  </div>
+";
+        }
+    }
+
+    public function getTemplateName()
+    {
+        return "region.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  53 => 23,  48 => 22,  46 => 21,  44 => 18,  43 => 16,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override to display a region.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - content: The content for this region, typically blocks.*/
+/*  * - attributes: HTML attributes for the region div.*/
+/*  * - region: The name of the region variable as defined in the theme's*/
+/*  *   .info.yml file.*/
+/*  **/
+/*  * @see template_preprocess_region()*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     'region',*/
+/*     'region-' ~ region|clean_class,*/
+/*   ]*/
+/* %}*/
+/* {% if content %}*/
+/*   <div{{ attributes.addClass(classes) }}>*/
+/*     {{ content }}*/
+/*   </div>*/
+/* {% endif %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_region.html.twig_416ab480b6ba062453f73c482b7db1913b2d3ffde6650413d0999159775bcf79/.htaccess b/sites/default/files/php/twig/9f912b15_region.html.twig_416ab480b6ba062453f73c482b7db1913b2d3ffde6650413d0999159775bcf79/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_region.html.twig_416ab480b6ba062453f73c482b7db1913b2d3ffde6650413d0999159775bcf79/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_region.html.twig_416ab480b6ba062453f73c482b7db1913b2d3ffde6650413d0999159775bcf79/22be2549c8b9732f52344feacf035b5c407e4e0a1e21908aefbb9bf0a80ecffe.php b/sites/default/files/php/twig/9f912b15_region.html.twig_416ab480b6ba062453f73c482b7db1913b2d3ffde6650413d0999159775bcf79/22be2549c8b9732f52344feacf035b5c407e4e0a1e21908aefbb9bf0a80ecffe.php
new file mode 100644
index 0000000..2f5cfec
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_region.html.twig_416ab480b6ba062453f73c482b7db1913b2d3ffde6650413d0999159775bcf79/22be2549c8b9732f52344feacf035b5c407e4e0a1e21908aefbb9bf0a80ecffe.php
@@ -0,0 +1,100 @@
+<?php
+
+/* core/themes/classy/templates/layout/region.html.twig */
+class __TwigTemplate_ab06e7fb4522ed0b1d9971f1c0ca8454f86ed9bb51e614eb25c64b433a35e5e9 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 16, "if" => 21);
+        $filters = array("clean_class" => 18);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if'),
+                array('clean_class'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 16
+        $context["classes"] = array(0 => "region", 1 => ("region-" . \Drupal\Component\Utility\Html::getClass(        // line 18
+(isset($context["region"]) ? $context["region"] : null))));
+        // line 21
+        if ((isset($context["content"]) ? $context["content"] : null)) {
+            // line 22
+            echo "  <div";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+            echo ">
+    ";
+            // line 23
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["content"]) ? $context["content"] : null), "html", null, true));
+            echo "
+  </div>
+";
+        }
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/layout/region.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  53 => 23,  48 => 22,  46 => 21,  44 => 18,  43 => 16,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override to display a region.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - content: The content for this region, typically blocks.*/
+/*  * - attributes: HTML attributes for the region div.*/
+/*  * - region: The name of the region variable as defined in the theme's*/
+/*  *   .info.yml file.*/
+/*  **/
+/*  * @see template_preprocess_region()*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     'region',*/
+/*     'region-' ~ region|clean_class,*/
+/*   ]*/
+/* %}*/
+/* {% if content %}*/
+/*   <div{{ attributes.addClass(classes) }}>*/
+/*     {{ content }}*/
+/*   </div>*/
+/* {% endif %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_select.html.twig_aeb5b19f1ea54f10b6c1c505eed78c1d4fc617a85f4692db0b8359c173c7f44d/.htaccess b/sites/default/files/php/twig/9f912b15_select.html.twig_aeb5b19f1ea54f10b6c1c505eed78c1d4fc617a85f4692db0b8359c173c7f44d/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_select.html.twig_aeb5b19f1ea54f10b6c1c505eed78c1d4fc617a85f4692db0b8359c173c7f44d/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_select.html.twig_aeb5b19f1ea54f10b6c1c505eed78c1d4fc617a85f4692db0b8359c173c7f44d/b0e3b5f9874ebf103ca56efa0605f26dd11e17ef24553ded72027122d7de8103.php b/sites/default/files/php/twig/9f912b15_select.html.twig_aeb5b19f1ea54f10b6c1c505eed78c1d4fc617a85f4692db0b8359c173c7f44d/b0e3b5f9874ebf103ca56efa0605f26dd11e17ef24553ded72027122d7de8103.php
new file mode 100644
index 0000000..a044e1f
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_select.html.twig_aeb5b19f1ea54f10b6c1c505eed78c1d4fc617a85f4692db0b8359c173c7f44d/b0e3b5f9874ebf103ca56efa0605f26dd11e17ef24553ded72027122d7de8103.php
@@ -0,0 +1,147 @@
+<?php
+
+/* core/themes/classy/templates/form/select.html.twig */
+class __TwigTemplate_5a70f078df0c7c93d6723a3d20273929262819d53f0be7b11d25778616a3a737 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("spaceless" => 13, "for" => 15, "if" => 16);
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('spaceless', 'for', 'if'),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 13
+        ob_start();
+        // line 14
+        echo "  <select";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["attributes"]) ? $context["attributes"] : null), "html", null, true));
+        echo ">
+    ";
+        // line 15
+        $context['_parent'] = $context;
+        $context['_seq'] = twig_ensure_traversable((isset($context["options"]) ? $context["options"] : null));
+        foreach ($context['_seq'] as $context["_key"] => $context["option"]) {
+            // line 16
+            echo "      ";
+            if (($this->getAttribute($context["option"], "type", array()) == "optgroup")) {
+                // line 17
+                echo "        <optgroup label=\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["option"], "label", array()), "html", null, true));
+                echo "\">
+          ";
+                // line 18
+                $context['_parent'] = $context;
+                $context['_seq'] = twig_ensure_traversable($this->getAttribute($context["option"], "options", array()));
+                foreach ($context['_seq'] as $context["_key"] => $context["sub_option"]) {
+                    // line 19
+                    echo "            <option value=\"";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["sub_option"], "value", array()), "html", null, true));
+                    echo "\"";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar((($this->getAttribute($context["sub_option"], "selected", array())) ? (" selected=\"selected\"") : (""))));
+                    echo ">";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["sub_option"], "label", array()), "html", null, true));
+                    echo "</option>
+          ";
+                }
+                $_parent = $context['_parent'];
+                unset($context['_seq'], $context['_iterated'], $context['_key'], $context['sub_option'], $context['_parent'], $context['loop']);
+                $context = array_intersect_key($context, $_parent) + $_parent;
+                // line 21
+                echo "        </optgroup>
+      ";
+            } elseif (($this->getAttribute(            // line 22
+$context["option"], "type", array()) == "option")) {
+                // line 23
+                echo "        <option value=\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["option"], "value", array()), "html", null, true));
+                echo "\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->renderVar((($this->getAttribute($context["option"], "selected", array())) ? (" selected=\"selected\"") : (""))));
+                echo ">";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["option"], "label", array()), "html", null, true));
+                echo "</option>
+      ";
+            }
+            // line 25
+            echo "    ";
+        }
+        $_parent = $context['_parent'];
+        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['option'], $context['_parent'], $context['loop']);
+        $context = array_intersect_key($context, $_parent) + $_parent;
+        // line 26
+        echo "  </select>
+";
+        echo trim(preg_replace('/>\s+</', '><', ob_get_clean()));
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/form/select.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  100 => 26,  94 => 25,  84 => 23,  82 => 22,  79 => 21,  66 => 19,  62 => 18,  57 => 17,  54 => 16,  50 => 15,  45 => 14,  43 => 13,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a select element.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - attributes: HTML attributes for the select tag.*/
+/*  * - options: The option element children.*/
+/*  **/
+/*  * @see template_preprocess_select()*/
+/*  *//* */
+/* #}*/
+/* {% spaceless %}*/
+/*   <select{{ attributes }}>*/
+/*     {% for option in options %}*/
+/*       {% if option.type == 'optgroup' %}*/
+/*         <optgroup label="{{ option.label }}">*/
+/*           {% for sub_option in option.options %}*/
+/*             <option value="{{ sub_option.value }}"{{ sub_option.selected ? ' selected="selected"' }}>{{ sub_option.label }}</option>*/
+/*           {% endfor %}*/
+/*         </optgroup>*/
+/*       {% elseif option.type == 'option' %}*/
+/*         <option value="{{ option.value }}"{{ option.selected ? ' selected="selected"' }}>{{ option.label }}</option>*/
+/*       {% endif %}*/
+/*     {% endfor %}*/
+/*   </select>*/
+/* {% endspaceless %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_status-messages.html.twig_30a2d98d163cc6d75f3699fd7a37f7f04cdd473181fe382c3b4e0c3f6c4e8b11/.htaccess b/sites/default/files/php/twig/9f912b15_status-messages.html.twig_30a2d98d163cc6d75f3699fd7a37f7f04cdd473181fe382c3b4e0c3f6c4e8b11/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_status-messages.html.twig_30a2d98d163cc6d75f3699fd7a37f7f04cdd473181fe382c3b4e0c3f6c4e8b11/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_status-messages.html.twig_30a2d98d163cc6d75f3699fd7a37f7f04cdd473181fe382c3b4e0c3f6c4e8b11/ef4c1b0624cd1ba6badaeb4782d89200af20fe0c26b9ca99981a5c43ff7fbc95.php b/sites/default/files/php/twig/9f912b15_status-messages.html.twig_30a2d98d163cc6d75f3699fd7a37f7f04cdd473181fe382c3b4e0c3f6c4e8b11/ef4c1b0624cd1ba6badaeb4782d89200af20fe0c26b9ca99981a5c43ff7fbc95.php
new file mode 100644
index 0000000..885f56f
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_status-messages.html.twig_30a2d98d163cc6d75f3699fd7a37f7f04cdd473181fe382c3b4e0c3f6c4e8b11/ef4c1b0624cd1ba6badaeb4782d89200af20fe0c26b9ca99981a5c43ff7fbc95.php
@@ -0,0 +1,205 @@
+<?php
+
+/* core/themes/classy/templates/misc/status-messages.html.twig */
+class __TwigTemplate_7c84b16e88292e97cbd2b5ee5cbe41e12435f13154e50cda2189d7efe906c26e extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+            'messages' => array($this, 'block_messages'),
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("block" => 25, "for" => 26, "set" => 28, "if" => 34);
+        $filters = array("without" => 33, "length" => 40, "first" => 47);
+        $functions = array("attach_library" => 24);
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('block', 'for', 'set', 'if'),
+                array('without', 'length', 'first'),
+                array('attach_library')
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 24
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->env->getExtension('drupal_core')->attachLibrary("classy/messages"), "html", null, true));
+        echo "
+";
+        // line 25
+        $this->displayBlock('messages', $context, $blocks);
+    }
+
+    public function block_messages($context, array $blocks = array())
+    {
+        // line 26
+        $context['_parent'] = $context;
+        $context['_seq'] = twig_ensure_traversable((isset($context["message_list"]) ? $context["message_list"] : null));
+        foreach ($context['_seq'] as $context["type"] => $context["messages"]) {
+            // line 27
+            echo "  ";
+            // line 28
+            $context["classes"] = array(0 => "messages", 1 => ("messages--" .             // line 30
+$context["type"]));
+            // line 33
+            echo "  <div role=\"contentinfo\" aria-label=\"";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["status_headings"]) ? $context["status_headings"] : null), $context["type"], array(), "array"), "html", null, true));
+            echo "\"";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, twig_without($this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "role", "aria-label"), "html", null, true));
+            echo ">
+    ";
+            // line 34
+            if (($context["type"] == "error")) {
+                // line 35
+                echo "      <div role=\"alert\">
+    ";
+            }
+            // line 37
+            echo "      ";
+            if ($this->getAttribute((isset($context["status_headings"]) ? $context["status_headings"] : null), $context["type"], array(), "array")) {
+                // line 38
+                echo "        <h2 class=\"visually-hidden\">";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["status_headings"]) ? $context["status_headings"] : null), $context["type"], array(), "array"), "html", null, true));
+                echo "</h2>
+      ";
+            }
+            // line 40
+            echo "      ";
+            if ((twig_length_filter($this->env, $context["messages"]) > 1)) {
+                // line 41
+                echo "        <ul class=\"messages__list\">
+          ";
+                // line 42
+                $context['_parent'] = $context;
+                $context['_seq'] = twig_ensure_traversable($context["messages"]);
+                foreach ($context['_seq'] as $context["_key"] => $context["message"]) {
+                    // line 43
+                    echo "            <li class=\"messages__item\">";
+                    echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $context["message"], "html", null, true));
+                    echo "</li>
+          ";
+                }
+                $_parent = $context['_parent'];
+                unset($context['_seq'], $context['_iterated'], $context['_key'], $context['message'], $context['_parent'], $context['loop']);
+                $context = array_intersect_key($context, $_parent) + $_parent;
+                // line 45
+                echo "        </ul>
+      ";
+            } else {
+                // line 47
+                echo "        ";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, twig_first($this->env, $context["messages"]), "html", null, true));
+                echo "
+      ";
+            }
+            // line 49
+            echo "    ";
+            if (($context["type"] == "error")) {
+                // line 50
+                echo "      </div>
+    ";
+            }
+            // line 52
+            echo "  </div>
+  ";
+            // line 54
+            echo "  ";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "removeClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+            echo "
+";
+        }
+        $_parent = $context['_parent'];
+        unset($context['_seq'], $context['_iterated'], $context['type'], $context['messages'], $context['_parent'], $context['loop']);
+        $context = array_intersect_key($context, $_parent) + $_parent;
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/misc/status-messages.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  124 => 54,  121 => 52,  117 => 50,  114 => 49,  108 => 47,  104 => 45,  95 => 43,  91 => 42,  88 => 41,  85 => 40,  79 => 38,  76 => 37,  72 => 35,  70 => 34,  63 => 33,  61 => 30,  60 => 28,  58 => 27,  54 => 26,  48 => 25,  44 => 24,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for status messages.*/
+/*  **/
+/*  * Displays status, error, and warning messages, grouped by type.*/
+/*  **/
+/*  * An invisible heading identifies the messages for assistive technology.*/
+/*  * Sighted users see a colored box. See http://www.w3.org/TR/WCAG-TECHS/H69.html*/
+/*  * for info.*/
+/*  **/
+/*  * Add an ARIA label to the contentinfo area so that assistive technology*/
+/*  * user agents will better describe this landmark.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - message_list: List of messages to be displayed, grouped by type.*/
+/*  * - status_headings: List of all status types.*/
+/*  * - display: (optional) May have a value of 'status' or 'error' when only*/
+/*  *   displaying messages of that specific type.*/
+/*  * - attributes: HTML attributes for the element, including:*/
+/*  *   - class: HTML classes.*/
+/*  *//* */
+/* #}*/
+/* {{ attach_library('classy/messages') }}*/
+/* {% block messages %}*/
+/* {% for type, messages in message_list %}*/
+/*   {%*/
+/*     set classes = [*/
+/*       'messages',*/
+/*       'messages--' ~ type,*/
+/*     ]*/
+/*   %}*/
+/*   <div role="contentinfo" aria-label="{{ status_headings[type] }}"{{ attributes.addClass(classes)|without('role', 'aria-label') }}>*/
+/*     {% if type == 'error' %}*/
+/*       <div role="alert">*/
+/*     {% endif %}*/
+/*       {% if status_headings[type] %}*/
+/*         <h2 class="visually-hidden">{{ status_headings[type] }}</h2>*/
+/*       {% endif %}*/
+/*       {% if messages|length > 1 %}*/
+/*         <ul class="messages__list">*/
+/*           {% for message in messages %}*/
+/*             <li class="messages__item">{{ message }}</li>*/
+/*           {% endfor %}*/
+/*         </ul>*/
+/*       {% else %}*/
+/*         {{ messages|first }}*/
+/*       {% endif %}*/
+/*     {% if type == 'error' %}*/
+/*       </div>*/
+/*     {% endif %}*/
+/*   </div>*/
+/*   {# Remove type specific classes. #}*/
+/*   {{ attributes.removeClass(classes) }}*/
+/* {% endfor %}*/
+/* {% endblock messages %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_status-messages.html.twig_8b2d9f775c093000bebca7ad58ed3cc2c8b22163d8e2a2ce0b4a2102729d4930/.htaccess b/sites/default/files/php/twig/9f912b15_status-messages.html.twig_8b2d9f775c093000bebca7ad58ed3cc2c8b22163d8e2a2ce0b4a2102729d4930/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_status-messages.html.twig_8b2d9f775c093000bebca7ad58ed3cc2c8b22163d8e2a2ce0b4a2102729d4930/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_status-messages.html.twig_8b2d9f775c093000bebca7ad58ed3cc2c8b22163d8e2a2ce0b4a2102729d4930/93c4e97d811adefa0404476d3e076bae48d2b4160ef40574295934de1675b20a.php b/sites/default/files/php/twig/9f912b15_status-messages.html.twig_8b2d9f775c093000bebca7ad58ed3cc2c8b22163d8e2a2ce0b4a2102729d4930/93c4e97d811adefa0404476d3e076bae48d2b4160ef40574295934de1675b20a.php
new file mode 100644
index 0000000..7cd503e
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_status-messages.html.twig_8b2d9f775c093000bebca7ad58ed3cc2c8b22163d8e2a2ce0b4a2102729d4930/93c4e97d811adefa0404476d3e076bae48d2b4160ef40574295934de1675b20a.php
@@ -0,0 +1,116 @@
+<?php
+
+/* core/themes/bartik/templates/status-messages.html.twig */
+class __TwigTemplate_d822570b7f4e8b49dcad24dcd03255f3273d380cc8963bd79aa0ede5b544b5e7 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        // line 1
+        $this->parent = $this->loadTemplate("@classy/misc/status-messages.html.twig", "core/themes/bartik/templates/status-messages.html.twig", 1);
+        $this->blocks = array(
+            'messages' => array($this, 'block_messages'),
+        );
+    }
+
+    protected function doGetParent(array $context)
+    {
+        return "@classy/misc/status-messages.html.twig";
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("if" => 24);
+        $filters = array();
+        $functions = array("attach_library" => 25);
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('if'),
+                array(),
+                array('attach_library')
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        $this->parent->display($context, array_merge($this->blocks, $blocks));
+    }
+
+    // line 23
+    public function block_messages($context, array $blocks = array())
+    {
+        // line 24
+        echo "  ";
+        if ( !twig_test_empty((isset($context["message_list"]) ? $context["message_list"] : null))) {
+            // line 25
+            echo "    ";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->env->getExtension('drupal_core')->attachLibrary("bartik/messages"), "html", null, true));
+            echo "
+    <div class=\"messages__wrapper layout-container\">
+      ";
+            // line 27
+            $this->displayParentBlock("messages", $context, $blocks);
+            echo "
+    </div>
+  ";
+        }
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/bartik/templates/status-messages.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  64 => 27,  58 => 25,  55 => 24,  52 => 23,  11 => 1,);
+    }
+}
+/* {% extends "@classy/misc/status-messages.html.twig" %}*/
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Default theme implementation for status messages.*/
+/*  **/
+/*  * Displays status, error, and warning messages, grouped by type.*/
+/*  **/
+/*  * An invisible heading identifies the messages for assistive technology.*/
+/*  * Sighted users see a colored box. See http://www.w3.org/TR/WCAG-TECHS/H69.html*/
+/*  * for info.*/
+/*  **/
+/*  * Add an ARIA label to the contentinfo area so that assistive technology*/
+/*  * user agents will better describe this landmark.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - message_list: List of messages to be displayed, grouped by type.*/
+/*  * - status_headings: List of all status types.*/
+/*  * - display: (optional) May have a value of 'status' or 'error' when only*/
+/*  *   displaying messages of that specific type.*/
+/*  *//* */
+/* #}*/
+/* {% block messages %}*/
+/*   {% if message_list is not empty %}*/
+/*     {{ attach_library('bartik/messages') }}*/
+/*     <div class="messages__wrapper layout-container">*/
+/*       {{ parent() }}*/
+/*     </div>*/
+/*   {% endif %}*/
+/* {% endblock messages %}*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_toolbar.html.twig_713c6489bc16dc29f911529ab19951eecea93a56b9ddd2f43c74c0428b488afd/.htaccess b/sites/default/files/php/twig/9f912b15_toolbar.html.twig_713c6489bc16dc29f911529ab19951eecea93a56b9ddd2f43c74c0428b488afd/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_toolbar.html.twig_713c6489bc16dc29f911529ab19951eecea93a56b9ddd2f43c74c0428b488afd/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_toolbar.html.twig_713c6489bc16dc29f911529ab19951eecea93a56b9ddd2f43c74c0428b488afd/f5a59d0a753f4a3c2e4d402a06d140d31f50ec5ad5d9515b0f531be1abb5d753.php b/sites/default/files/php/twig/9f912b15_toolbar.html.twig_713c6489bc16dc29f911529ab19951eecea93a56b9ddd2f43c74c0428b488afd/f5a59d0a753f4a3c2e4d402a06d140d31f50ec5ad5d9515b0f531be1abb5d753.php
new file mode 100644
index 0000000..38fa80a
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_toolbar.html.twig_713c6489bc16dc29f911529ab19951eecea93a56b9ddd2f43c74c0428b488afd/f5a59d0a753f4a3c2e4d402a06d140d31f50ec5ad5d9515b0f531be1abb5d753.php
@@ -0,0 +1,180 @@
+<?php
+
+/* core/themes/classy/templates/navigation/toolbar.html.twig */
+class __TwigTemplate_081671964129aa1ae6ffad0f27fabbd179dbe5d9480b19885b44626d4211ea8d extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("for" => 26, "set" => 27, "spaceless" => 30, "if" => 32);
+        $filters = array();
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('for', 'set', 'spaceless', 'if'),
+                array(),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 23
+        echo "<div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => "toolbar"), "method"), "html", null, true));
+        echo ">
+  <nav";
+        // line 24
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["toolbar_attributes"]) ? $context["toolbar_attributes"] : null), "addClass", array(0 => "toolbar-bar", 1 => "clearfix"), "method"), "html", null, true));
+        echo ">
+    <h2 class=\"visually-hidden\">";
+        // line 25
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["toolbar_heading"]) ? $context["toolbar_heading"] : null), "html", null, true));
+        echo "</h2>
+    ";
+        // line 26
+        $context['_parent'] = $context;
+        $context['_seq'] = twig_ensure_traversable((isset($context["tabs"]) ? $context["tabs"] : null));
+        foreach ($context['_seq'] as $context["key"] => $context["tab"]) {
+            // line 27
+            echo "      ";
+            $context["tray"] = $this->getAttribute((isset($context["trays"]) ? $context["trays"] : null), $context["key"], array(), "array");
+            // line 28
+            echo "      <div";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($this->getAttribute($context["tab"], "attributes", array()), "addClass", array(0 => "toolbar-tab"), "method"), "html", null, true));
+            echo ">
+        ";
+            // line 29
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute($context["tab"], "link", array()), "html", null, true));
+            echo "
+        ";
+            // line 30
+            ob_start();
+            // line 31
+            echo "          <div";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["tray"]) ? $context["tray"] : null), "attributes", array()), "html", null, true));
+            echo ">
+            ";
+            // line 32
+            if ($this->getAttribute((isset($context["tray"]) ? $context["tray"] : null), "label", array())) {
+                // line 33
+                echo "              <nav class=\"toolbar-lining clearfix\" role=\"navigation\" aria-label=\"";
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["tray"]) ? $context["tray"] : null), "label", array()), "html", null, true));
+                echo "\">
+                <h3 class=\"toolbar-tray-name visually-hidden\">";
+                // line 34
+                echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["tray"]) ? $context["tray"] : null), "label", array()), "html", null, true));
+                echo "</h3>
+            ";
+            } else {
+                // line 36
+                echo "              <nav class=\"toolbar-lining clearfix\" role=\"navigation\">
+            ";
+            }
+            // line 38
+            echo "            ";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["tray"]) ? $context["tray"] : null), "links", array()), "html", null, true));
+            echo "
+            </nav>
+          </div>
+        ";
+            echo trim(preg_replace('/>\s+</', '><', ob_get_clean()));
+            // line 42
+            echo "      </div>
+    ";
+        }
+        $_parent = $context['_parent'];
+        unset($context['_seq'], $context['_iterated'], $context['key'], $context['tab'], $context['_parent'], $context['loop']);
+        $context = array_intersect_key($context, $_parent) + $_parent;
+        // line 44
+        echo "  </nav>
+  ";
+        // line 45
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["remainder"]) ? $context["remainder"] : null), "html", null, true));
+        echo "
+</div>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/navigation/toolbar.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  113 => 45,  110 => 44,  103 => 42,  95 => 38,  91 => 36,  86 => 34,  81 => 33,  79 => 32,  74 => 31,  72 => 30,  68 => 29,  63 => 28,  60 => 27,  56 => 26,  52 => 25,  48 => 24,  43 => 23,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for the administrative toolbar.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - attributes: HTML attributes for the wrapper.*/
+/*  * - toolbar_attributes: HTML attributes to apply to the toolbar.*/
+/*  * - toolbar_heading: The heading or label for the toolbar.*/
+/*  * - tabs: List of tabs for the toolbar.*/
+/*  *   - attributes: HTML attributes for the tab container.*/
+/*  *   - link: Link or button for the menu tab.*/
+/*  * - trays: Toolbar tray list, each associated with a tab. Each tray in trays*/
+/*  *   contains:*/
+/*  *   - attributes: HTML attributes to apply to the tray.*/
+/*  *   - label: The tray's label.*/
+/*  *   - links: The tray menu links.*/
+/*  * - remainder: Any non-tray, non-tab elements left to be rendered.*/
+/*  **/
+/*  * @see template_preprocess_toolbar()*/
+/*  *//* */
+/* #}*/
+/* <div{{ attributes.addClass('toolbar') }}>*/
+/*   <nav{{ toolbar_attributes.addClass('toolbar-bar', 'clearfix') }}>*/
+/*     <h2 class="visually-hidden">{{ toolbar_heading }}</h2>*/
+/*     {% for key, tab in tabs %}*/
+/*       {% set tray = trays[key] %}*/
+/*       <div{{ tab.attributes.addClass('toolbar-tab') }}>*/
+/*         {{ tab.link }}*/
+/*         {% spaceless %}*/
+/*           <div{{ tray.attributes }}>*/
+/*             {% if tray.label %}*/
+/*               <nav class="toolbar-lining clearfix" role="navigation" aria-label="{{ tray.label }}">*/
+/*                 <h3 class="toolbar-tray-name visually-hidden">{{ tray.label }}</h3>*/
+/*             {% else %}*/
+/*               <nav class="toolbar-lining clearfix" role="navigation">*/
+/*             {% endif %}*/
+/*             {{ tray.links }}*/
+/*             </nav>*/
+/*           </div>*/
+/*         {% endspaceless %}*/
+/*       </div>*/
+/*     {% endfor %}*/
+/*   </nav>*/
+/*   {{ remainder }}*/
+/* </div>*/
+/* */
diff --git a/sites/default/files/php/twig/9f912b15_views-view.html.twig_f555066ece55a05f251975bac090028dcdc3d7f5b1a074beb432b848187ae766/.htaccess b/sites/default/files/php/twig/9f912b15_views-view.html.twig_f555066ece55a05f251975bac090028dcdc3d7f5b1a074beb432b848187ae766/.htaccess
new file mode 100644
index 0000000..1238c0d
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_views-view.html.twig_f555066ece55a05f251975bac090028dcdc3d7f5b1a074beb432b848187ae766/.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 -Indexes -ExecCGI -Includes -MultiViews
+
+# 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/9f912b15_views-view.html.twig_f555066ece55a05f251975bac090028dcdc3d7f5b1a074beb432b848187ae766/aaabcdb12f1aa360a51f8f5642ff77048f4bd1a336853711e758d9f52f5c834c.php b/sites/default/files/php/twig/9f912b15_views-view.html.twig_f555066ece55a05f251975bac090028dcdc3d7f5b1a074beb432b848187ae766/aaabcdb12f1aa360a51f8f5642ff77048f4bd1a336853711e758d9f52f5c834c.php
new file mode 100644
index 0000000..378d384
--- /dev/null
+++ b/sites/default/files/php/twig/9f912b15_views-view.html.twig_f555066ece55a05f251975bac090028dcdc3d7f5b1a074beb432b848187ae766/aaabcdb12f1aa360a51f8f5642ff77048f4bd1a336853711e758d9f52f5c834c.php
@@ -0,0 +1,300 @@
+<?php
+
+/* core/themes/classy/templates/views/views-view.html.twig */
+class __TwigTemplate_9a4973a77053c516613d69d42b7b6e6e84621a5e14b33cbc9a31ff7bd6ca79b5 extends Twig_Template
+{
+    public function __construct(Twig_Environment $env)
+    {
+        parent::__construct($env);
+
+        $this->parent = false;
+
+        $this->blocks = array(
+        );
+    }
+
+    protected function doDisplay(array $context, array $blocks = array())
+    {
+        $tags = array("set" => 34, "if" => 44);
+        $filters = array("clean_class" => 36);
+        $functions = array();
+
+        try {
+            $this->env->getExtension('sandbox')->checkSecurity(
+                array('set', 'if'),
+                array('clean_class'),
+                array()
+            );
+        } catch (Twig_Sandbox_SecurityError $e) {
+            $e->setTemplateFile($this->getTemplateName());
+
+            if ($e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
+                $e->setTemplateLine($tags[$e->getTagName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
+                $e->setTemplateLine($filters[$e->getFilterName()]);
+            } elseif ($e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
+                $e->setTemplateLine($functions[$e->getFunctionName()]);
+            }
+
+            throw $e;
+        }
+
+        // line 34
+        $context["classes"] = array(0 => "view", 1 => ("view-" . \Drupal\Component\Utility\Html::getClass(        // line 36
+(isset($context["id"]) ? $context["id"] : null))), 2 => ("view-id-" .         // line 37
+(isset($context["id"]) ? $context["id"] : null)), 3 => ("view-display-id-" .         // line 38
+(isset($context["display_id"]) ? $context["display_id"] : null)), 4 => ((        // line 39
+(isset($context["dom_id"]) ? $context["dom_id"] : null)) ? (("js-view-dom-id-" . (isset($context["dom_id"]) ? $context["dom_id"] : null))) : ("")));
+        // line 42
+        echo "<div";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, $this->getAttribute((isset($context["attributes"]) ? $context["attributes"] : null), "addClass", array(0 => (isset($context["classes"]) ? $context["classes"] : null)), "method"), "html", null, true));
+        echo ">
+  ";
+        // line 43
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_prefix"]) ? $context["title_prefix"] : null), "html", null, true));
+        echo "
+  ";
+        // line 44
+        if ((isset($context["title"]) ? $context["title"] : null)) {
+            // line 45
+            echo "    ";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title"]) ? $context["title"] : null), "html", null, true));
+            echo "
+  ";
+        }
+        // line 47
+        echo "  ";
+        echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["title_suffix"]) ? $context["title_suffix"] : null), "html", null, true));
+        echo "
+  ";
+        // line 48
+        if ((isset($context["header"]) ? $context["header"] : null)) {
+            // line 49
+            echo "    <div class=\"view-header\">
+      ";
+            // line 50
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["header"]) ? $context["header"] : null), "html", null, true));
+            echo "
+    </div>
+  ";
+        }
+        // line 53
+        echo "  ";
+        if ((isset($context["exposed"]) ? $context["exposed"] : null)) {
+            // line 54
+            echo "    <div class=\"view-filters\">
+      ";
+            // line 55
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["exposed"]) ? $context["exposed"] : null), "html", null, true));
+            echo "
+    </div>
+  ";
+        }
+        // line 58
+        echo "  ";
+        if ((isset($context["attachment_before"]) ? $context["attachment_before"] : null)) {
+            // line 59
+            echo "    <div class=\"attachment attachment-before\">
+      ";
+            // line 60
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["attachment_before"]) ? $context["attachment_before"] : null), "html", null, true));
+            echo "
+    </div>
+  ";
+        }
+        // line 63
+        echo "
+  ";
+        // line 64
+        if ((isset($context["rows"]) ? $context["rows"] : null)) {
+            // line 65
+            echo "    <div class=\"view-content\">
+      ";
+            // line 66
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["rows"]) ? $context["rows"] : null), "html", null, true));
+            echo "
+    </div>
+  ";
+        } elseif (        // line 68
+(isset($context["empty"]) ? $context["empty"] : null)) {
+            // line 69
+            echo "    <div class=\"view-empty\">
+      ";
+            // line 70
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["empty"]) ? $context["empty"] : null), "html", null, true));
+            echo "
+    </div>
+  ";
+        }
+        // line 73
+        echo "
+  ";
+        // line 74
+        if ((isset($context["pager"]) ? $context["pager"] : null)) {
+            // line 75
+            echo "    ";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["pager"]) ? $context["pager"] : null), "html", null, true));
+            echo "
+  ";
+        }
+        // line 77
+        echo "  ";
+        if ((isset($context["attachment_after"]) ? $context["attachment_after"] : null)) {
+            // line 78
+            echo "    <div class=\"attachment attachment-after\">
+      ";
+            // line 79
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["attachment_after"]) ? $context["attachment_after"] : null), "html", null, true));
+            echo "
+    </div>
+  ";
+        }
+        // line 82
+        echo "  ";
+        if ((isset($context["more"]) ? $context["more"] : null)) {
+            // line 83
+            echo "    ";
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["more"]) ? $context["more"] : null), "html", null, true));
+            echo "
+  ";
+        }
+        // line 85
+        echo "  ";
+        if ((isset($context["footer"]) ? $context["footer"] : null)) {
+            // line 86
+            echo "    <div class=\"view-footer\">
+      ";
+            // line 87
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["footer"]) ? $context["footer"] : null), "html", null, true));
+            echo "
+    </div>
+  ";
+        }
+        // line 90
+        echo "  ";
+        if ((isset($context["feed_icons"]) ? $context["feed_icons"] : null)) {
+            // line 91
+            echo "    <div class=\"feed-icons\">
+      ";
+            // line 92
+            echo $this->env->getExtension('sandbox')->ensureToStringAllowed($this->env->getExtension('drupal_core')->escapeFilter($this->env, (isset($context["feed_icons"]) ? $context["feed_icons"] : null), "html", null, true));
+            echo "
+    </div>
+  ";
+        }
+        // line 95
+        echo "</div>
+";
+    }
+
+    public function getTemplateName()
+    {
+        return "core/themes/classy/templates/views/views-view.html.twig";
+    }
+
+    public function isTraitable()
+    {
+        return false;
+    }
+
+    public function getDebugInfo()
+    {
+        return array (  186 => 95,  180 => 92,  177 => 91,  174 => 90,  168 => 87,  165 => 86,  162 => 85,  156 => 83,  153 => 82,  147 => 79,  144 => 78,  141 => 77,  135 => 75,  133 => 74,  130 => 73,  124 => 70,  121 => 69,  119 => 68,  114 => 66,  111 => 65,  109 => 64,  106 => 63,  100 => 60,  97 => 59,  94 => 58,  88 => 55,  85 => 54,  82 => 53,  76 => 50,  73 => 49,  71 => 48,  66 => 47,  60 => 45,  58 => 44,  54 => 43,  49 => 42,  47 => 39,  46 => 38,  45 => 37,  44 => 36,  43 => 34,);
+    }
+}
+/* {#*/
+/* /***/
+/*  * @file*/
+/*  * Theme override for a main view template.*/
+/*  **/
+/*  * Available variables:*/
+/*  * - attributes: Remaining HTML attributes for the element.*/
+/*  * - css_name: A css-safe version of the view name.*/
+/*  * - css_class: The user-specified classes names, if any.*/
+/*  * - header: The optional header.*/
+/*  * - footer: The optional footer.*/
+/*  * - rows: The results of the view query, if any.*/
+/*  * - empty: The content to display if there are no rows.*/
+/*  * - pager: The optional pager next/prev links to display.*/
+/*  * - exposed: Exposed widget form/info to display.*/
+/*  * - feed_icons: Optional feed icons to display.*/
+/*  * - more: An optional link to the next page of results.*/
+/*  * - title: Title of the view, only used when displaying in the admin preview.*/
+/*  * - title_prefix: Additional output populated by modules, intended to be*/
+/*  *   displayed in front of the view title.*/
+/*  * - title_suffix: Additional output populated by modules, intended to be*/
+/*  *   displayed after the view title.*/
+/*  * - attachment_before: An optional attachment view to be displayed before the*/
+/*  *   view content.*/
+/*  * - attachment_after: An optional attachment view to be displayed after the*/
+/*  *   view content.*/
+/*  * - dom_id: Unique id for every view being printed to give unique class for*/
+/*  *   Javascript.*/
+/*  **/
+/*  * @see template_preprocess_views_view()*/
+/*  *//* */
+/* #}*/
+/* {%*/
+/*   set classes = [*/
+/*     'view',*/
+/*     'view-' ~ id|clean_class,*/
+/*     'view-id-' ~ id,*/
+/*     'view-display-id-' ~ display_id,*/
+/*     dom_id ? 'js-view-dom-id-' ~ dom_id,*/
+/*   ]*/
+/* %}*/
+/* <div{{ attributes.addClass(classes) }}>*/
+/*   {{ title_prefix }}*/
+/*   {% if title %}*/
+/*     {{ title }}*/
+/*   {% endif %}*/
+/*   {{ title_suffix }}*/
+/*   {% if header %}*/
+/*     <div class="view-header">*/
+/*       {{ header }}*/
+/*     </div>*/
+/*   {% endif %}*/
+/*   {% if exposed %}*/
+/*     <div class="view-filters">*/
+/*       {{ exposed }}*/
+/*     </div>*/
+/*   {% endif %}*/
+/*   {% if attachment_before %}*/
+/*     <div class="attachment attachment-before">*/
+/*       {{ attachment_before }}*/
+/*     </div>*/
+/*   {% endif %}*/
+/* */
+/*   {% if rows %}*/
+/*     <div class="view-content">*/
+/*       {{ rows }}*/
+/*     </div>*/
+/*   {% elseif empty %}*/
+/*     <div class="view-empty">*/
+/*       {{ empty }}*/
+/*     </div>*/
+/*   {% endif %}*/
+/* */
+/*   {% if pager %}*/
+/*     {{ pager }}*/
+/*   {% endif %}*/
+/*   {% if attachment_after %}*/
+/*     <div class="attachment attachment-after">*/
+/*       {{ attachment_after }}*/
+/*     </div>*/
+/*   {% endif %}*/
+/*   {% if more %}*/
+/*     {{ more }}*/
+/*   {% endif %}*/
+/*   {% if footer %}*/
+/*     <div class="view-footer">*/
+/*       {{ footer }}*/
+/*     </div>*/
+/*   {% endif %}*/
+/*   {% if feed_icons %}*/
+/*     <div class="feed-icons">*/
+/*       {{ feed_icons }}*/
+/*     </div>*/
+/*   {% endif %}*/
+/* </div>*/
+/* */
diff --git a/sites/default/settings.php b/sites/default/settings.php
new file mode 100644
index 0000000..9e9de8f
--- /dev/null
+++ b/sites/default/settings.php
@@ -0,0 +1,731 @@
+<?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
+ * https://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,
+ * https://www.drupal.org:8080/mysite/test/ could be loaded from
+ * sites/8080.www.drupal.org.mysite.test/.
+ *
+ * @see example.sites.php
+ * @see \Drupal\Core\DrupalKernel::getSitePath()
+ *
+ * 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.
+ *
+ * One example of the simplest connection array is shown below. To use the
+ * sample settings, copy and uncomment the code below between the @code and
+ * @endcode lines and paste it after the $databases declaration. You will need
+ * to replace the database username and password and possibly the host and port
+ * with the appropriate credentials for your database system.
+ *
+ * The next section describes how to customize the $databases array for more
+ * specific needs.
+ *
+ * @code
+ * $databases['default']['default'] = array (
+ *   'database' => 'databasename',
+ *   'username' => 'sqlusername',
+ *   'password' => 'sqlpassword',
+ *   'host' => 'localhost',
+ *   'port' => '3306',
+ *   'driver' => 'mysql',
+ *   'prefix' => '',
+ *   'collation' => 'utf8mb4_general_ci',
+ * );
+ * @endcode
+ */
+ $databases = array();
+
+/**
+ * Customizing database settings.
+ *
+ * Many of the values of the $databases array can be customized for your
+ * particular database system. Refer to the sample in the section above as a
+ * starting point.
+ *
+ * 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".
+ *
+ * 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: The above defaults are designed for database portability. Changing
+ * them may cause unexpected behavior, including potential data loss. See
+ * https://www.drupal.org/developing/api/database/configuration for more
+ * information on these defaults and the potential issues.
+ *
+ * More details can be found in the constructor methods for each driver:
+ * - \Drupal\Core\Database\Driver\mysql\Connection::__construct()
+ * - \Drupal\Core\Database\Driver\pgsql\Connection::__construct()
+ * - \Drupal\Core\Database\Driver\sqlite\Connection::__construct()
+ *
+ * Sample Database configuration format for PostgreSQL (pgsql):
+ * @code
+ *   $databases['default']['default'] = array(
+ *     'driver' => 'pgsql',
+ *     'database' => 'databasename',
+ *     'username' => 'sqlusername',
+ *     'password' => 'sqlpassword',
+ *     'host' => 'localhost',
+ *     'prefix' => '',
+ *   );
+ * @endcode
+ *
+ * Sample Database configuration format for SQLite (sqlite):
+ * @code
+ *   $databases['default']['default'] = array(
+ *     'driver' => 'sqlite',
+ *     'database' => '/path/to/databasefilename',
+ *   );
+ * @endcode
+ */
+
+/**
+ * Location of the site configuration files.
+ *
+ * The $config_directories array specifies the location of file system
+ * directories used for configuration data. On install, the "sync" directory is
+ * created. This is used for configuration imports. The "active" directory is
+ * not created 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 "sync" directory is inside a randomly-named
+ * directory in the public files path. The setting below allows you to override
+ * the "sync" location.
+ *
+ * If you use files for the "active" configuration, you can tell the
+ * Configuration system where this directory is located by adding an entry with
+ * array key CONFIG_ACTIVE_DIRECTORY.
+ *
+ * Example:
+ * @code
+ *   $config_directories = array(
+ *     CONFIG_SYNC_DIRECTORY => '/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'] = 'VarnEhe0Ntii6hi5qD5MRlvd9uX1qQI6_gQBWDSX8pqAoDelDwiCWJiiG2-tSjFpUrXT1qZKOw';
+
+/**
+ * Deployment identifier.
+ *
+ * Drupal's dependency injection container will be automatically invalidated and
+ * rebuilt when the Drupal core version changes. When updating contributed or
+ * custom code that changes the container, changing this identifier will also
+ * allow the container to be invalidated as soon as code is deployed.
+ */
+# $settings['deployment_identifier'] = \Drupal::VERSION;
+
+/**
+ * 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. Set the full URL of the proxy, including the port, in
+ * variables:
+ * - $settings['http_client_config']['proxy']['http']: The proxy URL for HTTP
+ *   requests.
+ * - $settings['http_client_config']['proxy']['https']: The proxy URL for HTTPS
+ *   requests.
+ * You can pass in the user name and password for basic authentication in the
+ * URLs in these settings.
+ *
+ * You can also define an array of host names that can be accessed directly,
+ * bypassing the proxy, in $settings['http_client_config']['proxy']['no'].
+ *
+ * If these settings are not configured, the system environment variables
+ * HTTP_PROXY, HTTPS_PROXY, and NO_PROXY on the web server will be used instead.
+ */
+# $settings['http_client_config']['proxy']['http'] = 'http://proxy_user:proxy_pass@example.com:8080';
+# $settings['http_client_config']['proxy']['https'] = 'http://proxy_user:proxy_pass@example.com:8080';
+# $settings['http_client_config']['proxy']['no'] = ['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'] = 'X_CLUSTER_CLIENT_IP';
+
+/**
+ * Set this value if your proxy server sends the client protocol in a header
+ * other than X-Forwarded-Proto.
+ */
+# $settings['reverse_proxy_proto_header'] = 'X_FORWARDED_PROTO';
+
+/**
+ * Set this value if your proxy server sends the client protocol in a header
+ * other than X-Forwarded-Host.
+ */
+# $settings['reverse_proxy_host_header'] = 'X_FORWARDED_HOST';
+
+/**
+ * Set this value if your proxy server sends the client protocol in a header
+ * other than X-Forwarded-Port.
+ */
+# $settings['reverse_proxy_port_header'] = 'X_FORWARDED_PORT';
+
+/**
+ * Set this value if your proxy server sends the client protocol in a header
+ * other than Forwarded.
+ */
+# $settings['reverse_proxy_forwarded_header'] = 'FORWARDED';
+
+/**
+ * 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 https://www.drupal.org/node/244924
+ *
+ * Remove the leading hash signs to disable.
+ */
+# $settings['allow_authorize_operations'] = FALSE;
+
+/**
+ * Default mode 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 base URL:
+ *
+ * An alternative base URL to be used for serving public files. This must
+ * include any leading directory path.
+ *
+ * A different value from the domain used by Drupal to be used for accessing
+ * public files. This can be used for a simple CDN integration, or to improve
+ * security by serving user-uploaded files from a different domain or subdomain
+ * pointing to the same server. Do not include a trailing slash.
+ */
+# $settings['file_public_base_url'] = 'http://downloads.example.com/files';
+
+/**
+ * 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 https://www.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';
+
+/**
+ * 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:
+ * - Create an "active" directory and declare its path in $config_directories
+ *   as explained under the 'Location of the site configuration files' section
+ *   above in this file. To enhance security, you can declare a path that is
+ *   outside your document root.
+ * - 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:
+ * - $config['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. The default pattern provided below
+ *   also excludes the private file system. If you need to add more paths, you
+ *   can add '|path' to the expression.
+ * - $config['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.
+ * - $config['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)|(?:system\/files)\//';
+# $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';
+
+/**
+ * Override the default service container class.
+ *
+ * This is useful for example to trace the service container for performance
+ * tracking purposes, for testing a service container with an error condition or
+ * to test a service container that throws an exception.
+ */
+# $settings['container_base_class'] = '\Drupal\Core\DependencyInjection\Container';
+
+/**
+ * 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' => 'drupal_git',
+  'username' => 'root',
+  'password' => '',
+  'prefix' => '',
+  'host' => 'localhost',
+  'port' => '3306',
+  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
+  'driver' => 'mysql',
+);
+$settings['install_profile'] = 'standard';
+$config_directories['sync'] = 'sites/default/files/config_qy5VcBQ9Bn26k-ubsdH5N4_pZq0alj1WtSqxy5u5hy40313CZj5p0MIU6GTm5V1P8Uv4XYFrjQ/sync';
