diff --git a/composer.json b/composer.json
index 9ad222e..48a5632 100644
--- a/composer.json
+++ b/composer.json
@@ -8,7 +8,7 @@
         "wikimedia/composer-merge-plugin": "~1.3"
     },
     "replace": {
-        "drupal/core": "~8.3"
+        "drupal/core": "~8.4"
     },
     "minimum-stability": "dev",
     "prefer-stable": true,
diff --git a/composer.lock b/composer.lock
index 80861c2..a8e3057 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "989ca417bbf16de1ab7dc1cf06c3c221",
+    "content-hash": "ccaaa31c7fb3423dca36316975b292cb",
     "packages": [
         {
             "name": "asm89/stack-cors",
diff --git a/core/lib/Drupal.php b/core/lib/Drupal.php
index cf399eb..de22297 100644
--- a/core/lib/Drupal.php
+++ b/core/lib/Drupal.php
@@ -81,7 +81,7 @@ class Drupal {
   /**
    * The current system version.
    */
-  const VERSION = '8.3.0-dev';
+  const VERSION = '8.4.0-dev';
 
   /**
    * Core API compatibility.
diff --git a/core/lib/Drupal/Core/Action/ConfigurableActionBase.php b/core/lib/Drupal/Core/Action/ConfigurableActionBase.php
index 6c19540..2bbc912 100644
--- a/core/lib/Drupal/Core/Action/ConfigurableActionBase.php
+++ b/core/lib/Drupal/Core/Action/ConfigurableActionBase.php
@@ -17,7 +17,7 @@
   public function __construct(array $configuration, $plugin_id, $plugin_definition) {
     parent::__construct($configuration, $plugin_id, $plugin_definition);
 
-    $this->configuration += $this->defaultConfiguration();
+    $this->setConfiguration($configuration);
   }
 
   /**
@@ -38,7 +38,7 @@ public function getConfiguration() {
    * {@inheritdoc}
    */
   public function setConfiguration(array $configuration) {
-    $this->configuration = $configuration;
+    $this->configuration = $configuration + $this->defaultConfiguration();
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Entity/ContentEntityBase.php b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
index 6279199..70ea520 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityBase.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
@@ -1270,20 +1270,15 @@ public static function bundleFieldDefinitions(EntityTypeInterface $entity_type,
    *   An array of field names.
    */
   protected function getFieldsToSkipFromTranslationChangesCheck() {
+    /** @var \Drupal\Core\Entity\ContentEntityTypeInterface $entity_type */
+    $entity_type = $this->getEntityType();
     // A list of known revision metadata fields which should be skipped from
     // the comparision.
-    // @todo Replace the hard coded list of revision metadata fields with the
-    // solution from https://www.drupal.org/node/2615016.
     $fields = [
-      $this->getEntityType()->getKey('revision'),
+      $entity_type->getKey('revision'),
       'revision_translation_affected',
-      'revision_uid',
-      'revision_user',
-      'revision_timestamp',
-      'revision_created',
-      'revision_log',
-      'revision_log_message',
     ];
+    $fields = array_merge($fields, array_values($entity_type->getRevisionMetadataKeys()));
 
     return $fields;
   }
diff --git a/core/lib/Drupal/Core/Entity/ContentEntityType.php b/core/lib/Drupal/Core/Entity/ContentEntityType.php
index 6d8d619..6103a56 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityType.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityType.php
@@ -8,6 +8,13 @@
 class ContentEntityType extends EntityType implements ContentEntityTypeInterface {
 
   /**
+   * An array of entity revision metadata keys.
+   *
+   * @var array
+   */
+  protected $revision_metadata_keys = [];
+
+  /**
    * {@inheritdoc}
    */
   public function __construct($definition) {
@@ -41,4 +48,44 @@ protected function checkStorageClass($class) {
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getRevisionMetadataKeys($include_backwards_compatibility_field_names = TRUE) {
+    // Provide backwards compatibility in case the revision metadata keys are
+    // not defined in the entity annotation.
+    if (!$this->revision_metadata_keys && $include_backwards_compatibility_field_names) {
+      $base_fields = \Drupal::service('entity_field.manager')->getBaseFieldDefinitions($this->id());
+      if ((isset($base_fields['revision_uid']) && $revision_user = 'revision_uid') || (isset($base_fields['revision_user']) && $revision_user = 'revision_user')) {
+        @trigger_error('The revision_user revision metadata key is not set.', E_USER_DEPRECATED);
+        $this->revision_metadata_keys['revision_user'] = $revision_user;
+      }
+      if ((isset($base_fields['revision_timestamp']) && $revision_timestamp = 'revision_timestamp') || (isset($base_fields['revision_created'])) && $revision_timestamp = 'revision_created') {
+        @trigger_error('The revision_created revision metadata key is not set.', E_USER_DEPRECATED);
+        $this->revision_metadata_keys['revision_created'] = $revision_timestamp;
+      }
+      if ((isset($base_fields['revision_log']) && $revision_log = 'revision_log') || (isset($base_fields['revision_log_message']) && $revision_log = 'revision_log_message')) {
+        @trigger_error('The revision_log_message revision metadata key is not set.', E_USER_DEPRECATED);
+        $this->revision_metadata_keys['revision_log_message'] = $revision_log;
+      }
+    }
+    return $this->revision_metadata_keys;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRevisionMetadataKey($key) {
+    $keys = $this->getRevisionMetadataKeys();
+    return isset($keys[$key]) ? $keys[$key] : FALSE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function hasRevisionMetadataKey($key) {
+    $keys = $this->getRevisionMetadataKeys();
+    return isset($keys[$key]);
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Entity/ContentEntityTypeInterface.php b/core/lib/Drupal/Core/Entity/ContentEntityTypeInterface.php
index f9ef160..4c9e890 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityTypeInterface.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityTypeInterface.php
@@ -6,4 +6,50 @@
  * Provides an interface for a content entity type and its metadata.
  */
 interface ContentEntityTypeInterface extends EntityTypeInterface {
+
+  /**
+   * Gets an array of entity revision metadata keys.
+   *
+   * @param bool $include_backwards_compatibility_field_names
+   *   (optional and deprecated) Whether to provide the revision keys on a
+   *   best-effort basis by looking at the base fields defined by the entity
+   *   type. Note that this parameter will be removed in Drupal 9.0.0. Defaults
+   *   to TRUE.
+   *
+   * @return array
+   *   An array describing how the Field API can extract revision metadata
+   *   information of this entity type:
+   *   - revision_log_message: The name of the property that contains description
+   *     of the changes that were made in the current revision.
+   *   - revision_user: The name of the property that contains the user ID of
+   *     the author of the current revision.
+   *   - revision_created: The name of the property that contains the timestamp
+   *     of the current revision.
+   */
+  public function getRevisionMetadataKeys($include_backwards_compatibility_field_names = TRUE);
+
+  /**
+   * Gets a specific entity revision metadata key.
+   *
+   * @param string $key
+   *   The name of the entity revision metadata key to return.
+   *
+   * @return string|bool
+   *   The entity revision metadata key, or FALSE if it does not exist.
+   *
+   * @see self::getRevisionMetadataKeys()
+   */
+  public function getRevisionMetadataKey($key);
+
+  /**
+   * Indicates if a given entity revision metadata key exists.
+   *
+   * @param string $key
+   *   The name of the entity revision metadata key to check.
+   *
+   * @return bool
+   *   TRUE if a given entity revision metadata key exists, FALSE otherwise.
+   */
+  public function hasRevisionMetadataKey($key);
+
 }
diff --git a/core/lib/Drupal/Core/Entity/EditorialContentEntityBase.php b/core/lib/Drupal/Core/Entity/EditorialContentEntityBase.php
new file mode 100644
index 0000000..ff6abcd
--- /dev/null
+++ b/core/lib/Drupal/Core/Entity/EditorialContentEntityBase.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace Drupal\Core\Entity;
+
+/**
+ * Provides a base entity class with extended revision and publishing support.
+ *
+ * @ingroup entity_api
+ */
+abstract class EditorialContentEntityBase extends ContentEntityBase implements EntityChangedInterface, EntityPublishedInterface, RevisionLogInterface {
+
+  use EntityChangedTrait;
+  use EntityPublishedTrait;
+  use RevisionLogEntityTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
+    $fields = parent::baseFieldDefinitions($entity_type);
+
+    // Add the revision metadata fields.
+    $fields += static::revisionLogBaseFieldDefinitions($entity_type);
+
+    // Add the published field.
+    $fields += static::publishedBaseFieldDefinitions($entity_type);
+
+    return $fields;
+  }
+
+}
diff --git a/core/lib/Drupal/Core/Entity/RevisionLogEntityTrait.php b/core/lib/Drupal/Core/Entity/RevisionLogEntityTrait.php
index 7392858..f935a8b 100644
--- a/core/lib/Drupal/Core/Entity/RevisionLogEntityTrait.php
+++ b/core/lib/Drupal/Core/Entity/RevisionLogEntityTrait.php
@@ -25,18 +25,18 @@
    * @see \Drupal\Core\Entity\FieldableEntityInterface::baseFieldDefinitions()
    */
   public static function revisionLogBaseFieldDefinitions(EntityTypeInterface $entity_type) {
-    $fields['revision_created'] = BaseFieldDefinition::create('created')
+    $fields[static::getRevisionMetadataKey($entity_type, 'revision_created')] = BaseFieldDefinition::create('created')
       ->setLabel(t('Revision create time'))
       ->setDescription(t('The time that the current revision was created.'))
       ->setRevisionable(TRUE);
 
-    $fields['revision_user'] = BaseFieldDefinition::create('entity_reference')
+    $fields[static::getRevisionMetadataKey($entity_type, 'revision_user')] = BaseFieldDefinition::create('entity_reference')
       ->setLabel(t('Revision user'))
       ->setDescription(t('The user ID of the author of the current revision.'))
       ->setSetting('target_type', 'user')
       ->setRevisionable(TRUE);
 
-    $fields['revision_log_message'] = BaseFieldDefinition::create('string_long')
+    $fields[static::getRevisionMetadataKey($entity_type, 'revision_log_message')] = BaseFieldDefinition::create('string_long')
       ->setLabel(t('Revision log message'))
       ->setDescription(t('Briefly describe the changes you have made.'))
       ->setRevisionable(TRUE)
@@ -56,14 +56,14 @@ public static function revisionLogBaseFieldDefinitions(EntityTypeInterface $enti
    * Implements \Drupal\Core\Entity\RevisionLogInterface::getRevisionCreationTime().
    */
   public function getRevisionCreationTime() {
-    return $this->revision_created->value;
+    return $this->{static::getRevisionMetadataKey($this->getEntityType(), 'revision_created')}->value;
   }
 
   /**
    * Implements \Drupal\Core\Entity\RevisionLogInterface::setRevisionCreationTime().
    */
   public function setRevisionCreationTime($timestamp) {
-    $this->revision_created->value = $timestamp;
+    $this->{static::getRevisionMetadataKey($this->getEntityType(), 'revision_created')}->value = $timestamp;
     return $this;
   }
 
@@ -71,14 +71,14 @@ public function setRevisionCreationTime($timestamp) {
    * Implements \Drupal\Core\Entity\RevisionLogInterface::getRevisionUser().
    */
   public function getRevisionUser() {
-    return $this->revision_user->entity;
+    return $this->{static::getRevisionMetadataKey($this->getEntityType(), 'revision_user')}->entity;
   }
 
   /**
    * Implements \Drupal\Core\Entity\RevisionLogInterface::setRevisionUser().
    */
   public function setRevisionUser(UserInterface $account) {
-    $this->revision_user->entity = $account;
+    $this->{static::getRevisionMetadataKey($this->getEntityType(), 'revision_user')}->entity = $account;
     return $this;
   }
 
@@ -86,14 +86,14 @@ public function setRevisionUser(UserInterface $account) {
    * Implements \Drupal\Core\Entity\RevisionLogInterface::getRevisionUserId().
    */
   public function getRevisionUserId() {
-    return $this->revision_user->target_id;
+    return $this->{static::getRevisionMetadataKey($this->getEntityType(), 'revision_user')}->target_id;
   }
 
   /**
    * Implements \Drupal\Core\Entity\RevisionLogInterface::setRevisionUserId().
    */
   public function setRevisionUserId($user_id) {
-    $this->revision_user->target_id = $user_id;
+    $this->{static::getRevisionMetadataKey($this->getEntityType(), 'revision_user')}->target_id = $user_id;
     return $this;
   }
 
@@ -101,15 +101,41 @@ public function setRevisionUserId($user_id) {
    * Implements \Drupal\Core\Entity\RevisionLogInterface::getRevisionLogMessage().
    */
   public function getRevisionLogMessage() {
-    return $this->revision_log_message->value;
+    return $this->{static::getRevisionMetadataKey($this->getEntityType(), 'revision_log_message')}->value;
   }
 
   /**
    * Implements \Drupal\Core\Entity\RevisionLogInterface::setRevisionLogMessage().
    */
   public function setRevisionLogMessage($revision_log_message) {
-    $this->revision_log_message->value = $revision_log_message;
+    $this->{static::getRevisionMetadataKey($this->getEntityType(), 'revision_log_message')}->value = $revision_log_message;
     return $this;
   }
 
+  /**
+   * Gets the name of a revision metadata field.
+   *
+   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
+   *   A content entity type definition.
+   * @param string $key
+   *   The revision metadata key to get, must be one of 'revision_created',
+   *   'revision_user' or 'revision_log_message'.
+   *
+   * @return string
+   *   The name of the field for the specified $key.
+   */
+  protected static function getRevisionMetadataKey(EntityTypeInterface $entity_type, $key) {
+    // We need to prevent ContentEntityType::getRevisionMetadataKey() from
+    // providing fallback as that requires fetching the entity type's field
+    // definition leading to an infinite recursion.
+    /** @var \Drupal\Core\Entity\ContentEntityTypeInterface $entity_type */
+    $revision_metadata_keys = $entity_type->getRevisionMetadataKeys(FALSE) + [
+      'revision_created' => 'revision_created',
+      'revision_user' => 'revision_user',
+      'revision_log_message' => 'revision_log_message',
+    ];
+
+    return $revision_metadata_keys[$key];
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
index 8031830..5c03b65 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
@@ -294,17 +294,11 @@ public function getTableMapping(array $storage_definitions = NULL) {
       // Make sure the key fields come first in the list of fields.
       $all_fields = array_merge($key_fields, array_diff($all_fields, $key_fields));
 
-      // Nodes have all three of these fields, while custom blocks only have
-      // log.
-      // @todo Provide automatic definitions for revision metadata fields in
-      //   https://www.drupal.org/node/2248983.
-      $revision_metadata_fields = array_intersect(array(
-        'revision_timestamp',
-        'revision_uid',
-        'revision_log',
-      ), $all_fields);
-
+      // If the entity is revisionable, gather the fields that need to be put
+      // in the revision table.
       $revisionable = $this->entityType->isRevisionable();
+      $revision_metadata_fields = $revisionable ? array_values($this->entityType->getRevisionMetadataKeys()) : [];
+
       $translatable = $this->entityType->isTranslatable();
       if (!$revisionable && !$translatable) {
         // The base layout stores all the base field values in the base table.
diff --git a/core/lib/Drupal/Core/EventSubscriber/DefaultExceptionSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/DefaultExceptionSubscriber.php
index 4737e80..7b5ecc1 100644
--- a/core/lib/Drupal/Core/EventSubscriber/DefaultExceptionSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/DefaultExceptionSubscriber.php
@@ -7,7 +7,6 @@
 use Drupal\Core\StringTranslation\StringTranslationTrait;
 use Drupal\Core\Utility\Error;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\HttpFoundation\JsonResponse;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
@@ -119,7 +118,7 @@ protected function onHtml(GetResponseForExceptionEvent $event) {
 
     $content = $this->t('The website encountered an unexpected error. Please try again later.');
     $content .= $message ? '</br></br>' . $message : '';
-    $response = new Response($content, 500);
+    $response = new Response($content, 500, ['Content-Type' => 'text/plain']);
 
     if ($exception instanceof HttpExceptionInterface) {
       $response->setStatusCode($exception->getStatusCode());
@@ -133,34 +132,6 @@ protected function onHtml(GetResponseForExceptionEvent $event) {
   }
 
   /**
-   * Handles any exception as a generic error page for JSON.
-   *
-   * @todo This should probably check the error reporting level.
-   *
-   * @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event
-   *   The event to process.
-   */
-  protected function onJson(GetResponseForExceptionEvent $event) {
-    $exception = $event->getException();
-    $error = Error::decodeException($exception);
-
-    // Display the message if the current error reporting level allows this type
-    // of message to be displayed,
-    $data = NULL;
-    if (error_displayable($error) && $message = $exception->getMessage()) {
-      $data = ['message' => sprintf('A fatal error occurred: %s', $message)];
-    }
-
-    $response = new JsonResponse($data, Response::HTTP_INTERNAL_SERVER_ERROR);
-    if ($exception instanceof HttpExceptionInterface) {
-      $response->setStatusCode($exception->getStatusCode());
-      $response->headers->add($exception->getHeaders());
-    }
-
-    $event->setResponse($response);
-  }
-
-  /**
    * Handles an HttpExceptionInterface exception for unknown formats.
    *
    * @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event
@@ -218,16 +189,6 @@ protected function getFormat(Request $request) {
       $format = 'json';
     }
 
-    // Make an educated guess that any Accept header type that includes "json"
-    // can probably handle a generic JSON response for errors. As above, for
-    // any format this doesn't catch or that wants custom handling should
-    // register its own exception listener.
-    foreach ($request->getAcceptableContentTypes() as $mime) {
-      if (strpos($mime, 'html') === FALSE && strpos($mime, 'json') !== FALSE) {
-        $format = 'json';
-      }
-    }
-
     return $format;
   }
 
diff --git a/core/lib/Drupal/Core/EventSubscriber/ExceptionJsonSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/ExceptionJsonSubscriber.php
index 76cc55e..6ccb743 100644
--- a/core/lib/Drupal/Core/EventSubscriber/ExceptionJsonSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/ExceptionJsonSubscriber.php
@@ -14,7 +14,7 @@ class ExceptionJsonSubscriber extends HttpExceptionSubscriberBase {
    * {@inheritdoc}
    */
   protected function getHandledFormats() {
-    return ['json'];
+    return ['json', 'drupal_modal', 'drupal_dialog', 'drupal_ajax'];
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Field/BaseFieldDefinition.php b/core/lib/Drupal/Core/Field/BaseFieldDefinition.php
index 2ff6716..e703b38 100644
--- a/core/lib/Drupal/Core/Field/BaseFieldDefinition.php
+++ b/core/lib/Drupal/Core/Field/BaseFieldDefinition.php
@@ -89,7 +89,6 @@ public static function createFromFieldStorageDefinition(FieldStorageDefinitionIn
       ->setLabel($definition->getLabel())
       ->setName($definition->getName())
       ->setProvider($definition->getProvider())
-      ->setQueryable($definition->isQueryable())
       ->setRevisionable($definition->isRevisionable())
       ->setSettings($definition->getSettings())
       ->setTargetEntityTypeId($definition->getTargetEntityTypeId())
@@ -287,7 +286,8 @@ public function isMultiple() {
    * {@inheritdoc}
    */
   public function isQueryable() {
-    return isset($this->definition['queryable']) ? $this->definition['queryable'] : !$this->isComputed();
+    @trigger_error('BaseFieldDefinition::isQueryable() is deprecated in Drupal 8.4.0 and will be removed before Drupal 9.0.0. Instead, you should use \Drupal\Core\Field\BaseFieldDefinition::hasCustomStorage(). See https://www.drupal.org/node/2856563.', E_USER_DEPRECATED);
+    return !$this->hasCustomStorage();
   }
 
   /**
@@ -298,8 +298,14 @@ public function isQueryable() {
    *
    * @return static
    *   The object itself for chaining.
+   *
+   * @deprecated in Drupal 8.4.0 and will be removed before Drupal 9.0.0. Use
+   *   \Drupal\Core\Field\BaseFieldDefinition::setCustomStorage() instead.
+   *
+   * @see https://www.drupal.org/node/2856563
    */
   public function setQueryable($queryable) {
+    @trigger_error('BaseFieldDefinition::setQueryable() is deprecated in Drupal 8.4.0 and will be removed before Drupal 9.0.0. Instead, you should use \Drupal\Core\Field\BaseFieldDefinition::setCustomStorage(). See https://www.drupal.org/node/2856563.', E_USER_DEPRECATED);
     $this->definition['queryable'] = $queryable;
     return $this;
   }
diff --git a/core/lib/Drupal/Core/Field/FieldStorageDefinitionInterface.php b/core/lib/Drupal/Core/Field/FieldStorageDefinitionInterface.php
index 1b842b9..d703659 100644
--- a/core/lib/Drupal/Core/Field/FieldStorageDefinitionInterface.php
+++ b/core/lib/Drupal/Core/Field/FieldStorageDefinitionInterface.php
@@ -109,6 +109,12 @@ public function isRevisionable();
    *
    * @return bool
    *   TRUE if the field is queryable.
+   *
+   * @deprecated in Drupal 8.4.0 and will be removed before Drupal 9.0.0. Use
+   *   \Drupal\Core\Field\FieldStorageDefinitionInterface::hasCustomStorage()
+   *   instead.
+   *
+   * @see https://www.drupal.org/node/2856563
    */
   public function isQueryable();
 
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/LanguageSelectWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/LanguageSelectWidget.php
index cff646d..697c603 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/LanguageSelectWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/LanguageSelectWidget.php
@@ -27,10 +27,35 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
     $element['value'] = $element + array(
       '#type' => 'language_select',
       '#default_value' => $items[$delta]->value,
-      '#languages' => LanguageInterface::STATE_ALL,
+      '#languages' => $this->getSetting('include_locked') ? LanguageInterface::STATE_ALL : LanguageInterface::STATE_CONFIGURABLE,
     );
 
     return $element;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public static function defaultSettings() {
+    $settings = parent::defaultSettings();
+    $settings['include_locked'] = TRUE;
+
+    return $settings;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsForm(array $form, FormStateInterface $form_state) {
+    $element = parent::settingsForm($form, $form_state);
+
+    $element['include_locked'] = [
+      '#type' => 'checkbox',
+      '#title' => $this->t('Include locked languages such as <em>Not specified</em> and <em>Not applicable</em>'),
+      '#default_value' => $this->getSetting('include_locked'),
+    ];
+
+    return $element;
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Form/FormValidator.php b/core/lib/Drupal/Core/Form/FormValidator.php
index dbefe00..d4f3ee5 100644
--- a/core/lib/Drupal/Core/Form/FormValidator.php
+++ b/core/lib/Drupal/Core/Form/FormValidator.php
@@ -229,8 +229,12 @@ protected function finalizeValidation(&$form, FormStateInterface &$form_state, $
    *   theming, and hook_form_alter functions.
    */
   protected function doValidateForm(&$elements, FormStateInterface &$form_state, $form_id = NULL) {
-    // Recurse through all children.
-    foreach (Element::children($elements) as $key) {
+    // Recurse through all children, sorting the elements so that the order of
+    // error messages displayed to the user matches the order of elements in
+    // the form. Use a copy of $elements so that it is not modified by the
+    // sorting itself.
+    $elements_sorted = $elements;
+    foreach (Element::children($elements_sorted, TRUE) as $key) {
       if (isset($elements[$key]) && $elements[$key]) {
         $this->doValidateForm($elements[$key], $form_state);
       }
diff --git a/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php b/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php
index bbcb0f2..e2bff294 100644
--- a/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php
+++ b/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php
@@ -52,10 +52,7 @@ class DefaultSingleLazyPluginCollection extends LazyPluginCollection {
    */
   public function __construct(PluginManagerInterface $manager, $instance_id, array $configuration) {
     $this->manager = $manager;
-    $this->instanceId = $instance_id;
-    // This is still needed by the parent LazyPluginCollection class.
-    $this->instanceIDs = array($instance_id => $instance_id);
-    $this->configuration = $configuration;
+    $this->addInstanceId($instance_id, $configuration);
   }
 
   /**
@@ -95,6 +92,8 @@ public function setConfiguration($configuration) {
    */
   public function addInstanceId($id, $configuration = NULL) {
     $this->instanceId = $id;
+    // Reset the list of instance IDs since there can be only one.
+    $this->instanceIDs = [];
     parent::addInstanceId($id, $configuration);
     if ($configuration !== NULL) {
       $this->setConfiguration($configuration);
diff --git a/core/modules/block/src/Tests/Views/DisplayBlockTest.php b/core/modules/block/src/Tests/Views/DisplayBlockTest.php
index d878175..31f531c 100644
--- a/core/modules/block/src/Tests/Views/DisplayBlockTest.php
+++ b/core/modules/block/src/Tests/Views/DisplayBlockTest.php
@@ -286,7 +286,7 @@ public function testBlockEmptyRendering() {
 
     $this->drupalGet($url);
     $this->assertEqual(0, count($this->xpath('//div[contains(@class, "block-views-blocktest-view-block-block-1")]')));
-    // Ensure that the view cachability metadata is propagated even, for an
+    // Ensure that the view cacheability metadata is propagated even, for an
     // empty block.
     $this->assertCacheTags(array_merge($block->getCacheTags(), ['block_view', 'config:block_list', 'config:views.view.test_view_block' , 'http_response', 'rendered']));
     $this->assertCacheContexts(['url.query_args:_wrapper_format']);
diff --git a/core/modules/block_content/src/Entity/BlockContent.php b/core/modules/block_content/src/Entity/BlockContent.php
index 51ae6f6..7c06ed8 100644
--- a/core/modules/block_content/src/Entity/BlockContent.php
+++ b/core/modules/block_content/src/Entity/BlockContent.php
@@ -51,6 +51,11 @@
  *     "langcode" = "langcode",
  *     "uuid" = "uuid"
  *   },
+ *   revision_metadata_keys = {
+ *     "revision_user" = "revision_user",
+ *     "revision_created" = "revision_created",
+ *     "revision_log_message" = "revision_log"
+ *   },
  *   bundle_entity_type = "block_content_type",
  *   field_ui_base_route = "entity.block_content_type.edit_form",
  *   render_cache = FALSE,
diff --git a/core/modules/content_moderation/tests/src/Unit/StateTransitionValidationTest.php b/core/modules/content_moderation/tests/src/Unit/StateTransitionValidationTest.php
index 2e03447..6ab2ad9 100644
--- a/core/modules/content_moderation/tests/src/Unit/StateTransitionValidationTest.php
+++ b/core/modules/content_moderation/tests/src/Unit/StateTransitionValidationTest.php
@@ -62,6 +62,9 @@ protected function setUpModerationInformation(ContentEntityInterface $entity) {
     // mocked.
     $container = new ContainerBuilder();
     $workflow_type = $this->prophesize(WorkflowTypeInterface::class);
+    $workflow_type->setConfiguration(Argument::any())->will(function ($arguments) {
+      $this->getConfiguration()->willReturn($arguments[0]);
+    });
     $workflow_type->decorateState(Argument::any())->willReturnArgument(0);
     $workflow_type->decorateTransition(Argument::any())->willReturnArgument(0);
     $workflow_manager = $this->prophesize(WorkflowTypeManager::class);
diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php
index 678ddc8..fe5fa75 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php
@@ -32,30 +32,18 @@ public static function defaultSettings() {
    * {@inheritdoc}
    */
   public function viewElements(FieldItemListInterface $items, $langcode) {
+    // @todo Evaluate removing this method in
+    // https://www.drupal.org/node/2793143 to determine if the behavior and
+    // markup in the base class implementation can be used instead.
     $elements = array();
 
     foreach ($items as $delta => $item) {
-      $output = '';
       if (!empty($item->date)) {
         /** @var \Drupal\Core\Datetime\DrupalDateTime $date */
         $date = $item->date;
 
-        if ($this->getFieldSetting('datetime_type') == 'date') {
-          // A date without time will pick up the current time, use the default.
-          datetime_date_default_time($date);
-        }
-        $this->setTimeZone($date);
-
-        $output = $this->formatDate($date);
+        $elements[$delta] = $this->buildDate($date);
       }
-      $elements[$delta] = [
-        '#markup' => $output,
-        '#cache' => [
-          'contexts' => [
-            'timezone',
-          ],
-        ],
-      ];
     }
 
     return $elements;
diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php
index 3d30e68..8f703fb 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php
@@ -3,7 +3,6 @@
 namespace Drupal\datetime\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Datetime\DrupalDateTime;
-use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Form\FormStateInterface;
 
 /**
@@ -31,59 +30,6 @@ public static function defaultSettings() {
   /**
    * {@inheritdoc}
    */
-  public function viewElements(FieldItemListInterface $items, $langcode) {
-    $elements = array();
-
-    foreach ($items as $delta => $item) {
-      $output = '';
-      $iso_date = '';
-
-      if ($item->date) {
-        /** @var \Drupal\Core\Datetime\DrupalDateTime $date */
-        $date = $item->date;
-
-        if ($this->getFieldSetting('datetime_type') == 'date') {
-          // A date without time will pick up the current time, use the default.
-          datetime_date_default_time($date);
-        }
-
-        // Create the ISO date in Universal Time.
-        $iso_date = $date->format("Y-m-d\TH:i:s") . 'Z';
-
-        $this->setTimeZone($date);
-
-        $output = $this->formatDate($date);
-      }
-
-      // Display the date using theme datetime.
-      $elements[$delta] = array(
-        '#cache' => [
-          'contexts' => [
-            'timezone',
-          ],
-        ],
-        '#theme' => 'time',
-        '#text' => $output,
-        '#html' => FALSE,
-        '#attributes' => array(
-          'datetime' => $iso_date,
-        ),
-      );
-      if (!empty($item->_attributes)) {
-        $elements[$delta]['#attributes'] += $item->_attributes;
-        // Unset field item attributes since they have been included in the
-        // formatter output and should not be rendered in the field template.
-        unset($item->_attributes);
-      }
-    }
-
-    return $elements;
-
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function formatDate($date) {
     $format_type = $this->getSetting('format_type');
     $timezone = $this->getSetting('timezone_override') ?: $date->getTimezone()->getName();
diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php
index be9df38..22e5aa8 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php
@@ -6,6 +6,7 @@
 use Drupal\Core\Datetime\DrupalDateTime;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Field\FieldDefinitionInterface;
+use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
@@ -118,6 +119,30 @@ public function settingsSummary() {
   }
 
   /**
+   * {@inheritdoc}
+   */
+  public function viewElements(FieldItemListInterface $items, $langcode) {
+    $elements = array();
+
+    foreach ($items as $delta => $item) {
+      if ($item->date) {
+        /** @var \Drupal\Core\Datetime\DrupalDateTime $date */
+        $date = $item->date;
+        $elements[$delta] = $this->buildDateWithIsoAttribute($date);
+
+        if (!empty($item->_attributes)) {
+          $elements[$delta]['#attributes'] += $item->_attributes;
+          // Unset field item attributes since they have been included in the
+          // formatter output and should not be rendered in the field template.
+          unset($item->_attributes);
+        }
+      }
+    }
+
+    return $elements;
+  }
+
+  /**
    * Creates a formatted date value as a string.
    *
    * @param object $date
@@ -167,4 +192,69 @@ protected function getFormatSettings() {
     return $settings;
   }
 
+  /**
+   * Creates a render array from a date object.
+   *
+   * @param \Drupal\Core\Datetime\DrupalDateTime $date
+   *   A date object.
+   *
+   * @return array
+   *   A render array.
+   */
+  protected function buildDate(DrupalDateTime $date) {
+    if ($this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) {
+      // A date without time will pick up the current time, use the default.
+      datetime_date_default_time($date);
+    }
+    $this->setTimeZone($date);
+
+    $build = [
+      '#markup' => $this->formatDate($date),
+      '#cache' => [
+        'contexts' => [
+          'timezone',
+        ],
+      ],
+    ];
+
+    return $build;
+  }
+
+  /**
+   * Creates a render array from a date object with ISO date attribute.
+   *
+   * @param \Drupal\Core\Datetime\DrupalDateTime $date
+   *   A date object.
+   *
+   * @return array
+   *   A render array.
+   */
+  protected function buildDateWithIsoAttribute(DrupalDateTime $date) {
+    if ($this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) {
+      // A date without time will pick up the current time, use the default.
+      datetime_date_default_time($date);
+    }
+
+    // Create the ISO date in Universal Time.
+    $iso_date = $date->format("Y-m-d\TH:i:s") . 'Z';
+
+    $this->setTimeZone($date);
+
+    $build = [
+      '#theme' => 'time',
+      '#text' => $this->formatDate($date),
+      '#html' => FALSE,
+      '#attributes' => [
+        'datetime' => $iso_date,
+      ],
+      '#cache' => [
+        'contexts' => [
+          'timezone',
+        ],
+      ],
+    ];
+
+    return $build;
+  }
+
 }
diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php
index 683d75c..5bb6766 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php
@@ -25,27 +25,12 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
     $elements = array();
 
     foreach ($items as $delta => $item) {
-      $output = '';
       if (!empty($item->date)) {
         /** @var \Drupal\Core\Datetime\DrupalDateTime $date */
         $date = $item->date;
 
-        if ($this->getFieldSetting('datetime_type') == 'date') {
-          // A date without time will pick up the current time, use the default.
-          datetime_date_default_time($date);
-        }
-        $this->setTimeZone($date);
-
-        $output = $this->formatDate($date);
+        $elements[$delta] = $this->buildDate($date);
       }
-      $elements[$delta] = [
-        '#cache' => [
-          'contexts' => [
-            'timezone',
-          ],
-        ],
-        '#markup' => $output,
-      ];
     }
 
     return $elements;
diff --git a/core/modules/datetime/src/Tests/DateTimeFieldTest.php b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
index f7aeae8..0f2f4ff 100644
--- a/core/modules/datetime/src/Tests/DateTimeFieldTest.php
+++ b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\datetime\Tests;
 
+use Drupal\Component\Render\FormattableMarkup;
 use Drupal\Component\Utility\SafeMarkup;
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Datetime\DrupalDateTime;
@@ -139,6 +140,16 @@ function testDateField() {
       $this->renderTestEntity($id);
       $this->assertText($expected, SafeMarkup::format('Formatted date field using datetime_custom format displayed as %expected.', array('%expected' => $expected)));
 
+      // Test that allowed markup in custom format is preserved and XSS is
+      // removed.
+      $this->displayOptions['settings']['date_format'] = '\\<\\s\\t\\r\\o\\n\\g\\>m/d/Y\\<\\/\\s\\t\\r\\o\\n\\g\\>\\<\\s\\c\\r\\i\\p\\t\\>\\a\\l\\e\\r\\t\\(\\S\\t\\r\\i\\n\\g\\.\\f\\r\\o\\m\\C\\h\\a\\r\\C\\o\\d\\e\\(\\8\\8\\,\\8\\3\\,\\8\\3\\)\\)\\<\\/\\s\\c\\r\\i\\p\\t\\>';
+      entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
+        ->setComponent($field_name, $this->displayOptions)
+        ->save();
+      $expected = '<strong>' . $date->format('m/d/Y') . '</strong>alert(String.fromCharCode(88,83,83))';
+      $this->renderTestEntity($id);
+      $this->assertRaw($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected)));
+
       // Verify that the 'datetime_time_ago' formatter works for intervals in the
       // past.  First update the test entity so that the date difference always
       // has the same interval.  Since the database always stores UTC, and the
diff --git a/core/modules/datetime_range/src/DateTimeRangeTrait.php b/core/modules/datetime_range/src/DateTimeRangeTrait.php
index 5a34f2c..7903bd9 100644
--- a/core/modules/datetime_range/src/DateTimeRangeTrait.php
+++ b/core/modules/datetime_range/src/DateTimeRangeTrait.php
@@ -2,8 +2,7 @@
 
 namespace Drupal\datetime_range;
 
-use Drupal\Core\Datetime\DrupalDateTime;
-use Drupal\datetime\Plugin\Field\FieldType\DateTimeItem;
+use Drupal\Core\Field\FieldItemListInterface;
 
 /**
  * Provides friendly methods for datetime range.
@@ -11,68 +10,40 @@
 trait DateTimeRangeTrait {
 
   /**
-   * Creates a render array from a date object.
-   *
-   * @param \Drupal\Core\Datetime\DrupalDateTime $date
-   *   A date object.
-   *
-   * @return array
-   *   A render array.
+   * {@inheritdoc}
    */
-  protected function buildDate(DrupalDateTime $date) {
-    if ($this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) {
-      // A date without time will pick up the current time, use the default.
-      datetime_date_default_time($date);
+  public function viewElements(FieldItemListInterface $items, $langcode) {
+    $elements = [];
+    $separator = $this->getSetting('separator');
+
+    foreach ($items as $delta => $item) {
+      if (!empty($item->start_date) && !empty($item->end_date)) {
+        /** @var \Drupal\Core\Datetime\DrupalDateTime $start_date */
+        $start_date = $item->start_date;
+        /** @var \Drupal\Core\Datetime\DrupalDateTime $end_date */
+        $end_date = $item->end_date;
+
+        if ($start_date->format('U') !== $end_date->format('U')) {
+          $elements[$delta] = [
+            'start_date' => $this->buildDateWithIsoAttribute($start_date),
+            'separator' => ['#plain_text' => ' ' . $separator . ' '],
+            'end_date' => $this->buildDateWithIsoAttribute($end_date),
+          ];
+        }
+        else {
+          $elements[$delta] = $this->buildDateWithIsoAttribute($start_date);
+
+          if (!empty($item->_attributes)) {
+            $elements[$delta]['#attributes'] += $item->_attributes;
+            // Unset field item attributes since they have been included in the
+            // formatter output and should not be rendered in the field template.
+            unset($item->_attributes);
+          }
+        }
+      }
     }
-    $this->setTimeZone($date);
 
-    $build = [
-      '#plain_text' => $this->formatDate($date),
-      '#cache' => [
-        'contexts' => [
-          'timezone',
-        ],
-      ],
-    ];
-
-    return $build;
-  }
-
-  /**
-   * Creates a render array from a date object with ISO date attribute.
-   *
-   * @param \Drupal\Core\Datetime\DrupalDateTime $date
-   *   A date object.
-   *
-   * @return array
-   *   A render array.
-   */
-  protected function buildDateWithIsoAttribute(DrupalDateTime $date) {
-    if ($this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) {
-      // A date without time will pick up the current time, use the default.
-      datetime_date_default_time($date);
-    }
-
-    // Create the ISO date in Universal Time.
-    $iso_date = $date->format("Y-m-d\TH:i:s") . 'Z';
-
-    $this->setTimeZone($date);
-
-    $build = [
-      '#theme' => 'time',
-      '#text' => $this->formatDate($date),
-      '#html' => FALSE,
-      '#attributes' => [
-        'datetime' => $iso_date,
-      ],
-      '#cache' => [
-        'contexts' => [
-          'timezone',
-        ],
-      ],
-    ];
-
-    return $build;
+    return $elements;
   }
 
 }
diff --git a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php
index a26bbef..78aa8aa 100644
--- a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php
+++ b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeCustomFormatter.php
@@ -38,6 +38,9 @@ public static function defaultSettings() {
    * {@inheritdoc}
    */
   public function viewElements(FieldItemListInterface $items, $langcode) {
+    // @todo Evaluate removing this method in
+    // https://www.drupal.org/node/2793143 to determine if the behavior and
+    // markup in the base class implementation can be used instead.
     $elements = [];
     $separator = $this->getSetting('separator');
 
diff --git a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php
index f07e834..b93851b 100644
--- a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php
+++ b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangeDefaultFormatter.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\datetime_range\Plugin\Field\FieldFormatter;
 
-use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\datetime\Plugin\Field\FieldFormatter\DateTimeDefaultFormatter;
 use Drupal\datetime_range\DateTimeRangeTrait;
@@ -38,42 +37,6 @@ public static function defaultSettings() {
   /**
    * {@inheritdoc}
    */
-  public function viewElements(FieldItemListInterface $items, $langcode) {
-    $elements = [];
-    $separator = $this->getSetting('separator');
-
-    foreach ($items as $delta => $item) {
-      if (!empty($item->start_date) && !empty($item->end_date)) {
-        /** @var \Drupal\Core\Datetime\DrupalDateTime $start_date */
-        $start_date = $item->start_date;
-        /** @var \Drupal\Core\Datetime\DrupalDateTime $end_date */
-        $end_date = $item->end_date;
-
-        if ($start_date->getTimestamp() !== $end_date->getTimestamp()) {
-          $elements[$delta] = [
-            'start_date' => $this->buildDateWithIsoAttribute($start_date),
-            'separator' => ['#plain_text' => ' ' . $separator . ' '],
-            'end_date' => $this->buildDateWithIsoAttribute($end_date),
-          ];
-        }
-        else {
-          $elements[$delta] = $this->buildDateWithIsoAttribute($start_date);
-          if (!empty($item->_attributes)) {
-            $elements[$delta]['#attributes'] += $item->_attributes;
-            // Unset field item attributes since they have been included in the
-            // formatter output and should not be rendered in the field template.
-            unset($item->_attributes);
-          }
-        }
-      }
-    }
-
-    return $elements;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $form = parent::settingsForm($form, $form_state);
 
diff --git a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php
index 1fb4702..fb96de1 100644
--- a/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php
+++ b/core/modules/datetime_range/src/Plugin/Field/FieldFormatter/DateRangePlainFormatter.php
@@ -48,7 +48,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
         /** @var \Drupal\Core\Datetime\DrupalDateTime $end_date */
         $end_date = $item->end_date;
 
-        if ($start_date->getTimestamp() !== $end_date->getTimestamp()) {
+        if ($start_date->format('U') !== $end_date->format('U')) {
           $elements[$delta] = [
             'start_date' => $this->buildDate($start_date),
             'separator' => ['#plain_text' => ' ' . $separator . ' '],
@@ -57,6 +57,13 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
         }
         else {
           $elements[$delta] = $this->buildDate($start_date);
+
+          if (!empty($item->_attributes)) {
+            $elements[$delta]['#attributes'] += $item->_attributes;
+            // Unset field item attributes since they have been included in the
+            // formatter output and should not be rendered in the field template.
+            unset($item->_attributes);
+          }
         }
       }
     }
diff --git a/core/modules/datetime_range/src/Tests/DateRangeFieldTest.php b/core/modules/datetime_range/src/Tests/DateRangeFieldTest.php
index 759352e..74b8f6a 100644
--- a/core/modules/datetime_range/src/Tests/DateRangeFieldTest.php
+++ b/core/modules/datetime_range/src/Tests/DateRangeFieldTest.php
@@ -165,6 +165,16 @@ public function testDateRangeField() {
       $this->renderTestEntity($id);
       $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected)));
 
+      // Test that allowed markup in custom format is preserved and XSS is
+      // removed.
+      $this->displayOptions['settings']['date_format'] = '\\<\\s\\t\\r\\o\\n\\g\\>m/d/Y\\<\\/\\s\\t\\r\\o\\n\\g\\>\\<\\s\\c\\r\\i\\p\\t\\>\\a\\l\\e\\r\\t\\(\\S\\t\\r\\i\\n\\g\\.\\f\\r\\o\\m\\C\\h\\a\\r\\C\\o\\d\\e\\(\\8\\8\\,\\8\\3\\,\\8\\3\\)\\)\\<\\/\\s\\c\\r\\i\\p\\t\\>';
+      entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
+        ->setComponent($field_name, $this->displayOptions)
+        ->save();
+      $expected = '<strong>' . $start_date->format('m/d/Y') . '</strong>alert(String.fromCharCode(88,83,83)) - <strong>' . $end_date->format('m/d/Y') . '</strong>alert(String.fromCharCode(88,83,83))';
+      $this->renderTestEntity($id);
+      $this->assertRaw($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected)));
+
       // Test formatters when start date and end date are the same
       $this->drupalGet('entity_test/add');
       $value = '2012-12-31 00:00:00';
diff --git a/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php b/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php
index 9b9d13c..c827450 100644
--- a/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php
+++ b/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php
@@ -89,12 +89,12 @@ public function testUsersWithoutPermission() {
       $response = $this->drupalPost('editor/' . 'node/1/body/en/full', '', array(), array('query' => array(MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax')));
       $this->assertResponse(403);
       if (!$user->hasPermission('access in-place editing')) {
-        $message = "A fatal error occurred: The 'access in-place editing' permission is required.";
-        $this->assertIdentical(Json::encode(['message' => $message]), $response);
+        $message = "The 'access in-place editing' permission is required.";
       }
       else {
-        $this->assertIdentical('{}', $response);
+        $message = '';
       }
+      $this->assertIdentical(Json::encode(['message' => $message]), $response);
     }
   }
 
diff --git a/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php b/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php
index d62cb68..c04fe2d 100644
--- a/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php
+++ b/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php
@@ -9,7 +9,7 @@
 use Drupal\entity_test\Entity\EntityTest;
 use Drupal\quickedit\MetadataGenerator;
 use Drupal\Tests\quickedit\Kernel\QuickEditTestBase;
-use Drupal\quickedit_test\MockEditEntityFieldAccessCheck;
+use Drupal\quickedit_test\MockQuickEditEntityFieldAccessCheck;
 use Drupal\editor\EditorController;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
@@ -52,7 +52,7 @@ class QuickEditIntegrationTest extends QuickEditTestBase {
   /**
    * The access checker object to be used by the metadata generator object.
    *
-   * @var \Drupal\quickedit\Access\EditEntityFieldAccessCheckInterface
+   * @var \Drupal\quickedit\Access\QuickEditEntityFieldAccessCheckInterface
    */
   protected $accessChecker;
 
@@ -165,7 +165,7 @@ public function testEditorSelection() {
    */
   public function testMetadata() {
     $this->editorManager = $this->container->get('plugin.manager.quickedit.editor');
-    $this->accessChecker = new MockEditEntityFieldAccessCheck();
+    $this->accessChecker = new MockQuickEditEntityFieldAccessCheck();
     $this->editorSelector = $this->container->get('quickedit.editor.selector');
     $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager);
 
diff --git a/core/modules/hal/tests/src/Functional/EntityResource/HalEntityNormalizationTrait.php b/core/modules/hal/tests/src/Functional/EntityResource/HalEntityNormalizationTrait.php
index 99ab3eb..b64de67 100644
--- a/core/modules/hal/tests/src/Functional/EntityResource/HalEntityNormalizationTrait.php
+++ b/core/modules/hal/tests/src/Functional/EntityResource/HalEntityNormalizationTrait.php
@@ -101,18 +101,18 @@ protected function assertNormalizationEdgeCases($method, Url $url, array $reques
       $normalization['_links']['type'] = Url::fromUri('base:rest/type/' . static::$entityTypeId . '/bad_bundle_name');
       $request_options[RequestOptions::BODY] = $this->serializer->encode($normalization, static::$format);
 
-      // DX: 400 when incorrect entity type bundle is specified.
+      // DX: 422 when incorrect entity type bundle is specified.
       $response = $this->request($method, $url, $request_options);
-      $this->assertResourceErrorResponse(400, 'No entity type(s) specified', $response);
+      $this->assertResourceErrorResponse(422, 'No entity type(s) specified', $response);
 
 
       unset($normalization['_links']['type']);
       $request_options[RequestOptions::BODY] = $this->serializer->encode($normalization, static::$format);
 
 
-      // DX: 400 when no entity type bundle is specified.
+      // DX: 422 when no entity type bundle is specified.
       $response = $this->request($method, $url, $request_options);
-      $this->assertResourceErrorResponse(400, 'The type link relation must be specified.', $response);
+      $this->assertResourceErrorResponse(422, 'The type link relation must be specified.', $response);
     }
   }
 
diff --git a/core/modules/language/config/schema/language.schema.yml b/core/modules/language/config/schema/language.schema.yml
index 5e3f55b..91ce2d1 100644
--- a/core/modules/language/config/schema/language.schema.yml
+++ b/core/modules/language/config/schema/language.schema.yml
@@ -131,3 +131,11 @@ condition.plugin.language:
       type: sequence
       sequence:
         type: string
+
+field.widget.settings.language_select:
+  type: mapping
+  label: 'Language format settings'
+  mapping:
+    include_locked:
+      type: boolean
+      label: 'Include locked languages'
diff --git a/core/modules/language/language.post_update.php b/core/modules/language/language.post_update.php
new file mode 100644
index 0000000..d1138d0
--- /dev/null
+++ b/core/modules/language/language.post_update.php
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * @file
+ * Post update functions for Language module.
+ */
+
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+
+/**
+ * @addtogroup updates-8.4.0
+ * @{
+ */
+
+/**
+ * Add the 'include_locked' settings to the 'language_select' widget.
+ */
+function language_post_update_language_select_widget() {
+  foreach (EntityFormDisplay::loadMultiple() as $display_form) {
+    $content = $display_form->get('content');
+    $changed = FALSE;
+    foreach (array_keys($content) as $element) {
+      if (isset($content[$element]['type']) && $content[$element]['type'] == 'language_select') {
+        $content[$element]['settings']['include_locked'] = TRUE;
+        $changed = TRUE;
+      }
+    }
+    if ($changed) {
+      $display_form->set('content', $content);
+      $display_form->save();
+    }
+  }
+}
+
+/**
+ * @} End of "addtogroup updates-8.4.0".
+ */
diff --git a/core/modules/language/src/Tests/Update/LanguageSelectWidgetUpdateTest.php b/core/modules/language/src/Tests/Update/LanguageSelectWidgetUpdateTest.php
new file mode 100644
index 0000000..b055983
--- /dev/null
+++ b/core/modules/language/src/Tests/Update/LanguageSelectWidgetUpdateTest.php
@@ -0,0 +1,40 @@
+<?php
+
+namespace Drupal\language\Tests\Update;
+
+use Drupal\system\Tests\Update\UpdatePathTestBase;
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+
+/**
+ * Tests the update path for the language_select widget.
+ *
+ * @group Update
+ */
+class LanguageSelectWidgetUpdateTest extends UpdatePathTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setDatabaseDumpFiles() {
+    $this->databaseDumpFiles = [
+      __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8.filled.standard.php.gz',
+    ];
+  }
+
+  /**
+   * Tests language_post_update_language_select_widget().
+   */
+  public function testLanguagePostUpdateLanguageSelectWidget() {
+    // Tests before the update.
+    $content_before = EntityFormDisplay::load('node.page.default')->get('content');
+    $this->assertEqual([], $content_before['langcode']['settings']);
+
+    // Run the update.
+    $this->runUpdates();
+
+    // Tests after the update.
+    $content_after = EntityFormDisplay::load('node.page.default')->get('content');
+    $this->assertEqual(['include_locked' => TRUE], $content_after['langcode']['settings']);
+  }
+
+}
diff --git a/core/modules/language/tests/src/Kernel/LanguageSelectWidgetTest.php b/core/modules/language/tests/src/Kernel/LanguageSelectWidgetTest.php
new file mode 100644
index 0000000..966275c
--- /dev/null
+++ b/core/modules/language/tests/src/Kernel/LanguageSelectWidgetTest.php
@@ -0,0 +1,77 @@
+<?php
+
+namespace Drupal\Tests\language\Kernel;
+
+use Drupal\entity_test\Entity\EntityTest;
+use Drupal\KernelTests\KernelTestBase;
+
+/**
+ * Tests the language select widget.
+ *
+ * @group language
+ */
+class LanguageSelectWidgetTest extends KernelTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = [
+    'entity_test',
+    'language',
+    'user',
+    'system',
+  ];
+
+  /**
+   * The entity form display.
+   *
+   * @var \Drupal\Core\Entity\Entity\EntityFormDisplay
+   */
+  protected $entityFormDisplay;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->installEntitySchema('entity_test');
+    $this->installEntitySchema('user');
+
+    $storage = $this->container->get('entity_type.manager')->getStorage('entity_form_display');
+    $this->entityFormDisplay = $storage->create([
+      'targetEntityType' => 'entity_test',
+      'bundle' => 'entity_test',
+      'mode' => 'default',
+      'status' => TRUE,
+    ]);
+  }
+
+  /**
+   * Tests the widget with the locked languages.
+   */
+  public function testWithIncludedLockedLanguage() {
+    $this->entityFormDisplay->setComponent('langcode', [
+      'type' => 'language_select',
+    ])->save();
+    $entity = EntityTest::create(['name' => $this->randomString()]);
+    $form = $this->container->get('entity.form_builder')->getForm($entity);
+    $options = array_keys($form['langcode']['widget'][0]['value']['#options']);
+    $this->assertSame(['en', 'und', 'zxx'], $options);
+  }
+
+  /**
+   * Test the widget without the locked languages.
+   */
+  public function testWithoutIncludedLockedLanguage() {
+    $this->entityFormDisplay->setComponent('langcode', [
+      'type' => 'language_select',
+      'settings' => ['include_locked' => FALSE],
+    ])->save();
+    $entity = EntityTest::create(['name' => $this->randomString()]);
+    $form = $this->container->get('entity.form_builder')->getForm($entity);
+    $options = array_keys($form['langcode']['widget'][0]['value']['#options']);
+    $this->assertSame(['en'], $options);
+  }
+
+}
diff --git a/core/modules/node/node.permissions.yml b/core/modules/node/node.permissions.yml
index 753ed40..289227c 100644
--- a/core/modules/node/node.permissions.yml
+++ b/core/modules/node/node.permissions.yml
@@ -18,12 +18,13 @@ view own unpublished content:
   title: 'View own unpublished content'
 view all revisions:
   title: 'View all revisions'
+  description: 'To view a revision, you also need permission to view the content item.'
 revert all revisions:
   title: 'Revert all revisions'
-  description: 'Role requires permission <em>view revisions</em> and <em>edit rights</em> for nodes in question or <em>administer nodes</em>.'
+  description: 'To revert a revision, you also need permission to edit the content item.'
 delete all revisions:
   title: 'Delete all revisions'
-  description: 'Role requires permission to <em>view revisions</em> and <em>delete rights</em> for nodes in question or <em>administer nodes</em>.'
+  description: 'To delete a revision, you also need permission to delete the content item.'
 
 permission_callbacks:
   - \Drupal\node\NodePermissions::nodeTypePermissions
diff --git a/core/modules/node/src/Entity/Node.php b/core/modules/node/src/Entity/Node.php
index 0edb58f..b009e67 100644
--- a/core/modules/node/src/Entity/Node.php
+++ b/core/modules/node/src/Entity/Node.php
@@ -2,9 +2,7 @@
 
 namespace Drupal\node\Entity;
 
-use Drupal\Core\Entity\ContentEntityBase;
-use Drupal\Core\Entity\EntityChangedTrait;
-use Drupal\Core\Entity\EntityPublishedTrait;
+use Drupal\Core\Entity\EditorialContentEntityBase;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Field\BaseFieldDefinition;
@@ -61,6 +59,11 @@
  *     "published" = "status",
  *     "uid" = "uid",
  *   },
+ *   revision_metadata_keys = {
+ *     "revision_user" = "revision_uid",
+ *     "revision_created" = "revision_timestamp",
+ *     "revision_log_message" = "revision_log"
+ *   },
  *   bundle_entity_type = "node_type",
  *   field_ui_base_route = "entity.node_type.edit_form",
  *   common_reference_target = TRUE,
@@ -74,10 +77,7 @@
  *   }
  * )
  */
-class Node extends ContentEntityBase implements NodeInterface {
-
-  use EntityChangedTrait;
-  use EntityPublishedTrait;
+class Node extends EditorialContentEntityBase implements NodeInterface {
 
   /**
    * Whether the node is being previewed or not.
@@ -281,21 +281,6 @@ public function setOwner(UserInterface $account) {
   /**
    * {@inheritdoc}
    */
-  public function getRevisionCreationTime() {
-    return $this->get('revision_timestamp')->value;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setRevisionCreationTime($timestamp) {
-    $this->set('revision_timestamp', $timestamp);
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getRevisionAuthor() {
     return $this->getRevisionUser();
   }
@@ -303,13 +288,6 @@ public function getRevisionAuthor() {
   /**
    * {@inheritdoc}
    */
-  public function getRevisionUser() {
-    return $this->get('revision_uid')->entity;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setRevisionAuthorId($uid) {
     $this->setRevisionUserId($uid);
     return $this;
@@ -318,47 +296,8 @@ public function setRevisionAuthorId($uid) {
   /**
    * {@inheritdoc}
    */
-  public function setRevisionUser(UserInterface $user) {
-    $this->set('revision_uid', $user);
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getRevisionUserId() {
-    return $this->get('revision_uid')->entity->id();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setRevisionUserId($user_id) {
-    $this->set('revision_uid', $user_id);
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getRevisionLogMessage() {
-    return $this->get('revision_log')->value;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setRevisionLogMessage($revision_log_message) {
-    $this->set('revision_log', $revision_log_message);
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
     $fields = parent::baseFieldDefinitions($entity_type);
-    $fields += static::publishedBaseFieldDefinitions($entity_type);
 
     $fields['title'] = BaseFieldDefinition::create('string')
       ->setLabel(t('Title'))
@@ -450,32 +389,6 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
       ))
       ->setDisplayConfigurable('form', TRUE);
 
-    $fields['revision_timestamp'] = BaseFieldDefinition::create('created')
-      ->setLabel(t('Revision timestamp'))
-      ->setDescription(t('The time that the current revision was created.'))
-      ->setQueryable(FALSE)
-      ->setRevisionable(TRUE);
-
-    $fields['revision_uid'] = BaseFieldDefinition::create('entity_reference')
-      ->setLabel(t('Revision user ID'))
-      ->setDescription(t('The user ID of the author of the current revision.'))
-      ->setSetting('target_type', 'user')
-      ->setQueryable(FALSE)
-      ->setRevisionable(TRUE);
-
-    $fields['revision_log'] = BaseFieldDefinition::create('string_long')
-      ->setLabel(t('Revision log message'))
-      ->setDescription(t('Briefly describe the changes you have made.'))
-      ->setRevisionable(TRUE)
-      ->setDefaultValue('')
-      ->setDisplayOptions('form', array(
-        'type' => 'string_textarea',
-        'weight' => 25,
-        'settings' => array(
-          'rows' => 4,
-        ),
-      ));
-
     $fields['revision_translation_affected'] = BaseFieldDefinition::create('boolean')
       ->setLabel(t('Revision translation affected'))
       ->setDescription(t('Indicates if the last edit of a translation belongs to current revision.'))
diff --git a/core/modules/node/src/NodePermissions.php b/core/modules/node/src/NodePermissions.php
index 94b2d93..0bc0cde 100644
--- a/core/modules/node/src/NodePermissions.php
+++ b/core/modules/node/src/NodePermissions.php
@@ -62,14 +62,15 @@ protected function buildPermissions(NodeType $type) {
       ),
       "view $type_id revisions" => array(
         'title' => $this->t('%type_name: View revisions', $type_params),
+        'description' => t('To view a revision, you also need permission to view the content item.'),
       ),
       "revert $type_id revisions" => array(
         'title' => $this->t('%type_name: Revert revisions', $type_params),
-        'description' => t('Role requires permission <em>view revisions</em> and <em>edit rights</em> for nodes in question, or <em>administer nodes</em>.'),
+        'description' => t('To revert a revision, you also need permission to edit the content item.'),
       ),
       "delete $type_id revisions" => array(
         'title' => $this->t('%type_name: Delete revisions', $type_params),
-        'description' => $this->t('Role requires permission to <em>view revisions</em> and <em>delete rights</em> for nodes in question, or <em>administer nodes</em>.'),
+        'description' => $this->t('To delete a revision, you also need permission to delete the content item.'),
       ),
     );
   }
diff --git a/core/modules/quickedit/quickedit.services.yml b/core/modules/quickedit/quickedit.services.yml
index 692ba2f..3d7d934 100644
--- a/core/modules/quickedit/quickedit.services.yml
+++ b/core/modules/quickedit/quickedit.services.yml
@@ -3,7 +3,7 @@ services:
     class: Drupal\quickedit\Plugin\InPlaceEditorManager
     parent: default_plugin_manager
   access_check.quickedit.entity_field:
-    class: Drupal\quickedit\Access\EditEntityFieldAccessCheck
+    class: Drupal\quickedit\Access\QuickEditEntityFieldAccessCheck
     tags:
       - { name: access_check, applies_to: _access_quickedit_entity_field }
   quickedit.editor.selector:
diff --git a/core/modules/quickedit/src/Access/EditEntityFieldAccessCheck.php b/core/modules/quickedit/src/Access/EditEntityFieldAccessCheck.php
index 7b38838..f937908 100644
--- a/core/modules/quickedit/src/Access/EditEntityFieldAccessCheck.php
+++ b/core/modules/quickedit/src/Access/EditEntityFieldAccessCheck.php
@@ -2,61 +2,9 @@
 
 namespace Drupal\quickedit\Access;
 
-use Drupal\Core\Access\AccessResult;
-use Drupal\Core\Routing\Access\AccessInterface;
-use Drupal\Core\Session\AccountInterface;
-use Drupal\Core\Entity\EntityInterface;
-
 /**
- * Access check for editing entity fields.
+ * @deprecated in Drupal 8.4.x and will be removed before Drupal 9.0.0.
  */
-class EditEntityFieldAccessCheck implements AccessInterface, EditEntityFieldAccessCheckInterface {
-
-  /**
-   * Checks Quick Edit access to the field.
-   *
-   * @param \Drupal\Core\Entity\EntityInterface $entity
-   *   The entity containing the field.
-   * @param string $field_name
-   *   The field name.
-   * @param string $langcode
-   *   The langcode.
-   * @param \Drupal\Core\Session\AccountInterface $account
-   *   The currently logged in account.
-   *
-   * @return \Drupal\Core\Access\AccessResultInterface
-   *   The access result.
-   *
-   * @todo Use the $account argument: https://www.drupal.org/node/2266809.
-   */
-  public function access(EntityInterface $entity, $field_name, $langcode, AccountInterface $account) {
-    if (!$this->validateRequestAttributes($entity, $field_name, $langcode)) {
-      return AccessResult::forbidden();
-    }
-
-    return $this->accessEditEntityField($entity, $field_name);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function accessEditEntityField(EntityInterface $entity, $field_name) {
-    return $entity->access('update', NULL, TRUE)->andIf($entity->get($field_name)->access('edit', NULL, TRUE));
-  }
-
-  /**
-   * Validates request attributes.
-   */
-  protected function validateRequestAttributes(EntityInterface $entity, $field_name, $langcode) {
-    // Validate the field name and language.
-    if (!$field_name || !$entity->hasField($field_name)) {
-      return FALSE;
-    }
-    if (!$langcode || !$entity->hasTranslation($langcode)) {
-      return FALSE;
-    }
-
-    return TRUE;
-  }
+class EditEntityFieldAccessCheck extends QuickEditEntityFieldAccessCheck {
 
 }
diff --git a/core/modules/quickedit/src/Access/EditEntityFieldAccessCheckInterface.php b/core/modules/quickedit/src/Access/EditEntityFieldAccessCheckInterface.php
index c7f14e2..cfdb32d 100644
--- a/core/modules/quickedit/src/Access/EditEntityFieldAccessCheckInterface.php
+++ b/core/modules/quickedit/src/Access/EditEntityFieldAccessCheckInterface.php
@@ -2,24 +2,9 @@
 
 namespace Drupal\quickedit\Access;
 
-use Drupal\Core\Entity\EntityInterface;
-
 /**
- * Access check for editing entity fields.
+ * @deprecated in Drupal 8.4.x and will be removed before Drupal 9.0.0.
  */
-interface EditEntityFieldAccessCheckInterface {
-
-  /**
-   * Checks access to edit the requested field of the requested entity.
-   *
-   * @param \Drupal\Core\Entity\EntityInterface $entity
-   *   The entity.
-   * @param string $field_name
-   *   The field name.
-   *
-   * @return \Drupal\Core\Access\AccessResultInterface
-   *   The access result.
-   */
-  public function accessEditEntityField(EntityInterface $entity, $field_name);
+interface EditEntityFieldAccessCheckInterface extends QuickEditEntityFieldAccessCheckInterface {
 
 }
diff --git a/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheck.php b/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheck.php
new file mode 100644
index 0000000..5404b04
--- /dev/null
+++ b/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheck.php
@@ -0,0 +1,62 @@
+<?php
+
+namespace Drupal\quickedit\Access;
+
+use Drupal\Core\Access\AccessResult;
+use Drupal\Core\Routing\Access\AccessInterface;
+use Drupal\Core\Session\AccountInterface;
+use Drupal\Core\Entity\EntityInterface;
+
+/**
+ * Access check for in-place editing entity fields.
+ */
+class QuickEditEntityFieldAccessCheck implements AccessInterface, QuickEditEntityFieldAccessCheckInterface {
+
+  /**
+   * Checks Quick Edit access to the field.
+   *
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   The entity containing the field.
+   * @param string $field_name
+   *   The field name.
+   * @param string $langcode
+   *   The langcode.
+   * @param \Drupal\Core\Session\AccountInterface $account
+   *   The currently logged in account.
+   *
+   * @return \Drupal\Core\Access\AccessResultInterface
+   *   The access result.
+   *
+   * @todo Use the $account argument: https://www.drupal.org/node/2266809.
+   */
+  public function access(EntityInterface $entity, $field_name, $langcode, AccountInterface $account) {
+    if (!$this->validateRequestAttributes($entity, $field_name, $langcode)) {
+      return AccessResult::forbidden();
+    }
+
+    return $this->accessEditEntityField($entity, $field_name);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function accessEditEntityField(EntityInterface $entity, $field_name) {
+    return $entity->access('update', NULL, TRUE)->andIf($entity->get($field_name)->access('edit', NULL, TRUE));
+  }
+
+  /**
+   * Validates request attributes.
+   */
+  protected function validateRequestAttributes(EntityInterface $entity, $field_name, $langcode) {
+    // Validate the field name and language.
+    if (!$field_name || !$entity->hasField($field_name)) {
+      return FALSE;
+    }
+    if (!$langcode || !$entity->hasTranslation($langcode)) {
+      return FALSE;
+    }
+
+    return TRUE;
+  }
+
+}
diff --git a/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheckInterface.php b/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheckInterface.php
new file mode 100644
index 0000000..1428b48
--- /dev/null
+++ b/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheckInterface.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Drupal\quickedit\Access;
+
+use Drupal\Core\Entity\EntityInterface;
+
+/**
+ * Access check for in-place editing entity fields.
+ */
+interface QuickEditEntityFieldAccessCheckInterface {
+
+  /**
+   * Checks access to edit the requested field of the requested entity.
+   *
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   The entity.
+   * @param string $field_name
+   *   The field name.
+   *
+   * @return \Drupal\Core\Access\AccessResultInterface
+   *   The access result.
+   */
+  public function accessEditEntityField(EntityInterface $entity, $field_name);
+
+}
diff --git a/core/modules/quickedit/src/MetadataGenerator.php b/core/modules/quickedit/src/MetadataGenerator.php
index a22bf65..06f0daf 100644
--- a/core/modules/quickedit/src/MetadataGenerator.php
+++ b/core/modules/quickedit/src/MetadataGenerator.php
@@ -5,7 +5,7 @@
 use Drupal\Component\Plugin\PluginManagerInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Field\FieldItemListInterface;
-use Drupal\quickedit\Access\EditEntityFieldAccessCheckInterface;
+use Drupal\quickedit\Access\QuickEditEntityFieldAccessCheckInterface;
 use Drupal\Core\Entity\Entity\EntityViewDisplay;
 
 /**
@@ -16,7 +16,7 @@ class MetadataGenerator implements MetadataGeneratorInterface {
   /**
    * An object that checks if a user has access to edit a given entity field.
    *
-   * @var \Drupal\quickedit\Access\EditEntityFieldAccessCheckInterface
+   * @var \Drupal\quickedit\Access\QuickEditEntityFieldAccessCheckInterface
    */
   protected $accessChecker;
 
@@ -37,14 +37,14 @@ class MetadataGenerator implements MetadataGeneratorInterface {
   /**
    * Constructs a new MetadataGenerator.
    *
-   * @param \Drupal\quickedit\Access\EditEntityFieldAccessCheckInterface $access_checker
+   * @param \Drupal\quickedit\Access\QuickEditEntityFieldAccessCheckInterface $access_checker
    *   An object that checks if a user has access to edit a given field.
    * @param \Drupal\quickedit\EditorSelectorInterface $editor_selector
    *   An object that determines which editor to attach to a given field.
    * @param \Drupal\Component\Plugin\PluginManagerInterface $editor_manager
    *   The manager for editor plugins.
    */
-  public function __construct(EditEntityFieldAccessCheckInterface $access_checker, EditorSelectorInterface $editor_selector, PluginManagerInterface $editor_manager) {
+  public function __construct(QuickEditEntityFieldAccessCheckInterface $access_checker, EditorSelectorInterface $editor_selector, PluginManagerInterface $editor_manager) {
     $this->accessChecker = $access_checker;
     $this->editorSelector = $editor_selector;
     $this->editorManager = $editor_manager;
diff --git a/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php b/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php
index ab66227..1570a27 100644
--- a/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php
+++ b/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php
@@ -115,12 +115,12 @@ public function testUserWithoutPermission() {
     $this->assertIdentical(Json::encode(['message' => "The 'access in-place editing' permission is required."]), $response);
     $this->assertResponse(403);
 
-    // Quick Edit's JavaScript would SearchRankingTestnever hit these endpoints if the metadata
+    // Quick Edit's JavaScript would never hit these endpoints if the metadata
     // was empty as above, but we need to make sure that malicious users aren't
     // able to use any of the other endpoints either.
     $post = array('editors[0]' => 'form') + $this->getAjaxPageStatePostData();
     $response = $this->drupalPost('quickedit/attachments', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
-    $message = Json::encode(['message' => "A fatal error occurred: The 'access in-place editing' permission is required."]);
+    $message = Json::encode(['message' => "The 'access in-place editing' permission is required."]);
     $this->assertIdentical($message, $response);
     $this->assertResponse(403);
     $post = array('nocssjs' => 'true') + $this->getAjaxPageStatePostData();
diff --git a/core/modules/quickedit/tests/modules/src/MockEditEntityFieldAccessCheck.php b/core/modules/quickedit/tests/modules/src/MockEditEntityFieldAccessCheck.php
index b5d9456..7596aa8 100644
--- a/core/modules/quickedit/tests/modules/src/MockEditEntityFieldAccessCheck.php
+++ b/core/modules/quickedit/tests/modules/src/MockEditEntityFieldAccessCheck.php
@@ -2,19 +2,9 @@
 
 namespace Drupal\quickedit_test;
 
-use Drupal\Core\Entity\EntityInterface;
-use Drupal\quickedit\Access\EditEntityFieldAccessCheckInterface;
-
 /**
- * Access check for editing entity fields.
+ * @deprecated in Drupal 8.4.x and will be removed before Drupal 9.0.0.
  */
-class MockEditEntityFieldAccessCheck implements EditEntityFieldAccessCheckInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function accessEditEntityField(EntityInterface $entity, $field_name) {
-    return TRUE;
-  }
+class MockEditEntityFieldAccessCheck extends MockQuickEditEntityFieldAccessCheck {
 
 }
diff --git a/core/modules/quickedit/tests/modules/src/MockQuickEditEntityFieldAccessCheck.php b/core/modules/quickedit/tests/modules/src/MockQuickEditEntityFieldAccessCheck.php
new file mode 100644
index 0000000..2459c50
--- /dev/null
+++ b/core/modules/quickedit/tests/modules/src/MockQuickEditEntityFieldAccessCheck.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace Drupal\quickedit_test;
+
+use Drupal\Core\Entity\EntityInterface;
+use Drupal\quickedit\Access\QuickEditEntityFieldAccessCheckInterface;
+
+/**
+ * Access check for in-place editing entity fields.
+ */
+class MockQuickEditEntityFieldAccessCheck implements QuickEditEntityFieldAccessCheckInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function accessEditEntityField(EntityInterface $entity, $field_name) {
+    return TRUE;
+  }
+
+}
diff --git a/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php b/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php
index 7fdc8fb..28480f4 100644
--- a/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php
+++ b/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php
@@ -5,7 +5,7 @@
 use Drupal\entity_test\Entity\EntityTest;
 use Drupal\quickedit\EditorSelector;
 use Drupal\quickedit\MetadataGenerator;
-use Drupal\quickedit_test\MockEditEntityFieldAccessCheck;
+use Drupal\quickedit_test\MockQuickEditEntityFieldAccessCheck;
 use Drupal\filter\Entity\FilterFormat;
 
 /**
@@ -44,7 +44,7 @@ class MetadataGeneratorTest extends QuickEditTestBase {
   /**
    * The access checker object to be used by the metadata generator object.
    *
-   * @var \Drupal\quickedit\Access\EditEntityFieldAccessCheckInterface
+   * @var \Drupal\quickedit\Access\QuickEditEntityFieldAccessCheckInterface
    */
   protected $accessChecker;
 
@@ -52,7 +52,7 @@ protected function setUp() {
     parent::setUp();
 
     $this->editorManager = $this->container->get('plugin.manager.quickedit.editor');
-    $this->accessChecker = new MockEditEntityFieldAccessCheck();
+    $this->accessChecker = new MockQuickEditEntityFieldAccessCheck();
     $this->editorSelector = new EditorSelector($this->editorManager, $this->container->get('plugin.manager.field.formatter'));
     $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager);
   }
diff --git a/core/modules/quickedit/tests/src/Unit/Access/EditEntityFieldAccessCheckTest.php b/core/modules/quickedit/tests/src/Unit/Access/QuickEditEntityFieldAccessCheckTest.php
similarity index 91%
rename from core/modules/quickedit/tests/src/Unit/Access/EditEntityFieldAccessCheckTest.php
rename to core/modules/quickedit/tests/src/Unit/Access/QuickEditEntityFieldAccessCheckTest.php
index d7ceb59..9f35057 100644
--- a/core/modules/quickedit/tests/src/Unit/Access/EditEntityFieldAccessCheckTest.php
+++ b/core/modules/quickedit/tests/src/Unit/Access/QuickEditEntityFieldAccessCheckTest.php
@@ -5,21 +5,21 @@
 use Drupal\Core\Access\AccessResult;
 use Drupal\Core\Cache\Context\CacheContextsManager;
 use Drupal\Core\DependencyInjection\Container;
-use Drupal\quickedit\Access\EditEntityFieldAccessCheck;
+use Drupal\quickedit\Access\QuickEditEntityFieldAccessCheck;
 use Drupal\Tests\UnitTestCase;
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * @coversDefaultClass \Drupal\quickedit\Access\EditEntityFieldAccessCheck
+ * @coversDefaultClass \Drupal\quickedit\Access\QuickEditEntityFieldAccessCheck
  * @group Access
  * @group quickedit
  */
-class EditEntityFieldAccessCheckTest extends UnitTestCase {
+class QuickEditEntityFieldAccessCheckTest extends UnitTestCase {
 
   /**
    * The tested access checker.
    *
-   * @var \Drupal\quickedit\Access\EditEntityFieldAccessCheck
+   * @var \Drupal\quickedit\Access\QuickEditEntityFieldAccessCheck
    */
   protected $editAccessCheck;
 
@@ -27,7 +27,7 @@ class EditEntityFieldAccessCheckTest extends UnitTestCase {
    * {@inheritdoc}
    */
   protected function setUp() {
-    $this->editAccessCheck = new EditEntityFieldAccessCheck();
+    $this->editAccessCheck = new QuickEditEntityFieldAccessCheck();
 
     $cache_contexts_manager = $this->prophesize(CacheContextsManager::class);
     $cache_contexts_manager->assertValidTokens()->willReturn(TRUE);
@@ -40,7 +40,7 @@ protected function setUp() {
   /**
    * Provides test data for testAccess().
    *
-   * @see \Drupal\Tests\edit\Unit\quickedit\Access\EditEntityFieldAccessCheckTest::testAccess()
+   * @see \Drupal\Tests\edit\Unit\quickedit\Access\QuickEditEntityFieldAccessCheckTest::testAccess()
    */
   public function providerTestAccess() {
     $data = array();
diff --git a/core/modules/rest/src/Plugin/views/display/RestExport.php b/core/modules/rest/src/Plugin/views/display/RestExport.php
index 74a2762..65bce23 100644
--- a/core/modules/rest/src/Plugin/views/display/RestExport.php
+++ b/core/modules/rest/src/Plugin/views/display/RestExport.php
@@ -435,7 +435,7 @@ public function render() {
       $build['#markup'] = ViewsRenderPipelineMarkup::create($build['#markup']);
     }
 
-    parent::applyDisplayCachablityMetadata($build);
+    parent::applyDisplayCacheabilityMetadata($build);
 
     return $build;
   }
diff --git a/core/modules/rest/src/RequestHandler.php b/core/modules/rest/src/RequestHandler.php
index 0e9f41b..494b438 100644
--- a/core/modules/rest/src/RequestHandler.php
+++ b/core/modules/rest/src/RequestHandler.php
@@ -11,8 +11,10 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
+use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
 use Symfony\Component\HttpKernel\Exception\UnsupportedMediaTypeHttpException;
 use Symfony\Component\Serializer\Exception\UnexpectedValueException;
+use Symfony\Component\Serializer\Exception\InvalidArgumentException;
 
 /**
  * Acts as intermediate request forwarder for resource plugins.
@@ -59,22 +61,20 @@ public static function create(ContainerInterface $container) {
    *   The response object.
    */
   public function handle(RouteMatchInterface $route_match, Request $request) {
-    $method = strtolower($request->getMethod());
-
     // Symfony is built to transparently map HEAD requests to a GET request. In
     // the case of the REST module's RequestHandler though, we essentially have
     // our own light-weight routing system on top of the Drupal/symfony routing
-    // system. So, we have to do the same as what the UrlMatcher does: map HEAD
-    // requests to the logic for GET. This also guarantees response headers for
-    // HEAD requests are identical to those for GET requests, because we just
-    // return a GET response. Response::prepare() will transform it to a HEAD
-    // response at the very last moment.
+    // system. So, we have to respect the decision that the routing system made:
+    // we look not at the request method, but at the route's method. All REST
+    // routes are guaranteed to have _method set.
+    // Response::prepare() will transform it to a HEAD response at the very last
+    // moment.
     // @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4
     // @see \Symfony\Component\Routing\Matcher\UrlMatcher::matchCollection()
     // @see \Symfony\Component\HttpFoundation\Response::prepare()
-    if ($method === 'head') {
-      $method = 'get';
-    }
+    $method = strtolower($route_match->getRouteObject()->getMethods()[0]);
+    assert(count($route_match->getRouteObject()->getMethods()) === 1);
+
 
     $resource_config_id = $route_match->getRouteObject()->getDefault('_rest_resource_config');
     /** @var \Drupal\rest\RestResourceConfigInterface $resource_config */
@@ -96,19 +96,32 @@ public function handle(RouteMatchInterface $route_match, Request $request) {
       $request_method = $request->getMethod();
       if (in_array($format, $resource_config->getFormats($request_method))) {
         $definition = $resource->getPluginDefinition();
+
+        // First decode the request data. We can then determine if the
+        // serialized data was malformed.
         try {
-          if (!empty($definition['serialization_class'])) {
-            $unserialized = $serializer->deserialize($received, $definition['serialization_class'], $format, array('request_method' => $method));
-          }
-          // If the plugin does not specify a serialization class just decode
-          // the received data.
-          else {
-            $unserialized = $serializer->decode($received, $format, array('request_method' => $method));
-          }
+          $unserialized = $serializer->decode($received, $format, ['request_method' => $method]);
         }
         catch (UnexpectedValueException $e) {
+          // If an exception was thrown at this stage, there was a problem
+          // decoding the data. Throw a 400 http exception.
           throw new BadRequestHttpException($e->getMessage());
         }
+
+        // Then attempt to denormalize if there is a serialization class.
+        if (!empty($definition['serialization_class'])) {
+          try {
+            $unserialized = $serializer->denormalize($unserialized, $definition['serialization_class'], $format, ['request_method' => $method]);
+          }
+          // These two serialization exception types mean there was a problem
+          // with the structure of the decoded data and it's not valid.
+          catch (UnexpectedValueException $e) {
+            throw new UnprocessableEntityHttpException($e->getMessage());
+          }
+          catch (InvalidArgumentException $e) {
+            throw new UnprocessableEntityHttpException($e->getMessage());
+          }
+        }
       }
       else {
         throw new UnsupportedMediaTypeHttpException();
diff --git a/core/modules/rest/tests/src/Functional/EntityResource/Comment/CommentResourceTestBase.php b/core/modules/rest/tests/src/Functional/EntityResource/Comment/CommentResourceTestBase.php
index 87aa8e4..8b3ea64 100644
--- a/core/modules/rest/tests/src/Functional/EntityResource/Comment/CommentResourceTestBase.php
+++ b/core/modules/rest/tests/src/Functional/EntityResource/Comment/CommentResourceTestBase.php
@@ -280,8 +280,8 @@ public function testPostDxWithoutCriticalBaseFields() {
     $response = $this->request('POST', $url, $request_options);
     // @todo Uncomment, remove next 3 lines in https://www.drupal.org/node/2820364.
     $this->assertSame(500, $response->getStatusCode());
-    $this->assertSame(['application/json'], $response->getHeader('Content-Type'));
-    $this->assertSame('{"message":"A fatal error occurred: Internal Server Error"}', (string) $response->getBody());
+    $this->assertSame(['text/plain; charset=UTF-8'], $response->getHeader('Content-Type'));
+    $this->assertSame('Internal Server Error', (string) $response->getBody());
     //$this->assertResourceErrorResponse(422, "Unprocessable Entity: validation failed.\nentity_type: This value should not be null.\n", $response);
 
     // DX: 422 when missing 'entity_id' field.
@@ -303,10 +303,9 @@ public function testPostDxWithoutCriticalBaseFields() {
     // DX: 422 when missing 'entity_type' field.
     $request_options[RequestOptions::BODY] = $this->serializer->encode(array_diff_key($this->getNormalizedPostEntity(), ['field_name' => TRUE]), static::$format);
     $response = $this->request('POST', $url, $request_options);
-    // @todo Uncomment, remove next 3 lines in https://www.drupal.org/node/2820364.
+    // @todo Uncomment, remove next 2 lines in https://www.drupal.org/node/2820364.
     $this->assertSame(500, $response->getStatusCode());
-    $this->assertSame(['application/json'], $response->getHeader('Content-Type'));
-    $this->assertSame('{"message":"A fatal error occurred: Field  is unknown."}', (string) $response->getBody());
+    $this->assertSame(['text/plain; charset=UTF-8'], $response->getHeader('Content-Type'));
     //$this->assertResourceErrorResponse(422, "Unprocessable Entity: validation failed.\nfield_name: This value should not be null.\n", $response);
   }
 
diff --git a/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceTestBase.php b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceTestBase.php
index 024da04..67d3eb0 100644
--- a/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceTestBase.php
+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityResourceTestBase.php
@@ -5,7 +5,6 @@
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\Config\Entity\ConfigEntityInterface;
-use Drupal\Core\Entity\EntityChangedInterface;
 use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\Url;
 use Drupal\field\Entity\FieldConfig;
@@ -407,14 +406,14 @@ public function testGet() {
     $this->assertEquals($this->getExpectedCacheTags(), empty($cache_tags_header_value) ? [] : explode(' ', $cache_tags_header_value));
     $cache_contexts_header_value = $response->getHeader('X-Drupal-Cache-Contexts')[0];
     $this->assertEquals($this->getExpectedCacheContexts(), empty($cache_contexts_header_value) ? [] : explode(' ', $cache_contexts_header_value));
-    // Sort the serialization data first so we can do an identical comparison
-    // for the keys with the array order the same (it needs to match with
-    // identical comparison).
+    // Loop through each item in the expected normalized entity, and assert
+    // that a sorted version of the item matches with the same from the actual
+    // entity.
     $expected = $this->getExpectedNormalizedEntity();
-    ksort($expected);
     $actual = $this->serializer->decode((string) $response->getBody(), static::$format);
-    ksort($actual);
-    $this->assertSame($expected, $actual);
+    foreach ($expected as $key => $value) {
+      $this->assertSame(ksort($value), ksort($actual[$key]));
+    }
 
     // Not only assert the normalization, also assert deserialization of the
     // response results in the expected object.
@@ -474,10 +473,10 @@ public function testGet() {
       // Config entities are not affected.
       // @see \Drupal\serialization\Normalizer\ConfigEntityNormalizer::normalize()
       $expected = static::castToString($expected);
-      ksort($expected);
       $actual = $this->serializer->decode((string) $response->getBody(), static::$format);
-      ksort($actual);
-      $this->assertSame($expected, $actual);
+      foreach ($expected as $key => $value) {
+        $this->assertSame(ksort($value), ksort($actual[$key]));
+      }
     }
 
 
@@ -519,17 +518,17 @@ public function testGet() {
     // DX: 406 when requesting unsupported format.
     $response = $this->request('GET', $url, $request_options);
     $this->assert406Response($response);
-    $this->assertNotSame([static::$mimeType], $response->getHeader('Content-Type'));
+    $this->assertSame(['text/plain; charset=UTF-8'], $response->getHeader('Content-Type'));
 
 
     $request_options[RequestOptions::HEADERS]['Accept'] = static::$mimeType;
 
 
-    // DX: 406 when requesting unsupported format but specifying Accept header.
-    // @todo Update in https://www.drupal.org/node/2825347.
+    // DX: 406 when requesting unsupported format but specifying Accept header:
+    // should result in a text/plain response.
     $response = $this->request('GET', $url, $request_options);
     $this->assert406Response($response);
-    $this->assertSame(['application/json'], $response->getHeader('Content-Type'));
+    $this->assertSame(['text/plain; charset=UTF-8'], $response->getHeader('Content-Type'));
 
 
     $url = Url::fromRoute('rest.entity.' . static::$entityTypeId . '.GET.' . static::$format);
@@ -622,11 +621,11 @@ public function testPost() {
     $url->setOption('query', []);
 
 
-    // DX: 415 when no Content-Type request header, but HTML if canonical route.
+    // DX: 415 when no Content-Type request header, plain text if canonical URL.
     $response = $this->request('POST', $url, $request_options);
     if ($has_canonical_url) {
       $this->assertSame(415, $response->getStatusCode());
-      $this->assertSame(['text/html; charset=UTF-8'], $response->getHeader('Content-Type'));
+      $this->assertSame(['text/plain; charset=UTF-8'], $response->getHeader('Content-Type'));
       $this->assertContains(htmlspecialchars('No "Content-Type" request header specified'), (string) $response->getBody());
     }
     else {
@@ -784,12 +783,12 @@ public function testPatch() {
     $request_options = [];
 
 
-    // DX: 405 when resource not provisioned, but HTML if canonical route.
+    // DX: 404 when resource not provisioned, but 405 if canonical route.
     $response = $this->request('PATCH', $url, $request_options);
     if ($has_canonical_url) {
       $this->assertSame(405, $response->getStatusCode());
       $this->assertSame(['GET, POST, HEAD'], $response->getHeader('Allow'));
-      $this->assertSame(['text/html; charset=UTF-8'], $response->getHeader('Content-Type'));
+      $this->assertSame(['text/plain; charset=UTF-8'], $response->getHeader('Content-Type'));
     }
     else {
       $this->assertResourceErrorResponse(404, 'No route found for "PATCH ' . str_replace($this->baseUrl, '', $this->getUrl()->setAbsolute()->toString()) . '"', $response);
@@ -814,7 +813,7 @@ public function testPatch() {
     $response = $this->request('PATCH', $url, $request_options);
     if ($has_canonical_url) {
       $this->assertSame(415, $response->getStatusCode());
-      $this->assertSame(['text/html; charset=UTF-8'], $response->getHeader('Content-Type'));
+      $this->assertSame(['text/plain; charset=UTF-8'], $response->getHeader('Content-Type'));
       $this->assertTrue(FALSE !== strpos((string) $response->getBody(), htmlspecialchars('No "Content-Type" request header specified')));
     }
     else {
@@ -885,19 +884,15 @@ public function testPatch() {
 
 
     // DX: 403 when sending PATCH request with read-only fields.
-    // First send all fields (the "maximum normalization"). Assert the expected
-    // error message for the first PATCH-protected field. Remove that field from
-    // the normalization, send another request, assert the next PATCH-protected
-    // field error message. And so on.
-    $max_normalization = $this->getNormalizedPatchEntity() + $this->serializer->normalize($this->entity, static::$format);
-    for ($i = 0; $i < count(static::$patchProtectedFieldNames); $i++) {
-      $max_normalization = $this->removeFieldsFromNormalization($max_normalization, array_slice(static::$patchProtectedFieldNames, 0, $i));
-      $request_options[RequestOptions::BODY] = $this->serializer->serialize($max_normalization, static::$format);
+    foreach (static::$patchProtectedFieldNames as $field_name) {
+      $normalization = $this->getNormalizedPatchEntity() + [$field_name => [['value' => $this->randomString()]]];
+      $request_options[RequestOptions::BODY] = $this->serializer->serialize($normalization, static::$format);
       $response = $this->request('PATCH', $url, $request_options);
-      $this->assertResourceErrorResponse(403, "Access denied on updating field '" . static::$patchProtectedFieldNames[$i] . "'.", $response);
+      $this->assertResourceErrorResponse(403, "Access denied on updating field '$field_name'.", $response);
     }
 
     // 200 for well-formed request that sends the maximum number of fields.
+    $max_normalization = $this->getNormalizedPatchEntity() + $this->serializer->normalize($this->entity, static::$format);
     $max_normalization = $this->removeFieldsFromNormalization($max_normalization, static::$patchProtectedFieldNames);
     $request_options[RequestOptions::BODY] = $this->serializer->serialize($max_normalization, static::$format);
     $response = $this->request('PATCH', $url, $request_options);
@@ -978,12 +973,12 @@ public function testDelete() {
     $request_options = [];
 
 
-    // DX: 405 when resource not provisioned, but HTML if canonical route.
+    // DX: 404 when resource not provisioned, but 405 if canonical route.
     $response = $this->request('DELETE', $url, $request_options);
     if ($has_canonical_url) {
       $this->assertSame(405, $response->getStatusCode());
       $this->assertSame(['GET, POST, HEAD'], $response->getHeader('Allow'));
-      $this->assertSame(['text/html; charset=UTF-8'], $response->getHeader('Content-Type'));
+      $this->assertSame(['text/plain; charset=UTF-8'], $response->getHeader('Content-Type'));
     }
     else {
       $this->assertResourceErrorResponse(404, 'No route found for "DELETE ' . str_replace($this->baseUrl, '', $this->getUrl()->setAbsolute()->toString()) . '"', $response);
@@ -1076,10 +1071,9 @@ protected function assertNormalizationEdgeCases($method, Url $url, array $reques
         $request_options[RequestOptions::BODY] = $this->serializer->encode($normalization, static::$format);
 
 
-        // DX: 400 when incorrect entity type bundle is specified.
-        // @todo Change to 422 in https://www.drupal.org/node/2827084.
+        // DX: 422 when incorrect entity type bundle is specified.
         $response = $this->request($method, $url, $request_options);
-        $this->assertResourceErrorResponse(400, '"bad_bundle_name" is not a valid bundle type for denormalization.', $response);
+        $this->assertResourceErrorResponse(422, '"bad_bundle_name" is not a valid bundle type for denormalization.', $response);
       }
 
 
@@ -1087,10 +1081,9 @@ protected function assertNormalizationEdgeCases($method, Url $url, array $reques
       $request_options[RequestOptions::BODY] = $this->serializer->encode($normalization, static::$format);
 
 
-      // DX: 400 when no entity type bundle is specified.
-      // @todo Change to 422 in https://www.drupal.org/node/2827084.
+      // DX: 422 when no entity type bundle is specified.
       $response = $this->request($method, $url, $request_options);
-      $this->assertResourceErrorResponse(400, sprintf('Could not determine entity type bundle: "%s" field is missing.', $bundle_field_name), $response);
+      $this->assertResourceErrorResponse(422, sprintf('Could not determine entity type bundle: "%s" field is missing.', $bundle_field_name), $response);
     }
   }
 
diff --git a/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php b/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php
index 6d13b2b..f653f71 100644
--- a/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php
+++ b/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php
@@ -49,7 +49,7 @@ public function setUp() {
    */
   public function testHandle() {
     $request = new Request();
-    $route_match = new RouteMatch('test', new Route('/rest/test', ['_rest_resource_config' => 'restplugin'], ['_format' => 'json']));
+    $route_match = new RouteMatch('test', (new Route('/rest/test', ['_rest_resource_config' => 'restplugin'], ['_format' => 'json']))->setMethods(['GET']));
 
     $resource = $this->prophesize(StubRequestHandlerResourcePlugin::class);
     $resource->get(NULL, $request)
@@ -76,7 +76,7 @@ public function testHandle() {
     $this->assertEquals($response, $handler_response);
 
     // We will call the patch method this time.
-    $route_match = new RouteMatch('test', new Route('/rest/test', ['_rest_resource_config' => 'restplugin'], ['_content_type_format' => 'json']));
+    $route_match = new RouteMatch('test', (new Route('/rest/test', ['_rest_resource_config' => 'restplugin'], ['_content_type_format' => 'json']))->setMethods(['PATCH']));
     $request->setMethod('PATCH');
     $response = new ResourceResponse([]);
     $resource->patch(NULL, $request)
diff --git a/core/modules/search/src/Plugin/ConfigurableSearchPluginBase.php b/core/modules/search/src/Plugin/ConfigurableSearchPluginBase.php
index 3a39cbc..4f25983 100644
--- a/core/modules/search/src/Plugin/ConfigurableSearchPluginBase.php
+++ b/core/modules/search/src/Plugin/ConfigurableSearchPluginBase.php
@@ -23,7 +23,7 @@
   public function __construct(array $configuration, $plugin_id, $plugin_definition) {
     parent::__construct($configuration, $plugin_id, $plugin_definition);
 
-    $this->configuration = NestedArray::mergeDeep($this->defaultConfiguration(), $this->configuration);
+    $this->setConfiguration($configuration);
   }
 
   /**
@@ -44,7 +44,7 @@ public function getConfiguration() {
    * {@inheritdoc}
    */
   public function setConfiguration(array $configuration) {
-    $this->configuration = $configuration;
+    $this->configuration = NestedArray::mergeDeep($this->defaultConfiguration(), $configuration);
   }
 
   /**
diff --git a/core/modules/system/src/Tests/Entity/Update/MoveRevisionMetadataFieldsUpdateTest.php b/core/modules/system/src/Tests/Entity/Update/MoveRevisionMetadataFieldsUpdateTest.php
new file mode 100644
index 0000000..ba7e028
--- /dev/null
+++ b/core/modules/system/src/Tests/Entity/Update/MoveRevisionMetadataFieldsUpdateTest.php
@@ -0,0 +1,83 @@
+<?php
+
+namespace Drupal\system\Tests\Entity\Update;
+
+use Drupal\system\Tests\Update\UpdatePathTestBase;
+use Drupal\views\Entity\View;
+
+/**
+ * Tests the upgrade path for moving the revision metadata fields.
+ *
+ * @group Update
+ */
+class MoveRevisionMetadataFieldsUpdateTest extends UpdatePathTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setDatabaseDumpFiles() {
+    $this->databaseDumpFiles = [
+      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.2.0.bare.standard_with_entity_test_revlog_enabled.php.gz',
+      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.entity-data-revision-metadata-fields-2248983.php',
+      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.views-revision-metadata-fields-2248983.php',
+    ];
+  }
+
+  /**
+   * Tests that the revision metadata fields are moved correctly.
+   */
+  public function testSystemUpdate8400() {
+    $this->runUpdates();
+
+    foreach (['entity_test_revlog', 'entity_test_mul_revlog'] as $entity_type_id) {
+      /** @var \Drupal\Core\Entity\ContentEntityStorageInterface $storage */
+      $storage = \Drupal::entityTypeManager()->getStorage($entity_type_id);
+      /** @var \Drupal\Core\Entity\ContentEntityTypeInterface $entity_type */
+      $entity_type = $storage->getEntityType();
+      $revision_metadata_field_names = $entity_type->getRevisionMetadataKeys();
+
+      $database_schema = \Drupal::database()->schema();
+
+      // Test that the revision metadata fields are present only in the
+      // revision table.
+      foreach ($revision_metadata_field_names as $revision_metadata_field_name) {
+        if ($entity_type->isTranslatable()) {
+          $this->assertFalse($database_schema->fieldExists($entity_type->getDataTable(), $revision_metadata_field_name));
+          $this->assertFalse($database_schema->fieldExists($entity_type->getRevisionDataTable(), $revision_metadata_field_name));
+        }
+        else {
+          $this->assertFalse($database_schema->fieldExists($entity_type->getBaseTable(), $revision_metadata_field_name));
+        }
+        $this->assertTrue($database_schema->fieldExists($entity_type->getRevisionTable(), $revision_metadata_field_name));
+      }
+
+      // Test that the revision metadata values have been transferred correctly
+      // and that the moved fields are accessible.
+      /** @var \Drupal\Core\Entity\RevisionLogInterface $entity_rev_first */
+      $entity_rev_first = $storage->loadRevision(1);
+      $this->assertEqual($entity_rev_first->getRevisionUserId(), '1');
+      $this->assertEqual($entity_rev_first->getRevisionLogMessage(), 'first revision');
+      $this->assertEqual($entity_rev_first->getRevisionCreationTime(), '1476268517');
+
+      /** @var \Drupal\Core\Entity\RevisionLogInterface $entity_rev_second */
+      $entity_rev_second = $storage->loadRevision(2);
+      $this->assertEqual($entity_rev_second->getRevisionUserId(), '1');
+      $this->assertEqual($entity_rev_second->getRevisionLogMessage(), 'second revision');
+      $this->assertEqual($entity_rev_second->getRevisionCreationTime(), '1476268518');
+
+
+      // Test that the views using revision metadata fields are updated
+      // properly.
+      $view = View::load($entity_type_id . '_for_2248983');
+      $displays = $view->get('display');
+      foreach ($displays as $display => $display_data) {
+        foreach ($display_data['display_options']['fields'] as $property_data) {
+          if (in_array($property_data['field'], $revision_metadata_field_names)) {
+            $this->assertEqual($property_data['table'], $entity_type->getRevisionTable());
+          }
+        }
+      }
+    }
+  }
+
+}
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index d022f6a..c4067ef 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -12,6 +12,9 @@
 use Drupal\Core\Path\AliasStorage;
 use Drupal\Core\Url;
 use Drupal\Core\Database\Database;
+use Drupal\Core\Entity\ContentEntityTypeInterface;
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\DrupalKernel;
 use Drupal\Core\Site\Settings;
 use Drupal\Core\StreamWrapper\PrivateStream;
@@ -1834,3 +1837,147 @@ function system_update_8301() {
 /**
  * @} End of "addtogroup updates-8.3.0".
  */
+
+/**
+ * @addtogroup updates-8.4.x
+ * @{
+ */
+
+/**
+ * Move revision metadata fields to the revision table.
+ */
+function system_update_8400(&$sandbox) {
+  // Due to the fields from RevisionLogEntityTrait not being explicitly
+  // mentioned in the storage they might have been installed wrongly in the base
+  // table for revisionable untranslatable entities and in the data and revision
+  // data tables for revisionable and translatable entities.
+  $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager();
+  $database = \Drupal::database();
+  $database_schema = $database->schema();
+
+  if (!isset($sandbox['current'])) {
+    // This must be the first run. Initialize the sandbox.
+    $sandbox['current'] = 0;
+
+    $definitions = array_filter(\Drupal::entityTypeManager()->getDefinitions(), function (EntityTypeInterface $entity_type) use ($entity_definition_update_manager) {
+      if ($entity_type = $entity_definition_update_manager->getEntityType($entity_type->id())) {
+        return is_subclass_of($entity_type->getClass(), FieldableEntityInterface::class) && ($entity_type instanceof ContentEntityTypeInterface) && $entity_type->isRevisionable();
+      }
+      return FALSE;
+    });
+    $sandbox['entity_type_ids'] = array_keys($definitions);
+    $sandbox['max'] = count($sandbox['entity_type_ids']);
+  }
+
+  $current_entity_type_key = $sandbox['current'];
+  for ($i = $current_entity_type_key; ($i < $current_entity_type_key + 1) && ($i < $sandbox['max']); $i++) {
+    $entity_type_id = $sandbox['entity_type_ids'][$i];
+    /** @var \Drupal\Core\Entity\ContentEntityTypeInterface $entity_type */
+    $entity_type = $entity_definition_update_manager->getEntityType($entity_type_id);
+
+    $base_fields = \Drupal::service('entity_field.manager')->getBaseFieldDefinitions($entity_type_id);
+    $revision_metadata_fields = $entity_type->getRevisionMetadataKeys();
+    $fields_to_update = array_intersect_key($base_fields, array_flip($revision_metadata_fields));
+
+    if (!empty($fields_to_update)) {
+      // Initialize the entity table names.
+      // @see \Drupal\Core\Entity\Sql\SqlContentEntityStorage::initTableLayout()
+      $base_table = $entity_type->getBaseTable() ?: $entity_type_id;
+      $data_table = $entity_type->getDataTable() ?: $entity_type_id . '_field_data';
+      $revision_table = $entity_type->getRevisionTable() ?: $entity_type_id . '_revision';
+      $revision_data_table = $entity_type->getRevisionDataTable() ?: $entity_type_id . '_field_revision';
+      $revision_field = $entity_type->getKey('revision');
+
+      // No data needs to be migrated if the entity type is not translatable.
+      if ($entity_type->isTranslatable()) {
+        if (!isset($sandbox[$entity_type_id])) {
+          // This must be the first run for this entity type. Initialize the
+          // sub-sandbox for it.
+
+          // Calculate the number of revisions to process.
+          $count = \Drupal::entityQuery($entity_type_id)
+            ->allRevisions()
+            ->count()
+            ->accessCheck(FALSE)
+            ->execute();
+
+          $sandbox[$entity_type_id]['current'] = 0;
+          $sandbox[$entity_type_id]['max'] = $count;
+        }
+        // Define the step size.
+        $steps = Settings::get('entity_update_batch_size', 50);
+
+        // Collect the revision IDs to process.
+        $revisions = \Drupal::entityQuery($entity_type_id)
+          ->allRevisions()
+          ->range($sandbox[$entity_type_id]['current'], $sandbox[$entity_type_id]['current'] + $steps)
+          ->sort($revision_field, 'ASC')
+          ->accessCheck(FALSE)
+          ->execute();
+        $revisions = array_keys($revisions);
+
+        foreach ($fields_to_update as $revision_metadata_field_name => $definition) {
+          // If the revision metadata field is present in the data and the
+          // revision data table, install its definition again with the updated
+          // storage code in order for the field to be installed in the
+          // revision table. Afterwards, copy over the field values and remove
+          // the field from the data and the revision data tables.
+          if ($database_schema->fieldExists($data_table, $revision_metadata_field_name) && $database_schema->fieldExists($revision_data_table, $revision_metadata_field_name)) {
+            // Install the field in the revision table.
+            if (!isset($sandbox[$entity_type_id]['storage_definition_installed'][$revision_metadata_field_name])) {
+              $entity_definition_update_manager->installFieldStorageDefinition($revision_metadata_field_name, $entity_type_id, $entity_type->getProvider(), $definition);
+              $sandbox[$entity_type_id]['storage_definition_installed'][$revision_metadata_field_name] = TRUE;
+            }
+
+            // Apply the field value from the revision data table to the
+            // revision table.
+            foreach ($revisions as $rev_id) {
+              $field_value = $database->select($revision_data_table, 't')
+                ->fields('t', [$revision_metadata_field_name])
+                ->condition($revision_field, $rev_id)
+                ->execute()
+                ->fetchField();
+              $database->update($revision_table)
+                ->condition($revision_field, $rev_id)
+                ->fields([$revision_metadata_field_name => $field_value])
+                ->execute();
+            }
+          }
+        }
+
+        $sandbox[$entity_type_id]['current'] += count($revisions);
+        $sandbox[$entity_type_id]['finished'] = ($sandbox[$entity_type_id]['current'] == $sandbox[$entity_type_id]['max']) || empty($revisions);
+
+        if ($sandbox[$entity_type_id]['finished']) {
+          foreach ($fields_to_update as $revision_metadata_field_name => $definition) {
+            // Drop the field from the data and revision data tables.
+            $database_schema->dropField($data_table, $revision_metadata_field_name);
+            $database_schema->dropField($revision_data_table, $revision_metadata_field_name);
+          }
+          $sandbox['current']++;
+        }
+      }
+      else {
+        foreach ($fields_to_update as $revision_metadata_field_name => $definition) {
+          if ($database_schema->fieldExists($base_table, $revision_metadata_field_name)) {
+            // Install the field in the revision table.
+            $entity_definition_update_manager->installFieldStorageDefinition($revision_metadata_field_name, $entity_type_id, $entity_type->getProvider(), $definition);
+            // Drop the field from the base table.
+            $database_schema->dropField($base_table, $revision_metadata_field_name);
+          }
+        }
+        $sandbox['current']++;
+      }
+    }
+    else {
+      $sandbox['current']++;
+    }
+
+  }
+
+  $sandbox['#finished'] = $sandbox['current'] == $sandbox['max'];
+}
+
+/**
+ * @} End of "addtogroup updates-8.4.x".
+ */
diff --git a/core/modules/system/tests/fixtures/update/drupal-8.2.0.bare.standard_with_entity_test_revlog_enabled.php.gz b/core/modules/system/tests/fixtures/update/drupal-8.2.0.bare.standard_with_entity_test_revlog_enabled.php.gz
new file mode 100644
index 0000000..1977264
--- /dev/null
+++ b/core/modules/system/tests/fixtures/update/drupal-8.2.0.bare.standard_with_entity_test_revlog_enabled.php.gz
@@ -0,0 +1,517 @@
+RX drupal-8.2.0.bare.standard_with_entity_test_revlog_enabled.php ]is⺶޿Jݪ>}(ǃ<=&IIHBn%[28fʭߟ3&takkd?4ofcê|dab/_ld|߿~OK>?SHEI!Z-;-'n'UO9ױ=A᥂R=".	N qOVoۦwJ%Kyk8~ȟ߾uqpΌĘ۷he7l+Yɓ~̗yZo?_K`OH5oU֚5Z'r]4[*]75~mWK=e)cçOϗ'>C5[cyF"8RGwt(F0rdoK{d*	ȭ!O38:1Uae>]wH&f8Dvn;B $e؛XFCr CumZ-_EfgِڝW|+}0(¤Ob(\jk0IkZ0H[rKƏhVSm<CjA#O`9cd01O<Ei{&?՚gL2!ˏqOE`J+Ih*Oʡ(]yVvj\ћ(y{hN6[39DDWQ&bPOT"apc;oCK8j)mƪorq1DEg&jH)a]3tXpš,pw($:ںN:] fʪy87>YEZ[]~5!!c	d]?pcsK2YQQ$:}Nt$?9JrÛ/Ӆ=;qVS`@956E&׉GGug+!}pCDh':-jqp\q@i%OC#kίa)ܞ,(|T_֤|ɖZ,Wu%G@<(4auIXh#
+O	$ēOB<!nI8'ᜄs9Kh'v9fwk1!xIg&N:	uZ$pN9	skHTlb%NB;ǢŠZ)g<цե÷ꀶ:М٭Vˡ>Z$HZr9ӑ/ggu3h{֓[Y0l6QOwjrNvr$,߭xz%r:
+9.	24HSTNkUp%PGayԣ1Z|Ɣ'#h,fw§H1+
+nhQ֓.;8}H.p>]}=u7
+<(}{fha'NjaXŬnbših~Eg[XIw2fڱ`b^aͅaWM[b *J?Y^wm*nD+ڱ:EzK:K]0u<e?߰
+;cPFҭnCZ'M3lpm]&\bqs1r:1/ן 7WߦH<7TL,6Lt6UtJo3e[Tbg3.Jĥݜ4XFfޙpvB%'?cm58e!v?7ǢzYxx(8έTѿfi4et,HN@Z^<;u"!@02N@
+HAY1b&B<ZA@mÎiP[#Egvez'@f5Z6d80,Cgǧ|P$Hg0#=T\<JGsrPd̽ {P@G*4hwTsN,*6:KQo,p2'?٩F8aa!D&VB1Pd$+<SN"I87g^ð'Dg'̸u%)F*eNm0BϜgf
+~B-	)bF /b
+$B"BfgF&)q!l_y)gA:Uf/\z69b JoCUmdC$/4u5OS2|ָv<Rh]N3<ZYc	%R;Q5Sҡ d CPNkۉG\^sn^[`[86ȕ(hyN&z`ݠ=3bŬ;g3bEbX/0D*/_ʥ]~nm_̾\aþmR}+/vpN[::;P2^Y+TgN͈!۶?K>FtH2K!aQсB ug$bSY$Y9ht G4%{e/Nid/ 紮Z~i4%A'&0Flzujm.s맂	>aH Z89Mdt<K
+DS"2upIU.!f9lKn|3Wlk7sbw.QP#qY,vs##;5oqíH# -*u ^dI{ ;!PW?=m-/WA6'K]9Cr3AO.<zfDt/-p¡ο}5C B@^׀J$hFIS0_<[`|,HiuqW!TL5s2j~3Z/'4>F[9UfRL2*C4QS"( "ȲQ9	>-܁q}%LWl:Ȭq#_+yR,4;о\4t<͜sPk9(Pר_<}4!Ga0@P`eeQ:v&^t̧&]cx
+=4[[X D O68>nVq](KK͎K'aQ7|͝CN'@epu4LLYDE'p$Q..p9X)WJ2nթ9h^\w88B'46sd)d<_wqG'bP1eHaU q@RgdkSs{Bkʻv}s;7voW*(Os#n挬 xՍ2)uʸ_=	r 2 , 	a XI$SwˇPރ^B9\_]:/K
+}s/>o |e{,bl蠏)]o	is4M{՚640O-4p0ǁtpU\Z:8r
+PMIG<<h)C?5#nl\1jHR>Z-=^?젨GiXh3H~&n>\_wO3mn볦ɛ<,LC/\
+s+i0d?	r+>xz7"y}˰~PJB%:WE}AQʖd97;ǢKb	QF t1P$ VU$rw?ܕǊ(_ٸ"U\;3-ZVNٹ;+͜Fc;9ĲG8o'XWuE@fP?Lvwlvٓwy*mN~ulBI.43F0PlCcF\+P/@A*:</*~puo70rrC)[-6.]9VA2ڍmH$Kx8*$Ug5TQ(e;`fnr>nsWQlx]yгS`'[w;:Pa䭗U歇LFp>?	}ÍD ! @PV5CEWxPouܻLBмnoߚՀ1Ţ'wo#|pUۈcd |*/I^9$P\@gFgFϧʹ%tY»ΑR2PZzWbW\ZđGgh6?lP.*C
+^be(I:WlѻPe^~eFE͎	/SɋK&x]O){<}a{s#@DѿT 
+FBxT/H0tr_XFxy6lܻ7HF >/FnCAhXm$*F?2ne	ȫ,9 $ PTGLd=p֪AuPes[.bػkn~"gJf;f!4yƠ&&MiaBB>Ra-A4N~"DM怌:,G.ˈD:4jg1o:H;{CpF΋G)k]zJE0`a*Ԩ7%FgTF^2̹i=o"%mML+NuB[:ENk@&,;h/:yM׷#B7xᔯ-ݛX9tB-,2QRe~"1¹L&ECG.q!MKZyMqf7b.'*?iwOpŏF$ڼ*P)ypX%eB>l[tSWsILV+kN\%uز,˻BB@*J%fLM0tt2FZּ&^FvokDTA6	v#?VSWgIh{BX|~;Xs b~6h_|6Sl<yIU*>B\s|u*9vXP^	퇔?CXr}׏q2m)@U ,2 T3Lh˸*QK`S~^/xidʁp⎐+헆/uҕW%V*wGHApG0-΍pOMd9`q[W%' "ښjf GҦ.*z˭'DAcU-s9_I8_zT(]d3E~IK8θdn#_"3HW E P3,r|1}ygZӉ3Rjhd<۷A6pډt8v#vZedoo7Eakl#pW g6@
+a:/>BJ~ƵnXJT+`x
+S&,7u E!uMQT/3޴-f{ҵTwZz/=Mj8IRX.-D?UY
+G/N84U#*ր@ %bhNn<Sũ'9A
+5Fj?6Ӵvc*!l0SB̞_ ([fHp3lR0 Ft_|HOmuknt޶[ZJ-ǝdjxVQ'])cGZVU@C#*;6 >}nL	4o'Jv͙j̻g.HRD/1Z?//hhL8TuSm*5DjTǶBqDKWl=`t
+9o9V|5C4;`HH*-^]>a𙚁8)Sc 0fBӤ6*KBX+&nT4{^]i_VSMd2ԍs(vi5&+aB+]Pn6u;rOS-o{eJߦU{iLs6[;$j"Ux<>>oɗuusϜ&"u[vHSB]&36
+"'LNkT{U<N'Ʀۿ M/cL*{kOuQ̊)P9!֟bYDQ"nlƼHKfLRyyzt'+&Sq0+xh$Va08lgT貍ЬW!В=S$L!
+mk;η(4+lʵG"X[pjV
+ƧܜZ@RSw#G}OugH<AB2D.Qj.(_nQ(rIXaD&Qdj?c1mh__{!ڨs#ns-mr{aU2糌4ԓ0oDPH{ݸu'˕f#ɫd3X9sj;dsRʁ!s2@c0tlHi$*Pc˵=ŏdH*ш)%\zW]f
+B^+1pDPY&;Iyy <voQ:̗mv%p!A!Ӗ.U=]ϖnycb :UOAQvX{2;2MŰm`Aׅt8Wkx%mZr cg	v?Ȅ.y6+Uc~kܷ[mnc3h_Bj	!&y"sE<7OӷT}{X/ryhg=,mvjɳCYkYdha*5dbdc6AaZock0F-#~ycϋFMG	ѣg ɷŌ1ӈ8-zdc@֨ˢ'[ӶF]ZVxf'm6]D#`0hG.i]p@7NlHCq	!>Ǆ[B3輒Yܙ;kUbvrg &KweۻPy]ն慏_j:іLkbS8$uoyL,䫉l?B>g9He`C\*r4l.hqTM,n؁Xdʨ2bn9lЮƃڠƇI,Fmϝw[yg1wG1emˍ"Qo}s#]ƅf#e
+D3^&M^GP?lc?6P݅}[NPw\͘x`J?, /@m_au5UwG;]Kz}ʱH588~C^.SJT8wp)<>6.^%]$%b/VM+LW {BRe'qðD(/V<gF=Wh3kKN7~~yr#vB&VYf(BTP)_`/^.Pn b]S!MpY>`Q]7uCsˋ':ި|ܾގFDOA^辑'Y걒޹euǝѣrM#i-Wa
+on_OnqyWM0! Dm`j*RLlAf x
+? oك5*nOߚkFFwgE&Ao#-0:iX\gtG(4'XJtKzw@4m:nP/pc>NM>#"V1 ydSQme?e($--+e>c<ݎSg)wۚE
+~h󨔧i_T_Q6Ⱥn|qZbj/7#RXr',SO5zA<-wx+q#J4,eg:A]1Ѭͷf'ńu \[aygq
+b9f0@Ma!GH_nUn)1*s@T^t?;v&=VY ?tX'"7._㪝ohKNw7bHQ\d*'F5
+E4LSqujr,}ȓ˵lI-̧LF탈zd syF<!.inX|Ĭ5̧Êw{G7f^pmF0aTe]{m	*&Q#+Aswt,/y.k$緳.aiN0U	E6PW0@c4SFDB쬣[d}uf98I)=(4]\*1Y/*=txEܮ;,2`Xc؊\5hKd,«ă9UqH1,=<αAJ^ˣ~쌓3H,i|+[Wb"jm1fQ</՘ǎY|{m.fa=F2$n.̉#^u팆sNY],^ښ.X[>hPx]rU#zT	߷ZV䩵lԹUdր!#ұT]@-}ØɧlYqӟT%H'|]߽j`><X1/ ]]ǽݱ͚A,R`S/jd4lń,@>szOI*8{gJpXBF5~Grw+#AvtʄVv`ǏG[5!0*
+'txho?N:b|׌]v:iKknu5I,r\"|Qr\u!Mv]`@,QYQ'rN,ө;F^0`lVfgo0o7UEa&D iF@7	ׯʴg:-<!7OCPyhT+3Ӥ#!aNnSr}1-Yfus3ԑ ȅ;J*7MSb?äYܖtXxJsgв
+ܛmLm;#XVcX&;3\EB+6-KMYt2-o3$%)²X	*Iݾ=*껾=yI=.^|fu=>nƱQ,$4Aujw+9d}k0_<[{{Tr"yk'~"6h-P*U?r.>?oLކuetVt1V RܦAeB|@+OES?^P,>vFRqfS¸r2Xf}؜/n~Tۓjԍ|j}w~{AX\SLd MNUqZujZ5YIx\h78;YDK[}6o憎9%qn-yS ,S!&DYplf b#0ħxV>M7iM7+4S(Yw&)u~+gz:^
+sDmhu<\+ˆ
+[_!յ1p@ݡlFevp"ucZGkNTblmĆ*@H`Gs*ݐ@ݽgG[H[fVfed#
+̹[mkQ6A@KZۖ)ZC٫"dg2c)O=kYz{%r/Kr&^|rOȍtbϹ6t5W	-
+@vs?taԼ]Vv59PiԘa~%g?=wϱ7p][)
+˽3\Đ;R k
+4?7%l:Kt}DH+$JYUg!#?)K[sNCfL+')oZÒeCOfN[esBu/WS
+h+Kd2˱KGd\i.ɔ
+
+dBuw\7*%Q
+BR,R'h$WL0tnZ/F]ԞкX_vISWGI(ֲbq}LXQxx{nz3GCQn{fI\ica)2|5ZH'B*\4e(qD`Sl>;֟^	/yҾYzn	5ByzYzb߹W1|qv>faS\//A1tS̢|J{ЌCߛ7iخƽlЦ)_K/&&赗Ҷ^uI_:IJi~nF?L%zg^Hu_D, |u5b-C7|Tch͓z4&dEhUJ*~X{B{SǀFԧ)Tg)3>'ʞr&ǣ7]v!ʶ=x_wPcdQm_7F/E~ sbܣl'6"dJoLB[E0gԼx%A1Kӏ^5b2!P%Q:= >RVlMBdolc&4G	3QB_l;IJے2axi5!MgTzU^Rdd	1//$FI5'2wh]X]G9%!ɏ99u@:p
+yzQG.0?NӤ$OYZU*31k-uw,OJ*?ʤh'4{I٤'{ѓLEU؜"bW;.Q}A<бL'@(KY@*Uh"?²<iR2?W;Ӟז$fXKvy#xGy/]e2ڇ)*寣!+Y8ڱ~?g!5ᠸy8g/gHvQ9CXbV12 /@U0m<;D#)$)R}un8cq{߬iv/T&|h$oȫkC;o6p?dɔ-2u cA+"#(1Ή"˨rT-;[[Ըce_ oxݤс70\}j'(f+_6ŭ,d{H@	ЧsoS?yXڹ#̽x`%>l+q4U,}p8'SIh1m?B%4g8Aun28~e(CxH	E#"BH&`tr,VEgJ%{[/<XO6~uf*zX_tdzn^2'ȈPJ]Ĉ3	w+nxUx??AF@Ej+cˬLcSGxwpg-G*Ȩ-HTa{9vt}H[<݋e3h1+>7*6H	奓4g?Opr7J}ԣ*܂2<z
+M I"$rvOeI[ F"tqaiEv(=)~plj:.;\1K4ڋ+-|_bm>z=U*vpgY޷#А(3/G*wo hg:t2Jou0!G?,FSOe9v˲{Ѹx7xhKZe~[l?'>\>-.&S>8Y%GrLYWeEF0d9DCPFUy^*G:r#oI&ͦ1WfU7#uٿSzŎȺ9yCaû٣1H618j2 jB(!ᰄx$#ke`\;WvJWc2uPc:X\>^k\
+tБ]\- v0#7*+ˣqBϤ~
+A)Bk@$?c<S{(!/Sč"~2na&0f7`#R
+QIhPX=cXW-Yo]\_ZLm|ZݠGO̐9)[c(Dp JxA5us˩;56?	_"u-/;uu}9>s@8M^nj\B@t'T&i	ҍ^Ę;1oטERK0ݟOΨ4V!>5%OPzޯr!['"i2Rnbnaΰ>75BM򡾫#>e#sm#	W)#F@%@UsK:j/jCW^z]]Gbmt/du5;6f/Q{<tBoڐ!8I$l"EfA݁f=f>|nܮ0rĻEkݛF]]Kl+=oR);}gjf5+PI@DK2V@!V6|NI*/juSf&*w#SRZ=݌v{q q#K=г:f3܀26Wih34$̵;gM6LzWNۊ?|ٸ@5X,"U	PI(,ȐZ ;*P'<.+5_q/;"e@m3[Uu'xܞ+JUy:%3%W<[۬{@s"h1x ,P,	 |'<Ԛݸ_ƃ=zs|մ$6lygm+ELJJt|a~Zh}d9MdDLZdK4-u<JM:n߮X
+mϿgؓ:<+96op\(%U`9%=/}u%R>}LӪOoB/uNFwɆ$CR{_:jL0.NR#Q .@%3M1$N¾K]~QZT[ K鍖^AMPZIV{rxE9ωe6<\/@%n=weB-'빥?{9춻(kɐ	]TsϰL,}\KOBB7/Ho[#|L}ɷ|ɷ/h:˚+gT [6
+g[@	;@iHl#U'sV[c75]:[XFwD/Yݽ;NY^yqS'f%+K=F9؛-L<sIlk8b}J=dS1y^Zַ-}cKJ/F;#/l
+0 9 eS/*#@T{ͼ6v,uj7:Zkzn+^ hW	,|/-9GȅW(QV	󔞕EWQ8y(D,@
+x,/%BV.Mkuj4[kͤbpLy>菫h#ߪ ӝ~Kռ:m'jXR1OࢄxwvzeZ6renO
+w񺸌8s?h&ڳe}˱&Qf$ HP:G/AexY5)k辏:i[\vBO7@ozÚttM;m"bJe%Ha^?y
+Oj^fd[>?eb[a4P9	j^8dᳯwe2pjU<4iD5MfUIk҆Ɠ>3R9mI[IŃ|I
+xQ^g?c(@Ú֧FHZZa?*҄kDinDI7y3h^˞`Kuk(b$b/瘼TMO)ٕ^EQ*J:d!鲡!MGJma͗y3%oƛ@FS%+E
+~<4ny>aFH!$h EK;tVĢ(܍>ٝ,91?Ipa-X*kKԁH3ٜ>8:cA*	
+@/"AUq#	Fjo<].9:<RY^mഏ'`>lCO:I#49l9PxtLQEYPf(zo@r"Cvܳg42]J/}e[#6@UǬI3Ae&$ŧ،E6ҫz*K^!\n#=Vݵ+!9ɱƩ
+P$r*#0tDeI.x_ YI.)P-+=Nh1c;9z0XvҚn|SAOڼoe|Ѽ`kUz	IםbADǒZzaq2_F
+i_X8ڍ=ð0%!/\EC4- E@C@"
+LGmKU.cV˪;sj6BfjOM<]ݕ)[boAEFlrgjBᙀOs%ʜYWDjs# }ӌOZ,pt&Dy4ڙ(Ts(Jz硘o7q%^k+M/Zw 	!DH\U؎mlKHzZ'
+ug:6ژZAq{mӋK&Zr bP"q25 T&cY^AB=^^^j8ꥁԋKCwKLoYJ.FܼGzP4V65KԋK\^w?b؜ꥁTUzp-cB0wqYCg{֠Xf=b30T/FT[ۚ|iP$lVz%j۩y1KnrtC(z4t!Δ	Ʉ2}5`Em-Lɭ>>Vcc0Py[yT+blc-
+ǃ?r)r`--#QEq	7{R<7\{,=DRiRbq8D[WQ<l;O965M8ECw}+(%g,~S6c}7Y0vR@M%sܴ@JWez4Bpx[i*u+<Er_\cǸ!*0fTPSaBvspͭ#B݅^@%J =pʟSlP;o~@Rb[͂WtC	X6	\|k0H_0=vx?P\̒:k:+,|s6!EnFv3.a;mT=2yk&{uL"6L * $A%@â
+U'W\~*Dn{"u?_=<:X,K[Uܧ[^N\ꞽA:ĨIpP( YxIEőlC2Pd іCбP۾ѫǤYgZ<TΏ}hQݷ\GK
+NJ&,>/9,:5Z/($\\Ni \ז$	"kM	*4q2dx%V5٠B% !Wrܺʥv66z<xG@Gȟ3wxk2C8  xB 
+ PMET<ۖ̃U
+91!j0
+'wSx؄V{QKt9}[s7|RYwb<2D,f|!nXAP5L~
+"!B5x/&&%BQqd,6|ᘌ5!\-Vk-+qX}Dh9g}<M=4< "ΟܛN/}6W7|Iq~(Qj&BI:Q/>LG̶06S˶ixxSt1T$uG6r%_:wP6t)G6R͐Zaً*ʧ+a9Kg0B!-_%|ǅ=l8y~շ]D<jϊɜد$zר<Тr`fQ'@Ԧqธ"!,j(a$&LSm$PDh 
+ph=WLvz%|T.%|p*"TV~}j~@7)r;RE4t	. 5M$ER'<Ek*~\6NenRVh]shX#+wPam+2n5|r9ǀeKD3(`H<MDd]elsjAq>vu.jU.KeRvc)ЄQ! 3$i9r@4@$pyAQlٯ7jՑ4.lJJ^R+ZT;۰᮴<ۥ2[ל 11LHAt ( RDy!.9I}\r<_oBmV%PB"-joWzmd{gCvgMI5@1u+A54[*Q]!SUTyYRRh𫆠4C,u4+\>z׺AB^	S~'.cfSS&CUʛ4/N$_ѧbv5Y*5=55/_[> erk; 5 q=g|TL`"cXցBT,A]֓Upٹ\#YmP5]M]LvwhzY-bɘ?^zn9>/)F@MjBMR"CfįGGw\-v
+NV LA{|nxgC~>k*$X:4*
+$%mv8m@TJ7!	+wC$fxN88\0pѿ 9EU&dUB,Ej@S0)O?*\6gJr8OK: \ԗq8ܮ^ߥ.X:|((r@`" <1Y1U DtPᗮeA޵(NIXm*~)Wsl-maѩ>]HC堈 }ϙxeZ~@tg,}$
+
+īAO]Bg_h쵘#1	`x9>[鲋͗8I&0Kv&N"&83Kљw"$ K	COPܬ.~ŏh
+3CV.@(DG
+2tMP=}>e]+ Sͼ2noCoԽrޟfi0ڗ}yu_#aހA$Ht,!~ {F.SUuneVŗQsl]k`Gg}d o?5`"[\L}LjLSy@=S4VJ#%*$.:dqcK%{fof	#@1FՓ` 1JQRjtӬH|(bMe]hm ܞҘkN`3	 V"8=bҗڄyRDkiUՠ7Pub"Y׭(/?n`s_V;2ҐG3恰&͹lzqc-k
+ǝXۜUa*4;n!&+*}غZ6']}aXV͑Ѿ2ՙ6e0RT䯸A0UYPY96luj¥ķH# >^xꜾy(
+Z:n
+NPZ6G+/FnvSHoLF,u[l'SO/ӚlΜ@ ).;yEv0*/K7S8w닓I#WrNz*GDmvG}t%kԍe>:ٟen+)rm=z0GhdO/'ݡҗ/Z)BH5Ǚ )2O;%5<q}3Nwi3c<F.fY|´]M5,gN76Cq9(5FƼ%dJb͊g~dEǷT.#{&PˑXO\GRWuTylM-\+(qЄ(O'0aa5cVR_qhۻdUv>EydAܟLoJ|?Y+o$c*X1IQ#ˤvPr&8cKDQѓ"B{GmHQ)gb+]
+Z\XhAUo昝֍)$"JPCC`RH! :0!'	
+ڧE{WCw|خK{8hxUTv99\S{zj%#/l'QTQq:B^se~u+"	%ϩ,̓}'H1 dH@ 8CEZ׭~gp}/۸䛨݋f6lAė7Nڭg"I_.?ΰ$˸f:Np(8EQE@eEӤ0/hlp-NczWx VSܬ͒>i6U)ot
+jӎ%F$=Q؜8.Kv;ZO1xdPЀI
+4`M% .ƩЀtǜ)6G˛a^!_Z`l;KNIKfn1=W6+H2'M!Pu"e.s0W-~6Y:Ҳyk^'}hOF[>~I=vs̡fJ1lFI |\j. ?Yn3rJr#.ǉD|?1XYI"n9]&1YO8zԠ޻ǿ~ٵ|ӿtl!_dֳ酓g<<%y߾[GDYT:5NGj1-"׾˺B\va%3*'`	2j?Ǘj/rgIG+
+--̋ctc`PjdH6`&:b_*J%Yƾؘ6:JUYYyO8/d_	J=1U{I~?d~[CNcf復!kTdE'ӁzcwoOw}bpg_?D9MUH8P䅹VAHfe0]
+R{BR^壔Kњym2:nj9={ۍw+M6uk6Z~zv]iS l,1]>;O#oĢK7Vj]܄??1~@GEwL <ڲr%j`SW:? pM;3	ɎLÃU;w4OۋbF٤)&JJoY?%qo2{WWAz:ݽXtW_}!G\m&m#x1jMޠ$I0'<^}V&);+\"IjW:/ycrP%Ȕ8Mgy]Xp8$IڲMXUVǮ-ɫK;ִvw8Gk~|׻:{eӎz?[32W/zyaU	su D(IjNb`,k!NӖf5oxqNC}XǀP앧4nwNnivmͪ{i4Ah}JGCXl^׋~p$-n`?O2XdɚcE{6#`պIT@Kn]2u=vw'lh"9KBݢsyًMU+|2ShmΦ[nO_Q:L;۩'Q?I[σ"72.vp鰾P ud j[hAI)D\k>Ss\7p/n;wSݺmiuC4z4kR,7&r:΁ 5k2^o]ΚQ䖴~mKΊ]Sv0j]H"L:F<re[BBM6fpSqw3|<f&]	x4D;SК wp<lS_缂i.uZ=_jU.6¨ E=>'-5 eĺ'Et 4Hh=IǊ0mVt68n&jc/}%|!@sKalBf$%m O0 *-?t!pvU^Y8R<Vdg"0 ,)fE5-'#~P`Sݍ"qƐDLqLquc'g٦}e\1&CRn`/\-`C2@WNL Dh;4	Pg}16O,!ehD.m07(dL=T[O%`7e D	3,|q)lMԟGΌ2k<GBxi	3zLs*%Ԅ5ס&xr7{1GE?M	`C.%C$^Ѱ wI)J\ ^W*҃kRXxg_ HmfHGCl].O`5H<6`Ӄ}GF\{IJ!e|PLx/::3_亄OoD\0ktsqR!po<crHdŔ>y5b/j#I`-C<;&N 我=?$Խ Gld2`Z2|/2ڄk x ^ڗ^Yj>G}8:]pk3d;\6^: Hy3:khxXToN*?@BJyk^mSR
+豧tv@PD
+=fu
+dPT*fXڟyg=Ka9U"gQ<$ud1cʼ2D$y1aMپ_}{e7OO~/i퍍û_q\"<pMfإ`Jn]{"!lկ&LZoI?ڨ{4NGzv[3x#J7DrW\DCl2l7qS04/'xOE$[=SYHX.\fMu QOR㏿n'
+pAMjLZ)w&lG7u6/ppxv~#dfƘ0k9sZpSaNh=a@32>NȦPf5\Z{rz4ܜf@._ܯ)V
+g+f+Q}5]0xt7	4zfH2`Xұ4;$9dCx!A)&BBP~ #^Q 9ΡQ3I1Oo8O<34\t.xr1@0IPNV*sٸ#7xɈ+0B2!!&TaEv c6qsps.V
+$J(w6gע&P`/*x5B鮫]lo$1`|	$ϖ p"k(G@:^5U'tT4,~q17$e1416RT%U#aVBUNl)џ@7M0	p|q%>V_Ē0Tv284.뱌sgrxn/Ua,$&>_/^ܑ0 l5A}EQlڞe
+`h5%߷	ڟbl\ZnXsA$-7L{a|_7;wc}4u?7;wnM~o7W?zmvЫ:ԯnjNӶ״~ᤵ3l_]{q^xɱqt|H/q*kxATĀjS/)YG[GA^GI<mfjt~kFMot,8лfN{Em~k>ݽ~>q̳oV4vr7{Oq!C%AnlW@ZiMk7cN^fDGE5.PXzfI LvDCMeѡu-`>m,ʈhM|]@J%v7jnSo:mӻnpcW_mUѷ]t~=;
+=|MΆiҹ,c
+*,*YDyȠdl+jlTMao!Egae/N>HRvK>r<BU,>@R+PFbyGRvooeCI͢$%E3|&TԴnYg'D+Fo6Nev8:FUdoɧ?t[IJAupSѸtj޾_ڽx4_KQ?C赃elUr}3kzipY"a2l!Nt9'B̻ (ro.[8dxh**&r =Zam*6._	elSۈz)۲%dKMlw"5$h@Z1l<ƴvC	C?͈]LUZE/ܓ?y{p}	e!F?f_?,"~@Y~E7cW>X,/;#Au'S~R<y;9w/*d@v@U`D6l.MHLNȌL3>y!K~kVB{'d*0;8!-E?5;Ke
++DvpDػߔ)n:q;טN۵jM7_v7炘 ۉ%fg]ҵhUݪ{]ݷm;4+gױiUx)SƱCeY0lt0!9${3~oQ:6-w{
+vԋ"-l쎲e楙p	{a(OF4Wbg֍YMb"钟7*CALCF2EC#"+jX@q`	=Yqqp,QBMUN)ϋ*T# ʆhxTp,X˄+%$ȅ:rfJ	C_)U1>ψ$K'\	(x!Z\%%5u&tL/	Ȳ's_,De<y(Ƀ6 ݊N֡9jǝ!Bs&FjN6 RG
+ylD-:a*-#eľkr@%xSx)UcJ3$|!K1s6=2Y 'V&cT+rx5`FBٙůjE!=]I[&DuH&=_0vK!0PZ>Hj@FM^MK_&$3Ϯ(NnJ^8Y%9lSxA0XJx[J*9ҫR2׾o+zE-W|DFDȔR }ѪVr3FM(s3W\oRk"[*@9Pz<OLISDM~U,ONlM=R<znqJ&rR8+E	4ZBrQUa@VQtBeB;NBG0ptnDz XoFv!!YLmjBqkm*Iw-9jF5Ū-ʎгIe2QT45Rx7vܣ<D6_42v7kh\WV%|fU+[UJd2
+4.CMj_K?tՌ&>-
+7/@\&2KW}WŲ,)nY@8/T3:OG 6aQ1ƈJ
+)Dm3SKkr͢	E~@lNr!MDEm*7vQ~`bl4Sy!OlT12nS,D7+kAE$KZ4bNT<zP0Vϳ4>-B>0\dy/PB)ٖR1|5`Vd̫K)3'tɛۢr.`NNF&Y+n{+Mjg'Ŷ%F!"WM5!T,6D-$)0q?G*ݲ,V	RK8rk#aóRKlD-Ga	VS55j4[z:zq:z7װ-7ܼ?73I/fQ8pN?MVz.GSh<񫅁-zH6M+dy螾D.}OxM2G7]s_t}Sy|8K-K7y|z	!~/}9J>G|0y  ?#`OB#wEyAU^
+Gc%k<v0*Zϋ(H	h	OpOٕϪn>U(Ps <!0*nԕB$7̐L1y)6d+RrSTY*.rEz(jwJ51޼MV#h+nz;9*[ReF/ɌIE7~bd
+-(QVHM%xMsm5-CĺeS*OC|2d-Rgn`aS_?|qo1v-$v޸bRVd_'	 QE5,qE>ٜ܀DY ՂÒr;˳Y7Ĝ)5SbCPUF{8""vԗͮl\ۂK,^VK6yg;5,|hn@&.ˋ3cUb0/L٭`R륅iT[4ߒL_:LCw5wU׷pRcDx95h|jQk(%o[,+k01[AT2}T+Ti5fgFM~%Uu5-W!7 k8uptu.Et᧯i(9Ѭf\a9؛˩7-խZm
+:VJ/<9,<b^m0j2<~'\]T)h֗3Lf
+Juy8J>EHSe<USq*YɚVȮAvԈF[S|11-cGL^ôHT>\vfI_e3=8Ξ{`4:ҸV2Ǒ/-GEPV.7ΌMOUlTMߦtVsin:MeyFGxDǄn/07<=dPTF|PNw
++쮴eF%2m`pܦwȀfi^CrxƞMӌO=E6ͨUMP|h*R 4hlhPJcVm=>#TW0W3~AO#wx\,u\륮6c:F$7bYh'||x5˖LK-WSm]".UcUI^0G˫Y55oɫǗl{
+Owf.-F!{x88HQuoxL=2)?S8v9M)#oG@*ܓM53I}cC*'qSYRaz{j:&EfR^2DHHAP:q1JK7\/bD!|/⻟n~Oo]X}K#%%'3{zGIb{X%&*K~U4..%Mb:%2bZ1--q${u`4Gj~ʕi6&]W`W}ؔΑ5ԝ\@q&>Pe+꼪p7_.KnQA|T= }l[YBIFK%*-k4.Z-9a5`UM1S6eupfPynCb*F3ggG3݁f:AQ_ey5wꍔݾFC0B	q+.\3|%M7.xW՛zi`&K'}IN#)U ؍ &i"Dd-=ewɽ(כi<jfB*[܄l=ѡs^НO:N&E$5ϱ7q~tv+[cwe^>vWٌkWs]݇NCe߷FU;-^iR4ͼMӘUO4?a䱩(L4ϛ~@ JߠW7@ߋ^BɊ`O??jdvH4]?#(RE-+R7JP+$)ؽÕ?~2~._ӟ7?~z~Dן1˗UhOKF8sHўe{6LF;̄f6l"YDWz!Yr:QrX4<N2	C[&_ɟԜ+޷?cJ%Yay	O6\@7b#]U_oTP8(j+Wl3E~j%`ެ+f^=N=YɸOS\/,//}v=_Q-5mܥN疳N'Grnv]5r{#9aᭌtכZiaRf'{=93a]%t& yLF *?%9ܲƽ꘴l=V!;WO|ldd]j>=yH5N%>ec}Wm@^We֗o=f_{n'i]{C0VXSqXW[Fet/SV-	o	3lI.[7BK'KT~z=:vSr*>z|qЍ
+d7gt͵)/YFfiF,sGg%ܼ%(gO|F>a8U&\]XkX6ʙX'/Vs6? i,);VZF[:,mfNIeOqmOeEvO6}fpT<Wm}VѦЛ7]hp_9DэwJg͏	Ƅ|'Ȥw/ŦiNaز&blDP-F&1`nV~F`Ѱ-c[KsM6aJqQ$zpOpȩ)8X+伻\+%jk-i5ǮqE8F|[VlinWf囍J\u	[1/DG}#SܟH%-`0aVfPP6dC^l7x\Y$6̠sWB<_O%
+uz&ibSO;ڷ5:,VZ
+Lct^R;Re~K8z3u}iɐm6:qai}ANDn,4=/%y/_._]OYO~x-x=KZ}U~qe$*f-o?z2{3Dm~\[6C%Z|-m~#(z< {k+W1> Je8~)YX3SEn;oo<an (p{̫3Sn;kdJ}k)iwZ(Y,0}˶zn28Fw:"t/Ud^K5zPmQSaWe{JZKd3FEJ<Dqm^(<C9BVMQ9Aw5]hQS{]3N*_/g^os1n{~d
+r%|% >ב߼apq`4ܿrwbL>!>	^g#JYĲ$|Z[R #N0adeCۃULg{L}dב̽~eϺV\O6=C!vc'|e;8wC'/C<7\zvw{7}zÛq|"Rg_{vN4},5n^[X2>CzxF=ul7Unl;6؛'#t79SKxݠWJ]m񂽴xIcSdߙiX{7.7~2A' zd_n2OiTL@|8OE/z<P4l"DH@8^~IWWϛy?%Ϛ2St_*A^&J6rk~yݤp_%J!|wvSvIKd5][Yӽ)LSYD-CW5zŢiy|Iy<|^#S®e49YGƫg8K\nfqcr3Lpbٌ΄3GMmq^Wp^D}w_=.}C#F$à@NMem~%ZpD!JXIJ{}3fsVa.#7E߽
+#;Zֻk$<,65yu!Ыy34)b	wxD%Y:
+挕Vl[zY3o	mGvDKA[xg@F#=Rj[uen7!V V'W}S6#nG `v7:%e+$qb\8e͖?#4 :8Ƭ1GgM.Po,͖綴A2Sukf%lg1#GwxT%i:*JJTv*1:Y1'	铓䈲E]">I^+(!\#xpSf]II\e03Zy9l٣yRJ+.3n롋QJ:cwӁ7mhh/՝TڹFʪR2~2xd&.:߳^Ȕz>E^跾2ҫJVݥ`[92%dnCj~6*Ѹu:HO2v<>}5ڲ=׾emknW}"5}Q+;ڋS?5W=5t5d7RWJJ3"OLe`u]w}BBFcf.0@ާn@G-B 3f\tSzR49Ğj{<n_9g:ZMGE[M{+;圔5)+ SNÙ^<^9=Q'Pkbդn|FX쮵Tʼk'U#:4cAsJ}c,N}޲Ze&4|FCwwiVeJ¹IIA&r 8CJ&mFj[u.ĝqd<DOp=?':<%<LW'ϷX4U$bWG˒w7o ژIl~i}SQ"Ā51MK~<
+UT^𸢆%0{lix2:hHo-lb^	9]Q$S<_4ic̨	)[Q!Dީ#DB-5},ѵj
+{P.-KDE9zi]l˿iL..-}x9!4[7&(ŖHG4JP9pAA.(8ě.(9.(ա[8)_ѳaxqNqNIQ\ky"'i]^@+t3@'=]o6On	E:
+Te>}2qٟ//^wM/_-yw4ё\!3TW=zo=qUef%dlɄ\:-ZˬV谼Ex
+ut
+u;KUT~g*.˔Ψrt%N2B$el
+j$>hq!vmI~m~3
+]}W-jjjfL	(l4-WHd7W7ڀ6,<]|gmǔgQ־-QX᣺)BVdBDYYdwfk<uqmW5,=i,u)GAϞ끈^ɾ.	s ͨQYXٓX1' S{>|9>5T
+DFo?`4-'?|?>˙0ylol vTw0sdCυ1v@ZEs h۴GurW8dk=clt7W'u-9+Ϗ_vX[ϟmv-udQä|xLi'!Rc(]ҼW|b^Zi7OiՋap:׍lHz%osnx2F6G^x-"Oy^:c{n53>q wF҈zaROW!tU-=odm+Y&&j|01Dqys drd>ftIH'u}BnLwCuw,^#lda'f')uv퇾܊`mV7;۷}6f3~̊;pjek<с/3Q?tu$od&ӷpIqu]δ#\"cqZ6c\HFNenGa{$I|=RopGrQXp<)X`J3g;/2f?WeOu/?e~=auWjNL̲Ԭ_+{f3d},h6rX"[o!oaNs5}x#e@Cs[eلk	ںL_;8ɋ5QAٰ
+:[Ʌf]yF;Cjg{=߯eW1o{4!x$`9&ģM鯪`|n=ʩ7}>Ky;By#=ZJ;Utw|\e-Jqw1uߨx%''vB;#ԎPhv*h<B'/Еf$Oͬw'N@RNJx>JDًm]k+Yo[E/n(-JF\?] ޮrC+B(HEst=K=ZVgj*-ķ/wǣ{3wgݿ#:-4qؕQeWGiȠ'804ߊ(sF\IܦZ%S5|z_Ӻeu,k#~{CG} }hcK3|Cԡ|jAbTð51qcP1v=lїN!V~Uadf+VAb^y`%4|2>E{@O{e9-[ݮJB+9#/(*ǣL-FRU8R~K_IvI,ܴʯ6nq͗d=vϼ#ڝMyϵ`sM18NA]0lJK
+vmΧzB!mWU,#/Q_-W7@ЃYY$NN	J8iA/S7HMVnoqvF1r/ۢzի~/>U|s˗_foߍ'l=Li>Z<0hXBb |!2hgW+ZjcIN[ؗ<y^=dxl.ߪے(5YV->@9tp75}Bl*Sr_oF?\JPToeNke׍8@q`zh!ceA+CQKܫx~BJf%ViiLr\`
+7#[
+eq^3=_fb#Ԋ&n;ƉnuE3k,Ds9sGch2}Mךe+_=쩡%}znU=\'NѧqѭKeEztQך=Քsv:c(%-fj[D䔔{Kiarnf{S4KQӎK7yM/wt??Ufn0bWk\T53$44wMlݨod)*-pᖬ1yeD
+;iQDNpI8^FpAC;c@Xo^|onOٗx/~o{~,R=3fJ]T7̼mU|xhCV\Z b/&ɇn=YC5ͰZw5\:3<ߞsdO=lZQe+t7[%J?>bu2/|/~DK*GJIKIcCA52}$zxj"לnF HnTLk_
+ RPMXnk2iACOY[^ZoEMivy%]csgƫ=.0q½mm݄ˣMUK&(ܣZ+^Sہ27Tϴ'KO}m*ټƬV3fZ]rVÔI:!sŋFAQ#)<U150o>2z%r%H]<J}@j>VFb~·"
+Ҝ5!Ak)e|&>T AhG<~,xeȰ+Mg	7><7mᑀܒ%i<Ϡ*k1WIgbĶFl{223|jc+n[u8`ŕo{Ʃף%D3UHl/i~LFS:B#栗
+X'dWIy`XGSP$}ぞ[gbqxx	 Z-=K75zZ nFaZ cӌ~#aF%k#}|&?Qw1pWLCg
+QyPODLZ4b&];jFջ-U	eh,[I%-G$0QvMjQmUX 3\z3U$M&*+:78O"[ofN[#DzÃC<hdK|C&Iݺwbf|/
+1`?Ȱ-/j!wL795.C,G
+GW5Nc0<6y3#TUy[u, T2nZ[zUld81;8ˈ6R
+B|uhC>{&)7g}ălx tH337ѮO匵nwmNNnlscklos&h!ض{Q#knϹDWcpTO\GncUw.Kg똵RF׶-ә܁p:Qg@wp8^4u.qÏgy>`p,0E\iuqO]_<k7ÂWw&3*0]1] \-/萞VeS!/Sȼa+k3xR,{%D*K6&i_}uա^D5샂D'go6M/jˇqP`{l(P}Öen9YLeRXOt1yۈRUVSCo#QH󷲁!ߚuC1*1ujӈC<3Ӭ*Ë
+ek8R;>"JO4F|2al'l
+6*W3*tWlIYY,mAiK\'~A9IJYEbh7J=1cʩ`*2J]Go	JHB=OʔT'SF~죍Dڬ7W|?>xͫݟy	~3O|ЏW38>L[uo׫m&6m lM?H
+vf'&r	"_ڦb6͔sTL+4UkOzN4Q}]{~#yn֩j[K}LSqecO0ݮ(S;S%<y8!ŒyhA=
+_}\K|zVM15U۩JLyO0RSt[{Zsu*[f2_TPz)?ĦOjvOUae\!ynL=wWo'T(ά,7FYI]uM
+vF>䴬RO]-_#wE4B^,wӚ1)}gf(;;RN1g4&LQHQ;2[^p7*7USU냁lz+#DohP%fN:+11"LrN>)ַ}@:|OTq>LqܧӸ7^-3|_T"Kw0ЛUhL5'Yx(m<d)4^A*nw<dyҞpb}*5f
+'OXwOJ4wcsk-ha܉*஡'aUUoܩפ:&F1FMGLջ#mЪ9#g3(DFkJ7>.EuƮ"Z׹>iթGZ]E#֣*>w=z3ejfOjDsҥ1F6hF@ydV0l^LmO4Lqso>@TSGf^iLu
+Xd*}c<mn3U7SEhhB
+*nӭ!LSΣyB3`}VƃVZײ2)$FAS;9Ț)^VFƶEPʤQnƪK@HNUʫpڡ-*BspZjB8RK t!qj{u*|dojT+Pm]vׄ]vyfx2~^glԸZ	cE)j{2x,ء@PNDd~$n(KS\IqEQ@q~^;yb.|m|ϲ?
+deu-.9Ag&=Xd(fcVYv[(saK(wCa&OjV;3P;տ]@&*s6*suT>?{g$=fp$OxY>Q)01SN0|QISeq;U7^5|TQy>*{t&_=pP8N7M (jjͶ;%%m}bڑ}35)L"JpjKZgkr4/Y	bS7bMt"_1=52S5SQwcVPjjOMRo]Z^RSKZu^%,zu\tvPAB+/ɨ R)t9k8&w5ר;W1eq3Hi#6FACU!/*CsZ[4OhF3U?3TL곏5YU3kGLXi7DyLXټ8)n֠
+Rp)mW=A>-Vw#-hfO}2_\LXE</KpxxL`rQ`w_՝@Zx?Y֦=])oWϿ}5@Gzk3<0-Qa^z>?=%F{x6&ٿ~wӠFv5NقAщ͘0nf}&Z>7&Bnc7NΩ|>'mdf>Vāt><L?ηϽIJDF{XBwHppv v)_PGQzCibHQpz7tL3sVfPI{Y9u}Gp4pobǃ!Acpy⬹2]9.ZF#Q>'
+@e39(<ddLc2o0;9/hό&,U8`@dnչɕnIkdݿc}XNԕ3B˫D=O7Ͱ(NdҾK?[}q<i6CO(E߷ō7ۗZ9c z}*tf~XzzqJN	U4ibmĶ"f_8+Ur~Vr2o> r<wzi}?mqfOW67}HZ5_N,vARɉƹ0B4T%MYuvI2%[FS5{B Vմx\I6Ja<ya=C.J7I	,r2NQ\W
+{SϞl>lFtI'ϣ 2.&N	q,N4IKQ\` X/s`Z}1i`?NI,s4,3,$q`bO'R@=9M)Ezt"QŝKYcAη2!RAq:IT`'PA Fh"zuڞiD>Lx%NG@_qLV)$N(si~fl1\g)ɒ2a_(*adnG$.ʷ.Y+`_ X엱42:lr)8/pLB1r( dyBdkr!<beE^y;AX0$MyN0y&is<SiQBIdY;1*"BbjKRvpYiḸ t$h(";둜u
+{tMg(w󢛪<8
+ 炬<NST8)],7ub$H,ݐzsk".lo+,"ȉ(\ucI=@r(Mxqp'.	ʴ3Ix:}YsTee/zdm06ԋs3 ,8.s,krCexu7P5So1Kgxf#$+(ikӼȆPŀ,HC+\#YDO	W	cJ}65Ed{i{/k#s׌5gQ)Gl[slj91n[h2j3?ĩ|E^X_hЫDnatm#ZJeS
+1Ɩ2h1l89 VDu$>p~e99.B8.p$(8$֮<e=.- d<s<M,#eNNqþ , a/sb˜W|OyWN`2"F(@N^?m!`":N	@Y"20NwINb.A@pS$$6}/ `)ADIF&~G> Tn'$aDV"(M2 tD(vK/"&pq J"q	BZ0L<iI8'F%L~'-҉Ir^/^#Q{9"r)r\ M2?$})x~QdVYnn)?g(8%C 9II:8/3\ʮ)css91Un )PZ4AAVtC!IMH F~(g@R	Erę+Sv=sIg8 8ù ;Q{1`YrI{Ӌ0q$\ع~L"IZ^Yqva$	,v#'#oA'O<OJx	5d$n?.ӸąC( dA)y	J8w|ZtM'~a`&cOc1ɼ-8}C?i1"u $8IInFIO2SKFN\tC7n|gUޑ~gb@b'?~ M=M=ej1 Jd<g9d	FyKuc/~>vTP6 62q=X2+P@g={"yJyZp,/>L}9l+(=So74Yy7s}u
+2`O\ Jsz{ςĉPcrR`P0nkzY:xac8i#q-[8'A(wn~'tX ,9F3 5eۂ<@ us#1!/ϼ	Aa#dwVm#=ԲopkByF ~ <w.<ʒ4놟ExG oIx(sǍBI#@칰t%:wȈcrJs= xczis=k;/hs
+ pDAL0V:b?NGG9Uy 0B7-o)滛t?s`&`;'XAq8!#hċPL׮BHR!@@n$qx#0hs3J?'zYHP)A;~@"(7^z.rDR0y20	"F~~@\PWDus|%pT1l$0I?=8U>B_02[2Kw@vA$B	3vLO٦z1NS1,/(4N}S^0dXBHD)Uyd)	v_n޹zAodT/N6UWE뀸RPy%p2D5=))8NLm#&W@u-ӹX'af66G$~A?-080Kmԋpy%*kHʨ@2̙{L\p#" ;Qh gAzvmﲭ7O,"R8p\GԻ9츰(HIxصdŽ#(̓(q"4F_(p(yݰt^X%%#`J84+2_##O 9Q`KED!zEd~ȂmK_0{fNIøo&<12*AzO#Q8aҌnvj%Ô,^3RW¹]`QIZFŘ6$o0c7&RF#`j!:8gnhE%p1yP"&pH]Kb`qw`oÍ]<> )4qإ,prPZ4bS	6?%ZCv{Jh,0ˈ۩><۠j4O%YpP;.I;ηA]Mrg](</cǧi'h"Iv[mJZI ؈ \J<v.i5=q>Uc8F4P-
+eѵcB@57tʈƥ"4N`@i9e7к@[~\D"?РxDkK(. cN<H\'{aޔdY#7ɜP NV'7ϼ0DnY 9:$(B	fĥ'ML=B܁3p-Qײցm9r$SdWIIP8HTɚ裨E:c{;Ϸ VCyY,rA^Mqc֩ǣ])}K7Md^aHEBy9Iԓbbx.y\&ʒ	rSpze<+}lB>)JS̘:Eq3ۉμ`,3Tn0oQumP~405iB I݌'vr3dID	yv3ͮ9<dpL
+4Q?K1*#'N`紸gH0" )v
+kbw*J 	yugz%@9"1
+0z+-UyR%w?fBlÂt$8*R@b9@b΀MuVwQ:Is`w<HAEY WrƱ3؀4b+`eWP\pQBmpYvL\8z#@M>ˁz@Xex~i\Dy-0A? Y	IS)C8	uR n4K9J\`` #tL<sy1a=
+X(4CzFph,S89HQiYN@'Gy( N)$A4Dp{zfCȏFKɓ2,_ړ]=^n%B/4N(Q$rM!Uyf):mpZ<"X"B*a SwO N.` 'y@RiW9IYN+,Jd's]G^dSi"@χ2xCϲ{plңib2r ^:1Ezif)Z|h1 4,0n4!8il$puaE,JfYpDYBX(g7vn ɭ}ꊀ:R"/@JDA	mS8< `%y onZq1A%DE^ Ą@s$9=c>B+OW(T9_.A{[p{1~(Vk#Kڼ{;DI?&ar{2#4XCt^؎oYq e$aB 5/ 8ap݁)47/ktmOBG`4#ȱFA6M8ti>O?\if۲C6,a4	i$`b0urZ(@45^eoW9v D^$1#zZ5xnWFpzے?<egEjoe&/KSngi#%eNiHQ:eF6 Mt3wcNe#}"L|pE8i dxvG mp|h)^nVA(AaxА	?*i+pB$!yT:>tzTTIX,γ=v <%?4MpR/)΁#ףq fafQ9mA4;e%'?AE9Mq'ITz5V|y~{e)LiJfDN	v?\z3v:P:R[peY0$\d/ɻv:L<R'$R(Udð*@iZn2"ʝ\'Ax  E -Y#v>))PWS7JP^/v9C4" 8Jtcݓ275O$)0H!KZ$0urJ5JB"'heҥ6@qGa{$I8SDb }>X4pӜJ Feqy7
+I @AHm`K"'B&f= 7>vˢE|okmyFm12~TDpnmv77L6hv@>CS]ww'!J5kc*3YW_Zo+ؤtj-vaU>ݝ>SrǑtv&҃sAAIId7|VLgW'ʗtQw0ibB#y͗-
+s(`XT{zw//K񚎐ƥ?BK!CYkjfw;BNpۅc>yRa]0ͅ,M.pFNG|vcyw zY 36obUU=SʛbpHpfţY |b-c:b(x	]	2ZBZ^ stvRsz2"MY#(^.Ew.0&+AI}/rzX簌xnXװ:M>s,vZG^-fD>y%_B9F)'UwΑqRϮxIu9ʮt1_(~ebU.PUO*-
+|)6AYmiiш'YE-[]zO>j/^k#5`%T z %j)e]Nb!us6QfxENscyd\W0(;UfN1oVG\r:>|M(N4j'n>crsV>@^ [IF+ؕgud4g|gyQ\_EwJ*ӫi[q1<-}P̉QQt$ 鐧2g:T&%d|y!/vt2:*]Xq͖*%7tUOn6U8Ev`yD]D?2wWsrS}߫?]2k^oܗ^<Dt(=LmO49C!CcdXy׶T*J_i_/y(9K#Xwd~uG}qnHDM%	El`0IdO.cZrHtT;z?1>ܦ2wdBt5<y}AiԊk.r@W6P^7O`Nu5PJ'OZORM)kSSZ/ӟ種A=6>ru#WC\?R>
+hqrkPL>EG1
+Ug-.ϗj?;ccOerLoT1kkϙW?Bi~'(VG#6JtYkerBxA1bcrf+/57|i-ɯyAfUd,hSVF
+RÝyISoyYz(	.@GVr:x=܁8aNv,+fYHâH^ nO6>/{M6RS($60L8]u-3.Zq^5 7O'nʞOoF;r^ sEM/?l]1|+<1l}Q}	Wm8rܑ+ꄵqhlQȎ:csS.d0>8;wjIW W..iFp	E/;2_Â'*x"mz4_oɍ2%0
+
+ʻ:\J[~+7,nI<SC.nIe+RTH/vdmvzN9ĂNrAG*)qᬖ4j5w
+'$h6pPi[k"R\/(BC{Ho\~AWP&9xK-0h)'qFPC"dՠ,SNmԊeA|9V3?ĳ@	yDU'-ȼ\*fȽ܏{Ac8<aO'ߙ􎘌@f%J⴮^' 2Q%$7LTgf$f#~\ko
+6=vAc픐c&~Q_y4t-;*Y5
+hI!yAVi<&lɽi%Mc㊤4i2ET@4S,@+3#֓゗n%`E24-mYhPd}NIvV":T%FE=I|~ȅ͋/(Am­{8XyA:Nǡ	.DRQPɅ	,qupF0H|du9ⷄ
+*TQD:"2W!Csu4+3̲V=~U=`-Zus<ٔy|k&>C8}E(yXO
+R,Y}-4!CȢܴ{Hp'  %.	1agm7E8"B5h>nwcCmgD-Wo5u^ƒoC
+v^V=L4!	KR\*JCn2I|%K~7[Y"CL٤ZZ u՗	JhkXYW(Ɓ~m\&EwQ٠C-@:g"XmI 'K90([iM,l_e|P9օZB6Iǻ38 \ЗJ{ܖ3ZYlKe"JҘBa\^BkPS"-B⹻N,4?OuXQ%Kz97l;3|	*ABt٭Z])cu]|bTm950}0ݿ3i0JwN}gF042G=1{t,%)dL5u	?ar,O14	 s{?%-)qrʿ+Br)(\9*Z&{.v}[1N7#(6 A+
+\'m">[G뮇<pqѱe?^L[^nN;Q&^zp_/Qpi8Oc4L0 2?H
+Ltfs$,;
+FTf.6!|ovq6wE?6۠&,Slh8dw.iōqqz
+lIk.WLTH<ye:DJˏǯ<fw/:h47g9[Lidz㙤C-aBhYe<"Y2ua5s?,lwTr% 	PipOe"_Ԍ-魤U;?VSO͍XJA>"QR0yD+bQZE"ei>7dpE]\$!5ƥ%gұ	8Dm19]Rj`	ؑ=-f ޟxН-	,9+8m!:]GutF;aPMIRnH̚(ףV,,ҥ0ol4$Wn7<*|Ux:)SQ0hgeE괅SO\C{Fr,232sҊlfƑؗ /i^A8^ƶy1/Ck-Qd+!r"iK*UjW(A.ː*- &F	JR"=eJ	/
+$M~ş,~w)dZ:(M
+Hz?`tIVdBi@Nt? lν"d@D&hM @60+ -"b0#=dc1cA"` L|-*<z HÉ2#Ae=8;UiɌ!f@Pwp#^՗$>:ev@Wvs-;;+z@e^;;Pw@`pn<Gtxp~@,/M:H]4N$s  D-	B(7lɤۅ1LJ0)x?bh82KRXL;($*5CHr0T.Oى
+Z(/JpG)UO6cVT,$`=),	;}vi2G;^@?ȭ`h,ul@'ɹ}cHt-h/D&qA/H4S4એѲ=$aJ9q9GE8Tt4PT?@偯U7k% 英g!^2K?#A'|)}tRag{N#VN@SE\mw/;TWĴ!f1uZ>V&JxKi;]dkh#'l|"S4uu_dѱWi76:BK:4EoeAXad:l@AhȵRǺ	IY_{Th{Ƿм*iD_U9;yZ  !,w08Xz.É>Z95k62(KIU/)/}+a%Шl!U,{bYwO-AīeGAs#.@(PLcB	H 9	C
+ǲQѢ2C/_rO/yJnG4hO^l8% ٶK8&Tɲq8hdt6oɠ-] VV:,js]"oyMrI'MujFuE&K-a6c@)I50T0ae@Ip
+
+ Ǡ`vC4ŢȪ:"<18:eptS<7LN:Ƀࠏ^W86A'[(ϟ	Da%s-݋SOȾy0{(h\ZтzEfhWBEQP8DO!`B>W"T3v|=(gȮ}j-@Mo8PN7pLُ\#4C~'E&[|I'֕r)wʟNqPMlCEFEQ\|"wt|	j.?bT|Nl}ޑ+T϶{4/;6mPTp0:$xS6;Xq0)`g;$b8gXqϒѯ3Z600lX?q &;#0fL
+m[|v;(Lګnä@eTpũSj/NA,΅KL(Z"j`,P)I ,n`oģS\5O@?
+Bëo;_/6[_m0o&Ez٭Vˮ&\x;7p$zEjUI$H	{p)̜e4b$n	Aw ]K*܃;.ů7jbr./"My{}"tq#nkj͸4'E^DcF/Q?	o4UY 0Ij!W'e\!T`醒z5~>?~]ϧ^6_M4|BiJ/ݔ+(<rl\p$ݘ;WR"Ś?IZ	ߛ;/%C)nΕƌݹbM|AI窫ݜWɛoͅK/4
+Cz!еݤT4˕^ɅW+r9TyAnҭ2(E%e0)_o67K6Ko帛m}reYZe7iwYT-/$]
+C򒒫y!.c~\ݦLom閷ŷ[@?zyrnS|VLS<7x%i/Gx&h(.x ] .ad^E6DYAy,NU$D|EYUJKz
+*+I%qô$Gy|&Τީ'j%S҉$S I\C2).`v/`z/GuI`"U$#5{")qy=3YGCŲhM (<cD-VM E-WhThCIˬ&N,,6S5SJi|S#-
+N'zI@ώǂ?cTxh%#Ǫ;	'GUALqe' RtpC|sOdv~{< w),k x9]DJan	2&1muLĴIujvmP|Xc!Gm.!'9[,+aɁUI7rX/;p*{;v5A$2n8>^)1hҍj(>Lb2ɂ8錽mjIͶOCH(.
++.cJq+&m+3k p!4և*j<H2o?bY8՟/jTjIhbtOXI%5+m,\sx+Gjr+&VWbٶ9g ۬>l	fX"d#5ei<)0)
+=d<hE֏AGQpE~T_meln^es,
+o\:i=ڰu7lŌ6E6N&-JFB/?^_]ƕ\(N:!ׄ#Q;ҹhv\-\Wrcp8LIH;sdBy(3ww7t6(]I{'V;%l$kbᖧ"*{QtCqն}D?X \߼Do(!j2yu9Dݣx%S-W{uf*x%>#ud%P NOU׿װ\ዼm!rhuȦsАM.rybBqccBjDF4mlG㓁 {zJ'Etrb4VQ
+iaDU=$A~jGiw ,[U (  	'rwpzĪFԄ$
+D:@,07$dW!
+ n#grJ5K>wUƷR%y7Psݑ*v\Ŏb#a i R%QE"?Er
+pw@6[?AOml'N,Q+D敓~{ǮA1x9E_eV"R*] P9Fet0^`$]_Z\"Xt̼k϶Ƈz@rXcΉ LηÏg_@@Pcv|Sh(棽$G	,X~ĨɞC7TV]r _G)J~S !<s[ %nK!A0݂eŮ7сtp/;s[(<ÀKH%cC~"T YE,nCdF+'vjӜM< )lFC|5@`	2PwP9-.Ҕw2&)5~>"E2~="CJQ+1jK[!HӡXPK҃gn	EQÈmĻ~*c!fWc!Mok24%1rB$*&a"K͜DtJ~}?&RQQCH<2l5`.^~ƥw|GlB^!+/w@XҺhZ}ݞLW~d>:粚-ZQ^5]Ѵ=պYOshMVqڲnf(TRj&j҈! ׷(V|WHm).dNewhBznC$'9B61.HrcBa{g*/nح,f]Vd#JEn[\M$;FezE9&?5E[iy"h\I/' أh{c{@IRt٠·tK2l":[n+J%C bӄ*gVqx BALx-$=4gsm/C.P](K+ۦʟ;9l	r^.]IĤ9w
+ԃ
+9.Y8ptO~ڰ'	L\jebԑr;92l[Ix%UU{'*#^pX6	|5$bi+cIP^yX	
+7Y6?vH-ly\;H'YXs(cq嫮va͉qxMI 7T%a59tWKR%NBU'A?$Ҝ:Qc~Jtv&E6;a=m
+XdV8KR9h[	_uɝqf)@O3[ЧшmIb+	}||dGRղIc%U#o!seqNCm{k4l%%QQ_wlu>-ܨcbXL-.qh괺4Û _))8$8$]7j:&\NU}~BW?~B/GPtͫ{гprsu]]5J]r=_
++t.A4}u9u?Tm.?g@I]S
+"\}>}, ]}>gSꮮ>EAPZwu\]}ѕ\|ޑT%W7st)5L,qLlLzد?L^j|k{qTH^3=,Qg
+>ӫ8vL^e*2y)ȘQ<+!*4mt&4).ʢߝ%_i&zW6iڵ]ҭAB
+BB~!~K(!tIA8I'4DHE*cS**\UҹJ:%$K:2]@Q~VJM'_H%!/;Iee ØOJb17frE=p+t3sN&r!r*G4z4EͬF
+T]t~.K`laW1*AaA*0^84/:i!0 byV.c9<QHȈ}¾j5%~7sW?AMvʁ#zLmQ3Ha.%
+Z	P.[L|Ȁp.L)ir5{R'<!+~2<{Ў7)HIcPu+dO p4BM
+?w.kƀf$H^vHHpځ4kr4rҀdo1`z-Zcc GzfFDP@8oBR [KÉ2Teʟ<d܈G%d$3=	^%g v)aPԇLb8drdL́8rD|D1Jn38LIGnȰJX>R@Cr2 C{,9f	@DO/vtwxDؗg6PLT-E?=! .V!OoKm I陧@ک4_5>e''hD˼\pdp,O=<DFR!lZC8\n\	m*(d Dd0fQ;Pk/2'ꕠhcB29o$pVBدρc82?2iT;`~"Z I7'vrC;(	\fI	S^~iUJ1c[8lTi/P%c>#`Ʊ rZt(:.	j ӱ30+9Ā
+&ʱ eOKn%N$i'YXm?Oqݟ;DPOR\,m5YgSwZWKh	䮩2ͬ=g@= E* 2'GW\Aտ0&fsn!m>f"j;Mg-VFp&Ru' 7hDi]TN]k~zi(n>uĐ5PM}m?D!ѣ'gb{.Sqv 11m8
+xvn7l-hߛ-;]v:E.zVy.dRN5[>>#MJ!B\ &\Mm%if|[	;$$D:o.'OA}pԨ:+[1spQh7?FH-CUy1InBoftUqe:}B2BxbHpx 5 .tѬ
+n6CKwGyRvЈ'7& ~`wX[)?feegf	S9JcF',m֟#2J#GEUܤ#ݤR'q>\D6(/w(DVa>46$$IyR#R̪n".f7=,MV+bJ#FWKP%q~B̟̹Lz%eI	'Y4Vo=8~ձRi^`xIĴWzx1tA5؍$]b]4|m9亘&ukxxl"ELk5b1K\\s v֌,+ޛ<g=$̗#Y{|G
+GInGY[2`D͒Ȉ)nDK܂\|hK>s`,u//6Q%t\p<kzLL_
+W`GNZ(I?̛%,9H|h˭g>QYXR) !IHGV^$yJ+B'	I
+9]%P,! HQ	C!U?.mܱTdc*v&(1,cz֙VNR(;26٩sO!Pq!|I.ARIƪۊ㊥.:L,C6ٌj9n\y@r?7K%O/j/ʢ+tOeKc|b.<ڕHyFE<&C*·`@.V >RJO&)Y
+I`?G+ֈ.b  _k)|YJW2ǽwrVbKy)
+'EnE/mve]bW\%*溪.,ߪ.Եu
+]lryknY? {͸gA3X"xG|=;flv:^[YDXX)*lW;,u:Vp],h_nJmN]E>t#mXPkck
+A֯BUc֓XrjC	cQt(ŢTX)"X|)<ǐjh52q158_]7Q8GGi)7EO_ha{1Z(1OSaqKE_y
+4̐b{\fX*THC z yoʤQBDCG\eld-n4-SƵG'*	\RH& %h
+QE| AiҐս3〕r"h'l@軄CFkZ]ݒme,樼l1x~jjE~ѬV1 ]0  -46":Dd[ò$R"u9/(!0~F{dWn^Fj!+Ȟ!Ca6D/<>,;ea>OAl]d='ˠ(%`irCӄ <pz~>M87쇒~
+Zyz>(%p rnzv?~noo褛N7;fg=P:y2%pS
+z*4?$v>-2Ţ73LLv%5Kʃ^JQkeV@Uꉱ`QQ^A?vW\G햽hџ̢ fyˊoWGlNM7p&݅\"`[^\VPYkMɊݺW]h'Qw~h`wX!7M&SXX[]P_vSE.J6>h*J\Ws- m
+3	lD 46AXn~FeHmcծHרb<C0A3EkeP9̄% v{$z{H$@oB8%.<v뻗/;apeCO`;	O_E1Gg6Rz+
+s5ż-(e{&}X8+7\vx$|<̞OCՄj^a=W!wϨOddw!k.VH#Pz8/49~1ֻkq%*0C*WD)ڻPR!p\xrIg
+(b;m:9
+X`#KiA-%ws]M֎UXm*zPXXgȡzAb'}hJ{a6lB$HtF|ڂi!c#>մlӟM'Аt!/Pӕ	su2g.8]gRx\hJ(vPrG  /,D
+5k.[PH]͔Q⨼٘)RB/d;TmWQs2+dK܁/az!q3U<V<{Y)l15$h.Y$W^V=4WN*4@J0  7f2 3!`-i!v#{kv u^G߮ԥɒUىE߻R**$-lA:1{6{Ty_g0>T&BH-HMh< ,q%l9vJap<Me1D$+\JxCֆlJS(}̥(zPna$z"\]3Z1$1ӻ~ʆ<xtR[@ROth$3Մ87V/s9;"vV64]
+y)7BHHciҽz<ĊJpW%$!)oSC_B^.Vɤ{h JRkjLDɁւضBWbbȞ?$Z!VI;]HT.@y&<:uGkKU-H'G8bIa/SAJ?inXlez[	jF索T[ ԑRkPDz7NG<Z=pK-S?$5nqIz*s2P([jm!mBʞL{ǩ>`.kxsV=<;6MkywjhHfݢr^c?͘ԜIC.cWY"S]Y乮9G{zTkPEc}Vy3zX#wkLEcBBh#x. Z9z&_KUFG@0ICpuZ&*e|\gqmяCJZX-Ɯ-k3_(5jǃA~js8C譨T&?sI zǗ"rt! :~tF5QEc6`qhB	mĦpNJ$ܯfƫ|R~CM~ ßцGu	2DƫŚ(Į?WlVL~7L.g+fVEUdm1@Nsu"@~4m"_!_C	Eu r`M߁\U+- &Kwmjg^[=5WM1UY=SO#&U`p*lDQ&,ֵDVM@CwѾמBŒv??EQ]P~?s%CU:pTbk|Olcw>,	\1ݬ |O}SlTKtДv-F"<oGFzZ]]]k[|jgI{*dep%ky7}USN{9]kԵZ䘷F9T3"#[Wn]:H^lM/Bbes;8A5<l	Ki3nvaOno|n;9_շi]%9I
+@qX6!3L~V4"
+
+Hht̲Cje/|y\;H'Y*=n,:\$~	c`1cUmV&-y0U邾,y)J;ԻT<[UZ_$:b!;,%qvdtBLG%$zT~WH~|T^BL?v|Q|hXՄ/)U1 '4+|bsz?wIpI4BwS5uC(pp_,RXPb5ًh,#{xt38LlniR|5~'.!9irEnUnT9B~.pCe_[-b-\;
+CdڝxѴI"fɋh(Sie
+6:ݠY4G-y%'Çt}۪=W__?#~?o}}!mxh{2d_K,$iōqzXN	]J)>6 ck 
+|kFs~1Ŕ2{9Iz0%zzf,YPS6tңR+gՁ@fAr"vEE1eZ(E3Xk?nM=z%yWf$*SHUt&"LsuN!yxW\<ȯ*4N"ɋh/ݬ"dwӡw/_t]}!~wWTtb("Y]dIhp>17blP^J+㢚YGFh	A<VYcLe96/%Qc&(}REoM_$AKl:Sƻݫeߦ?|Mկ^i_QXɟSP],bB]VwVɊ"$8mޥW%1e"}ʁH/~`MѮ,FqQ?;}wѶvmwlH|q^|:~_o RyCN7V^`tWzRJI6vD`TOmrjnJxI(^m)]yp1 .n .$ZSQ  CB5Dtј8rnlxi!(mV觵pŀ]'MGɸyJDmlw;'ͪ:`!Iz8ÓP<z.hq\dvA'Ya`6h&"{I
+w9ADɘq`^__rku{,?mW^6<L,JqB/8vҠ\1^_n;%"]N98(]tHq/WI.I0R7vOBZ+~jIM*a=1g|!<-^V<B0uE/'#6T/s_O$wwa,븛1ނFF{htf2.wTpc>gDf꫄m`VS!R!kǐng~$؞JLY8cDu/ĉlB/߯RyU4نADGn-V罱@vf#Ut%D>w^j!9Ή<9X%f'^jE}.뽟	-N#=҃G҂౞",p撈DI$a,:!iEORj"QK*zbw9GRdE"N2BIjdbQjIlߡKyd8#>\lIl %VV+ʼ$u**)]8\DWMＬFDvw/$_D2/+u3	 4vş,.-K8
+q}|*Xk@ǚ!i$*?CXdXn/eڥj&eD"GƤ)[EƌseLV+i'3Jd"t>Z"|FZ"*DOL͛T'Xa/ɖA"|S&"$o(1鏠^de.W٘p8ԅ LqMK(X%&^$TgGR'xx	`,VyڞJLR'us"!Ik>լRk4`Z'nsB).hNU\\_nPL,frUPȋwT~W#ԎUgqP_w؂Ү\߁1@^.əmViJ6z?}Ul[^PK3 N/99lʬ0ɐ뵹|vԘ~$mAO!")cpHAei"ݸ42d\Bw~UcYK$y..d/WweJq)h kdV I K/Ʒ0x}|۔G<sdgy=ES (q*\*8k
+j	& K.[Qx<%edLmw?1?IK~([0X-y.8aDggwg
+^k)}8ZzAmj\4~8mCQ;ͮ(ҼNX-9n;%E ȭ$KjR)rnvL]ZXfߣk~}'XyQ+E,tm>J=qL9Eذs3Kh%O:Gv9~э
+<[VtXbyp_}If%ss\W@!!7`3DӐn71o ^yBgjQ$-$Љ8$n-s~j(7-0_o*Tp.7%VˇQCAL\gӸ;:\..P7BxUw`2d`IBr,PA*8i.LDHTPR2\.GŗeF=w䄊?1v[qI9لGRׅலJR1W*[ߎf-gNkGڧgΩ>._]]@jJA->`djyE| w_K|(b6f،eeV|hʖ=N#cWc':̊;
+)z-wLZD=ً(>cr{KRͷ\2!xvB.],5f̑`H2AGn_ZWt(22j4cs{PҲ0,3q~K8}$PM| y&fJP|z{ PX<W r[B6G&>Dx$#zC}duI$WG:Viw{Z<G@Һ:%_NcG'r9 #+(\c`RFN鿯Wbk٭0?64gQ_C1ݪa6~ n[>})|tuI66eg뒬l`Umm\>RBQQ]NU %X\˸wLt]L3F`8_@K}t#R&}݂Jwֹ)]TJ撠~RZV\0jpLuG*iหeXPP\#@߼KA _+ëQ.^I\ QG8yG 	DL&SUgEЗmm<$7[U4:9>iJ#M̅ijYyHVYW:줱+"
+LrhقlA`6^-HzR~RĤ')J^ycUFʖFDn]\X15[ҝZHyu:GcUiYel}ثQFU}2r2F%O(#e1C`8Gb)1(|ψDfw!\l
+,G6Ip>U94qwjs
+ī]4kbHԠ]jD$$!m*b^1>O`scN"ۯQYf̚_Bku;O=,)ā$h!	S¦17_܏wM&BY=zICshgvImb9 bjv,YPDueW 	8;@L3җ[NgzrR FbY'eQ~yyGg~{CY$;"qe^&{9$/HL
+Ǫ:h!YK_00R0*49زd@%Pzn8겤.EWі)*V$g/)#ӫq;JH؁(ya]%[
+fōA,n
+),ʪWJ/-&(3j
+#hWb<RLJ5[\cbnk4B_xOE8}QlIjq@Ti
+*}<|j~rcupe @S(:h̶%5]DYd7KӼd1LHҊ4OЏz)@C.aSr5֭9ZrgGR5XN5O蓉t Ѐ8jc3p^1a@@'@:~0#dE4 ?apI4ܚ~ |рp3lg4Hz@5⑞Y1Q1eu4fGȔy<5}"GpL>h Ut2chzn2U85m]FJHIa7Ԃ9v@!u`@Ձ2Aϟ(&Tɦ@}m=mzpC˨TH&7KY­큗TbȅIU>"9Lۀ,UKOOX'71` ȁ<h@x|NO2v#,O=<DFR!TC8\)$UQ@ɑV|0A`d<Q'su@%ɹ}c ވz'6(џ86jj㢛M5Q=l
+vv}ȴюcZ-#I46~=>da-H2Qa̴XGwwhY_!?QƝmf)|Q*Ui2GnW϶':lރ
+|Ipx+H*?6A&R њ^6]X{}vW͋CܤWq_bPYDF@gQqcx	j\ ,
+40=ZVİ׭])+edI5-4av-#hlDHx!(ƀP Jg; uc֦"%q:P4:es(WI*X\ZlQ&?6\A0$9hT&0xj!
+EyZSXc@[tMh&͹7x6]6e 0BԨn[>h`3ZdBЊB%^%JTs'3Pw(Xi{R-d y#j.~bD¾*d:p{Z>}g<gE`?x]gs"3-ZŷtI`U`Xg	s-n}TݾŽ)<p}Kyb_S͖gcQ%1O3jgE_aAЛMc,0?Oy8^,/sJ;HM1jWw丢􈇢
+k,e-B il& r,Pu}F3GS_c,t,>zFPyy
+Gz%5̡r FqS
+yHp3)#EWA@
+iP
+<?x0'٤;Y<uP~ʹJRIDP0J<wL	ESPG̖%2403 iIfG~XiwӚq~Nv!1$dA<emg?Ct&@u Ef5Zaﻬ>X "abzq?N=]3N[~=6ڡёPT58h9JT xq5@CR"cH84.E46&Q~)'X(W!t@\7zd/(B{Hԓ6b<k'Iy8P%IWˀE΅W{/Aڅ_ب)EQ|ni]0^+LXR#:%1xpXiF}/V7Kc*O<Ⱥk6-lyKZ,psRlPl,:fIK~R	G{13K?Ze&JA44:`<ථIHؕ.},|%Б&;fafrE5⛅ڶx9i<(IP5!@	GQa q~"i/,n6B)l3Z0TW/*@ɻ|<}_gw{Fo[uSI)(ِ`6^oq$}0eG=mƌo?ϤFy~3Qƌpwr<)!oծ|$l9Pѓ;hp9ZI.v,w @B'KHp_{{DZו/|r\.E mE R݀6V3^A\iw9Ĩ.PK{WdX.bXQZ$_4_{R/EQ]()^ލ%_/Tph\/TW~/V5cuVg%\반BD~	vI[a+&;3]arGW3#rӗCLuk69Q\B0+,uܓկ,#rDN}YjB2Wy
+.MVĳYԛ;ou{qLr!J7MD=PrƺlnW$u̝Rpȑ#Ή}bġ kb¤:qZǺJC-k	풻ݭ
+ҼP@ iO4}La,̰'6C/kz Vh5y,b 5$oɞۡ-J܆tK[r4%0Fe;BjAr\Z;k>P^D";<4:Mݪa6~ ՇbKb ![v1JaGl=wTRon{&H_VzuZ8O(:`Wk3A>U2Z[Bl"7lIw;[Ш4UX:eסfA61fmuoٞ6Eń6f!vkj_RX[/Pg/0:uRP@؀pOʐJqevo]H𒔺/P.hE%w6ۊ-T/F]Қ	˚"1p.KPs./\2PJzCTel-CH+뺲+뺲+:XeW-8Zt9@õ,ZP,r5ОפN%5 kZ\ĕwi:dN03qHBuGy40	yΜ#4-Wi{ʆէ7ԾZcTX4-T޺Lbǩ\v[M MTmP}>\N@\! MUYm	vDꓒkAGjdT:rz1_[%kMp *iHrA)3eҰkaڜm|qp"ƍx9ωw	bWC(A%lPHJCujU3ةVwq[κc%,=qWhX\ěSޠ9	<\rKE%NxWH'ihYtYCqjg9ri\J3)³lI3[8SluU1T+b5כz6ѻK.:7Ϳ/K$O,6YY}H.a668LHHJ@Hj"V\MaWAKv#/0Vu!QFFW#긳D;0&8_Zr<%,435ޒ2mzfjv6k>LU4Z
+,4{p]e<nn'%yׯvo{8ZWS4|4byUqiQlu 4c,î%qyD]qqLQqql+)W{!,a<Yoxa։52J? O0TtL-hHc=^"q{Iah=enmPzVE1v*9!"eVr"RC.֙1WtO-ݢCy]9h+M\6v5rIugkb3?Qm",9RmX!D㳯<c؄Nhڟ4qJM?$zӋrՕحL(kb:">c{}KɃ^e\) JbOn$tćnbqTuBLw|-dYQT쪠jlwt}0ɮCgfQUcAPwřvD	xK	)ihKϰۛ.)JMߔ؎rl-laQ\dpK928h-pQZZmӴ?lkg^SnXmvm=hK;geQ4]GnkC%T_K0:lKp!>P'BK[ym(IB/OPU9TW=:%ٽגtO#[`мӳ9gxe9\r#[|[/KZK9aZ`o 8YR)^0'T喘§7TA֟U<R:VkO݅+OfkSkOEkkqè֟jEU]9sZf-%\<6aIԝ{Se76uNEEUT^'Lg.:,ELy|HyHt"YF,;gH/ λe
+iH5 L2,y9$l1'-?.=J\TCr#ȐQ]}O:Fr(p#.Ϝt vsʱEG8>@	GLGuKs7~3kր.%P^w8ۡoPlr?ϖ⾁
+'fzؚt{Vݥ:'g.Z9z`kn8uN4
+ZcvfaChWˍ*]iqC{ѼFmN:8)bi?<lL)'ǲLr:u&eb`2YCƣQ8PVKTBQ	k|*(OJH}h$vID/@;`RK*!pMx|bGnMs'<0&4+>>)oAӱeE1%Ixil&;T26uAZ6vl2ێWf6T>}"V7*HT)W풦U:(IZ@RjmW~p(]"ѷBXLРr_OCtbx@8Y%<^U5/͚&xܻ,{^DSe32.}8ݠE r֛b,Wj#Mو ^WCIteCY/O`*PA*/5b'M~ؚlKX $s)-Hfwj%jcGEXO/6*ר[:]K w~bvWd0w(%~yQʖ0}veTWFueTWFueTfTqy+Wt9x:Z]xI_Ekȍ<ΙbڵtÐsFӽJ8W	*\%N$nU.D#;sM&	%n໎x|/jV~KBghQHC.9^M\ȕ\ȕsSlw\)*XyZ#I(\پ3
+☩.:_usE |2,+A@F^nI}:N(FX@ |4(5Ճ2%J(p;]F$E@VŽnv4qh"\t9<n 	!@$2'VlzEcwQWmbs@%gV@/uPPYt@dÏrP0%|MD,wBK+b6b60״{,`g3b/[ıπ"7~Yg#طҜGm
+kdHj8totm0|ymCJ81#2eg=ͷicOk{.jdDIRk+d&7L&P<4P53MADtȱ/JڠIYbH)pq'bYp2SHqL(TG˪U
+WA*H^ɫ y$d/HZ)U	34$L6W	槛*Hw-mzZd-D)q8z^8(Q/ Lif7:%Ile _2MMp'KԜϐ$GCsXLgh#~_ڰUsjÒԱr_Zt栁qqd62Y#bL92[mőf럝!+,!p˴HunЖnne\zҸ٢Zv.J)E+$z_K5m:h;uXbmpJCk>*|JPIB:"S7d7oə;R]
+x:6z#9Ź 6O<-5 c]c*\dXmdvJRlöj]ꓮ}c(Yxhj]$x7AH~9") < o}8WS1{&SAunx*;\bZJgU	s.g>=&Δ6g̟F`1rY6"pd#sf(LG:y9#漹ɹ͕Q^)QmFf8BK;_Hh.֡#Ex*yKٹ*Vb<GzG$)@r:ꄘ\ejZ<wfQD0Q#a7HTul5VnWgMhJwɌҥ+$"Ez_PV~ɳ>Q'kl~fdِuX;L(S,Hrs]{taU~<4q}e7[^nshjjƅGuʔ=҇1 UJ?;*`xwd
+C㪟j.AMNzGƩ7΅.F`m;tw0p,|FnPv&.[5qi[[V/Ez}r*&_Rz9De}a_N"SϰĞz_ɤ!5UUk3.%0!\huplt<ζ6͙kR^?lYu
+qE΋]!nv.FHTB-g#jAGgVeLV5:*RlȖ=T*YϜɊfwHgJkk>QU(mɻb:л%,QeV1݃]kT64l0,f˶ǺhO6fmR=y.~6y^r>ۗdy0@4#.k3X3S
++F||PAi)@-Z]<Ĩ1c<|< Y]m8@!xji$ XQsB
+Ph~t6?Ghlol3Q}@W9y]ue岮]/{6ԁL\%w'.`8JQnK^5w=c|/;x]_otdL.=?aѕv4.#\jsSʹk|H׮zk4R>dC٪0q͡Tpx?r:oH4cZ':C+m9e[{V)
+h1\Qb2p_A͆$oIƚ@mz3#QL
+թ^rC깖8d:a$.eBΐݕ"<Lb82db=k62[pC
+sis=j-Őf6GEJDNɜN&o-dd")ɻ[Y*\PLQ)Mf[!Ec{.f-8d-?zB"5֠wrQ
+M\- oGU%jƂ4Q`e$<60O;fAAqj	0i\/^hlͨ1'XR-3I^7Iփ"AV?ɹ)O_ї(!EmVH*ܮST6x  e~y}KHGpFx`+LqBu%<[z6;`x[+)"zLz~6~	͖̀tIfEGD.42rWP
+m߀_Kj#EBL5~Mġt[_SFd zgy=a
+KHΣa%6,Ŕ59Jڷ:hlmo	"PEE!Do!<`_>&4aab_	&(Z$x	π
+dHB␐@|BF	O;t7)Ɗ<Of?OMBq>kN|^(P^0#&t.ǰG9qǥEK`2T_젺{n(!0 rqnaLuzlݪ	)j2H);xX~)>e	K4-Jy3c	e3JD!vJ&[9Ԇ>0	b#:(_B&$+9(G\	 -pV^a薺wHvuJ-ݱ|n9CWeK|T!{S|Xs^ fW;y&}gw?lf~3wt>
+g0A>b" <ghtɐG4]?D^GhZO)kQR.lwM>$cH&[
+45)*ߩ&~(X7xj:"P@<_!_XZ	+Ltlpq+o.]I39Vأ)v^i>"fAd[6PyOGEQyk#Mh)+I4=M"bm֐~OED:į{g:5b2G A؆}Sِ%MD@
+ٚNVUB4[ok'SqߦuDd1#o@kGEV7~@yoXd+aGs&^⫝KGJ:Oo7]F*]K棉Ƙդ:cNhTbG=
+eҥȆ&GCxJJ_jOA}25FS^llG@K .c5-tC:ېX$WڂK|dˋ0Q8PM̈-e;a]#~ݓKp-dL4Tr{=CS`{m*rw*v{0Ư#(BH/%XJQUSYYReՖ3"UPޗs.3B _/#|.G_|kͫ^~m~{C<~Ty$DC*8mgm2LhŭfQ?id?Kl~(Mz+b*j$l_/2ϷtuӣuѼ؉8>):V'^OJKpCpUJ>?J>gwI^ix:x%g#4HN>Ś7r6~r!`A%i-U3*FeCBլak6h [ψQV*zke	C"n̪D{T
+ r)4kAot;`7Yi)DM>8_~;AQV*BKcME b2|}\hɾ~KbfP4&X yɓ_
+p1F0:,hp=ֻЏHdGq(/N1G*R+8˴j>qCjkL:bb0XN>xg{"EX^l$>GESw}00=c	w	]-jk4f&1&rbV:W10+Hq:2zq/FEh䵾4օWMx;`_Q.	ygLPޭW Yi84$FMjxmt`Tc"Әx\QkgQ)F>.2fu}E:a/_s2zHV<S)X6
+ Zk <E#1Dj^:0hcs+V*3+Y\EAbCx+:#]sHeۃFOJl)`{	y̵Ҏ͎ZuHÓZ5*wX7KPX>a$nΒqj&-1 g4K=}I	ΝhQ,QfF2w|pj٠lCҽ3['ŭũ^0wa&FQr-2յhޞTeVYKCʆDU]R&ڣP)2pH:*H.BTK彪!::i*p[U*rxơP)t0֕;g0\2ŔJ6г5Po1.hYAܭykdPweU@wAҿǖ9N
+A䱼r4]<W)gM#gTOHâk`/pS&^E+p<f{=
+(6(zm6If$W	,RETrY_ u<W̵T!7\c2å䲾tdbdW)	:ψRmk*+BLosO-;}M9dE,R
+.h"vD9
+\kUw+kѽe\z֒Y^3շu-N즳ji94҂^%m`	)z&٢]>=,4{}sv S3 
+@(	cY/cւ[6i<#~K_1_5r$`r$#@뽽D{W79w&Cq7In%ޛL}+݈1F[J,ҭTJi1lꓮEEX[?Gw\]h5h1xy>~2a
+B54F+)@kxa
+%z~6f7ZER&IW8}vɀ4<heex[P;zA׎nU-@Jf13I!gE.n2ۮ}eH)mm}C0L:i$9NHJI'V-)S^TG<.l"*,h&:},5Qpzo(t3epcQ6Dhq<TX$Mtt/f{~k]t>@m&P,U}".cHbJ]aMFڽ}̕M\.0eY6A镣#[v[=S`LxaX	n%5"iTT^)H)$DՓJ	f^+F s4(DU+1 &܍#0"LaԲ'\IN}DjBa"Ƶp
+uOVE8ZtRW:10
+lVɻy?!\WKpj/%<Oºf&.HTHS7j2iݥ-	K\%8?TnA*46Nu9jyeP3!IXPbtul~4ƐWnCAe/q&xm F*+@NZvk]Eo̬(0G[q˰5fTtxb?Ƀ*584NZ7^zn$>%"MrLߥ"W*͝"˲o"_ .Ö%[`p궵lʘfQDg,^m;ISpFW VW!'f>gz_B=BC#ÖcmC3åffq.
+6ʔY7@.,%b:-0/d%ak0aIV	97,ART:E駱ŧ͖slCw$ljl26f!vszd/? [&Lfy2-
+6F%8:Xp!r-Q?t.lTO: Ykb+'Q߹8/]Ȕ-!Ỳ/z04lUy5u:g"0uBxmL,ODCWuj-)pVV?GݔRmm}ipG@VƭT(*+ǐkz"eBҷ!^q5 I$(q TTNNo29<!0x:+?#n#Ő@du43+]/#pjEV#uvl̬k8_nH.,'9B;\R]Z-&89&+D26,e~6G!X,iG"h:IlhbtMZL%<a*Jw@j'|6PXO[+9,FfcY7gfF^ӝ2pa3@E-ڰ֔^As7:dC|"4K=W+Cӱi,7"sMdHt >lEՖRch/ף iW5ZLGÄ%/1ڨȁ6T"~ދvOؾ8 iLJFbr?V&}?d5WظU'by/XPWee%i`8)Q@\uoL$c]gW[3^" pR0To~φ|c$y[}',#3#TUY/'W_X:<[eE68(KJR>ㅁ"Ab2*Ym=H֤VGlW8]OŨjgp.5k V[~cJq&#><ܜyfi9V,,ͶUpO|eM\V UNTUqp(H
+3Oյ(D2w(GtNuGj'H?hBtg0N;UmtWY>|//6E2a_rblgF.T̩ keɃH|~H*ǎsŊ+aerB4mq[nK}:UJ]e-bVYudGdᡀaر	th:&B199IPv1UrB>[7[nK㜆&aVsnRߥ[N|뻷}y-rk5vyh/7E_xa(&T˳L:޹T7mȈf΍Bw!/9{^TӞFvX:/1kIr
+E!夷Y=rVO>?%z]EihŧdZ0_ꓱW'4ϩO\^AbR2Njgt~*>WГ,b@+U_	)W),k'PO
+nBԍsW粿-Qd	JZz0)h¯vΪeݪy_m-M;RfozhTQ!tbM&لۺ`NJnK|%'b^<MPEecn*/]xM)jUׄ'bGnʓ6]kq-%@<bDV^Eo?zq<"*oh.-)wWXVq
+C.1VmRQ~O(Ø`0E3Uj$i/5.Y6KtU#TD!R+avowaYi;q<EyZmErx2pC4HYU4`ܝeBu^%UC:ΖRwȎ6R*Ȣ"WDzÌ2K`o+=/M/*V&u:T˦sچhMUyW	AV~y-!?4Un/'v9g/'Lo;-u$YUVyJF)0MEթEJw)̇Bq[ʺ]6yˡ	*~)Y]b$P]S8T/RBͧ=zYuzY1$CȴZFؠp)ŃC{HRlbR`g˩SxmȲ$
+*b/y.[V-~#`%<J7LRɇ|c
+~8mS`pGP*MK.'c@@ :VXiƾLo.d#_\m1WkF?X1-T׸}`"} c2&ɳc~.SJ1Z^aZĒ8ci$;IzNㅽ.!ad	Q*!^*xQԈQ/LT;jMОu ̪ ?϶lHf^+C>Үl3DkŨem;BGJOH6)
+^[EP@}ʭ"WE>0'-'.s̶wZN"J<;m]%8?p؀XDG{~k׊H,+Zky;facm~3'.Cj>Q$@DJic,UNZ|u'#icৄB%8qU,9-\155G}4*sDdӟըRnj$V{օ[^Bdxti.:]"b48j}ȉMi1]Jch-ݱ֗ZJdcUP+W#YG}?Y}p6^,@d=ÓI{7IJ %a$+/RZOe/Oc}O)q[bhZҥ~$ǲPI$.R4 "ueKmٗ?<l|&n?U3}}}I;כ{#e$.&L_w?aCf?7o~?K?׷&~/ۏ"dû[|"`-|
+ͷ8`
+-;I/#zd {@0@orǉUOsƳ¢Y}VTЅw16Z?-z@f!aQoΧߡ-E
+N[}|>\:>(z5&.\!z!P[N:Y̖3Hq:d:·tRoglA3g_vD_夳M`3E%-wݪ-v/ՀbN@,[>?H"@y8"&*5I3N+M||{gs?}f>m,YyS*{y?_v('R,4./ fNCWl٥#^ix+|j': ^̶JA$ӧOX\ۏg9uTJ_EQe0u~ڈZJ&ߨv2K=-!#7΋6tzxOx%O.SKJNoF#P<rA,=UlM!}H$.7Y1>dhҴȴ3-sѹD29A#008pxȹpnMByax7HF{!&_n|xfD]WpD8\_Ћ{AIF~A2%$8tC?JTCy0L0Kd3n+DٳOd(&ٽ`b1i1>VJT;gc(	v#:áW|	J)CˋO2?ΐ-<zya͹Q|nc$a?ϤI]C Z}X҅&ZnGJU3}4O(2z@'2si]V(ooYTRΥ<@_v!"f<q(^Jj<esEušCP]q$W#H"=-CIdW'̎$Rmy]B!ko[mZYw5j_ys8iI#<bjJ(\Lr2ܫXV/@9;C\ђȏsThbҥ,GkXjMl
+HK9M7PSF&]LSZKPBWը@<
+QQ`:Bwp$ggafܧST[mAQ&KZx3	{"<HpO>NƗ:#sglIIw!;աP4^QN섀#֧}:W߼=%Cdn(HLIsYM{fq{j"?P3hA^u̑esPw(LYG{-b(E))WNKxTݘ2ҨN[ ,;؍jiF8xkhUf!
+KhsMįs'^9?%TM}P5JddhtT4EnOTȋ*_mH<GN?-J4kх͠omED!h|3.aThHM=s=W؉^F0)jXŘ4^bTǮb7L`նacâdR~pL2<jUCt$} vWgj{Ek$9}F`:'7DKLڀXY1.)\iphԠɶFgRz{)84fceϥg7PGКk]	qU`mYK`oj 2[RHצ@\nZZ(T@.gzdۭȈ7[6~H>J,w+x{$`ϭpK=%ja@F#ݕd
+*`ۗΖwVTUھ<,Lgj|w5,ndEs<geH G,L^gSfc;Y%e8Ԡg,T^mg $f,67gr*reJ^5eө2+jg/3en%yb8Qs>MlR)sք38Z-Ȧ<|2D+AM885)D#h%eŦr+d" 3!LfiuW-bHiT<P9=7Зa>üj;_+۱ы֒uR2|(%{aEkǁ*ܶ5A؋ߵC~:,G:'"\WYL*t:5n=-'G'idiS3hm%w.MrA4	";l}ŘnVe"]b,9s2Lvw+\U8𓧒y,H/s> Fl*۟	xFP[(W0UC֛"<)o!o;-nn޿aEz|Zmj$\r|DqiI^uݞzea1ذ6Ӿ}nы@MĚ9s)|ԟg|n
+TPavwen-wRؔ*6W5Ƙ6vn>Ԝ&`FA"cb95h-g&lve`N`žksy B{Wᇇa8B0\$jȅeK:KO%깊af$fr"i[WtFqd١6K8.vJU"DPRV@`aQjl/{xFYf#SiQ	o6"S(-ǶTrg)tO$/Rܙ!:E:B_Gc_/Fy~sx%
+5Hz~g^$z'lI#b &^);ڷ<*,EG8'Muњ")IW'zQC7g)җx $%o#{I_R=J_"ܟ;×r1ixD^HsYJ
+$Ǡt%-
+E_;k|p$顢Ў
+;gt,ZGgSW9{Ї[,&$"uD:[."eWN<~>\9UN0<;H6쓾:%#cCmWLR?S,犩}mW̮UN Szt}DKx%_GʿH#nX<MLOճ8یPRhqlkD
+L] NyOJ/ig	&؎y*P,@E4幡a.ZVuu¸T;Uӷa-4ya$ސKIɥxȠHϼkT[Xr˥EfvDцO7hbTVM,JY3J[f(r6wE[yQUe4Cbj[>x@M$)ZI_TC`ɕ*y-)mP1h#$~',0ɫ7o:k_)\z!K7C8!(\[y@(?ۭw/_~EK[mɨ#V7"P;|_\IlB%k2'%ٿd55kdIҦٻ"((X^z"?^+dH2j-s,2K)K\;=	;&(WK9PS*r=,֒QYEP*}R _.|ǚ\t2ƞ7[ȱ7b씳1dg-IԾɤɒqm2uҺt^x||!??=pCA;ZީZm},6˔^uQeH^fIL=n2xW*ZSB0JoZ[WMJ(|LC$Js6ZD'Uf£[zTx6QT-dwRq*
+/KNm%qxI!ISR^HWpW0f1.Ue2B4"c`xJmnl%]׍Ǭ]'q0ծ|e0qg-G+GF{*sUc`T&!=.7;j\8?ءT2M{4RYOP`*5^۹qk9P'@xƼYNA$$4θb`1IZzlwۼmv1-<x+
+L$:JOwuL4:(ڔ-N<L֑ʴ"r>7ø%WoL{DWeȢmzzlBN+gPN,٤UK'4.ӴYZe{zo<[f˜;ZtG+Oͥ?K7Ǡ/]
+sNZeNy>[oTj)Mpҫef_HUh[AEՆu$WDmwqR[7a:^x-<!Z
+9*d'~u3Lo Or$WmUͩi6޴e[ܴt(Cq*rPu=v/SΖBV"7 4lVdFǹ?~ޘJj>نOЫ!8pֈ8I
+lE4q8
+B	Ӝjq\-!z=RVWc߈ITQ0JY}޷5qJ0V4ݠJ4&C>`fF̤:Rm[{
+L`vF NB=*s^]x6-#AUn.zÎ)
+l☙ښ<tgt|[0809p-pȁxDg!F1h_[ce2ۢh|qdC(Н##\ڙ6iۣf|Ma|9T8گ+LVWč]9 K4vf3mnx[aR07dNjVY5(ȇdb%(5:c$*[45C_%_H/ceoAg!.m}\6hZ:XzK'h0ݎg8r,9N߾_z"u#_/1DmW;pTz|QjƦt-hQ/Lg骃H(Dyg	"URX{<p12%LMZx>ca~7-F^eʚ-,K	#YBU/O޾r!#ov4 R"5}Mϣ֛?Q!zHHT'VBs6ScsjC08⬤+ag!4iXv/QAՂy_}&3xP? j)V۹~`1?awLE,\'_CJ̜RXu.aY/^wqKOSW8Wss7t&Xu,MǪc){]T)^M:TŷӘ:'epy$ oIv|a14]Gf>{Իws|qPdLrlRXt~Q-Īz!/UPFE5Q
+i*y&}xIKOOR>Yz$M)ȧT]MQ+<a{˃I<⛋ΏR_<b-qyV~I\n!ogmBDN`"0ⓗ= o
+o߼!	2Se,ǕP'6$<x	!F,mp<"'[J@4;vHZ-bw FUVGARf{83\DUl!QaiR(QMGwfu4}D 0K$d92dl #1ce%ŗZ&K08
+'r[˅b VyK7!V Ȇ~t{C%oz4Q,H7Qi2__qߓX<
+,ԝ)d!S}g:X<;&F>Ml!8"0C'	'$Oa	waDaII/Lau?~x݉G~ey$IU9%maca36i׆
+	-dƎf\a&Le!6'}3gˉ=_b?Svq&ݹ߰`lUn{,馍>-oW76aě3J<%]Z̺MM/?AK͎=Mf3Z7f}[CƦ75*gKF+m p߽߳;lFIhL>|P"|џ?QƋ>U<Mz!@1	f}0Z6ѢOtEM}Y<9S~i-6V/'J7UH",6TNQ&)?c)FzL(zD>3wQOo@$L9uDSfV[owo#"A2Dh9"{O:|jOgs82q0`oSH}?3=SS򽙲u@zl |~WM%ڄCٷbݸڄ&[FYIInenŮ{^{=A/AYr	2p&OA!A|/M$.IKzt%(>"( ׏%\hRKS
+JۧD$[Ac:ӑO,IrD,M4I(8:%ze)˥DI);%zSWHqxI%ow'taoxi~7r1t%ҐCG
+iHfLywli)MlҪ^J#Ь ۤ]u:IjMNZw09;K?%I:io2^6vh +yU.ŹA	n&?4 \>yaЋh[5$OQ0w}$v8IaG8<'e4tRxOpܤqK*[ұE!oG]Zեum,֣v\p!Hfq(34F;6/uGxQOG}X$18+EK~j{3ѥ/X|^#axK8˺A4ʦYHbރ$
+2\z?$轙,ӈ^,xAi6޸4
+ߟH:ȣnYFLyV2Ӕ&+}jBؖ!7SuVEoҫNPfe!q"pnui]/U$E!
+>&ϧW;5y쫩c_F߈$ki~CEvMl<㠛Ž;wț|Y!z_W{sRZ)(>%pqpYuR"({qK`L]o2I	BFAp%vRb7NJn-Ĥ׋<g7cgSw0W_x~'gIYLr	2qdrxLNAIdq8I0I{`McQ$d#ȸz'3Ao㲔Rb)1.nmҰ8/cp)1%-V\Ui`ZH'X۷X-VSr^wt:"lhI:F\nxX;\J,iZNUBJ<Ū߾Ū_l$^G=I ˦QK|A=Gn%^XF\,iZNUB<Ū߾Ū_l
+j(;hr M4#B{^>AQKZbobO`o[&A /N0OI7@8Ac%e^xިZĈē%-V\Ui`ZH'X۷X-V&}7N4I2JY#D yYE;|L<?8%63&}~IߒI_I=7>L~I揂^㬗i <F978eL"'5f~B'c5q{Iߋp<I}o:
+&lVG^o2{(W3&N~'oĩz?eڥb|Oݸs$N(hGY{]ϋƣ~ܝy?	@]z'W=T^T=))W|JdsO؏&Q2F^0$a>hǦ9=){J9ON
+)T^T^)BK?;aG޴ߟtl<J"?tӨi.%v2S){J9ON
+)T^T^)Uߍܔ؍d2~QxӞ78wq>&F=)W=U^U*	R"bڱjO(vS$Aި7Ҡ?;3E|:\,yDQy#*#B2l/Iɰx=G|"pOIq|:Bۚ|PwrdX|=S^Sdx))|*B[$OPp<&Amd^^Mtg-{?IW|=S^Sx))|*#?OY?iQ ob4Qbkp>!Δ<| A7!EgJ"LINa)_@ggJ,ΔsD-&H2Ө~.Iu'AExIo tu}+&#lIJd3$ˡ6In`$	 _O$顭K`K8zqw9p\}B%cE$%=5I V6Ip36I/=I0^{)%Oô7dq:
+t^mVR#"q>G䯧&oA^kEAx{1F{,N88W~NY!CX'!uB-Rssk4̧Ԑd]'k},գlRr!q]$7ɱMFaOz~&~2 	n4\2
+Ólu"+Vj>qزq7;lFܹgmѐؚCݠu=/KG8	DǓ$lOtqjWJ'S86$4#|eBR-'y17~7 xڟz^煯~ mRujW+J'S8604#|%CR-3=呪$q2i^O~{5Iam)5TOvLЌTMHP-r8$z(Ҵ;b/˲#,D4$(Ial)5TO\LЌTUMHPݸ|'BS?MċI]?(r 1	;HիHT[z"Rmv یTsajqlvMcyꍒ(vQ^ڟL~ ʮ!k^OnsWHԞR-eZ}B#S,\c-.Ѡ9F}ku0vSM(ŋ~<NxT%n5³K#C5 zMh0^qCn^o:Lp:b$M~&	\I\;RJ3\=	#fH4|A[:
+YiqAt0A(h^}h;VuO2sISFtH4_uڀD5>""ļ$$iϢ8M;GY:MxBq܍oUjqM$Pe評DLhʴjL9$g(n6{\,v{a~MCW|LQhɘrBuƌPDO32h~'nY4CoE${pv=D4Ni0$$XSidV2>!ćA]Zd,n4&0iu,vY!b~CN-|cx:2=H &&^]b5Bq=rE};rlgi0A&p0ui$"M.u\y- S65%X#-܃y]DVy۟tt:x,i<Nh4N=o2zakj#[*HB&(	j-:<&cK\\H+rx^כ( LwJasy>Vd)rh&be],Ey~hp:znuh?qYU FOaLۅJ'%Q>բS>KE~COQ6`G&ԛfI/\fҘj(|#v'f4X6*iDF%hȦ$DlaI$J,uv}nzv~ <AO&=]	:J5|?%t_HPE~ J/vx?;ѨߟDa{ؐ;ȸ
+/O<shmvhͽ]9$pg/DlVB{nw:Phɢan!rj#dQb!1C̠rT}B.2
+{ݰ(M 2#?$ƣ)qL|I ;TFy\ǘ!73jBR	T*~9LGI6ꇽ x<iL&1[qyD(1\E!fM5>1pۣG(iz4鍱iQzaoyl#>Qb9WC|ͬ_Q}+:/B~?/)GCLQ_N8U6qDO#ma/(wKFȎ'<B>'fNM9ԩ>!:[u:_=2ͦd2(zSLI LBv_q|eG>	!]'䢓qFdϟqv$qwc/Q҉+9&'.Vb_LNS®Įkr
+bũ%U#QMF-:&~7q~qaEq(W:E?Fy<*R[KmAfA30n3߰'Ed!MQ/Ix<"VIq
+U/6?r,Ԇ-AP' IxMIi9l7	%q[6
+yR&=	y6^+7å񸟎Q4'}/xL^}r(m!?>dnwiFzI=`O7_,m:/~xg_//le՟ƫ<"َE/2ޠh}"[dQ]}e'lϡ,O.MW%jmf/ٗjYs}ǿ<h-,<vv&Z/ȟFd}?afe3ϖ9>S+:ݨ:j~Egln;Gۤ}L0Hjh81ߧ[x-χtVpHio10ץ!ByJ~lrgr]t?WıV$ێ75ˑjĤGR+~3;L/@-\1Ըsi[|5*UXٽVɲ2ׄWEQiMf
+	C6ص\qbrՅ
+}ʖ Ghn@l:b:Ula)^PYZ8CDdoü^m"M} MfA/O_^jm+VtOM9HԴƂ߬BZ@,՚v!dɗ?|zVYVJo<O~mգɪlR ?6sqJd@ޢ;ZEc B	%bnLXrn4O_<݀O5]0'~`Eup
+ϳYy6+>f%٬y6weaX-"iu7j;tզ]bϻI-ZwWݓ~m!P\:o4tx㋶6l!eT&}3\ܸrmv΢s4RG\.#By [;dn"ؐuNw/?ٖ.6mOlBQ&&X1?DDeBROoHFoL&oѿd	DmYh:Y̖TH&t'w+%L3c|A4l#fS |nf%WM6x̖o7r;OaR7L~}sFO8n&;Z@ts_ 1K#l_(p$Ș77_ɤˍMݷ=)jǗnMf=)e6FF3}LP\+c>c>vǞW56n(>
+܋K̵N-^is&GRQ"]YmF_6 EY Ac0lZIkAY!tFK	=?n@wxFDV=dl}|0Jluz,*M6Gc,/ TuȠ?+0HWg~1h`s	p|1"A@dYuPwvNvYg_b]Z:BGY D\^% bfڕ<eGv;Y
+G-$@0\dYŞ
+rh#oWVYݧ{>C{ 4e_Z}Я#ltw1.vkp&LHAIl&W^Q@J@J
+)Ezwl:~ЇK7BZm·3ʂ=4vWC^nw-io:gզ!890/o۰6gsPdA٨Z~D`to!۶"1cU
+%Xoth4,iXGC /~16@=|72v|`/wj}9/{9tbjeЀl`|X䣢DD!fHCjCq
+-([aON[9.ˁ!pJ140 $.5wJPަ$9f5gˬ_CXO]aqE.ݾˡ%^ز||[H")ڃ}MRYxqp肤_DX"e4Nǰ@2B|MvXpOG#vQ܁0^E*zbٸ٬6@ەO|]قz>^ȶJ)FћгN	+Sb&Ǉw-kMb/TJjѢ<[\2禛_bې9Mv'yVRTTTJnɨb	P^%ߕ@5l%
+mesEۜ_e,MOˇ:nuj>'}\-_ҙ3HEXK}Q#MۀTLS}mf~Zȅ^w(vȐN5m'[ñϳɞ踯S0/SylSB/S)4)zQ0MIE-FMC`U>9ذbsْh`78qp	H7<[\34NHgN:AKe e;_ݧ/;4sgeׁG_+|Uxc[:vYcK Il8Fw+ q\`"x*0~vx	<mMfiZդRKxNQ˄v&T1lg
+ڼWZKTi7 4(3 4X`6	'Z14E	K.P$._\6 rJv?;PBXӎYn<'8?Q3SdfW(J9rl!DͲ:_2g;I`B$#h`73ݾHiYqT%D{L[p[:`M%m4o@wE(3$tr;)`gjȷګҭү1EE+|BǋF<4RQ<6x؋Hv3PXiǫ<B8FfJm5<%UhhKrki k߾{fA!d5[	(%ȵ_b8v*z}?dwt{53BD &x*AKC7eXU_,D<rL&v{>7(z*B<=!!4P'l?.قgwkCm]=eX|u@مujU2~gK2?pPENV9R͛;Ǆy?YE9^cu#;&d;O]u/u=}pyI1'ثjFQtn !jK X1V5\r8ԹƼ3Xc:ELظf	G8$Y&lEXXE,PA'ΘCMƂ,ֈ)(g^Ƈݔ#^gǹϴBT73n@dXEdt8}kK؉	(crK;|6-"$ۨ-m?GLxQ'_t.	843:g$Gx	@8pq|Κ{{&Y3Ww}V3~,olԨs7+a!upw^gfۙ--Z#x/np"^gk/uR{?~f5^-td{c6K ֌S8SY;a3?8*_ E;YF-HTi[|g :ܲ/Lz,VG	 5[_M9\Q[mOE4cu{ec5;n~N:3Fpyn&o;U'=I8Ku.VjhJxH3$Kv/)z7q?lVK|{wzAad C?nw.Мώ9>@ֶ$2/<|	)˲wTRº6To<р|q~\-W8m(S% *-bG<S|SqWWL~lLħ=	|D;hF|u[RV%`_k6' ,q=q>o>.i3ʲ%<0@%\/:`̜@`a+0qۈ^]a7G鐎Mb&G/:G^l6&8.`ҳI:#V;dYX$(I~th?.
+Ib$N W 9<(fZ=-=.N]HNAo3#|1%ەr^>}Pዉ#g,jQ]	DHc͎jAɟ!/ղd-," ƣڇF@	6ymjO6Vt]66_
+l_lLyqdx*<ǁ6!"ۀy>ՈTb:ә϶:k9^LϿ༖鬖t>I!W,9$ǞZc7R8Dr>tg}Rd+5+=|&#TuٮO5lQI<uMNdL`9s ՚/y\u֫5i?Gdx因ZcИnaod0"8wJèyĉ5ˇl]E+K|	k++j2R(lrLN`E~~|(}oȱ=dlʹq^}&4wW%`ЇJݞsǍ%tʰBgmg»M'sO<Da]!=:G<SҎ^3dK1gŘګ6UvʾAoh^XPd6}찁7g)>B1zO1/m'Sk1Q/:_9+aehb{CD%Z-==1/@§m6|Ѣ)ʌ+ƁOʺ`H	04;|N7Uo8_.@ٹZz{qma=D<y4ES7⾖.a])nBv{Q:isLI'ܝh?;ē3~bf/ t} yE!a1_d/1/^e/Szs9۬#ةKzIqFzq7\$Kүv~N_٢(ɳ<vv.|A i/	33ӬxBxUt3L٬X̳='3ÍV<]ޏX\.fta|E':r <Ub<q1Stqyh'jjlsp8ix>cPANt7-F^p8ZM,~9t{"˄!ds$K]͖=~dUnځM~E{v8XJNde+cDjUm Ǻ6>]yVk':6_X4(j1P;~UUz.2+#2c.Z6MO@D>KW07GoQ:/%Vfc_W(m{ASل<Ln΃ٞ=OGVX|tG㷻~{eWv{e-+,s_GۚJbqwm9lʞ(;0LQ|qɻߤyt]bp)Ĺ65!1]$
+]J-$-fB/]ȕXԚ'Z2Kϲ2Y.2̬DϴHHae3hU'rVA^Cmk6?fNG6Z9IG(j)|IΉ'FU^Դެ71E60?)RY|Xj7o%!(ZL0g2H(Q԰6cki`ø8KN^Bg_l>-hA?b]^_h$=:^4
+9eb(Ry<K_r0/f)!Udb]E/P6*muZ<jG:TU3H>PU@R	H5%sF'l!NX5yy_K6%pma^K2b_.B}yEerzWkDe4,sseqeO yu(>WWJE
+T?:/]Y_݀t\=CϠپԆgETsB{ +	"jh5Vf׳M Uc涠(Us DLWIv?t]8xQy,uZhli_ 4b!ldռ-YNj_SjoQTlÅF<NV:})>Yt1k@EL/pBCf[?o _
+cJbd?{uw7oqjX(Wd^׻#Cڃa{w72aOH{׻'n6{xm
+a5y_~~O^GQc/쌯@orpg?hzrHOgsEw<zi|·KºP/8<d5a3	/;[>1-gثoIxT{D:y\&aLmqǌ5^x2b	6rt&"°$7'D2\o죝VN,dgVﲥ<RQ+u]\ZP-kOFNH{4hh3Y@C '0`x|y`Fђat)d++|=0 4C|Kh(	FBL2S	_o+"Qr4'ppѧeBu;-w"q(.WC+\	2Vr`e4_! W/K~K\9M>_)wB.P1=RE
+j.0$pp-xd"^ݍĻ5nӢ=R}>wp	{@uY̶[JAeE3F
+ٞyCz1 ˧$'' lѰbt
+% ^_//>_wn{ru;=32I"T;'HfOEcjc\&MzNr[8_o-V%Y$p^%6_.r9AmѨ4cSOnv9Oi^0P /%[eqq<y=١-<qD>pܯ$/r^s3}&dKE%P!Ƅ\&WeBz>CYsYߵj5~Lq˜f	5gAF}Ήs\n)EUkdAq$W׍ǹcqa= &emNm [`9Os+p~
+
+Z @}|6@ n~Hm*'1[ӧ3!\·<@eE_ʉ蘜(
+q+Zf2#ϓй}@4Nwj8L*GN85'f*+_	.3<&VŤVBSu5\T+jJ,  6@۞zMGRRBa 9ȅ,$@	hGcbߤ)w6J[f|~gli@iʶV
+O&qlr\}Tl3NA0f;D7wP ?F츳e`|G-	nz8\mfe:n8#c:wʕofCw74.q,0øEY10h^^M8y&EqWK9
+7x9yd)vn$
+{^3gjbW~[-WoQG	dMFn{ԍo30Qw{"%dlľ>Gݪ.#&Uk *sNL|k#%.x_pF|#7h}fR'XݑX{	IsBfzQ8Tv%n6Vo[wW/wc-ᗞq2k6o0SVs)ez_lԋ%o/ƨ
+-bhYf3Rcgh`kY=Zv,rfEeZW(<LHp{O#SK#yYrqmb}䷡&r0$d`\}+$vk['\Wč<kp/հcE0_r4r>gROix鿫9GYp8Z
+ZP`8ebA:F.&~[	1WmRE)!Z:$R'I 4av%>S1RŔ]hoJ>{kuӻgs@4PZ_&&O	Pp=8Z _0(}=[ceHN$'Q{.a|Gt;>sC|?ݺ&[*.f~hX;6^'-T傤1?e'ԒHCna"i
+Uw)q쪋b,&Gz#9Gzrx@Oc}LطFFwj*d AAoB.V<N5r<Yj፳?l>ǙG[_%:\@ydgu};(04UNPHDOp<nBe:o__!iu>'\
+	el4DÃVX͊})i^Ս}EP`;PA!O[:bu+įաr.-aLjqL]? !s}GJd{aaNHc社(0TeUDzEhqcO>ccMywo4M'OpHcm!xq zlS6	"px;|"aRz;Mn${W9g$S@%jg+S)"wxMB`+0 ggEЁU)B4ԈBT	7aZu_>՞g?udq4~u
+4cXыa`]S@}Iɽ
+ja]`c1^.UcT۞l,0a?[tqPbLjar+߷k B>ֈkj"A	d8 6@Q '4D#44RRF5aGZ$VqR vRSkY"KȒ}\6da9_.¦OKR6ðoBЮp*\*J\E	=D{9VrlRE
+m5ۘC)j[=9ݨ
+CjW+\dQ,pMy
+֓wp.:GZR2Ox=%K<݁3c`E5w]?U!ùikA}jM*^=kQ(ŗ"\GGЅ̹ s*")(_jn땟]Y͓ؠ2xdNK!Zkgկ Uꌮ_:$?UǱ2_ǲfh,KhB:-hrhʥF׋E&i1_m4ZjeI;Fu7bѤ|fkR^+%ܥ:_\FQN̇mm*)hmYMƾ9ǩ߉39MfP\LEj2Ũ4,o\s24▗ՙr9Ǳ_SYmYbDxEUz=B|.wxie24Cիclm ~سʱh/5<ۮСwa\$agZkgi!EY۪[buDl1 ^3SNzz3cJH.X;9ސۤ2v0F!zHS䇼RY pUx5<+Q-<-LիzƏ7Iҁya64u>QiZf4 r0qmZX5+5ǝ0[Cl?:Gr	iEl⥖ݖ-9փRk)@wD]IOY}U9Tr;<65|3-we	DTR7QɃǥ0Ó|uK	m-gK@}IҾ:)9`p Y|5| O܀7yh0p|H̤x~Zw>G6f;9Ay@P=x4=vJqtܭ͏$JoyTd(0 (H>| cJYБ(0,|@|| aM0=@R4?PQ  ta@C00Y 6 !`1m}2+qeǜ),a`(H)0Bu{,+FcAP\SXn3Ҕ6o$Ia>A\dGdN2Y@LMpúlB"]"MÄ`mfQXpڗzBbld5$Q;	/W,^ XGA43cԭ*<m$qazq*Ћ[w4ak]/N@={IA:NgX!ޝ_zm=	;P4$ұ^mKgp
+t'v}BŲr:	dHb6˜O.dνcVL^uA=\`}(@*"Ri6'y=5
+^F4AU򿲇j/)[/=MDyg$w3:_DLYXE~H%~&.b[IPM=ڐ.CTnt$*yWUrzyIkU'6?d ;X_/7ot3~(`1ZB"oAwXTIť|祀I9_e *^DY?l-YݎM nkޝRuPi*eX$C0P;jsK#dJ[8&C0Ir7	(3 }Zg
+Ծ%=onmpFEIc?2v3StrΖ/tuF4T=P;`h?wa aΑRzZN6*ٜ')n
+O*t,W:\,]LvāWfkXⓙy0CsF3TbmB^h5jNL-	4f}
+Z=sZ~Y"`5g,%R p]yIʬL/N,H[9!R~Ea>(osgPk`\}erOC8K.5Bh0
+ڎaab%l5{GYoZp8}qח8)eϸ=joJcQ6a4oqmZpqP7&Suf'a1XGምp#[t_#wH4cbY[571ܯ?gs6pZGn8rۋSrR`88[u 4&I鑰]Є+2g4o
+deXLh3x-+qvo1Lط
+Q9ZxHxˀ>$Tߕ~د8,TGy5$z'u-?۝wv$$))lIPc/Xv# n_C=KGwn@ٜ42W\>NA?wLMs$MlQkgF}1ڛ߇2'79dL#5ܣb]$U޷]YSg+r:>{jCfq<[fq;\nH8]qjއIZ<:mȪzŭq)l|GHVzp$8wdn&4Zs-.>QsbSQ~bHM_%l%RHZdBl
+HLetd>nNiJcm\;٫,ۈ%Nv4ws"Xӥ	[޸'W@6C 4IWn {|6ڤGwldR@v=Oi;^}<`0Zԯ5!j]ܰ:n81bMzG2: <؉#hUO_p@s؝eMpE`Eļ\V6+Tgd؂ړh<1DlPrhcXMd+2=w\/ͺ})qFYdgsy];VNmD-ajlD-u3vᛱ8IOlhrpr1Ck@cWUUUxNWtU^UT4ʌC0KTc?ԊR6)rqB߉uuGU^E5d"w}ir=)1q;@pSKF{Ľa5$v֬4}v9d	fWJ\8vYVs
+ȮKDegPpL-4LVrLn0nhfrUkޕPi+bEXǤ1K( ",=\޳kNnN=-.s^󞒇xrQ6%6IŠ՗Em+q1몶XwQ"	@W~/V׷O灍Zهrv۸N7ª^{g3/Ly<gwRR:OC+XI%XjKwalkԴ"s"_O1OAtwae2}pyiӏ~#M#.E5'j4¦9f!|ˉD
+Io_W-MKYg+$g.WMn%B ?zqP<XuG,Tv;۔҉DZ9)MhJr>ǱljҸR* a=A<{xƍ*kr]JYƎB4+\ϒ~e gġ<yǍr ϭ4Җ:"e<'[AhdM|Gs[M,s
+QWse8gp'g8FX2KPcd>sxg4?tw6nΕbc銡>:iчhF#ԌΓ6@Oqqp$,`&5vƚmK59;SτKZQu~:FDc!LYb\uROk|{6ь
+kcR--Q	18Av< Fk&gozYO/o#_䎭Vz[6"Mªl32DG`K3E~zC383pղ{r3_1Nfr1<Eߔ#u	E#u`_u|Yu9csI`EV.kC8Trf\Ouyv9ty]rYUލvql=ylAsӐv5nȎVf&-S];5ۃz٘g%0ϼJl6-tLxeND/#9Zs=nX)5ٴoznUwm0 (Sa[]Tvyx Lb=d0xwe@+蓀EZ7ȟ^Owִ$W_5 Jz	*9mzvE5P"hjDu1.:`2zfYbyE3SGw^Uy!"fיw^y@+	W+	XOyUT+͜W@j+#uwr^qRUkp^L&['nz4MZ)XX,0t^q0"ajh=W;@6y JBU6y+p^5fe{ũGNw=zƕ'\YZ;)5P+!\Y|`nd.7bpJȦK_tgY/#ț(qxWyE{h{>5c6ߜ^D
+Ms4f?ߜwhţu](gt/1"Z|~m3<܌6e\q|yڡNK]ռѻ&a:#$4?<lsYkn q,5l },Ы})4_}פvWeDݫ-@)\uQsQ*p2&زR<ͨތ*]e
+M`3cYqkbn&Ls.Z*uYT^}MI$$5t)e7W9@KoM-JˁU-y>iv1OY9sǋiq|^= cKk]c#2v U;+Pz;=7e7ŐǷ;uQD>\$|mAaڝ}OWC513[tpke
+jI]
+0e\z˾0vinƻ-Jv8Ǵ#w>Gn Ji<NPNʈ^,\M*v\x -!,omEp/"tedi/Z4<U^EgB̵W2"~+羂n9]`2/ryˋ\^D
+UleSQB8ߕ4F6jF-hv-X{?a&אBLN3HDxhqk% X,@"^
+^}k7ԧ\"vVʱ9W-y1n:b\;KJM(ܒxkVڻ5.}kIW	 5\,H8Zd%/<uf©C1W:<"t'<o$cɬNeƭQ7\
+bhc#}Iy}y%/ۗdV#/7Xip1ङPdg^D#F:1Ó `ix[ji`xS6<yǋ<^yv"%,QjaHl yKTS`R_Ȗ(1%-	cd}A?juؗi)H
+kᵛ%'saVMnZay	KXW)a,aU,C=E9i
+Pb,I[4NjCjGJ&zDd}[Y$kV3HbS6y1ŋ)^LybJ+݄0:
+0̉ ?-yIf(/u%| 7T\sqx8#ISMOT%`T|8mn/ӗFcw{Pc.sh$b9@w"\cszqYFu׭?B2ٮSfTJC"ԅji	XS	mL0?o$\\E`*#dխXhXXW20[u.Yz$w$p.S6wyˋX^z"֒^IGqTg+sMۙBس{@s>*goj/ knb1?<9LJtS%(ŭw\5ܖVݩww9lJ.W!
+y
+Ğ85,Pj5m9&JBhEKM;PHd^M8U]Ec&:6$i U7滼攍 Y=zfuj۾ru89A4ssW~؈] h`/7ۭim(w3FM<9J]:T~i+"O7h=Z_oL؃:,Kt*5G:z4%9h3?:x9>fDk],0C0N(xL̆zha}!AwDtf;nFv.3p(ZnT04iu}IQ965S'IU77ZibE YXgg8Y6U4XR܏-pwjeN;*0ۛARC-նPyJAiU>W߼dDlztlzlJr7&N9*H^xy*<RQXpQ废kVUYSk O ݋ L㙚}Z 0E|~/ۍ'}OO#v`IW˭5]BzU-#(tvv Ib_6!ui`QZ},fZL}@!aX,ll ܛ`o[jڀ$T w}>?M+:$Pd] 7M\P{: 6/ZStq墓f0{Z2"ۗ 5󸑹DgڗEiVK(HՂh	[:16 )/H"7["Ve,ҌOnjtvw"슿r9쟔AE	+?'ՅrՈ?e;YZ卝QY-H]+
+_!VԻ&dߊ
+vlS/BΦ#0FWvO_f,<W
+Yj +-GWOcru*˯FAzRT.RXѷJiJ6nİOOciDL^^W\:u=mjF,ɬRs5ASbjV
+dC{ ,t457QS])^ܐrn+d**e-M׍$*mZ*QӘm[N!~4lC/4m&mCcb# zKFnmDplF'j#d M"hd$<kQC`4RKTF# 1H,V\U>d$jT$vn"Z`XUz+ŴBu/^0#IO|n@retbS*˟X0
+U@(p5AS?UOcŒ{d Svޡ=Dз8ʰ[6}׉Zt/|<-#SσX%PӒdFRP1y2<ā3\mt}+Y.q[QBpJa^;>Kz򗉪DK	/yI*%tJ)ʴC5X|*Q }nupECZK+}LR)jfVKM6N⃝IxGq=Q[B5#DmS^r򒓗LaZ$[2Uz]b.6I"IC:pi8KwPw&; V.+,DM(SU~#-S!o@BH3qK3⊘&dK4;)?ɁbF0m0e"eS )w0o(:tYk+.D+=Wzt:PLU{;P+@VnIʯ0P,&jVEe 5Kn.u-j=bQҲ%Go""d5_Pť,<ߠhW}p+Bh9֏~w:򗒋#}
+}zje,8)c4	?2Dcc-eb qXPt"0#gN
+k̆"z(Hda}*WB"^}~ODjcfe炓A#B{ݨva^i,%ŞFؤ&IV Ъt 3+|#+{Xo}OiGjeN;Lo.jY_f:j[1O)_ߒ7JWߔ#VNUP3e&% ߘة닁ZĠc[h	ցZ*.\~Jj^	cG{qTQKj% 	]ߡz vIߓ%He%jQv{.3fާ%PLzɗ?5gv]~i-b,:-AF]J/xW;_
+R^L	&HI%@x,
+oo~e)
+UYE[{P ͸rWְr_ *nž#^lN߰}p>]u،.7$7P7A n%V:}یŹL,p1{	9Y-MVor4!ԪKKa)T{ٛ!`۫WehLI4yIK^t~vYMS{u2WC/d\\MՒI @w:h"Ctb\&:c76M2cgM71J 
+IjIfƐbǻ"axѱ0
+Ľ%%>%+*RwO2qiOn}QT~0v.A_~`/+N2kuYc(,Y|So`{iL{	az,	,x5罥kX!]i}SmLq\:XRV%f8'}Y^Ҿuܧ9ճ3]^z^rW&*wlĮ뚄(i+u PH 'gw@(3a)ogPԘ@\3	9,g$>/i~e8qe.@ojw-Sb^_FqGz`D#~إW7_n	|]_~`76k5dTJqmK>jv'MT,8\"U=?(P@SJwW#S&v+c_~C
+bfĞ  A[N' lHUW!Uup 
+8hn	=8S8vv~Qn#.arCtpU{ tQX"Ϡ3zCgP!Gfz?݁>OA:q{G?`P̂>[Pz"n})qU]iL^XiJz3!)',~	L	(!qj^g<8Ybw
+E{h0^bz4o{2
+Axj#MfyŨQv^bԓl191jIz.P$s]P$u)#$p"i'An=t9wGԤazighz*pjtTJIPpBvtqx8#EťV<_IUw~se~=Ek-^E}U+(<ҹ]rx śZ&&/tMĴ
+T7DG0IM\	X&Z	[M}<| ITOZ]eې4 PՖ; 	$g`r 8ZԢ5xo	KpW>N,D?u4/oR.H gw_P"I>A		bAN>!#:.]ؚ845aعieKpeFqyȔFnxw^6M*&RwSoVh`ƺrm/+}fႈ҇*T5W&W{E_%|U7	ZXP-P^)MRP|+z (fJ)ѤQs*K% Yΐ8cBi֜ ź4˸$A'ro߯̓'H?Y-@ijMbw]kajXR)u6ԭY1G&*aXiKX^uӼGe_\|-~)j
+J\Kr͗
+;>=b?揇c5S5eC+f:rEZbܰɸm.f&]^*JEGf۟elM!|7)HO+*
+ Tϙ|rZh9eh	_s.LBVUSK$ 4/^%jgB̖.P#)4G&Ќ7	\*N՜>Sg2oRݾ;rjep]E4^WV5Џط3^S:	Q0jLTjŵNH94a)\q'`JcX0Ntc	pX̌j'=JVu֭,`L,ʵ,fX_5rMYCg7soHZ]Y'~_?珛|߉ɕL۟/Ip{s{N<Si#tqiݹO\m,yd3'Oސ'5젊Gk2jqp{vQ;ulr4S(_m͢,`8kfQ3&h&7Rd8j6="{ٵ/Xi(LWEq[$ymH5{Y{EZTm}c$Ujr%#zZa6MUs	x&կiMHkVSE+dWlԬէeM&m4FڒSKi+_1SjOՐ.88U+Tݫ! ^zWb[7%3)rzP_&9QVHnx%	g<	W]r,Ͽ=Ter(U1*,Д(wS3EdV/%n5IR?UIC(x9.1хj)vs)βcA Zt)1h5%99Y{2S0h?Sehk$JC6J7\YnT&4L$I
+d$Ջ
+F*{Z`C E-QE=iљ?7)OO*$}sdd?GI,#F)1)O)uLsk!#Uewj-F+3E	g*cCəң1ڟM*#?iČg/h0.
+VYgs} \|oNbJw&޼2&`<'/|KRPXQwvalՌɪBY*2s|
+Ȥ"')aH[MDYM:bEw:RZDUQp"oNMϛcđ$>Y/N"QQ H/1?Ιnpx!9Due	Io/g]hth%"m\Nvt5/m+qq)@w%HCcN5 MJQe0(ƫ|φÆio"721-)p͠R.1XX(di(X(X1yrB嘛ӷ~CӬ:Zi7wmM̃˒wAnSvxgWIz|z%IYu'
+K_zu׳g]zu
+wlu%e3_4kKgP3ŸȀڷp柒pooYo4^uwNqO`f%uE,'9|ЛJ_AM-Ҕ&U+cXv-)0d!@N8&-Aޥ<IײkY[坬%d%$BNP!K*kX9afqGڄ$(-EIMPI-ZrOb}x̏yCCi.τ"/EcTӢqdz،#ƍ#8<.G Y\W9<KДd60j-䤢'O*F*Kd%",gOPP.tBZ_vF=o_B	T?}Ѯ.\ Ƴ`#&˵[iU,JՖWCľ;Ye^zB['2SrPTm<liY%_lٸj~P@k)ܖrܶ.Ji{=4;Fei%@W+t
+9$p@A9X"ALId:fVHKTc'RI99)ܻ[xeuŏ72mU{^^SEL8G$5w+9~c=ʽX4[עTU`uR
+My_Ⱥ6mIT|[8IOUfwÞnM0V;K0CEvlVk6 
+b܎mfe59sB<	-Fs-6`DlR`
+vK'a_?H83g$/GU(րY;p섑5PropNe 1XYDdeOpE*ÛWu%";
+VCaryyw~jq.b5d܎M^{WGt>?鱦	AI@dQ9s,]@?`)wpz̍)>(6F[Y#`g ۭIIfb5v^Kp!"lYys;\׬KzƜ'sɜɜcd҃66%?tGc!x!gKzY(LrEyrQ!Ϛv,p:#F&&Ga "ΦB+؇
+1nқC=(Q^~$Z=ePe['M<i%V1t7;@j9}f0	rQ:X&NogÛY=>+F3d<leM|B|QMlS%hS6>t&PbZ`}Eձ@{'}۟C/zkv{AK3~1ᴈPrӠHx{4cin1vbWrbf&4Kn\7yJCe/SS :Τtu	2k*ntӑ^ܐqqҁyvQ͋Cb;񿗡qDäYpk5jpvzy4鱳 e~q!+@MMCѲʉZv܌re<l\gwȌqw6	h2ꊨЊB+s^ݑpdBnMf;qdiXܦj'ݫ'g_e_Kt^2]*)?.dMnWʜ	j1t `h~Cq>}[yDqG} ktb);&<'reE{#rT&{A0vC0r|s\K1VO}?v]:V+/*;Ӫ0Mk]ӿu'sh8iy_h隕WK9r;ݶ$;=8m/*鷜ròZHyYmS"k$ hdbZjMBb<zb"bMtĚE:jePLM3."
+gX+z3g^z֫օ^{ tPitD:uf0_2wz{+WnTSvr\:xˏhj?0rlӉo(_~ڑs7TqYgUiW/ݴ78J]PkfZ̐Fs/	&oK221*G$M53>RV*)dpgf;ə|r&Ur636^M?}ђɉ|;
+be:2zV@Fn 䋴LaO^ryP?"ba9B-t`m+Zz[I"[eJ7@Ӷ}@PccV<ֺbpEr*?u s0Q#`t_lot6X JUܒ'[_N\Z!7k6wˠ)üUv%g-Xܞ *5{O#H콦xZum<-2:o8<?/7ۭfⱊ~>6zjkT鋺EVS:/~Hj+`~-FY1/8n4F9ac|.	#Vfx'W+'+f!:tτ]
+v&݉"VZk26#Tnm`fj`>*BuM}Ck.bVvm8Zߨ&1,)U[swy
+t]Djq* b8㩚?п~F_e`}.^z]wbY"vwzo>RuPQ6Bǂ<
+_{AԙX&OB]G7%j 	`YgZB_h33زg~&Oࣦxl<V99ia!/?SHsPh)&qs%8jP:H48j!(_QWk; xJ B &=TI>J2Ǻ?5|獗xǣ#aԙeۢirKmɅcX0]&:e.fQ!mEoKSLI"%*:I?gBu{'dd(ɰZPaЦ'8ƪ#QarN>bADk<	JI0 Ha(.oחݚɑ{F\`gLuw&͖IEgocZd55~*VF/VPѶVO͂~	KӨKi&och߅6PMEٳw#Ǳl'V'PHzʹJr01wg\6ww-Njq% G8CX@vE8 ^+ٚx	U	x'p5^0.ɠ>lZö9rq]*L; mJ'@Fp,eI]DkzpfR&jO/58)LIDIG_Oeח4*\bV RAmdBLت=HkuSnnX:!l}t쒂4 yɪ]DS<Mg`Jv$ubMVg`:\;uD{	hEfI$얔
+ldz_@~k,0T^[Y XLDHW.d^/H]vm䚘=Z=I"ĎKKM C>DDdz#tsB{$# ||_.gxM~z\.{/FYh+&zHgHrth'$0]8I-Y+Rp.;Zo9?jK؛33ssUi<^wLqHp.]/Bg|I!I1?<9:ŇsN*`f&jAGC~M{N`FE;j44f`oZ!+2YRMjR1+f{qg_洝I\
+vU֭ߐJPyMY7yӿ
+)~ǌ}2KiP)?r|7]KER#`H#+`9X7A3УfYTWM^.GL8$[ 8-Roo54{A(~쌺Jꪀ^{봡DK`n>7f9ܨX<`b	q%0LELiB\$XPJ)=nQHm@bihhvx"18L	3u
+L0	Ӄc0ߋbٿO<qG1\
+Dh!CoAZA2g3y<7wx<DدؖX1\zfтN7uPf1T1mtSfOKzKxz}/}h*^IqM'lvVPhŢcaµ*xvc׫!K|qqUb@~hkAdoBulTVOxԟlgZh 5	28% p vZfkZ p	עV=dx"Z,6,ql`UÖUMV	ӲX1L$B)
+ʸ-eJa}KC$U^k̏P*uqc>hv0UÀHI77Yn.t0[uO㘱<] >BwA4JOq:o!;_Ձ~B
+D8X>fmқͳƙ]E P*}UPx:%ۑ>L?B@?jiflFZ$W1}5*X#},`{R7-	3L^]N/5KO2y$B}&k,y'IʁzclGȴDMb
+`[5Y0}cJ5{\|xӢE&Hq5G[F\pbD9&NẌRY&|1~KG.WeNz=cyI5Y*Lz/e!&jm*rTӞ
+tv;g@lY&Lz Ơ&@7Tr$Ȟ][;j:
+jT73-L5uIhLC?@Ci##ET;ڻaGk5EC>!K8C8H Q4lI1z|
+ kR-֛Wy|,$&zK$(4uGMI{xZ$pHb20AR]NstƓƤ>裸\9
+"pUiQqU0^Qsߑ8)Q&,V]5'=[{%{Eg|:;x2Ã'ɒt;LΚ"О.'V&"Vz-3JԈUD?^YvНd8qG,ϸ7Vo_k@+'˕^UyPDJR,ϛ;}ISH+%i+m02fG}?IS5".~QW`eJ[McmLH7B0Zs~x:Jn3Ĕj2=u3{zakbCV]Ƭ+C=?lcJWBWm>+T1aLY]8ɪע5-{
+,(8	G0*lXJm&*Drv׏CGhAcM?4YQBt6q[o%o坡Wj22ʨoeTa&]j-wc-:sǳL&ѻ1o)`"GLCǮߝîjqԯĴ#*p]M;7V˷?lպr76<Vc#ȸf`/k;}B4z*ï_X]W|5J*g-欘!oΞu	M [\5P%ˢQB9.YA;OxGqks}=(b	~Bgx.V-ul#^Oh\~E:/ pg35gTy%/$u# >ldjchM 澎A+{<ʹGxFȃ=l]ɣ_gz.lA75FcYߒLaS	iMxD헢~&#녠㊏¤;!-"%aZ= gϤdknEiOj|<'f~Bd_a.n qάGVlRr;,g-<[=Lh2E49<:i*s09ǑZt	`՞e2F:Q\".DyB1$n+ ,҉tN߽\R)ѳR¨{K zRh?tGdNLҌQtݷh!bV,60oth1ËciȼO-`xр ,/Ӹ*IrAk-r՜#D@P%"ΛIC nc\i䍧+5n,atb [x`$H<`P<04O<xxj#
+I<x	SƏ80p*0YIU+?y1	~!})_ןdyL_0}(P2GpoH!xj0W_7MqYU4J7r{e?6cюCPu[$ݯ, Ii1] G$pn+=o$P$2;	wX y#D/"5a|* 0{'4Z0'hܞ NbT$:R.D.BhR8:""QGurיM44]!5[rBw;KC,"8YX6^fN)MXII0.(?(Vy&t:8wG[䂛_?I2͛zXzA0)j10;/wkG]~-{*C(̘ wSߐTy-~ ^
+lPC$B5z2SB7ME|^RTD<śY#[t t2kxZʎxִԎݬoypñ/9aBg~gIZ'-75&5$BZRA!ɓ OI/CYbȣHYTY_]j9נ.q4PwWdrC24 ̢Ǵ^Y}R0x&K@!UA$TmNM *yzos3*O;O,@aI/DĜu۰6W46!!,$/wgg@U`I]NQQdS!qbZ(B= 0UɅI_yc37+dĊ(ګ	2$Fcas@$G8Ex98(T#sxP0@*49sA`¿Ou+%㠾qX4Oo?mvh$1UY,%fw>[cĄ}bl 00W/%-ϸF2a`L˱KnY`=2ep#[}BL!v(L:0@~w8wy_a4E9nJZCys/7O=BD^Aę""ӌ~:O,i4_9HI87sIöIFѽ]5LRN2uӲAQ{&13B^քxȿ%"#˲d\'?A_dC&/	%`|exBrrj迬 C$!AZŅa7[Z(˽R%#-q,^{{wH}ߑJY">6sid"\?~7_h/HMO,g」?Y،.&#Nm(;zߑEi18@NԌNZ'٤}6e^#9̙lY1Gq_}JRp.MV{>ك.L
+b	̺\voxYne#S}{䶷OE[VA2dn[m吅P3}R+:tpR6#Hw#s.O7?^pUk9;YnBIP	%ߒa]MhEd9q$X&%VbJ2/`+E
+D26X	!NiK5WR6J*L|'ޡ]fuKJ
+:\VhcYęǃ'G/xQƋ2:LN] LLŝ%	:	&=\Ș4MhwH#]6HaK#v4C^2$[Su&[fОi|,7=w6;	=IxtOK5amuwٙk#E_*uZ&؍hh>>-TWr1%%=k?2o" I)pJaIS:"NAFֺ n@d-ᜪoK!%"/]wg4|Z6'-I.1}!;j*1cό|#yRTl$E}\uwjUOqg0yqy{2z:^0ִʙbWM+)GB!vƅs?6ó1pOѤ)Fz~A>۵_R32}V>򅦡*#$mA&`G07'P{82X^dͷ2)HW^gY=ܒj.yf$lɼ:m&g_p0ݢnȯ|-޻|gt$S>Wl~8?,YdP޹&t_Nam|83k<A2Ouni>V|E4<zFiN=pZ"FLɪ͌c#dԿ7==Ӧ(T()&ԤWyQ4c
+?$>;R/`aٙ;KPJը(%8e@XR*O~#TsJ50)fc"ӫ0iRUUc!L;sܤIۀpXw*]T(;tizm10ޖ*ULuwSGSf<屟,dhvfSIt;DkX#;3P2YI%[5\L ~GNI.W yeƔӍm:75xG,hZ[(j$4k՝s%RH@os{T'?4
+F6i^<ȞsbY
+3зpޔU	/ǟ+}eu\3Sψ&5)x#t="ǙF eNg#\7/ie47qك!8+,+3LV.X?|?S2LU>s*LuJ~^0]FavMktYbAְM% 14 qC]JD,
+p/S]gR@IRD(UX0M%Dd%Y{<ޕ-DS(+"QqEqY{H}n7WűC]U]ǳ%Nٕ}fJgBz5A`/ۍ'XO`9gݒ`K{u[c0{>nN{
+w.vyyxwvVYvF˼S7wtHc||<;mf	zLb#}Ħ/Oh7^.94( KǏ5T KH ,1BLP)#yDu:nW_c
+_#0>|#&NrQ|:,$Z$漐l_>/6K:>o9sk7nxʍΤs7oBejF	\dCxŊfۜ
+"0CȪ)\{:o-ϋ"~MhRUZ9B%	Ϗ~={mQzwxou0י<{ 
+ȓHFuȬ-T$:9ؠ2fr3J/gZ؀âUxۋ|.M#]Ý!I$'b/?\&bY:e<:Uf /<a#'3CjӔ]}Dgub	a_ʇ%Bt+{Ά# -yr >}֦P7.a?m#%֜Gp	l$0
+no̪y]dWRl#$Nвʓ׏uzjs[RKjD@ɺ0#k0/si>v7]>#7	Uxq~sc!'l1iKFΓuՠZ6z=jhM2J.:BzI_]D[o^:kKHsFeT{VљP&dYnrZ)~zĪ,	xzTEB=RN_0%0ZpUfh (@A7uP[KLxe@˩Cr!h.i).oG¸ge?p_;ēr8/נUa W)Mcvo2iTGƞԫ9T?+NB'H<JMZ|mIb	}7fuE!:BAxT@L_& y>%/H6>aeriTK7$E}>\a+q=@bTˌD1o$XT[$/9`X;i(Ӗې;ؐw6d~qcF7KƹݘzHe5#<;/ER*aGUX|JBQ-Dehqs!8mI%96`w| 1ܨ8kԀJlef
+ n[MpB]y;\Fz'.D_,@{Jd4}[KRP|H?(̃(n[qd=2) jQ`$
+e3ZM!b'(r>f]Z/;PPelsY$EbW<`@llebK(ΫqA22p]h2A2u)Sep]EUcG>)/8滇m_K*fvrVeG|=me/E}V7tEA.fϊ%x0ײJ7,e0aۮiӛ[t~@y0MCG ͨ#הg%̷mQC^oadso8CB?x@K,L)
+t	kYA?O2o={`q8 gMWI5X*yE8@ix o9[#CNUp	]>/oЉ.G:~-_4zd=tO Ťl]C )e;nnnKK9O9W+MAa=M<9uV5pMI;#WśJu8ik+lrIm7!K
+H!"Fzc2Ŕg0_Uyl01&NZi	 K-_5 4v&
+pWBK0ݫD.x7ED~(A#]ǈE'{:'x.&|$]ŖD?M4U!C/3!aHe!=)#>T)"m]/2~	 	xk1E`^m= ͛6WVl8hyx_Ջr`JZ;} |h݄QW?Zd)qw$3/դY/m+)4IBԧ&.}VEI4k@*"*!^׃K1]N=L	CzEQy{OlUvU[*񫲻+{@鎚*#%E%j?杢At
+lt?ȁ[~[WT%57rG S9t_ƋC~?A<Vby)x
+33MOdy>?XDňW=l.woԔUcaJaрON$miow %-U3Ȗ}\K	 #-  [hp  "ga#`o!`!`/b0v+5ƃ#`F@|\6<{{<xz;xr	#~FgW؃ ÌKK&V|)uȎEʐ\_U\lDrc\yfܩ3]jɌ2upgr?L`	8Hg\C+:iLtm&qebNNoz  >vPAw@8bHWtϔV~y&qT.zT<߹IѨ´|kt-Mďk
+ZRI:w/>{ 4SVd	=Fh!z5C@.<HH͵wo;X{Nf##'8+2aÎqxih$ uڎ.e$FOj-]!6JIa+|{IzĈ:F@C6-ZA>ŘiMTʹv!c
+VP24}<D{BYg:ۖu&0: Kf(Fof/GV+ sӄe=Rpyweag?|O Y'lh4Flق@Qz^Ԡ
+HO15u"1Rn^H݃Dmj$ ֥YS%3B4'F7ZQ}Gobʑ'hYz=9a=DztSa9%tj7Pm04wp[ȸӄh\f)>n|ʒ/;L3MG0>+LslǗc=uy<m\9\cAovrnrV*Dpb	"DqU{rB'Bi5W_ ],J
+r4o$bfᩚ?п0v>K/R^LqT7{I=&N÷O"PD^LYvVߤla6^9)"|};tYb,de=eL(zSr"S8ᄎ	S^fDJ5?-`!$   'W<X^Ӂ$^=l?&!L5ŒX*!%j@FRqPվvվ!ǇR`cx8Ea#_`5t1ۉbiZC2s]\ϘABJeBJ-ZRaǇVp-W$]*'ʠ]. NTI1	8Xa=:4 f6^r]xg/ߟW2e8H.|vxQ@V*cW?dGfN̺u+dGtۦ2g
+nˊ᰾ݽ[?VW9:9lFzSCk%tu$I\(%]q_<N?0/Vn3<|bG|;8{ISzрư5 e'd, zfAxQyV9} l8 Q򧤴YZO(Gݠ=,~]Ӭ$<2}I)ssfg%BJxѧ֏GX3дzgjI4bm;[3 )ɣM8*c *L:NTk4RyK<4'7DZqyj5:"tlЧ[*9ِsWiZ	h BnD;@*3|W<+	ߕ<K>u5S@@k_aMkїA\V/?ussi>SMiwqdaXC3ٝ?Ub.vi1萏}MpvJb9r&ΟYH͎.+e	U>E :U[2և}2ꙗtYD֌kvSOT*3`.'MB	 siudQsR1uYRKv}yģãԨ]7ue#x| g5yl5w[_5{!TGgOJfw6L_Jtg
+cA⮇aJ(|YaZ[|[j \A[!?pϛ㻜/ϧ|JKZ墔/;|A_ne ohmLkf+JD"X	U8xw25*PE߄ˏUgbO;DEz	[=֐_nnms|Gx׽R X
+(UR>.DӇȍ^ Nb34wӖuٲ-VXY>w6m=J4"S--j hFFYc_GK5jb+/Rmdb7)Oe
+#~X1nMId#0`\,ɬz<84tk!OlZ3?Isw8p;a<yxg|RW΢#' {vc=i4h~		O+ޓߔO &ޡC?<bHOjY7xjk//0x G'wR43?xxx?toXcB$xl=S'7Eb_p{?iBMpS UODmo'Aoh $3{c/L+G< /~ZjB_Xb>?HnEL5tr7t0
+pa[KTQDgw,`2Otj?uLPw	̛z)K=eev"mMjё^!];MTSn >6Ͳ*v97g'-tv9g,iCIZ~r1[Z6Mk֛Q!wL6@>.P
+4qs	w2nrl=x*R~S/:l4)tmj'c'n#.1z쎎Ε+;=[=yäf34˨d0Hҩ_YR} ZSڛrV9Q(^\KNJ2_c+~]<{L:`І{gmU6|}hW@2y|"tN?e f&Exosݯ>PиQ^U'90Y޸̳ւDrU5[8IC<к=[Lvz􇇷6J&zh	}UV|X(rP\9S$1Yf柋m)]]5E١u)у/qeyTJM}z%/<^wJ 2̟5a@yla%5D(<:Hۈih9֔ K엘ɥ&Ipʤ[\e,(Gƭ|e,4.B,#~ZrOWlӕeܶ%,<	ޗS/68Ex-)kB ǒit4U!Vs5nA9ttA]eY=+ya,`TR|i2`b4ׯ/sͷy=ҥUNsv;7]#}ލ_ivfO ;G|a;_Xr pe:x1,HdI{Ú.7zե|0|x)ؙjv-'kAylOr3MWh:߮z]l9N
+RyXmU?!.pd	.Y5kL^;a
+ѿ˚: k^_heBlOmOi}_2`sOatuC7-iwG1[.pպXiuoYNLWvA#vbKa(+deL1VSOhyav@b}S_h+L]&9Efho@T-iaF.p.}d.Ba[L^ftjf(%JH 6\)Obd+84I?n luyA[D[ZpM˼^&#]9#'0pvd+?ahQY|&=Nd<>hj,m]d_p~uQe.h]/6ez.ιOx	cS"fc[m>W]o3k'~=N.̏	tsԏVH]Ȃ*5(tDE<>ؐheT"E:Cn@~Zl̔/r۠'۝ģw Guѵ0ux9;0* 都3>h+k^c3y@#Spn}w(S8Ʋu-g? `c?DXRqRڇI¹wJ*ɵ~2[7_B#utye)?¿莊YiPMg\(!r1u2c"4+Υ2/e_}M?s~~87M?bDN2s2($~؇pt0,$Lܺ/quQS5f+qP
+ 7Î>}Mz߽{^6Zt-;IWiu~!-
+EжPLws쌙);&(@Hx ERP5V錸= 80]A;_3;ҚTFg`e?;bR6Ν3nb$NG(=6P`:ς|>|ýh0/?ߜ䙏[8~uHcL,XVϑ,g/+F?wp#_oD/aځ[ӆW*ƪxߣ3 d86mZZg3bK6kI*J9yV?ٓ/9yG;:Nuha;ރho_ʎ 'FF·}<oT;ޞ?ny9@aX3Ŏ6cבkRUD?MB2\u沃h[$KߓԎk.ϋ <$*: @G944f7@`%%rl!Y%cQ`V>x{rtyTI\YuKۓ>B_څMg~G^6{?'"/M=	 P~с?^2PR2] 
+_ZV[:{V[5 /=?r})ܤ\kNb|-P_0O
+<e}.>Q j"hLa?d|oϤ
+p2UwOҚ TPT#hNKW3='KPEX	ԫ
+$<I8"PU9 GWԓ!V/P$]jNH?I'#YsQ!(K0afZNלæ<iWl>ꦴxbûAƨV (>Ci螶?lv{\ڧsmΏUx5M5ˆ7]8j3Pk7:s[bJ>(3M|$9 Fz0>KV_\tMNn_!9̝vXoe}ĻWè{6ws.Y~Bɻc.F6BX;	k"5`dB#Ο*ǰCV}l-G=}p#T)丏)(N@6x6OuU><bFmRB	b K=]NaizOZc!NBpڻSe'|/
+h8^/n\+y*M$ݮH|gSpp;.gj9`JjNvaLONfvs+$ns qc
+SBF3b3N ;Ux
+
+aF^fxS9&y}0JIᣣH~MRh2j;m"Xqg_h:^Λ/4cE38'I/]5\y:/7:yF7R.Q8o.$kaEMש^Ajk;QD6٩you
+öV"M= _NyB4XԊLpjMAL)LWhffff3\b 9U.LxaEIΠ*ha!/*MAu9M-_AȟtJTW:`IDL+4f먔"G)g"^>׻M>th|+<f		流5+5ԛ8U>bJ,5f6iX%hf(E5_?'X%t
+Sח{,eUf"SK1MY'(=%گhQLk\ `ÉM1ybfeT̟,EPN{x&VxZހҎёkM9xp01x
+ZR#p]zVh&Ѫ]$` d587uS;FNO@7	p@80Dl`5 B'&G Ŀta!;06BCP4)5uW1tpA!x{N}VĖ᤭ؿ,ּuS[{fxGaX1Mkafqư?7cSy3w{3q~',#Q	͸<LFt/5};x>zMiUd,*YaO} ܩ}τV{tť$^MdqCOyp99@O(QKʐ11͛ &W^QځaWGq/@8U|C8pR4l
+MAS6,}CuZ"KP*Rcc391|cPr.[:Ai~E'ZHvA4i~iiSˣav|:("RY 󀲲GrYnI弸28aAٽ^K]i8.q:Xgomi}2[17ZTfSAz$03]6a)%FdG4c%[Rd۰ZfEcA0ۻKdǐ_^-qM`(T0Bkjb8  pQ\|*%)K5ktMWUgHqژVQp~,yal^2OFQ]LT-l)/Y8d޴%2%e)^	4liB :فvT.:fNFpeƶdԹf!89n3b>3e =))ڵ=)P[2և~_6|A4i]ӟ|k	]cBG]BGl"Ceb?ŉy!@rw9yMJ4w+I^DH&=U>eu2*?t>fqsTpwۖ:ӴݝOE/*5ltzX/dڒn1롩e9B(SƯu])`<Qؗgl|ISoʨcݵt}8!9~"HxoBt3ֿc	 jSc2>`gMBS&aB@/H
+7̗TxA-
+f\fX?zBuOuDuݢ[#ZF	6F`k-G	BB>?iќ4&%qwȍ;:AaV9_ '2OM^{FdW7uݰatO:APrBm?hh=$kD-҇f?:]mFՕBnYϳ[+׈*`*'P8Ta1d!"/7^^UɯSq!&ᥔ<	d|Da$z6Ϸy<^q/5qF&k'5*FyDZN!e?7MĹVW%?~_gϏBCE2&$ڼ,<ns4^y:}Lm.wđq8+Yת<k]򶕐!ۆXmcC5^kQi22
+z){LEwT^KͺCm+^Ӷv;;TZGJ`}n{IK0=/G`K :L	Verj$pPĪN^{2Ogt#5tu	Q$HfHۭDvIFƴ}4
+΅?W3i0by]mghWGQlZBپmt}h!z	?sGOs'\X,bQʄFшdk4@x?;IpweuK	lp9(^~0n}ٽg)sIT$|I"z\tEK*A,:}PB ?Qt|GjW%DՔ'YDTT>^g`)@錟gA`0(W\).Q֜m=?oީCp-HwD$LJNÆִ)c~XȨL{ī82? ^WU$OdќP8K!{TBp8=ڐ`~L27c_k1αNMf/HQWpTL/kE
+q
+"-otU}JK]V2%#BW穐<RלS:+L3IL5LOqa8nLVYW-vw5%Ruӭ$PTBTLTA"RwTjTXhjwS>dM^}]U'+Dҟ%g_0?KJDWiA(
+5 ^TY7?HI>|'i-AؼLp$
+9FnvKe^^r񒋗\#VL ߍ$L4B,.E	r-(!t')!2cKr,RD-Ԕ C&2cXxıչ$%T,idķt4/@x##jdX	%xGV,z3GH.`y۟LM+קcMג`r	FvK&_CcK2aSA}3de$`TyS36+,zHwHHĊ&`([pNhqW"\$hEw0VR	;CDe^āytN 	BX$MuI*[L$Wр>IIIC)RBL/ր P+ *@8n:Q7bD%x"D*X_KW^U%]K
+MD^Ⱥ!hZ=ZPPz0ESbĥZW@<Fۚ|әPR¼<0
+N^
+N)|=/(q2 R1mrR]<:rKE휆Tߛ0兩*5j3ZǅrkGWN.s5|jk;47YWq֭~ZǠ-I[.l'{Ƌ7^)c͈1y/oJ|y΁+}ܔ_w'Qv c~8b|+zWM;ѣDD+z=DrEpћ~Ecx@O" [Q4Ft7'RaBd`L.%N}56Wio|;=9RO%Ht+NP=xM&xƯ䡿U(VTA=W*xϺ{ {l*7\#pzf<{`wRieXI =b ,/)Ǥ@0	Q\gz)M?ooZ~ssچ@ANJ4-S%nda^UDm|Eʨt1Lgˉy\w]a[Y.`?MmB7=TT/[Â̦:~'ӥSEΐ#SCSNM9|I5v!Hux,7#hX}U b6VM~7M]r6盿bb˿|u7ǻAf5%uGn+>t*3%<{_g
+?._Nwןjyxww}o97Ng]IyA(WLzEqٷ;p}ݻ |ޗ34a{Ru/NgƟfs22EWMX}<4%YmZ'vOw6?V~D&M9kR֝gfá=xhH~/R鱽0I>ѯ'0ǝADFf=H1<lI^8K]NFWbvE`
+cj*ǂQj}tWjƭu.}=
+F%wY6ƱJkYv鼹AVn[C5RtŪ7BHDgthub+r2mTKi{n_v8p;@k(C5^ZDp5FnXϛ;/7" Z^{
+L+} }J;&K nonM|GfV7oowx6S ʩS7&.n6&΂ۛMzۮV0D>cق,fqK ЀCxOac{^}y~GwfEd!X"{jpEy/MZc6lZr'҂g	t*??Fp34-lZ?L$Ȑ?aW_oGϽ&\4_<Va5@}7mEqÿ>URP~/Y`X:i!:<x_eG	D&HǣQ@:O'}_Dwyɫ/rԂ&5ww6H\dqtv3@de3&w4q2m]Wu0}y'[z/O>m@mE4`<Mj[;#xk<1qD8LgW{tY12M͌tdGAܘt&HŦnȿUPϲQcobiH57kG&AZ1WM49KOmz=~6ZfrYh&s	VG-,hf.kmgۦ5fJ-e8~'ÑFp>z1\RfX>wnI2di;GV{{c)-޿	>KRۄqMlqkguAdϲk,,RNbmm{>+ /?@ρlN'){J#V
+}+pǒ.:aYʳg)`&Y:^˦ilLZb~%zaf(7ݶhړ=&R1.h@AiwE2W-HZkY 8W7<T7̣$67]"o(M46[`As(ۛ,no6Yoo<o6E">i{w^u/O
+q$VQ.UĚkH*wլ.r\o&=f$c8Y~<[=]dto96$~4TSЏ׊@lG͡xNCv7|jM*R}p!5`\:Lo-t>'_%JlbX 
+O_Cj>'BA&V[2}rk bYS+ikGF JuNͬעڣ_8[#v*rҔ_:GfUkPt
+Ny ljì3iX]%퇟_߶4/?,/Ϗ-Wj=gs>?]^d]|{}_P<ow!?;}U;Qs@)3ljhm'"GnYsNu]ouw?9uRb6gU.
+E9?^>C[S0ջm)!$pXUBz 
\ No newline at end of file
diff --git a/core/modules/system/tests/fixtures/update/drupal-8.entity-data-revision-metadata-fields-2248983.php b/core/modules/system/tests/fixtures/update/drupal-8.entity-data-revision-metadata-fields-2248983.php
new file mode 100644
index 0000000..0c537f5
--- /dev/null
+++ b/core/modules/system/tests/fixtures/update/drupal-8.entity-data-revision-metadata-fields-2248983.php
@@ -0,0 +1,162 @@
+<?php
+
+/**
+ * @file
+ * Contains database additions to
+ * drupal-8.2.1.bare.standard_with_entity_test_enabled.php.gz for testing the
+ * upgrade path of https://www.drupal.org/node/2248983.
+ */
+
+use Drupal\Core\Database\Database;
+
+$connection = Database::getConnection();
+
+// Data for entity type "entity_test_revlog"
+$connection->insert('entity_test_revlog')
+  ->fields([
+    'id',
+    'revision_id',
+    'type',
+    'uuid',
+    'langcode',
+    'revision_created',
+    'revision_user',
+    'revision_log_message',
+    'name',
+  ])
+  ->values([
+    'id' => '1',
+    'revision_id' => '2',
+    'type' => 'entity_test_revlog',
+    'uuid' => 'f0b962b1-391b-441b-a664-2468ad520d96',
+    'langcode' => 'en',
+    'revision_created' => '1476268518',
+    'revision_user' => '1',
+    'revision_log_message' => 'second revision',
+    'name' => 'entity 1',
+  ])
+  ->execute();
+
+$connection->insert('entity_test_revlog_revision')
+  ->fields([
+    'id',
+    'revision_id',
+    'langcode',
+    'revision_created',
+    'revision_user',
+    'revision_log_message',
+    'name',
+  ])
+  ->values([
+    'id' => '1',
+    'revision_id' => '1',
+    'langcode' => 'en',
+    'revision_created' => '1476268517',
+    'revision_user' => '1',
+    'revision_log_message' => 'first revision',
+    'name' => 'entity 1',
+  ])
+  ->values([
+    'id' => '1',
+    'revision_id' => '2',
+    'langcode' => 'en',
+    'revision_created' => '1476268518',
+    'revision_user' => '1',
+    'revision_log_message' => 'second revision',
+    'name' => 'entity 1',
+  ])
+  ->execute();
+
+// Data for entity type "entity_test_mul_revlog"
+$connection->insert('entity_test_mul_revlog')
+  ->fields([
+    'id',
+    'revision_id',
+    'type',
+    'uuid',
+    'langcode',
+  ])
+  ->values([
+    'id' => '1',
+    'revision_id' => '2',
+    'type' => 'entity_test_mul_revlog',
+    'uuid' => '6f04027a-1cbd-46e3-a67e-72636b493d4f',
+    'langcode' => 'en',
+  ])
+  ->execute();
+
+$connection->insert('entity_test_mul_revlog_field_data')
+  ->fields([
+    'id',
+    'revision_id',
+    'type',
+    'langcode',
+    'revision_created',
+    'revision_user',
+    'revision_log_message',
+    'name',
+    'default_langcode',
+  ])
+  ->values([
+    'id' => '1',
+    'revision_id' => '2',
+    'type' => 'entity_test_mul_revlog',
+    'langcode' => 'en',
+    'revision_created' => '1476268518',
+    'revision_user' => '1',
+    'revision_log_message' => 'second revision',
+    'name' => 'entity 1',
+    'default_langcode' => '1',
+  ])
+  ->execute();
+
+$connection->insert('entity_test_mul_revlog_field_revision')
+  ->fields([
+    'id',
+    'revision_id',
+    'langcode',
+    'revision_created',
+    'revision_user',
+    'revision_log_message',
+    'name',
+    'default_langcode',
+  ])
+  ->values([
+    'id' => '1',
+    'revision_id' => '1',
+    'langcode' => 'en',
+    'revision_created' => '1476268517',
+    'revision_user' => '1',
+    'revision_log_message' => 'first revision',
+    'name' => 'entity 1',
+    'default_langcode' => '1',
+  ])
+  ->values([
+    'id' => '1',
+    'revision_id' => '2',
+    'langcode' => 'en',
+    'revision_created' => '1476268518',
+    'revision_user' => '1',
+    'revision_log_message' => 'second revision',
+    'name' => 'entity 1',
+    'default_langcode' => '1',
+  ])
+  ->execute();
+
+$connection->insert('entity_test_mul_revlog_revision')
+  ->fields([
+    'id',
+    'revision_id',
+    'langcode',
+  ])
+  ->values([
+    'id' => '1',
+    'revision_id' => '1',
+    'langcode' => 'en',
+  ])
+  ->values([
+    'id' => '1',
+    'revision_id' => '2',
+    'langcode' => 'en',
+  ])
+  ->execute();
diff --git a/core/modules/system/tests/fixtures/update/drupal-8.views-revision-metadata-fields-2248983.php b/core/modules/system/tests/fixtures/update/drupal-8.views-revision-metadata-fields-2248983.php
new file mode 100644
index 0000000..59b05a5
--- /dev/null
+++ b/core/modules/system/tests/fixtures/update/drupal-8.views-revision-metadata-fields-2248983.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * @file
+ * Contains database additions to
+ * drupal-8.2.1.bare.standard_with_entity_test_enabled.php.gz for testing the
+ * upgrade path of https://www.drupal.org/node/2248983.
+ */
+
+use Drupal\Core\Database\Database;
+use Drupal\Core\Serialization\Yaml;
+
+$connection = Database::getConnection();
+
+// View for the entity type "entity_test_revlog".
+$views_configs[] = Yaml::decode(file_get_contents(__DIR__ . '/views.view.entity_test_revlog_for_2248983.yml'));
+
+// View for the entity type "entity_test_mul_revlog".
+$views_configs[] = Yaml::decode(file_get_contents(__DIR__ . '/views.view.entity_test_mul_revlog_for_2248983.yml'));
+
+
+foreach ($views_configs as $views_config) {
+  $connection->insert('config')
+    ->fields(array(
+      'collection',
+      'name',
+      'data',
+    ))
+    ->values(array(
+      'collection' => '',
+      'name' => 'views.view.' . $views_config['id'],
+      'data' => serialize($views_config),
+    ))
+    ->execute();
+}
diff --git a/core/modules/system/tests/fixtures/update/views.view.entity_test_mul_revlog_for_2248983.yml b/core/modules/system/tests/fixtures/update/views.view.entity_test_mul_revlog_for_2248983.yml
new file mode 100644
index 0000000..d9eba9a
--- /dev/null
+++ b/core/modules/system/tests/fixtures/update/views.view.entity_test_mul_revlog_for_2248983.yml
@@ -0,0 +1,435 @@
+uuid: 25b89168-a8e5-4ae1-8fb5-c8efb91f0938
+langcode: en
+status: true
+dependencies:
+  module:
+    - entity_test_revlog
+id: entity_test_mul_revlog_for_2248983
+label: entity_test_mul_revlog
+module: views
+description: ''
+tag: ''
+base_table: entity_test_mul_revlog_property_data
+base_field: id
+core: 8.x
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: 0
+    display_options:
+      access:
+        type: none
+        options: {  }
+      cache:
+        type: tag
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: false
+          distinct: false
+          replica: false
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Apply
+          reset_button: false
+          reset_button_label: Reset
+          exposed_sorts_label: 'Sort by'
+          expose_sort_order: true
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: mini
+        options:
+          items_per_page: 10
+          offset: 0
+          id: 0
+          total_pages: null
+          expose:
+            items_per_page: false
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 25, 50'
+            items_per_page_options_all: false
+            items_per_page_options_all_label: '- All -'
+            offset: false
+            offset_label: Offset
+          tags:
+            previous: ‹‹
+            next: ››
+      style:
+        type: table
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
+          override: true
+          sticky: false
+          caption: ''
+          summary: ''
+          description: ''
+          columns:
+            name: name
+          info:
+            name:
+              sortable: false
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+          default: '-1'
+          empty_table: false
+      row:
+        type: fields
+        options:
+          inline: {  }
+          separator: ''
+          hide_empty: false
+          default_field_elements: true
+      fields:
+        name:
+          table: entity_test_mul_revlog_property_data
+          field: name
+          id: name
+          entity_type: entity_test_mul_revlog
+          entity_field: name
+          plugin_id: field
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          settings: {  }
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+        revision_created:
+          id: revision_created
+          table: entity_test_mul_revlog_property_data
+          field: revision_created
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Revision create time'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: timestamp
+          settings:
+            date_format: medium
+            custom_date_format: ''
+            timezone: ''
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: entity_test_mul_revlog
+          entity_field: revision_created
+          plugin_id: field
+        revision_id:
+          id: revision_id
+          table: entity_test_mul_revlog_property_data
+          field: revision_id
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Revision ID'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: number_integer
+          settings:
+            thousand_separator: ''
+            prefix_suffix: true
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: entity_test_mul_revlog
+          entity_field: revision_id
+          plugin_id: field
+        revision_log_message:
+          id: revision_log_message
+          table: entity_test_mul_revlog_property_data
+          field: revision_log_message
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Revision log message'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: basic_string
+          settings: {  }
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: entity_test_mul_revlog
+          entity_field: revision_log_message
+          plugin_id: field
+        revision_user:
+          id: revision_user
+          table: entity_test_mul_revlog_property_data
+          field: revision_user
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Revision user'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: target_id
+          type: entity_reference_label
+          settings:
+            link: true
+          group_column: target_id
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: entity_test_mul_revlog
+          entity_field: revision_user
+          plugin_id: field
+      filters: {  }
+      sorts: {  }
+      header: {  }
+      footer: {  }
+      empty: {  }
+      relationships: {  }
+      arguments: {  }
+      display_extenders: {  }
+    cache_metadata:
+      max-age: 0
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url.query_args
+      tags: {  }
diff --git a/core/modules/system/tests/fixtures/update/views.view.entity_test_revlog_for_2248983.yml b/core/modules/system/tests/fixtures/update/views.view.entity_test_revlog_for_2248983.yml
new file mode 100644
index 0000000..412972c
--- /dev/null
+++ b/core/modules/system/tests/fixtures/update/views.view.entity_test_revlog_for_2248983.yml
@@ -0,0 +1,436 @@
+uuid: 5a8b00d2-67ce-415b-9e7d-6c013bf7f6b8
+langcode: en
+status: true
+dependencies:
+  module:
+    - entity_test_revlog
+id: entity_test_revlog_for_2248983
+label: entity_test_revlog
+module: views
+description: ''
+tag: ''
+base_table: entity_test_revlog
+base_field: id
+core: 8.x
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: 0
+    display_options:
+      access:
+        type: none
+        options: {  }
+      cache:
+        type: tag
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: false
+          distinct: false
+          replica: false
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Apply
+          reset_button: false
+          reset_button_label: Reset
+          exposed_sorts_label: 'Sort by'
+          expose_sort_order: true
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: mini
+        options:
+          items_per_page: 10
+          offset: 0
+          id: 0
+          total_pages: null
+          expose:
+            items_per_page: false
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 25, 50'
+            items_per_page_options_all: false
+            items_per_page_options_all_label: '- All -'
+            offset: false
+            offset_label: Offset
+          tags:
+            previous: ‹‹
+            next: ››
+      style:
+        type: table
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: true
+          override: true
+          sticky: false
+          caption: ''
+          summary: ''
+          description: ''
+          columns:
+            name: name
+          info:
+            name:
+              sortable: false
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: false
+              responsive: ''
+          default: '-1'
+          empty_table: false
+      row:
+        type: fields
+        options:
+          inline: {  }
+          separator: ''
+          hide_empty: false
+          default_field_elements: true
+      fields:
+        name:
+          id: name
+          table: entity_test_revlog
+          field: name
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Name
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: string
+          settings:
+            link_to_entity: false
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: entity_test_revlog
+          entity_field: name
+          plugin_id: field
+        revision_created:
+          id: revision_created
+          table: entity_test_revlog
+          field: revision_created
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Revision create time'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: timestamp
+          settings:
+            date_format: medium
+            custom_date_format: ''
+            timezone: ''
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: entity_test_revlog
+          entity_field: revision_created
+          plugin_id: field
+        revision_id:
+          id: revision_id
+          table: entity_test_revlog
+          field: revision_id
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Revision ID'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: number_integer
+          settings:
+            thousand_separator: ''
+            prefix_suffix: true
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: entity_test_revlog
+          entity_field: revision_id
+          plugin_id: field
+        revision_log_message:
+          id: revision_log_message
+          table: entity_test_revlog
+          field: revision_log_message
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Revision log message'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: value
+          type: basic_string
+          settings: {  }
+          group_column: value
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: entity_test_revlog
+          entity_field: revision_log_message
+          plugin_id: field
+        revision_user:
+          id: revision_user
+          table: entity_test_revlog
+          field: revision_user
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Revision user'
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: true
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: target_id
+          type: entity_reference_label
+          settings:
+            link: true
+          group_column: target_id
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          entity_type: entity_test_revlog
+          entity_field: revision_user
+          plugin_id: field
+      filters: {  }
+      sorts: {  }
+      header: {  }
+      footer: {  }
+      empty: {  }
+      relationships: {  }
+      arguments: {  }
+      display_extenders: {  }
+    cache_metadata:
+      max-age: 0
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url.query_args
+      tags: {  }
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestWithRevisionLog.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestWithRevisionLog.php
deleted file mode 100644
index 4f4f4f1..0000000
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestWithRevisionLog.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-namespace Drupal\entity_test\Entity;
-
-use Drupal\Core\Entity\RevisionableContentEntityBase;
-
-/**
- * Defines the test entity class.
- *
- * @ContentEntityType(
- *   id = "entity_test_revlog",
- *   label = @Translation("Test entity - revisions log"),
- *   handlers = {
- *     "access" = "Drupal\entity_test\EntityTestAccessControlHandler",
- *     "view_builder" = "Drupal\entity_test\EntityTestViewBuilder",
- *     "form" = {
- *       "default" = "Drupal\entity_test\EntityTestForm",
- *       "delete" = "Drupal\entity_test\EntityTestDeleteForm"
- *     },
- *     "view_builder" = "Drupal\entity_test\EntityTestViewBuilder",
- *     "translation" = "Drupal\content_translation\ContentTranslationHandler",
- *     "views_data" = "Drupal\views\EntityViewsData",
- *     "route_provider" = {
- *       "html" = "Drupal\Core\Entity\Routing\DefaultHtmlRouteProvider",
- *     },
- *   },
- *   base_table = "entity_test_revlog",
- *   revision_table = "entity_test_revlog_revision",
- *   admin_permission = "administer entity_test content",
- *   entity_keys = {
- *     "id" = "id",
- *     "uuid" = "uuid",
- *     "revision" = "revision_id",
- *     "bundle" = "type",
- *     "label" = "name",
- *     "langcode" = "langcode",
- *   },
- *   links = {
- *     "canonical" = "/entity_test_revlog/manage/{entity_test_revlog}",
- *     "delete-form" = "/entity_test/delete/entity_test_revlog/{entity_test_revlog}",
- *     "edit-form" = "/entity_test_revlog/manage/{entity_test_revlog}/edit",
- *     "revision" = "/entity_test_revlog/{entity_test_revlog}/revision/{entity_test_revlog_revision}/view",
- *   }
- * )
- */
-class EntityTestWithRevisionLog extends RevisionableContentEntityBase {
-
-}
diff --git a/core/modules/system/tests/modules/entity_test_revlog/entity_test_revlog.info.yml b/core/modules/system/tests/modules/entity_test_revlog/entity_test_revlog.info.yml
new file mode 100644
index 0000000..4afba62
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_test_revlog/entity_test_revlog.info.yml
@@ -0,0 +1,6 @@
+name: 'Entity test revision log'
+type: module
+description: 'Provides two entity types with revision logging capabilities.'
+package: Testing
+version: VERSION
+core: 8.x
diff --git a/core/modules/system/tests/modules/entity_test_revlog/src/Entity/EntityTestMulWithRevisionLog.php b/core/modules/system/tests/modules/entity_test_revlog/src/Entity/EntityTestMulWithRevisionLog.php
new file mode 100644
index 0000000..5a17b85
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_test_revlog/src/Entity/EntityTestMulWithRevisionLog.php
@@ -0,0 +1,33 @@
+<?php
+
+namespace Drupal\entity_test_revlog\Entity;
+
+/**
+ * Defines the test entity class.
+ *
+ * @ContentEntityType(
+ *   id = "entity_test_mul_revlog",
+ *   label = @Translation("Test entity - data table, revisions log"),
+ *   base_table = "entity_test_mul_revlog",
+ *   data_table = "entity_test_mul_revlog_field_data",
+ *   revision_table = "entity_test_mul_revlog_revision",
+ *   revision_data_table = "entity_test_mul_revlog_field_revision",
+ *   translatable = TRUE,
+ *   entity_keys = {
+ *     "id" = "id",
+ *     "uuid" = "uuid",
+ *     "revision" = "revision_id",
+ *     "bundle" = "type",
+ *     "label" = "name",
+ *     "langcode" = "langcode",
+ *   },
+ *   revision_metadata_keys = {
+ *     "revision_user" = "revision_user",
+ *     "revision_created" = "revision_created",
+ *     "revision_log_message" = "revision_log_message"
+ *   },
+ * )
+ */
+class EntityTestMulWithRevisionLog extends EntityTestWithRevisionLog {
+
+}
diff --git a/core/modules/system/tests/modules/entity_test_revlog/src/Entity/EntityTestWithRevisionLog.php b/core/modules/system/tests/modules/entity_test_revlog/src/Entity/EntityTestWithRevisionLog.php
new file mode 100644
index 0000000..8d9b4d1
--- /dev/null
+++ b/core/modules/system/tests/modules/entity_test_revlog/src/Entity/EntityTestWithRevisionLog.php
@@ -0,0 +1,59 @@
+<?php
+
+namespace Drupal\entity_test_revlog\Entity;
+
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Entity\RevisionableContentEntityBase;
+use Drupal\Core\Field\BaseFieldDefinition;
+
+/**
+ * Defines the test entity class.
+ *
+ * @ContentEntityType(
+ *   id = "entity_test_revlog",
+ *   label = @Translation("Test entity - revisions log"),
+ *   base_table = "entity_test_revlog",
+ *   revision_table = "entity_test_revlog_revision",
+ *   entity_keys = {
+ *     "id" = "id",
+ *     "uuid" = "uuid",
+ *     "revision" = "revision_id",
+ *     "bundle" = "type",
+ *     "label" = "name",
+ *     "langcode" = "langcode",
+ *   },
+ *   revision_metadata_keys = {
+ *     "revision_user" = "revision_user",
+ *     "revision_created" = "revision_created",
+ *     "revision_log_message" = "revision_log_message"
+ *   },
+ * )
+ */
+class EntityTestWithRevisionLog extends RevisionableContentEntityBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
+    $fields = parent::baseFieldDefinitions($entity_type);
+
+    $fields['name'] = BaseFieldDefinition::create('string')
+      ->setLabel(t('Name'))
+      ->setDescription(t('The name of the test entity.'))
+      ->setTranslatable(TRUE)
+      ->setRevisionable(TRUE)
+      ->setSetting('max_length', 32)
+      ->setDisplayOptions('view', array(
+        'label' => 'hidden',
+        'type' => 'string',
+        'weight' => -5,
+      ))
+      ->setDisplayOptions('form', array(
+        'type' => 'string_textfield',
+        'weight' => -5,
+      ));
+
+    return $fields;
+  }
+
+}
diff --git a/core/modules/taxonomy/src/Entity/Term.php b/core/modules/taxonomy/src/Entity/Term.php
index f2b8870..7aca19f 100644
--- a/core/modules/taxonomy/src/Entity/Term.php
+++ b/core/modules/taxonomy/src/Entity/Term.php
@@ -229,7 +229,8 @@ public function setWeight($weight) {
    * {@inheritdoc}
    */
   public function getVocabularyId() {
-    return $this->get('vid')->target_id;
+    @trigger_error('The ' . __METHOD__ . ' method is deprecated since version 8.4.0 and will be removed before 9.0.0. Use ' . __CLASS__ . '::bundle() instead to get the vocabulary ID.', E_USER_DEPRECATED);
+    return $this->bundle();
   }
 
   /**
diff --git a/core/modules/taxonomy/src/Plugin/views/argument_default/Tid.php b/core/modules/taxonomy/src/Plugin/views/argument_default/Tid.php
index 513ed7e..33517b1 100644
--- a/core/modules/taxonomy/src/Plugin/views/argument_default/Tid.php
+++ b/core/modules/taxonomy/src/Plugin/views/argument_default/Tid.php
@@ -194,7 +194,7 @@ public function getArgument() {
             $taxonomy_terms = $node->{$field->getName()}->referencedEntities();
             /** @var \Drupal\taxonomy\TermInterface $taxonomy_term */
             foreach ($taxonomy_terms as $taxonomy_term) {
-              $taxonomy[$taxonomy_term->id()] = $taxonomy_term->getVocabularyId();
+              $taxonomy[$taxonomy_term->id()] = $taxonomy_term->bundle();
             }
           }
         }
diff --git a/core/modules/taxonomy/src/Plugin/views/field/TaxonomyIndexTid.php b/core/modules/taxonomy/src/Plugin/views/field/TaxonomyIndexTid.php
index 86a4fce..f33421a 100644
--- a/core/modules/taxonomy/src/Plugin/views/field/TaxonomyIndexTid.php
+++ b/core/modules/taxonomy/src/Plugin/views/field/TaxonomyIndexTid.php
@@ -145,8 +145,8 @@ public function preRender(&$values) {
         foreach ($data as $tid => $term) {
           $this->items[$node_nid][$tid]['name'] = \Drupal::entityManager()->getTranslationFromContext($term)->label();
           $this->items[$node_nid][$tid]['tid'] = $tid;
-          $this->items[$node_nid][$tid]['vocabulary_vid'] = $term->getVocabularyId();
-          $this->items[$node_nid][$tid]['vocabulary'] = $vocabularies[$term->getVocabularyId()]->label();
+          $this->items[$node_nid][$tid]['vocabulary_vid'] = $term->bundle();
+          $this->items[$node_nid][$tid]['vocabulary'] = $vocabularies[$term->bundle()]->label();
 
           if (!empty($this->options['link_to_taxonomy'])) {
             $this->items[$node_nid][$tid]['make_link'] = TRUE;
diff --git a/core/modules/taxonomy/src/TermInterface.php b/core/modules/taxonomy/src/TermInterface.php
index f832620..9c0c47e 100644
--- a/core/modules/taxonomy/src/TermInterface.php
+++ b/core/modules/taxonomy/src/TermInterface.php
@@ -87,6 +87,9 @@ public function setWeight($weight);
    *
    * @return int
    *   The id of the vocabulary.
+   *
+   * @deprecated Scheduled for removal before Drupal 9.0.0. Use
+   *   TermInterface::bundle() instead.
    */
   public function getVocabularyId();
 
diff --git a/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldAllTermsTest.php b/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldAllTermsTest.php
index 4737b98..75894ce 100644
--- a/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldAllTermsTest.php
+++ b/core/modules/taxonomy/src/Tests/Views/TaxonomyFieldAllTermsTest.php
@@ -57,7 +57,7 @@ public function testViewsHandlerAllTermsWithTokens() {
     $this->assertText('The taxonomy term name for the term: ' . $this->term1->getName());
 
     // The machine name for the vocabulary the term belongs to: {{ term_node_tid__vocabulary_vid }}
-    $this->assertText('The machine name for the vocabulary the term belongs to: ' . $this->term1->getVocabularyId());
+    $this->assertText('The machine name for the vocabulary the term belongs to: ' . $this->term1->bundle());
 
     // The name for the vocabulary the term belongs to: {{ term_node_tid__vocabulary }}
     $vocabulary = Vocabulary::load($this->term1->bundle());
diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
index fbcc129..214e784 100644
--- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
+++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
@@ -76,7 +76,7 @@ protected function assertEntity($id, $expected_label, $expected_vid, $expected_d
     $entity = Term::load($id);
     $this->assertTrue($entity instanceof TermInterface);
     $this->assertIdentical($expected_label, $entity->label());
-    $this->assertIdentical($expected_vid, $entity->getVocabularyId());
+    $this->assertIdentical($expected_vid, $entity->bundle());
     $this->assertEqual($expected_description, $entity->getDescription());
     $this->assertEquals($expected_format, $entity->getFormat());
     $this->assertEqual($expected_weight, $entity->getWeight());
diff --git a/core/modules/user/src/Tests/Views/AccessRoleTest.php b/core/modules/user/src/Tests/Views/AccessRoleTest.php
index 02a83a7..2462915 100644
--- a/core/modules/user/src/Tests/Views/AccessRoleTest.php
+++ b/core/modules/user/src/Tests/Views/AccessRoleTest.php
@@ -126,7 +126,7 @@ public function testRenderCaching() {
     $account_switcher->switchTo($this->webUser);
     $result = $renderer->renderPlain($build);
     // @todo Fix this in https://www.drupal.org/node/2551037,
-    // DisplayPluginBase::applyDisplayCachablityMetadata() is not invoked when
+    // DisplayPluginBase::applyDisplayCacheabilityMetadata() is not invoked when
     // using buildBasicRenderable() and a Views access plugin returns FALSE.
     //$this->assertTrue(in_array('user.roles', $build['#cache']['contexts']));
     //$this->assertEqual([], $build['#cache']['tags']);
diff --git a/core/modules/views/src/Entity/View.php b/core/modules/views/src/Entity/View.php
index 1e9fac1..f75badb 100644
--- a/core/modules/views/src/Entity/View.php
+++ b/core/modules/views/src/Entity/View.php
@@ -5,7 +5,9 @@
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\Config\Entity\ConfigEntityBase;
+use Drupal\Core\Entity\ContentEntityTypeInterface;
 use Drupal\Core\Entity\EntityStorageInterface;
+use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\views\Views;
 use Drupal\views\ViewEntityInterface;
@@ -290,10 +292,13 @@ public function calculateDependencies() {
   public function preSave(EntityStorageInterface $storage) {
     parent::preSave($storage);
 
+    $displays = $this->get('display');
+
+    $this->fixTableNames($displays);
+
     // Sort the displays.
-    $display = $this->get('display');
-    ksort($display);
-    $this->set('display', array('default' => $display['default']) + $display);
+    ksort($displays);
+    $this->set('display', ['default' => $displays['default']] + $displays);
 
     // @todo Check whether isSyncing is needed.
     if (!$this->isSyncing()) {
@@ -302,6 +307,45 @@ public function preSave(EntityStorageInterface $storage) {
   }
 
   /**
+   * Fixes table names for revision metadata fields of revisionable entities.
+   *
+   * Views for revisionable entity types using revision metadata fields might
+   * be using the wrong table to retrieve the fields after system_update_8300
+   * has moved them correctly to the revision table. This method updates the
+   * views to use the correct tables.
+   *
+   * @param array &$displays
+   *   An array containing display handlers of a view.
+   *
+   * @deprecated in Drupal 8.3.0, will be removed in Drupal 9.0.0.
+   */
+  private function fixTableNames(array &$displays) {
+    // Fix wrong table names for entity revision metadata fields.
+    foreach ($displays as $display => $display_data) {
+      if (isset($display_data['display_options']['fields'])) {
+        foreach ($display_data['display_options']['fields'] as $property_name => $property_data) {
+          if (isset($property_data['entity_type']) && isset($property_data['field']) && isset($property_data['table'])) {
+            $entity_type = $this->entityTypeManager()->getDefinition($property_data['entity_type']);
+            // We need to update the table name only for revisionable entity
+            // types, otherwise the view is already using the correct table.
+            if (($entity_type instanceof ContentEntityTypeInterface) && is_subclass_of($entity_type->getClass(), FieldableEntityInterface::class) && $entity_type->isRevisionable()) {
+              $revision_metadata_fields = $entity_type->getRevisionMetadataKeys();
+              // @see \Drupal\Core\Entity\Sql\SqlContentEntityStorage::initTableLayout()
+              $revision_table = $entity_type->getRevisionTable() ?: $entity_type->id() . '_revision';
+
+              // Check if this is a revision metadata field and if it uses the
+              // wrong table.
+              if (in_array($property_data['field'], $revision_metadata_fields) && $property_data['table'] != $revision_table) {
+                $displays[$display]['display_options']['fields'][$property_name]['table'] = $revision_table;
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+
+  /**
    * Fills in the cache metadata of this view.
    *
    * Cache metadata is set per view and per display, and ends up being stored in
diff --git a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
index 6828b4b..c8b07ea 100644
--- a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
@@ -2115,7 +2115,7 @@ public function render() {
       '#cache' => &$this->view->element['#cache'],
     );
 
-    $this->applyDisplayCachablityMetadata($this->view->element);
+    $this->applyDisplayCacheabilityMetadata($this->view->element);
 
     return $element;
   }
@@ -2126,7 +2126,7 @@ public function render() {
    * @param array $element
    *   The render array with updated cacheability metadata.
    */
-  protected function applyDisplayCachablityMetadata(array &$element) {
+  protected function applyDisplayCacheabilityMetadata(array &$element) {
     /** @var \Drupal\views\Plugin\views\cache\CachePluginBase $cache */
     $cache = $this->getPlugin('cache');
 
@@ -2139,6 +2139,22 @@ protected function applyDisplayCachablityMetadata(array &$element) {
   }
 
   /**
+   * Applies the cacheability of the current display to the given render array.
+   *
+   * @param array $element
+   *   The render array with updated cacheability metadata.
+   *
+   * @deprecated in Drupal 8.4.0, will be removed before Drupal 9.0. Use
+   *   DisplayPluginBase::applyDisplayCacheabilityMetadata instead.
+   *
+   * @see \Drupal\views\Plugin\views\display\DisplayPluginBase::applyDisplayCacheabilityMetadata()
+   */
+  protected function applyDisplayCachablityMetadata(array &$element) {
+    @trigger_error('The DisplayPluginBase::applyDisplayCachablityMetadata method is deprecated since version 8.4 and will be removed in 9.0. Use DisplayPluginBase::applyDisplayCacheabilityMetadata instead.', E_USER_DEPRECATED);
+    $this->applyDisplayCacheabilityMetadata($element);
+  }
+
+  /**
    * {@inheritdoc}
    */
   public function elementPreRender(array $element) {
@@ -2330,7 +2346,7 @@ public function buildRenderable(array $args = [], $cache = TRUE) {
     // of cacheability metadata (e.g.: cache contexts), so they can bubble up.
     // Thus, we add the cacheability metadata first, then modify / remove the
     // cache keys depending on the $cache argument.
-    $this->applyDisplayCachablityMetadata($this->view->element);
+    $this->applyDisplayCacheabilityMetadata($this->view->element);
     if ($cache) {
       $this->view->element['#cache'] += ['keys' => []];
       // Places like \Drupal\views\ViewExecutable::setCurrentPage() set up an
diff --git a/core/modules/views/src/Plugin/views/display/Feed.php b/core/modules/views/src/Plugin/views/display/Feed.php
index bd59091..35da245 100644
--- a/core/modules/views/src/Plugin/views/display/Feed.php
+++ b/core/modules/views/src/Plugin/views/display/Feed.php
@@ -106,7 +106,7 @@ public function preview() {
   public function render() {
     $build = $this->view->style_plugin->render($this->view->result);
 
-    $this->applyDisplayCachablityMetadata($build);
+    $this->applyDisplayCacheabilityMetadata($build);
 
     return $build;
   }
diff --git a/core/modules/views/tests/src/Unit/EntityViewsDataTest.php b/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
index 1b163e2..276fc5c 100644
--- a/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
+++ b/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
@@ -9,7 +9,6 @@
 
 use Drupal\Core\Config\Entity\ConfigEntityType;
 use Drupal\Core\Entity\ContentEntityType;
-use Drupal\Core\Entity\EntityType;
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Entity\Sql\DefaultTableMapping;
 use Drupal\Core\Field\BaseFieldDefinition;
@@ -1087,7 +1086,7 @@ public function setEntityType(EntityTypeInterface $entity_type) {
 
 }
 
-class TestEntityType extends EntityType {
+class TestEntityType extends ContentEntityType {
 
   /**
    * Sets a specific entity key.
diff --git a/core/modules/views/views.post_update.php b/core/modules/views/views.post_update.php
index a4da940..b9e4c68 100644
--- a/core/modules/views/views.post_update.php
+++ b/core/modules/views/views.post_update.php
@@ -239,3 +239,24 @@ function views_post_update_boolean_filter_values() {
 /**
  * @} End of "addtogroup updates-8.2.x".
  */
+
+/**
+ * @addtogroup updates-8.3.x
+ * @{
+ */
+
+/**
+ * Fix table names for revision metadata fields.
+ */
+function views_post_update_revision_metadata_fields() {
+  // The table names are fixed automatically in
+  // \Drupal\views\Entity\View::preSave(), so we just need to re-save all views.
+  $views = View::loadMultiple();
+  array_walk($views, function(View $view) {
+    $view->save();
+  });
+}
+
+/**
+ * @} End of "addtogroup updates-8.3.x".
+ */
diff --git a/core/modules/workflows/src/Form/WorkflowEditForm.php b/core/modules/workflows/src/Form/WorkflowEditForm.php
index 6b01920..c0ea5a4 100644
--- a/core/modules/workflows/src/Form/WorkflowEditForm.php
+++ b/core/modules/workflows/src/Form/WorkflowEditForm.php
@@ -191,7 +191,6 @@ public function save(array $form, FormStateInterface $form_state) {
     $workflow = $this->entity;
     $workflow->save();
     drupal_set_message($this->t('Saved the %label Workflow.', ['%label' => $workflow->label()]));
-    $form_state->setRedirectUrl($workflow->toUrl('collection'));
   }
 
   /**
diff --git a/core/modules/workflows/tests/src/Functional/WorkflowUiTest.php b/core/modules/workflows/tests/src/Functional/WorkflowUiTest.php
index 91c69b7..3014dd7 100644
--- a/core/modules/workflows/tests/src/Functional/WorkflowUiTest.php
+++ b/core/modules/workflows/tests/src/Functional/WorkflowUiTest.php
@@ -176,9 +176,8 @@ public function testWorkflowCreation() {
     $workflow = $workflow_storage->loadUnchanged('test');
     $this->assertEquals('draft', $workflow->getInitialState()->id());
 
-    // This will take us to the list of workflows, so we need to edit the
-    // workflow again.
-    $this->clickLink('Edit');
+    // Verify that we are still on the workflow edit page.
+    $this->assertSession()->addressEquals('admin/config/workflow/workflows/manage/test');
 
     // Ensure that weight changes the transition ordering.
     $this->assertEquals(['publish', 'create_new_draft'], array_keys($workflow->getTransitions()));
@@ -187,9 +186,8 @@ public function testWorkflowCreation() {
     $workflow = $workflow_storage->loadUnchanged('test');
     $this->assertEquals(['create_new_draft', 'publish'], array_keys($workflow->getTransitions()));
 
-    // This will take us to the list of workflows, so we need to edit the
-    // workflow again.
-    $this->clickLink('Edit');
+    // Verify that we are still on the workflow edit page.
+    $this->assertSession()->addressEquals('admin/config/workflow/workflows/manage/test');
 
     // Ensure that a delete link for the published state exists before deleting
     // the draft state.
diff --git a/core/modules/workflows/tests/src/Unit/StateTest.php b/core/modules/workflows/tests/src/Unit/StateTest.php
index 82feca3..ae9fc46 100644
--- a/core/modules/workflows/tests/src/Unit/StateTest.php
+++ b/core/modules/workflows/tests/src/Unit/StateTest.php
@@ -27,6 +27,9 @@ protected function setUp() {
     // mocked.
     $container = new ContainerBuilder();
     $workflow_type = $this->prophesize(WorkflowTypeInterface::class);
+    $workflow_type->setConfiguration(Argument::any())->will(function ($arguments) {
+      $this->getConfiguration()->willReturn($arguments[0]);
+    });
     $workflow_type->decorateState(Argument::any())->willReturnArgument(0);
     $workflow_type->decorateTransition(Argument::any())->willReturnArgument(0);
     $workflow_type->deleteState(Argument::any())->willReturn(NULL);
diff --git a/core/modules/workflows/tests/src/Unit/TransitionTest.php b/core/modules/workflows/tests/src/Unit/TransitionTest.php
index 3202e8a..c343fed 100644
--- a/core/modules/workflows/tests/src/Unit/TransitionTest.php
+++ b/core/modules/workflows/tests/src/Unit/TransitionTest.php
@@ -27,6 +27,9 @@ protected function setUp() {
     // mocked.
     $container = new ContainerBuilder();
     $workflow_type = $this->prophesize(WorkflowTypeInterface::class);
+    $workflow_type->setConfiguration(Argument::any())->will(function ($arguments) {
+      $this->getConfiguration()->willReturn($arguments[0]);
+    });
     $workflow_type->decorateState(Argument::any())->willReturnArgument(0);
     $workflow_type->decorateTransition(Argument::any())->willReturnArgument(0);
     $workflow_manager = $this->prophesize(WorkflowTypeManager::class);
diff --git a/core/modules/workflows/tests/src/Unit/WorkflowTest.php b/core/modules/workflows/tests/src/Unit/WorkflowTest.php
index 89ee31f..e2a7401 100644
--- a/core/modules/workflows/tests/src/Unit/WorkflowTest.php
+++ b/core/modules/workflows/tests/src/Unit/WorkflowTest.php
@@ -27,6 +27,9 @@ protected function setUp() {
     // mocked.
     $container = new ContainerBuilder();
     $workflow_type = $this->prophesize(WorkflowTypeInterface::class);
+    $workflow_type->setConfiguration(Argument::any())->will(function ($arguments) {
+      $this->getConfiguration()->willReturn($arguments[0]);
+    });
     $workflow_type->decorateState(Argument::any())->willReturnArgument(0);
     $workflow_type->decorateTransition(Argument::any())->willReturnArgument(0);
     $workflow_manager = $this->prophesize(WorkflowTypeManager::class);
@@ -215,6 +218,9 @@ public function testDeleteState() {
     // correctly.
     $container = new ContainerBuilder();
     $workflow_type = $this->prophesize(WorkflowTypeInterface::class);
+    $workflow_type->setConfiguration(Argument::any())->will(function ($arguments) {
+      $this->getConfiguration()->willReturn($arguments[0]);
+    });
     $workflow_type->decorateState(Argument::any())->willReturnArgument(0);
     $workflow_type->decorateTransition(Argument::any())->willReturnArgument(0);
     $workflow_type->deleteState('draft')->shouldBeCalled();
@@ -636,6 +642,9 @@ public function testDeleteTransition() {
     // correctly.
     $container = new ContainerBuilder();
     $workflow_type = $this->prophesize(WorkflowTypeInterface::class);
+    $workflow_type->setConfiguration(Argument::any())->will(function ($arguments) {
+      $this->getConfiguration()->willReturn($arguments[0]);
+    });
     $workflow_type->decorateState(Argument::any())->willReturnArgument(0);
     $workflow_type->decorateTransition(Argument::any())->willReturnArgument(0);
     $workflow_type->deleteTransition('publish')->shouldBeCalled();
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php b/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php
index 1fd873c..b78a588 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\KernelTests\Core\Entity;
 
-use Drupal\entity_test\Entity\EntityTestWithRevisionLog;
+use Drupal\entity_test_revlog\Entity\EntityTestWithRevisionLog;
 use Drupal\KernelTests\KernelTestBase;
 use Drupal\user\Entity\User;
 
@@ -15,7 +15,7 @@ class RevisionableContentEntityBaseTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['entity_test', 'system', 'user'];
+  public static $modules = ['entity_test_revlog', 'system', 'user'];
 
   /**
    * {@inheritdoc}
@@ -31,7 +31,7 @@ protected function setUp() {
   public function testRevisionableContentEntity() {
     $user = User::create(['name' => 'test name']);
     $user->save();
-    /** @var \Drupal\entity_test\Entity\EntityTestWithRevisionLog $entity */
+    /** @var \Drupal\entity_test_revlog\Entity\EntityTestWithRevisionLog $entity */
     $entity = EntityTestWithRevisionLog::create([
       'type' => 'entity_test_revlog',
     ]);
diff --git a/core/tests/Drupal/KernelTests/Core/Form/FormValidationMessageOrderTest.php b/core/tests/Drupal/KernelTests/Core/Form/FormValidationMessageOrderTest.php
new file mode 100644
index 0000000..33ff22b
--- /dev/null
+++ b/core/tests/Drupal/KernelTests/Core/Form/FormValidationMessageOrderTest.php
@@ -0,0 +1,92 @@
+<?php
+
+namespace Drupal\KernelTests\Core\Form;
+
+use Drupal\Core\Form\FormInterface;
+use Drupal\Core\Form\FormState;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\KernelTests\KernelTestBase;
+
+/**
+ * Tests form validation mesages are displayed in the same order as the fields.
+ *
+ * @group Form
+ */
+class FormValidationMessageOrderTest extends KernelTestBase implements FormInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormId() {
+    return 'form_validation_error_message_order_test';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildForm(array $form, FormStateInterface $form_state) {
+    // Prepare fields with weights specified.
+    $form['one'] = [
+      '#type' => 'textfield',
+      '#title' => 'One',
+      '#required' => TRUE,
+      '#weight' => 40,
+    ];
+    $form['two'] = [
+      '#type' => 'textfield',
+      '#title' => 'Two',
+      '#required' => TRUE,
+      '#weight' => 30,
+    ];
+    $form['three'] = [
+      '#type' => 'textfield',
+      '#title' => 'Three',
+      '#required' => TRUE,
+      '#weight' => 10,
+    ];
+    $form['four'] = [
+      '#type' => 'textfield',
+      '#title' => 'Four',
+      '#required' => TRUE,
+      '#weight' => 20,
+    ];
+    $form['actions'] = [
+      '#type' => 'actions',
+      'submit' => [
+        '#type' => 'submit',
+        '#value' => 'Submit',
+      ],
+    ];
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function validateForm(array &$form, FormStateInterface $form_state) {
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submitForm(array &$form, FormStateInterface $form_state) {
+  }
+
+  /**
+   * Tests that fields validation messages are sorted in the fields order.
+   */
+  function testLimitValidationErrors() {
+    $form_state = new FormState();
+    $form_builder = $this->container->get('form_builder');
+    $form_builder->submitForm($this, $form_state);
+
+    $messages = drupal_get_messages();
+    $this->assertTrue(isset($messages['error']));
+    $error_messages = $messages['error'];
+    $this->assertEqual($error_messages[0], 'Three field is required.');
+    $this->assertEqual($error_messages[1], 'Four field is required.');
+    $this->assertEqual($error_messages[2], 'Two field is required.');
+    $this->assertEqual($error_messages[3], 'One field is required.');
+  }
+
+}
diff --git a/core/tests/Drupal/KernelTests/Core/Routing/ExceptionHandlingTest.php b/core/tests/Drupal/KernelTests/Core/Routing/ExceptionHandlingTest.php
index 8564948..f7e6074 100644
--- a/core/tests/Drupal/KernelTests/Core/Routing/ExceptionHandlingTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Routing/ExceptionHandlingTest.php
@@ -155,7 +155,7 @@ public function testBacktraceEscaping() {
     $kernel = \Drupal::getContainer()->get('http_kernel');
     $response = $kernel->handle($request)->prepare($request);
     $this->assertEqual($response->getStatusCode(), Response::HTTP_INTERNAL_SERVER_ERROR);
-    $this->assertEqual($response->headers->get('Content-type'), 'text/html; charset=UTF-8');
+    $this->assertEqual($response->headers->get('Content-type'), 'text/plain; charset=UTF-8');
 
     // Test both that the backtrace is properly escaped, and that the unescaped
     // string is not output at all.
@@ -178,7 +178,7 @@ public function testExceptionEscaping() {
     $kernel = \Drupal::getContainer()->get('http_kernel');
     $response = $kernel->handle($request)->prepare($request);
     $this->assertEqual($response->getStatusCode(), Response::HTTP_INTERNAL_SERVER_ERROR);
-    $this->assertEqual($response->headers->get('Content-type'), 'text/html; charset=UTF-8');
+    $this->assertEqual($response->headers->get('Content-type'), 'text/plain; charset=UTF-8');
 
     // Test message is properly escaped, and that the unescaped string is not
     // output at all.
diff --git a/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php b/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php
index 5d56929..f552bfe 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php
@@ -534,6 +534,9 @@ public function testGetTableMappingRevisionable(array $entity_keys) {
         array('bundle', $entity_keys['bundle']),
         array('revision', $entity_keys['revision']),
       )));
+    $this->entityType->expects($this->any())
+      ->method('getRevisionMetadataKeys')
+      ->will($this->returnValue([]));
 
     $this->setUpEntityStorage();
 
@@ -574,13 +577,13 @@ public function testGetTableMappingRevisionableWithFields(array $entity_keys) {
     // PHPUnit does not allow for multiple data providers.
     $test_cases = array(
       array(),
-      array('revision_timestamp'),
-      array('revision_uid'),
-      array('revision_log'),
-      array('revision_timestamp', 'revision_uid'),
-      array('revision_timestamp', 'revision_log'),
-      array('revision_uid', 'revision_log'),
-      array('revision_timestamp', 'revision_uid', 'revision_log'),
+      array('revision_created' => 'revision_timestamp'),
+      array('revision_user' => 'revision_uid'),
+      array('revision_log_message' => 'revision_log'),
+      array('revision_created' => 'revision_timestamp', 'revision_user' => 'revision_uid'),
+      array('revision_created' => 'revision_timestamp', 'revision_log_message' => 'revision_log'),
+      array('revision_user' => 'revision_uid', 'revision_log_message' => 'revision_log'),
+      array('revision_created' => 'revision_timestamp', 'revision_user' => 'revision_uid', 'revision_log_message' => 'revision_log'),
     );
     foreach ($test_cases as $revision_metadata_field_names) {
       $this->setUp();
@@ -591,7 +594,7 @@ public function testGetTableMappingRevisionableWithFields(array $entity_keys) {
 
       $revisionable_field_names = array('description', 'owner');
       $field_names = array_merge($field_names, $revisionable_field_names);
-      $this->fieldDefinitions += $this->mockFieldDefinitions(array_merge($revisionable_field_names, $revision_metadata_field_names), array('isRevisionable' => TRUE));
+      $this->fieldDefinitions += $this->mockFieldDefinitions(array_merge($revisionable_field_names, array_values($revision_metadata_field_names)), array('isRevisionable' => TRUE));
 
       $this->entityType->expects($this->exactly(2))
         ->method('isRevisionable')
@@ -605,6 +608,10 @@ public function testGetTableMappingRevisionableWithFields(array $entity_keys) {
           array('revision', $entity_keys['revision']),
         )));
 
+      $this->entityType->expects($this->any())
+        ->method('getRevisionMetadataKeys')
+        ->will($this->returnValue($revision_metadata_field_names));
+
       $this->setUpEntityStorage();
 
       $mapping = $this->entityStorage->getTableMapping();
@@ -616,7 +623,7 @@ public function testGetTableMappingRevisionableWithFields(array $entity_keys) {
       $expected = array_merge(
         array($entity_keys['id'], $entity_keys['revision']),
         $revisionable_field_names,
-        $revision_metadata_field_names
+        array_values($revision_metadata_field_names)
       );
       $this->assertEquals($expected, $mapping->getFieldNames('entity_test_revision'));
 
@@ -761,6 +768,11 @@ public function testGetTableMappingRevisionableTranslatable(array $entity_keys)
       'uuid' => $entity_keys['uuid'],
       'langcode' => 'langcode',
     );
+    $revision_metadata_keys = array(
+      'revision_created' => 'revision_timestamp',
+      'revision_user' => 'revision_uid',
+      'revision_log_message' => 'revision_log'
+    );
 
     $this->entityType->expects($this->atLeastOnce())
       ->method('isRevisionable')
@@ -780,6 +792,9 @@ public function testGetTableMappingRevisionableTranslatable(array $entity_keys)
         array('revision', $entity_keys['revision']),
         array('langcode', $entity_keys['langcode']),
       )));
+    $this->entityType->expects($this->any())
+      ->method('getRevisionMetadataKeys')
+      ->will($this->returnValue($revision_metadata_keys));
 
     $this->setUpEntityStorage();
 
@@ -810,6 +825,7 @@ public function testGetTableMappingRevisionableTranslatable(array $entity_keys)
       $entity_keys['revision'],
       $entity_keys['langcode'],
     )));
+    $expected = array_merge($expected, array_values($revision_metadata_keys));
     $actual = $mapping->getFieldNames('entity_test_revision');
     $this->assertEquals($expected, $actual);
     // The UUID is not stored on the data table.
@@ -865,13 +881,13 @@ public function testGetTableMappingRevisionableTranslatableWithFields(array $ent
     // PHPUnit does not allow for multiple data providers.
     $test_cases = array(
       array(),
-      array('revision_timestamp'),
-      array('revision_uid'),
-      array('revision_log'),
-      array('revision_timestamp', 'revision_uid'),
-      array('revision_timestamp', 'revision_log'),
-      array('revision_uid', 'revision_log'),
-      array('revision_timestamp', 'revision_uid', 'revision_log'),
+      array('revision_created' => 'revision_timestamp'),
+      array('revision_user' => 'revision_uid'),
+      array('revision_log_message' => 'revision_log'),
+      array('revision_created' => 'revision_timestamp', 'revision_user' => 'revision_uid'),
+      array('revision_created' => 'revision_timestamp', 'revision_log_message' => 'revision_log'),
+      array('revision_user' => 'revision_uid', 'revision_log_message' => 'revision_log'),
+      array('revision_created' => 'revision_timestamp', 'revision_user' => 'revision_uid', 'revision_log_message' => 'revision_log'),
     );
     foreach ($test_cases as $revision_metadata_field_names) {
       $this->setUp();
@@ -881,7 +897,7 @@ public function testGetTableMappingRevisionableTranslatableWithFields(array $ent
       $this->fieldDefinitions = $this->mockFieldDefinitions($field_names);
 
       $revisionable_field_names = array('description', 'owner');
-      $this->fieldDefinitions += $this->mockFieldDefinitions(array_merge($revisionable_field_names, $revision_metadata_field_names), array('isRevisionable' => TRUE));
+      $this->fieldDefinitions += $this->mockFieldDefinitions(array_merge($revisionable_field_names, array_values($revision_metadata_field_names)), array('isRevisionable' => TRUE));
 
       $this->entityType->expects($this->atLeastOnce())
         ->method('isRevisionable')
@@ -901,6 +917,9 @@ public function testGetTableMappingRevisionableTranslatableWithFields(array $ent
           array('revision', $entity_keys['revision']),
           array('langcode', $entity_keys['langcode']),
         )));
+      $this->entityType->expects($this->any())
+        ->method('getRevisionMetadataKeys')
+        ->will($this->returnValue($revision_metadata_field_names));
 
       $this->setUpEntityStorage();
 
@@ -938,7 +957,7 @@ public function testGetTableMappingRevisionableTranslatableWithFields(array $ent
         $entity_keys['id'],
         $entity_keys['revision'],
         $entity_keys['langcode'],
-      )), $revision_metadata_field_names);
+      )), array_values($revision_metadata_field_names));
       $actual = $mapping->getFieldNames('entity_test_revision');
       $this->assertEquals($expected, $actual);
       // The UUID is not stored on the data table.
diff --git a/core/tests/Drupal/Tests/Core/Menu/LocalTaskManagerTest.php b/core/tests/Drupal/Tests/Core/Menu/LocalTaskManagerTest.php
index 5fc65ad..2708c0c 100644
--- a/core/tests/Drupal/Tests/Core/Menu/LocalTaskManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Menu/LocalTaskManagerTest.php
@@ -413,7 +413,7 @@ public function testGetTasksBuildWithCacheabilityMetadata() {
       ->method('getDefinitions')
       ->will($this->returnValue($definitions));
 
-    // Set up some cacheablity metadata and ensure its merged together.
+    // Set up some cacheability metadata and ensure its merged together.
     $definitions['menu_local_task_test_tasks_settings']['cache_tags'] = ['tag.example1'];
     $definitions['menu_local_task_test_tasks_settings']['cache_contexts'] = ['context.example1'];
     $definitions['menu_local_task_test_tasks_edit']['cache_tags'] = ['tag.example2'];
diff --git a/core/tests/Drupal/Tests/Core/Plugin/DefaultSingleLazyPluginCollectionTest.php b/core/tests/Drupal/Tests/Core/Plugin/DefaultSingleLazyPluginCollectionTest.php
index 22ecd3c..ab7bfdc 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/DefaultSingleLazyPluginCollectionTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/DefaultSingleLazyPluginCollectionTest.php
@@ -58,6 +58,17 @@ public function testAddInstanceId() {
     $this->assertEquals(['id' => 'banana', 'key' => 'other_value'], $this->defaultPluginCollection->get('banana')->getConfiguration());
   }
 
+  /**
+   * @covers ::getInstanceIds
+   */
+  public function testGetInstanceIds() {
+    $this->setupPluginCollection($this->any());
+    $this->assertEquals(['apple' => 'apple'], $this->defaultPluginCollection->getInstanceIds());
+
+    $this->defaultPluginCollection->addInstanceId('banana', ['id' => 'banana', 'key' => 'other_value']);
+    $this->assertEquals(['banana' => 'banana'], $this->defaultPluginCollection->getInstanceIds());
+  }
+
 }
 
 class ConfigurablePlugin extends PluginBase implements ConfigurablePluginInterface {
diff --git a/core/tests/Drupal/Tests/Core/Render/BubbleableMetadataTest.php b/core/tests/Drupal/Tests/Core/Render/BubbleableMetadataTest.php
index 8e639f9..93ee950 100644
--- a/core/tests/Drupal/Tests/Core/Render/BubbleableMetadataTest.php
+++ b/core/tests/Drupal/Tests/Core/Render/BubbleableMetadataTest.php
@@ -671,7 +671,7 @@ public function testAddCacheableDependency(BubbleableMetadata $a, $b, Bubbleable
    *
    * @return array
    */
-  public function providerTestAddCachableDependency() {
+  public function providerTestAddCacheableDependency() {
     return [
       // Merge in a cacheable metadata.
       'merge-cacheable-metadata' => [
diff --git a/core/tests/Drupal/Tests/Core/Render/RendererTest.php b/core/tests/Drupal/Tests/Core/Render/RendererTest.php
index 51cfde8..cea677b 100644
--- a/core/tests/Drupal/Tests/Core/Render/RendererTest.php
+++ b/core/tests/Drupal/Tests/Core/Render/RendererTest.php
@@ -511,7 +511,7 @@ public function testRenderWithAccessControllerResolved($access) {
    * @covers ::render
    * @covers ::doRender
    */
-  public function testRenderAccessCacheablityDependencyInheritance() {
+  public function testRenderAccessCacheabilityDependencyInheritance() {
     $build = [
       '#access' => AccessResult::allowed()->addCacheContexts(['user']),
     ];
diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
index 25d498e..e3d3c77 100644
--- a/sites/default/default.settings.php
+++ b/sites/default/default.settings.php
@@ -750,6 +750,16 @@
 ];
 
 /**
+ * The default number of entities to update in a batch process.
+ *
+ * This is used by update and post-update functions that need to go through and
+ * change all the entities on a site, so it is useful to increase this number
+ * if your hosting configuration (i.e. RAM allocation, CPU speed) allows for a
+ * larger number of entities to be processed in a single batch run.
+ */
+$settings['entity_update_batch_size'] = 50;
+
+/**
  * Load local development override configuration, if available.
  *
  * Use settings.local.php to override variables on secondary (staging,
