diff --git a/.gitattributes b/.gitattributes
index fca87f3..ca9112c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -16,27 +16,27 @@
 #   - Deny applying with `git apply --whitespace=error-all`.
 #   - Fix automatically with `git apply --whitespace=fix`.
 
-*.config  text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
+# Auto-detect text files, ensure they use LF.
+*         text=auto eol=lf
+
 *.css     text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
-*.dist    text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
 *.engine  text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
 *.html    text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html
 *.inc     text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
+*.info    text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
 *.install text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
 *.js      text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
 *.json    text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
 *.lock    text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
-*.map     text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
 *.md      text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
 *.module  text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
 *.php     text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
 *.po      text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
-*.profile text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
 *.script  text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
 *.sh      text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
 *.sql     text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
+*.test    text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
 *.theme   text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
-*.twig    text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
 *.txt     text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
 *.xml     text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
 *.yml     text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
@@ -47,10 +47,8 @@
 *.gif     -text diff
 *.gz      -text diff
 *.ico     -text diff
-*.jpeg    -text diff
 *.jpg     -text diff
 *.png     -text diff
 *.phar    -text diff
 *.exe     -text diff
-*.svgz    -text diff
 *.ttf     -text diff
diff --git a/.htaccess b/.htaccess
index 4716fa1..f4024c6 100644
--- a/.htaccess
+++ b/.htaccess
@@ -180,10 +180,8 @@ AddEncoding gzip svgz
   </IfModule>
 </IfModule>
 
-# Various header fixes.
+# Add headers to all responses.
 <IfModule mod_headers.c>
   # Disable content sniffing, since it's an attack vector.
   Header always set X-Content-Type-Options nosniff
-  # Disable Proxy header, since it's an attack vector.
-  RequestHeader unset Proxy
 </IfModule>
diff --git a/composer.lock b/composer.lock
index 132fba5..19ee071 100644
--- a/composer.lock
+++ b/composer.lock
@@ -678,32 +678,32 @@
         },
         {
             "name": "guzzlehttp/guzzle",
-            "version": "6.2.1",
+            "version": "6.1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/guzzle.git",
-                "reference": "3f808fba627f2c5b69e2501217bf31af349c1427"
+                "reference": "66fd14b4d0b8f2389eaf37c5458608c7cb793a81"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/3f808fba627f2c5b69e2501217bf31af349c1427",
-                "reference": "3f808fba627f2c5b69e2501217bf31af349c1427",
+                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/66fd14b4d0b8f2389eaf37c5458608c7cb793a81",
+                "reference": "66fd14b4d0b8f2389eaf37c5458608c7cb793a81",
                 "shasum": ""
             },
             "require": {
-                "guzzlehttp/promises": "^1.0",
-                "guzzlehttp/psr7": "^1.3.1",
-                "php": ">=5.5"
+                "guzzlehttp/promises": "~1.0",
+                "guzzlehttp/psr7": "~1.1",
+                "php": ">=5.5.0"
             },
             "require-dev": {
                 "ext-curl": "*",
-                "phpunit/phpunit": "^4.0",
-                "psr/log": "^1.0"
+                "phpunit/phpunit": "~4.0",
+                "psr/log": "~1.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "6.2-dev"
+                    "dev-master": "6.1-dev"
                 }
             },
             "autoload": {
@@ -736,20 +736,20 @@
                 "rest",
                 "web service"
             ],
-            "time": "2016-07-15 17:22:37"
+            "time": "2015-09-08 17:36:26"
         },
         {
             "name": "guzzlehttp/promises",
-            "version": "1.2.0",
+            "version": "1.0.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/promises.git",
-                "reference": "c10d860e2a9595f8883527fa0021c7da9e65f579"
+                "reference": "97fe7210def29451ec74923b27e552238defd75a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/promises/zipball/c10d860e2a9595f8883527fa0021c7da9e65f579",
-                "reference": "c10d860e2a9595f8883527fa0021c7da9e65f579",
+                "url": "https://api.github.com/repos/guzzle/promises/zipball/97fe7210def29451ec74923b27e552238defd75a",
+                "reference": "97fe7210def29451ec74923b27e552238defd75a",
                 "shasum": ""
             },
             "require": {
@@ -787,20 +787,20 @@
             "keywords": [
                 "promise"
             ],
-            "time": "2016-05-18 16:56:05"
+            "time": "2015-08-15 19:37:21"
         },
         {
             "name": "guzzlehttp/psr7",
-            "version": "1.3.1",
+            "version": "1.2.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/psr7.git",
-                "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b"
+                "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/psr7/zipball/5c6447c9df362e8f8093bda8f5d8873fe5c7f65b",
-                "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b",
+                "url": "https://api.github.com/repos/guzzle/psr7/zipball/4ef919b0cf3b1989523138b60163bbcb7ba1ff7e",
+                "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e",
                 "shasum": ""
             },
             "require": {
@@ -816,7 +816,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.4-dev"
+                    "dev-master": "1.0-dev"
                 }
             },
             "autoload": {
@@ -845,7 +845,7 @@
                 "stream",
                 "uri"
             ],
-            "time": "2016-06-24 23:00:38"
+            "time": "2015-08-15 19:32:36"
         },
         {
             "name": "ircmaxell/password-compat",
@@ -891,16 +891,16 @@
         },
         {
             "name": "masterminds/html5",
-            "version": "2.2.1",
+            "version": "2.1.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Masterminds/html5-php.git",
-                "reference": "170aa5cb35b29fccafbf5ea63487c013f396fdc9"
+                "reference": "8f782e0f01a6e33a319bdc8f6de9cfd6569979a4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/170aa5cb35b29fccafbf5ea63487c013f396fdc9",
-                "reference": "170aa5cb35b29fccafbf5ea63487c013f396fdc9",
+                "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/8f782e0f01a6e33a319bdc8f6de9cfd6569979a4",
+                "reference": "8f782e0f01a6e33a319bdc8f6de9cfd6569979a4",
                 "shasum": ""
             },
             "require": {
@@ -910,7 +910,7 @@
             "require-dev": {
                 "phpunit/phpunit": "4.*",
                 "sami/sami": "~2.0",
-                "satooshi/php-coveralls": "1.0.*"
+                "satooshi/php-coveralls": "0.6.*"
             },
             "type": "library",
             "extra": {
@@ -952,7 +952,7 @@
                 "serializer",
                 "xml"
             ],
-            "time": "2016-05-10 14:11:45"
+            "time": "2015-06-07 08:43:18"
         },
         {
             "name": "paragonie/random_compat",
@@ -1091,22 +1091,22 @@
         },
         {
             "name": "stack/builder",
-            "version": "v1.0.4",
+            "version": "v1.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/stackphp/builder.git",
-                "reference": "59fcc9b448a8ce5e338a04c4e2e4aca893e83425"
+                "reference": "c1f8a4693b55c563405024f708a76ef576c3b276"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/stackphp/builder/zipball/59fcc9b448a8ce5e338a04c4e2e4aca893e83425",
-                "reference": "59fcc9b448a8ce5e338a04c4e2e4aca893e83425",
+                "url": "https://api.github.com/repos/stackphp/builder/zipball/c1f8a4693b55c563405024f708a76ef576c3b276",
+                "reference": "c1f8a4693b55c563405024f708a76ef576c3b276",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.0",
-                "symfony/http-foundation": "~2.1|~3.0",
-                "symfony/http-kernel": "~2.1|~3.0"
+                "symfony/http-foundation": "~2.1",
+                "symfony/http-kernel": "~2.1"
             },
             "require-dev": {
                 "silex/silex": "~1.0"
@@ -1136,42 +1136,40 @@
             "keywords": [
                 "stack"
             ],
-            "time": "2016-06-02 06:58:42"
+            "time": "2014-11-23 20:37:11"
         },
         {
             "name": "symfony-cmf/routing",
-            "version": "1.4.0",
+            "version": "1.3.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony-cmf/Routing.git",
-                "reference": "b93704ca098334f56e9b317932f21a4362e620db"
+                "reference": "8e87981d72c6930a27585dcd3119f3199f6cb2a6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/b93704ca098334f56e9b317932f21a4362e620db",
-                "reference": "b93704ca098334f56e9b317932f21a4362e620db",
+                "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/8e87981d72c6930a27585dcd3119f3199f6cb2a6",
+                "reference": "8e87981d72c6930a27585dcd3119f3199f6cb2a6",
                 "shasum": ""
             },
             "require": {
-                "php": "^5.3.9|^7.0",
-                "psr/log": "1.*",
-                "symfony/http-kernel": "^2.2|3.*",
-                "symfony/routing": "^2.2|3.*"
+                "php": ">=5.3.3",
+                "psr/log": "~1.0",
+                "symfony/http-kernel": "~2.2",
+                "symfony/routing": "~2.2"
             },
             "require-dev": {
-                "friendsofsymfony/jsrouting-bundle": "^1.1",
-                "symfony-cmf/testing": "^1.3",
-                "symfony/config": "^2.2|3.*",
-                "symfony/dependency-injection": "^2.0.5|3.*",
-                "symfony/event-dispatcher": "^2.1|3.*"
+                "symfony/config": "~2.2",
+                "symfony/dependency-injection": "~2.0@stable",
+                "symfony/event-dispatcher": "~2.1"
             },
             "suggest": {
-                "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (~2.1)"
+                "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version ~2.1"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.4-dev"
+                    "dev-master": "1.3-dev"
                 }
             },
             "autoload": {
@@ -1195,7 +1193,7 @@
                 "database",
                 "routing"
             ],
-            "time": "2016-03-31 09:11:39"
+            "time": "2014-10-20 20:55:17"
         },
         {
             "name": "symfony/class-loader",
diff --git a/core/INSTALL.txt b/core/INSTALL.txt
index 8c5ee87..ed1304a 100644
--- a/core/INSTALL.txt
+++ b/core/INSTALL.txt
@@ -27,7 +27,7 @@ Drupal requires:
   - Percona Server 5.5.8 (or greater) (http://www.percona.com/). Percona
     Server is a backwards-compatible replacement for MySQL.
   - PostgreSQL 9.1.2 (or greater) (http://www.postgresql.org/).
-  - SQLite 3.7.11 (or greater) (http://www.sqlite.org/).
+  - SQLite 3.6.8 (or greater) (http://www.sqlite.org/).
 
 For more detailed information about Drupal requirements, including a list of
 PHP extensions and configurations that are required, see "System requirements"
@@ -199,7 +199,7 @@ INSTALLATION
 
 5. Change file system storage settings (optional).
 
-   The files directory created in step 3 is the default file system path used to
+   The files directory created in step 4 is the default file system path used to
    store all uploaded files, as well as some temporary files created by
    Drupal. After installation, you can modify the file system path to store
    uploaded files in a different location.
@@ -226,19 +226,11 @@ INSTALLATION
         mkdir uploads
         chmod a+w uploads
 
-   b. Open your settings.php in a plain-text editor, and uncomment (remove the #
-      at the start of line) this line:
-
-        # $settings['file_public_path'] = 'sites/default/files';
-
-      Enter the desired path and save the file.
-
-      If you want to use private file storage, you need to uncomment (remove
-      the # at the start of line) the following line in settings.php:
-
-        # $settings['file_private_path'] = '';
-
-      Enter the path for private files and save the file.
+   b. Navigate to Administration > Configuration > Media > File system, and
+      enter the desired path. Note that if you want to use private file storage,
+      you need to first enter the path for private files and save the
+      configuration, and then change the "Default download method" setting and
+      save again.
 
    Changing the file system path after files have been uploaded may cause
    unexpected problems on an existing site. If you modify the file system path
diff --git a/core/MAINTAINERS.txt b/core/MAINTAINERS.txt
index 60aefd1..bec7bb4 100644
--- a/core/MAINTAINERS.txt
+++ b/core/MAINTAINERS.txt
@@ -28,12 +28,8 @@ Provisional membership:
 - Scott Reeves 'Cottser' https://www.drupal.org/u/cottser
 
 Drupal 7
-- Fabian Franz 'Fabianx' https://www.drupal.org/u/fabianx
-  (Framework Manager)
 - David Rothstein 'David_Rothstein' https://www.drupal.org/u/david_rothstein
   (Release Manager, Framework Manager, Product Manager)
-- Stefan Ruijsenaars 'stefan.r' https://www.drupal.org/u/stefanr-0
-  (Release Manager, Product Manager)
 
 Provisional membership: None at this time.
 
@@ -114,6 +110,7 @@ Extension system
 
 Field system
 - Yves Chedemois 'yched' https://www.drupal.org/u/yched
+- Kristof De Jaeger 'swentel' https://www.drupal.org/u/swentel
 - Andrei Mateescu 'amateescu' https://www.drupal.org/u/amateescu
 
 File system
@@ -204,6 +201,7 @@ Transliteration system
 - Andrei Mateescu 'amateescu' https://www.drupal.org/u/amateescu
 - Damien Tournoud 'damien-tournoud' https://www.drupal.org/u/damien-tournoud
 - Daniel F. Kudwien 'sun' https://www.drupal.org/u/sun
+- Jennifer Hodgdon 'jhodgdon' https://www.drupal.org/u/jhodgdon
 
 Typed data system
 - Wolfgang Ziegler 'fago' https://www.drupal.org/u/fago
@@ -214,10 +212,9 @@ Topic maintainers
 Accessibility
 - Mike Gifford 'mgifford' https://www.drupal.org/u/mgifford
 - Jesse Renée Beach 'jessebeach' https://www.drupal.org/u/jessebeach
-- Andrew Macpherson 'andrewmacpherson' https://www.drupal.org/u/andrewmacpherson
 
 Documentation
-- ?
+- Jennifer Hodgdon 'jhodgdon' https://www.drupal.org/u/jhodgdon
 
 Performance
 - Nathaniel Catchpole 'catch' https://www.drupal.org/u/catch
@@ -332,6 +329,7 @@ Editor module
 
 Field UI module
 - Yves Chedemois 'yched' https://www.drupal.org/u/yched
+- Kristof De Jaeger 'swentel' https://www.drupal.org/u/swentel
 - Andrei Mateescu 'amateescu' https://www.drupal.org/u/amateescu
 
 File module
@@ -387,7 +385,7 @@ Node module
 - David Strauss 'David Strauss' https://www.drupal.org/u/david-strauss
 
 Number module
-- ?
+- Kristof De Jaeger 'swentel' https://www.drupal.org/u/swentel
 
 Options module
 - Yves Chedemois 'yched' https://www.drupal.org/u/yched
@@ -417,6 +415,7 @@ Responsive Image module
 - Jelle Sebreghts 'Jelle_S' https://www.drupal.org/u/jelle_s
 
 Search module
+- Jennifer Hodgdon 'jhodgdon' https://www.drupal.org/u/jhodgdon
 - Peter Wolanin 'pwolanin' https://www.drupal.org/u/pwolanin
 
 Serialization module
diff --git a/core/assets/vendor/ckeditor/CHANGES.md b/core/assets/vendor/ckeditor/CHANGES.md
index 0a2698b..f751de9 100644
--- a/core/assets/vendor/ckeditor/CHANGES.md
+++ b/core/assets/vendor/ckeditor/CHANGES.md
@@ -1,36 +1,6 @@
 CKEditor 4 Changelog
 ====================
 
-## CKEditor 4.5.10
-
-Fixed Issues:
-
-* [#10750](http://dev.ckeditor.com/ticket/10750): Fixed: The editor does not escape the `font-style` family property correctly, removing quotes and whitespace from font names.
-* [#14413](http://dev.ckeditor.com/ticket/14413): Fixed: The [Auto Grow](http://ckeditor.com/addon/autogrow) plugin with the [`config.autoGrow_onStartup`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-autoGrow_onStartup) option set to `true` does not work properly for an editor that is not visible.
-* [#14451](http://dev.ckeditor.com/ticket/14451): Fixed: Numeric element ID not escaped properly. Thanks to [Jakub Chalupa](https://github.com/chaluja7)!
-* [#14590](http://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)!
-* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting a widget.
-* [#14701](http://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for [Enhanced Image](http://ckeditor.com/addon/image2) and [Placeholder](http://ckeditor.com/addon/placeholder) widgets.
-* [#14667](http://dev.ckeditor.com/ticket/14667): [IE] Fixed: Removing background color from selected text removes background color from the whole paragraph.
-* [#14252](http://dev.ckeditor.com/ticket/14252): [IE] Fixed: Styles drop-down list does not always reflect the current style of the text line.
-* [#14275](http://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` events are not used in browsers it could have been used when loading scripts dynamically.
-
-
-## CKEditor 4.5.9
-
-Fixed Issues:
-
-* [#10685](http://dev.ckeditor.com/ticket/10685): Fixed: Unreadable toolbar icons after updating to the new editor version. Fixed with [6876179](https://github.com/ckeditor/ckeditor-dev/commit/6876179db4ee97e786b07b8fd72e6b4120732185) in [ckeditor-dev](https://github.com/ckeditor/ckeditor-dev) and [6c9189f4](https://github.com/ckeditor/ckeditor-presets/commit/6c9189f46392d2c126854fe8889b820b8c76d291) in [ckeditor-presets](https://github.com/ckeditor/ckeditor-presets).
-* [#14573](https://dev.ckeditor.com/ticket/14573): Fixed: Missing [Widget](http://ckeditor.com/addon/widget) drag handler CSS when there are multiple editor instances.
-* [#14620](https://dev.ckeditor.com/ticket/14620): Fixed: Setting both the `min-height` style for the `<body>` element and the `height` style for the `<html>` element breaks the [Auto Grow](http://ckeditor.com/addon/autogrow) plugin.
-* [#14538](http://dev.ckeditor.com/ticket/14538): Fixed: Keyboard focus goes into an embedded `<iframe>` element.
-* [#14602](http://dev.ckeditor.com/ticket/14602): Fixed: The [`dom.element.removeAttribute()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-removeAttribute) method does not remove all attributes if no parameter is given.
-* [#8679](http://dev.ckeditor.com/ticket/8679): Fixed: Better focus indication and ability to style the selected color in the [color picker dialog](http://ckeditor.com/addon/colordialog).
-* [#11697](http://dev.ckeditor.com/ticket/11697): Fixed: Content is replaced ignoring the letter case setting in the [Find and Replace](http://ckeditor.com/addon/find) dialog window.
-* [#13886](http://dev.ckeditor.com/ticket/13886): Fixed: Invalid handling of the [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) instance with the `styles` property by [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter).
-* [#14535](http://dev.ckeditor.com/ticket/14535): Fixed: CSS syntax corrections. Thanks to [mdjdenormandie](https://github.com/mdjdenormandie)!
-* [#14312](http://dev.ckeditor.com/ticket/14312): [IE] Fixed: Artifact is visible after pasting any text.
-
 ## CKEditor 4.5.8
 
 New Features:
diff --git a/core/assets/vendor/ckeditor/ckeditor.js b/core/assets/vendor/ckeditor/ckeditor.js
index dc590e3..2593b37 100644
--- a/core/assets/vendor/ckeditor/ckeditor.js
+++ b/core/assets/vendor/ckeditor/ckeditor.js
@@ -2,13 +2,13 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-(function(){window.CKEDITOR&&window.CKEDITOR.dom||(window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,f={timestamp:"G6DJ",version:"4.5.10",revision:"b47abaf",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var e=window.CKEDITOR_BASEPATH||"";if(!e)for(var c=document.getElementsByTagName("script"),f=0;f<c.length;f++){var k=c[f].src.match(a);if(k){e=k[1];break}}-1==e.indexOf(":/")&&"//"!=e.slice(0,
+(function(){window.CKEDITOR&&window.CKEDITOR.dom||(window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,f={timestamp:"G37E",version:"4.5.8",revision:"c1fc9a9",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var e=window.CKEDITOR_BASEPATH||"";if(!e)for(var c=document.getElementsByTagName("script"),f=0;f<c.length;f++){var k=c[f].src.match(a);if(k){e=k[1];break}}-1==e.indexOf(":/")&&"//"!=e.slice(0,
 2)&&(e=0===e.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+e:location.href.match(/^[^\?]*\/(?:)/)[0]+e);if(!e)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return e}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&"/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a)&&(a+=(0<=a.indexOf("?")?"\x26":"?")+"t\x3d"+this.timestamp);return a},
 domReady:function(){function a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",a,!1),e()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),e())}catch(k){}}function e(){for(var a;a=c.shift();)a()}var c=[];return function(k){function b(){try{document.documentElement.doScroll("left")}catch(g){setTimeout(b,1);return}a()}c.push(k);"complete"===document.readyState&&setTimeout(a,1);if(1==c.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",
 a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",a);window.attachEvent("onload",a);k=!1;try{k=!window.frameElement}catch(d){}document.documentElement.doScroll&&k&&b()}}}()},c=window.CKEDITOR_GETURL;if(c){var e=f.getUrl;f.getUrl=function(a){return c.call(f,a)||e.call(f,a)}}return f}()),CKEDITOR.event||(CKEDITOR.event=function(){},CKEDITOR.event.implementOn=function(a){var f=CKEDITOR.event.prototype,c;for(c in f)null==a[c]&&(a[c]=f[c])},
 CKEDITOR.event.prototype=function(){function a(a){var h=f(this);return h[a]||(h[a]=new c(a))}var f=function(a){a=a.getPrivate&&a.getPrivate()||a._||(a._={});return a.events||(a.events={})},c=function(a){this.name=a;this.listeners=[]};c.prototype={getListenerIndex:function(a){for(var c=0,f=this.listeners;c<f.length;c++)if(f[c].fn==a)return c;return-1}};return{define:function(e,c){var f=a.call(this,e);CKEDITOR.tools.extend(f,c,!0)},on:function(c,h,f,l,k){function b(g,b,a,p){g={name:c,sender:this,editor:g,
-data:b,listenerData:l,stop:a,cancel:p,removeListener:d};return!1===h.call(f,g)?!1:g.data}function d(){p.removeListener(c,h)}var g=a.call(this,c);if(0>g.getListenerIndex(h)){g=g.listeners;f||(f=this);isNaN(k)&&(k=10);var p=this;b.fn=h;b.priority=k;for(var r=g.length-1;0<=r;r--)if(g[r].priority<=k)return g.splice(r+1,0,b),{removeListener:d};g.unshift(b)}return{removeListener:d}},once:function(){var a=Array.prototype.slice.call(arguments),c=a[1];a[1]=function(a){a.removeListener();return c.apply(this,
-arguments)};return this.on.apply(this,a)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,c=function(){a=1},m=0,l=function(){m=1};return function(k,b,d){var g=f(this)[k];k=a;var p=m;a=m=0;if(g){var r=g.listeners;if(r.length)for(var r=r.slice(0),v,u=0;u<r.length;u++){if(g.errorProof)try{v=r[u].call(this,d,b,c,l)}catch(n){}else v=r[u].call(this,d,b,c,l);!1===v?m=1:"undefined"!=typeof v&&(b=v);if(a||m)break}}b=
+data:b,listenerData:l,stop:a,cancel:p,removeListener:d};return!1===h.call(f,g)?!1:g.data}function d(){p.removeListener(c,h)}var g=a.call(this,c);if(0>g.getListenerIndex(h)){g=g.listeners;f||(f=this);isNaN(k)&&(k=10);var p=this;b.fn=h;b.priority=k;for(var u=g.length-1;0<=u;u--)if(g[u].priority<=k)return g.splice(u+1,0,b),{removeListener:d};g.unshift(b)}return{removeListener:d}},once:function(){var a=Array.prototype.slice.call(arguments),c=a[1];a[1]=function(a){a.removeListener();return c.apply(this,
+arguments)};return this.on.apply(this,a)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,c=function(){a=1},m=0,l=function(){m=1};return function(k,b,d){var g=f(this)[k];k=a;var p=m;a=m=0;if(g){var u=g.listeners;if(u.length)for(var u=u.slice(0),v,r=0;r<u.length;r++){if(g.errorProof)try{v=u[r].call(this,d,b,c,l)}catch(n){}else v=u[r].call(this,d,b,c,l);!1===v?m=1:"undefined"!=typeof v&&(b=v);if(a||m)break}}b=
 m?!1:"undefined"==typeof b?!0:b;a=k;m=p;return b}}(),fireOnce:function(a,c,m){c=this.fire(a,c,m);delete f(this)[a];return c},removeListener:function(a,c){var m=f(this)[a];if(m){var l=m.getListenerIndex(c);0<=l&&m.listeners.splice(l,1)}},removeAllListeners:function(){var a=f(this),c;for(c in a)delete a[c]},hasListeners:function(a){return(a=f(this)[a])&&0<a.listeners.length}}}()),CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=
 function(a,f){a in{instanceReady:1,loaded:1}&&(this[a]=!0);return CKEDITOR.event.prototype.fire.call(this,a,f,this)},CKEDITOR.editor.prototype.fireOnce=function(a,f){a in{instanceReady:1,loaded:1}&&(this[a]=!0);return CKEDITOR.event.prototype.fireOnce.call(this,a,f,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype)),CKEDITOR.env||(CKEDITOR.env=function(){var a=navigator.userAgent.toLowerCase(),f=a.match(/edge[ \/](\d+.?\d*)/),c=-1<a.indexOf("trident/"),c=!(!f&&!c),c={ie:c,edge:!!f,webkit:!c&&
 -1<a.indexOf(" applewebkit/"),air:-1<a.indexOf(" adobeair/"),mac:-1<a.indexOf("macintosh"),quirks:"BackCompat"==document.compatMode&&(!document.documentMode||10>document.documentMode),mobile:-1<a.indexOf("mobile"),iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return!1;var a=document.domain,c=window.location.hostname;return a!=c&&a!="["+c+"]"},secure:"https:"==location.protocol};c.gecko="Gecko"==navigator.product&&!c.webkit&&!c.ie;c.webkit&&(-1<a.indexOf("chrome")?c.chrome=
@@ -28,184 +28,183 @@ return function(g){return g.replace(d,"")}}(),ltrim:function(){var d=/^[ \t\n\r]
 g){return function(){return d.apply(g,arguments)}},createClass:function(d){var g=d.$,b=d.base,a=d.privates||d._,k=d.proto;d=d.statics;!g&&(g=function(){b&&this.base.apply(this,arguments)});if(a)var c=g,g=function(){var g=this._||(this._={}),d;for(d in a){var b=a[d];g[d]="function"==typeof b?CKEDITOR.tools.bind(b,this):b}c.apply(this,arguments)};b&&(g.prototype=this.prototypedCopy(b.prototype),g.prototype.constructor=g,g.base=b,g.baseProto=b.prototype,g.prototype.base=function(){this.base=b.prototype.base;
 b.apply(this,arguments);this.base=arguments.callee});k&&this.extend(g.prototype,k,!0);d&&this.extend(g,d,!0);return g},addFunction:function(d,g){return a.push(function(){return d.apply(g||this,arguments)})-1},removeFunction:function(d){a[d]=null},callFunction:function(d){var g=a[d];return g&&g.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var d=/^-?\d+\.?\d*px$/,g;return function(b){g=CKEDITOR.tools.trim(b+"")+"px";return d.test(g)?g:b||""}}(),convertToPx:function(){var d;
 return function(g){d||(d=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"\x3e\x3c/div\x3e',CKEDITOR.document),CKEDITOR.document.getBody().append(d));return/%$/.test(g)?g:(d.setStyle("width",g),d.$.clientWidth)}}(),repeat:function(d,g){return Array(g+1).join(d)},tryThese:function(){for(var d,g=0,b=arguments.length;g<b;g++){var a=arguments[g];try{d=a();break}catch(k){}}return d},genKey:function(){return Array.prototype.slice.call(arguments).join("-")},
-defer:function(d){return function(){var g=arguments,b=this;window.setTimeout(function(){d.apply(b,g)},0)}},normalizeCssText:function(d,g){var b=[],a,k=CKEDITOR.tools.parseCssText(d,!0,g);for(a in k)b.push(a+":"+k[a]);b.sort();return b.length?b.join(";")+";":""},convertRgbToHex:function(d){return d.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(g,d,b,a){g=[d,b,a];for(d=0;3>d;d++)g[d]=("0"+parseInt(g[d],10).toString(16)).slice(-2);return"#"+g.join("")})},normalizeHex:function(d){return d.replace(/#(([0-9a-f]{3}){1,2})($|;|\s+)/gi,
-function(g,d,b,a){g=d.toLowerCase();3==g.length&&(g=g.split(""),g=[g[0],g[0],g[1],g[1],g[2],g[2]].join(""));return"#"+g+a})},parseCssText:function(d,g,b){var a={};b&&(d=(new CKEDITOR.dom.element("span")).setAttribute("style",d).getAttribute("style")||"");d&&(d=CKEDITOR.tools.normalizeHex(CKEDITOR.tools.convertRgbToHex(d)));if(!d||";"==d)return a;d.replace(/&quot;/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(d,b,k){g&&(b=b.toLowerCase(),"font-family"==b&&(k=k.replace(/\s*,\s*/g,
-",")),k=CKEDITOR.tools.trim(k));a[b]=k});return a},writeCssText:function(d,g){var b,a=[];for(b in d)a.push(b+":"+d[b]);g&&a.sort();return a.join("; ")},objectCompare:function(d,g,b){var a;if(!d&&!g)return!0;if(!d||!g)return!1;for(a in d)if(d[a]!=g[a])return!1;if(!b)for(a in g)if(d[a]!=g[a])return!1;return!0},objectKeys:function(d){var g=[],b;for(b in d)g.push(b);return g},convertArrayToObject:function(d,g){var b={};1==arguments.length&&(g=!0);for(var a=0,k=d.length;a<k;++a)b[d[a]]=g;return b},fixDomain:function(){for(var d;;)try{d=
-window.parent.document.domain;break}catch(g){d=d?d.replace(/.+?(?:\.|$)/,""):document.domain;if(!d)break;document.domain=d}return!!d},eventsBuffer:function(d,g,b){function a(){c=(new Date).getTime();k=!1;b?g.call(b):g()}var k,c=0;return{input:function(){if(!k){var g=(new Date).getTime()-c;g<d?k=setTimeout(a,d-g):a()}},reset:function(){k&&clearTimeout(k);k=c=0}}},enableHtml5Elements:function(d,g){for(var b="abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video".split(" "),
-a=b.length,k;a--;)k=d.createElement(b[a]),g&&d.appendChild(k)},checkIfAnyArrayItemMatches:function(d,g){for(var b=0,a=d.length;b<a;++b)if(d[b].match(g))return!0;return!1},checkIfAnyObjectPropertyMatches:function(d,g){for(var b in d)if(b.match(g))return!0;return!1},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d",getCookie:function(d){d=d.toLowerCase();for(var g=document.cookie.split(";"),b,a,k=0;k<g.length;k++)if(b=g[k].split("\x3d"),
-a=decodeURIComponent(CKEDITOR.tools.trim(b[0]).toLowerCase()),a===d)return decodeURIComponent(1<b.length?b[1]:"");return null},setCookie:function(d,g){document.cookie=encodeURIComponent(d)+"\x3d"+encodeURIComponent(g)+";path\x3d/"},getCsrfToken:function(){var d=CKEDITOR.tools.getCookie("ckCsrfToken");if(!d||40!=d.length){var d=[],g="";if(window.crypto&&window.crypto.getRandomValues)d=new Uint8Array(40),window.crypto.getRandomValues(d);else for(var b=0;40>b;b++)d.push(Math.floor(256*Math.random()));
-for(b=0;b<d.length;b++)var a="abcdefghijklmnopqrstuvwxyz0123456789".charAt(d[b]%36),g=g+(.5<Math.random()?a.toUpperCase():a);d=g;CKEDITOR.tools.setCookie("ckCsrfToken",d)}return d},escapeCss:function(d){return d?window.CSS&&CSS.escape?CSS.escape(d):isNaN(parseInt(d.charAt(0),10))?d:"\\3"+d.charAt(0)+" "+d.substring(1,d.length):""}}}(),CKEDITOR.dtd=function(){var a=CKEDITOR.tools.extend,f=function(d,g){for(var b=CKEDITOR.tools.clone(d),a=1;a<arguments.length;a++){g=arguments[a];for(var k in g)delete b[k]}return b},
-c={},e={},h={address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},m={command:1,link:1,meta:1,noscript:1,script:1,style:1},l={},k={"#":1},b={center:1,dir:1,noframes:1};a(c,{a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,
-label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,"var":1,video:1,wbr:1},k,{acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1});a(e,h,c,b);f={a:f(c,{a:1,button:1}),abbr:c,address:e,area:l,article:e,aside:e,audio:a({source:1,track:1},e),b:c,base:l,bdi:c,bdo:c,blockquote:e,body:e,br:l,button:f(c,{a:1,button:1}),canvas:c,caption:e,cite:c,code:c,col:l,colgroup:{col:1},
-command:l,datalist:a({option:1},c),dd:e,del:c,details:a({summary:1},e),dfn:c,div:e,dl:{dt:1,dd:1},dt:e,em:c,embed:l,fieldset:a({legend:1},e),figcaption:e,figure:a({figcaption:1},e),footer:e,form:e,h1:c,h2:c,h3:c,h4:c,h5:c,h6:c,head:a({title:1,base:1},m),header:e,hgroup:{h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},hr:l,html:a({head:1,body:1},e,m),i:c,iframe:k,img:l,input:l,ins:c,kbd:c,keygen:l,label:c,legend:c,li:e,link:l,main:e,map:e,mark:c,menu:a({li:1},e),meta:l,meter:f(c,{meter:1}),nav:e,noscript:a({link:1,
-meta:1,style:1},c),object:a({param:1},c),ol:{li:1},optgroup:{option:1},option:k,output:c,p:c,param:l,pre:c,progress:f(c,{progress:1}),q:c,rp:c,rt:c,ruby:a({rp:1,rt:1},c),s:c,samp:c,script:k,section:e,select:{optgroup:1,option:1},small:c,source:l,span:c,strong:c,style:k,sub:c,summary:a({h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},c),sup:c,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:e,textarea:k,tfoot:{tr:1},th:e,thead:{tr:1},time:f(c,{time:1}),title:k,tr:{th:1,td:1},track:l,u:c,ul:{li:1},
-"var":c,video:a({source:1,track:1},e),wbr:l,acronym:c,applet:a({param:1},e),basefont:l,big:c,center:e,dialog:l,dir:{li:1},font:c,isindex:l,noframes:e,strike:c,tt:c};a(f,{$block:a({audio:1,dd:1,dt:1,figcaption:1,li:1,video:1},h,b),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,fieldset:1,figcaption:1,figure:1,footer:1,form:1,header:1,hgroup:1,main:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1},$cdata:{script:1,style:1},$editable:{address:1,article:1,
-aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,figcaption:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,main:1,nav:1,p:1,pre:1,section:1},$empty:{area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1},$inline:c,$list:{dl:1,ol:1,ul:1},$listItem:{dd:1,dt:1,li:1},$nonBodyContent:a({body:1,head:1,html:1},f.head),$nonEditable:{applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,
-option:1,param:1,script:1,textarea:1,video:1},$object:{applet:1,audio:1,button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1},$removeEmpty:{abbr:1,acronym:1,b:1,bdi:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,mark:1,meter:1,output:1,q:1,ruby:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,
-td:1,tfoot:1,th:1,thead:1,tr:1},$transparent:{a:1,audio:1,canvas:1,del:1,ins:1,map:1,noscript:1,object:1,video:1},$intermediate:{caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1}});return f}(),CKEDITOR.dom.event=function(a){this.$=a},CKEDITOR.dom.event.prototype={getKey:function(){return this.$.keyCode||this.$.which},getKeystroke:function(){var a=this.getKey();if(this.$.ctrlKey||this.$.metaKey)a+=CKEDITOR.CTRL;
-this.$.shiftKey&&(a+=CKEDITOR.SHIFT);this.$.altKey&&(a+=CKEDITOR.ALT);return a},preventDefault:function(a){var f=this.$;f.preventDefault?f.preventDefault():f.returnValue=!1;a&&this.stopPropagation()},stopPropagation:function(){var a=this.$;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},getTarget:function(){var a=this.$.target||this.$.srcElement;return a?new CKEDITOR.dom.node(a):null},getPhase:function(){return this.$.eventPhase||2},getPageOffset:function(){var a=this.getTarget().getDocument().$;
-return{x:this.$.pageX||this.$.clientX+(a.documentElement.scrollLeft||a.body.scrollLeft),y:this.$.pageY||this.$.clientY+(a.documentElement.scrollTop||a.body.scrollTop)}}},CKEDITOR.CTRL=1114112,CKEDITOR.SHIFT=2228224,CKEDITOR.ALT=4456448,CKEDITOR.EVENT_PHASE_CAPTURING=1,CKEDITOR.EVENT_PHASE_AT_TARGET=2,CKEDITOR.EVENT_PHASE_BUBBLING=3,CKEDITOR.dom.domObject=function(a){a&&(this.$=a)},CKEDITOR.dom.domObject.prototype=function(){var a=function(a,c){return function(e){"undefined"!=typeof CKEDITOR&&a.fire(c,
-new CKEDITOR.dom.event(e))}};return{getPrivate:function(){var a;(a=this.getCustomData("_"))||this.setCustomData("_",a={});return a},on:function(f){var c=this.getCustomData("_cke_nativeListeners");c||(c={},this.setCustomData("_cke_nativeListeners",c));c[f]||(c=c[f]=a(this,f),this.$.addEventListener?this.$.addEventListener(f,c,!!CKEDITOR.event.useCapture):this.$.attachEvent&&this.$.attachEvent("on"+f,c));return CKEDITOR.event.prototype.on.apply(this,arguments)},removeListener:function(a){CKEDITOR.event.prototype.removeListener.apply(this,
-arguments);if(!this.hasListeners(a)){var c=this.getCustomData("_cke_nativeListeners"),e=c&&c[a];e&&(this.$.removeEventListener?this.$.removeEventListener(a,e,!1):this.$.detachEvent&&this.$.detachEvent("on"+a,e),delete c[a])}},removeAllListeners:function(){var a=this.getCustomData("_cke_nativeListeners"),c;for(c in a){var e=a[c];this.$.detachEvent?this.$.detachEvent("on"+c,e):this.$.removeEventListener&&this.$.removeEventListener(c,e,!1);delete a[c]}CKEDITOR.event.prototype.removeAllListeners.call(this)}}}(),
-function(a){var f={};CKEDITOR.on("reset",function(){f={}});a.equals=function(a){try{return a&&a.$===this.$}catch(e){return!1}};a.setCustomData=function(a,e){var h=this.getUniqueId();(f[h]||(f[h]={}))[a]=e;return this};a.getCustomData=function(a){var e=this.$["data-cke-expando"];return(e=e&&f[e])&&a in e?e[a]:null};a.removeCustomData=function(a){var e=this.$["data-cke-expando"],e=e&&f[e],h,m;e&&(h=e[a],m=a in e,delete e[a]);return m?h:null};a.clearCustomData=function(){this.removeAllListeners();var a=
-this.$["data-cke-expando"];a&&delete f[a]};a.getUniqueId=function(){return this.$["data-cke-expando"]||(this.$["data-cke-expando"]=CKEDITOR.tools.getNextNumber())};CKEDITOR.event.implementOn(a)}(CKEDITOR.dom.domObject.prototype),CKEDITOR.dom.node=function(a){return a?new CKEDITOR.dom[a.nodeType==CKEDITOR.NODE_DOCUMENT?"document":a.nodeType==CKEDITOR.NODE_ELEMENT?"element":a.nodeType==CKEDITOR.NODE_TEXT?"text":a.nodeType==CKEDITOR.NODE_COMMENT?"comment":a.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT?
-"documentFragment":"domObject"](a):this},CKEDITOR.dom.node.prototype=new CKEDITOR.dom.domObject,CKEDITOR.NODE_ELEMENT=1,CKEDITOR.NODE_DOCUMENT=9,CKEDITOR.NODE_TEXT=3,CKEDITOR.NODE_COMMENT=8,CKEDITOR.NODE_DOCUMENT_FRAGMENT=11,CKEDITOR.POSITION_IDENTICAL=0,CKEDITOR.POSITION_DISCONNECTED=1,CKEDITOR.POSITION_FOLLOWING=2,CKEDITOR.POSITION_PRECEDING=4,CKEDITOR.POSITION_IS_CONTAINED=8,CKEDITOR.POSITION_CONTAINS=16,CKEDITOR.tools.extend(CKEDITOR.dom.node.prototype,{appendTo:function(a,f){a.append(this,f);
-return a},clone:function(a,f){function c(e){e["data-cke-expando"]&&(e["data-cke-expando"]=!1);if(e.nodeType==CKEDITOR.NODE_ELEMENT||e.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)if(f||e.nodeType!=CKEDITOR.NODE_ELEMENT||e.removeAttribute("id",!1),a){e=e.childNodes;for(var h=0;h<e.length;h++)c(e[h])}}function e(c){if(c.type==CKEDITOR.NODE_ELEMENT||c.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT){if(c.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var h=c.getName();":"==h[0]&&c.renameNode(h.substring(1))}if(a)for(h=0;h<
-c.getChildCount();h++)e(c.getChild(h))}}var h=this.$.cloneNode(a);c(h);h=new CKEDITOR.dom.node(h);CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(this.type==CKEDITOR.NODE_ELEMENT||this.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)&&e(h);return h},hasPrevious:function(){return!!this.$.previousSibling},hasNext:function(){return!!this.$.nextSibling},insertAfter:function(a){a.$.parentNode.insertBefore(this.$,a.$.nextSibling);return a},insertBefore:function(a){a.$.parentNode.insertBefore(this.$,a.$);return a},insertBeforeMe:function(a){this.$.parentNode.insertBefore(a.$,
-this.$);return a},getAddress:function(a){for(var f=[],c=this.getDocument().$.documentElement,e=this.$;e&&e!=c;){var h=e.parentNode;h&&f.unshift(this.getIndex.call({$:e},a));e=h}return f},getDocument:function(){return new CKEDITOR.dom.document(this.$.ownerDocument||this.$.parentNode.ownerDocument)},getIndex:function(a){function f(a,k){var b=k?a.nextSibling:a.previousSibling;return b&&b.nodeType==CKEDITOR.NODE_TEXT?c(b)?f(b,k):b:null}function c(a){return!a.nodeValue||a.nodeValue==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE}
-var e=this.$,h=-1,m;if(!this.$.parentNode||a&&e.nodeType==CKEDITOR.NODE_TEXT&&c(e)&&!f(e)&&!f(e,!0))return-1;do a&&e!=this.$&&e.nodeType==CKEDITOR.NODE_TEXT&&(m||c(e))||(h++,m=e.nodeType==CKEDITOR.NODE_TEXT);while(e=e.previousSibling);return h},getNextSourceNode:function(a,f,c){if(c&&!c.call){var e=c;c=function(a){return!a.equals(e)}}a=!a&&this.getFirst&&this.getFirst();var h;if(!a){if(this.type==CKEDITOR.NODE_ELEMENT&&c&&!1===c(this,!0))return null;a=this.getNext()}for(;!a&&(h=(h||this).getParent());){if(c&&
-!1===c(h,!0))return null;a=h.getNext()}return!a||c&&!1===c(a)?null:f&&f!=a.type?a.getNextSourceNode(!1,f,c):a},getPreviousSourceNode:function(a,f,c){if(c&&!c.call){var e=c;c=function(a){return!a.equals(e)}}a=!a&&this.getLast&&this.getLast();var h;if(!a){if(this.type==CKEDITOR.NODE_ELEMENT&&c&&!1===c(this,!0))return null;a=this.getPrevious()}for(;!a&&(h=(h||this).getParent());){if(c&&!1===c(h,!0))return null;a=h.getPrevious()}return!a||c&&!1===c(a)?null:f&&a.type!=f?a.getPreviousSourceNode(!1,f,c):
-a},getPrevious:function(a){var f=this.$,c;do c=(f=f.previousSibling)&&10!=f.nodeType&&new CKEDITOR.dom.node(f);while(c&&a&&!a(c));return c},getNext:function(a){var f=this.$,c;do c=(f=f.nextSibling)&&new CKEDITOR.dom.node(f);while(c&&a&&!a(c));return c},getParent:function(a){var f=this.$.parentNode;return f&&(f.nodeType==CKEDITOR.NODE_ELEMENT||a&&f.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)?new CKEDITOR.dom.node(f):null},getParents:function(a){var f=this,c=[];do c[a?"push":"unshift"](f);while(f=f.getParent());
-return c},getCommonAncestor:function(a){if(a.equals(this))return this;if(a.contains&&a.contains(this))return a;var f=this.contains?this:this.getParent();do if(f.contains(a))return f;while(f=f.getParent());return null},getPosition:function(a){var f=this.$,c=a.$;if(f.compareDocumentPosition)return f.compareDocumentPosition(c);if(f==c)return CKEDITOR.POSITION_IDENTICAL;if(this.type==CKEDITOR.NODE_ELEMENT&&a.type==CKEDITOR.NODE_ELEMENT){if(f.contains){if(f.contains(c))return CKEDITOR.POSITION_CONTAINS+
-CKEDITOR.POSITION_PRECEDING;if(c.contains(f))return CKEDITOR.POSITION_IS_CONTAINED+CKEDITOR.POSITION_FOLLOWING}if("sourceIndex"in f)return 0>f.sourceIndex||0>c.sourceIndex?CKEDITOR.POSITION_DISCONNECTED:f.sourceIndex<c.sourceIndex?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING}f=this.getAddress();a=a.getAddress();for(var c=Math.min(f.length,a.length),e=0;e<c;e++)if(f[e]!=a[e])return f[e]<a[e]?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING;return f.length<a.length?CKEDITOR.POSITION_CONTAINS+
-CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_IS_CONTAINED+CKEDITOR.POSITION_FOLLOWING},getAscendant:function(a,f){var c=this.$,e,h;f||(c=c.parentNode);"function"==typeof a?(h=!0,e=a):(h=!1,e=function(c){c="string"==typeof c.nodeName?c.nodeName.toLowerCase():"";return"string"==typeof a?c==a:c in a});for(;c;){if(e(h?new CKEDITOR.dom.node(c):c))return new CKEDITOR.dom.node(c);try{c=c.parentNode}catch(m){c=null}}return null},hasAscendant:function(a,f){var c=this.$;f||(c=c.parentNode);for(;c;){if(c.nodeName&&
-c.nodeName.toLowerCase()==a)return!0;c=c.parentNode}return!1},move:function(a,f){a.append(this.remove(),f)},remove:function(a){var f=this.$,c=f.parentNode;if(c){if(a)for(;a=f.firstChild;)c.insertBefore(f.removeChild(a),f);c.removeChild(f)}return this},replace:function(a){this.insertBefore(a);a.remove()},trim:function(){this.ltrim();this.rtrim()},ltrim:function(){for(var a;this.getFirst&&(a=this.getFirst());){if(a.type==CKEDITOR.NODE_TEXT){var f=CKEDITOR.tools.ltrim(a.getText()),c=a.getLength();if(f)f.length<
-c&&(a.split(c-f.length),this.$.removeChild(this.$.firstChild));else{a.remove();continue}}break}},rtrim:function(){for(var a;this.getLast&&(a=this.getLast());){if(a.type==CKEDITOR.NODE_TEXT){var f=CKEDITOR.tools.rtrim(a.getText()),c=a.getLength();if(f)f.length<c&&(a.split(f.length),this.$.lastChild.parentNode.removeChild(this.$.lastChild));else{a.remove();continue}}break}CKEDITOR.env.needsBrFiller&&(a=this.$.lastChild)&&1==a.type&&"br"==a.nodeName.toLowerCase()&&a.parentNode.removeChild(a)},isReadOnly:function(a){var f=
-this;this.type!=CKEDITOR.NODE_ELEMENT&&(f=this.getParent());CKEDITOR.env.edge&&f&&f.is("textarea","input")&&(a=!0);if(!a&&f&&"undefined"!=typeof f.$.isContentEditable)return!(f.$.isContentEditable||f.data("cke-editable"));for(;f;){if(f.data("cke-editable"))return!1;if(f.hasAttribute("contenteditable"))return"false"==f.getAttribute("contenteditable");f=f.getParent()}return!0}}),CKEDITOR.dom.window=function(a){CKEDITOR.dom.domObject.call(this,a)},CKEDITOR.dom.window.prototype=new CKEDITOR.dom.domObject,
-CKEDITOR.tools.extend(CKEDITOR.dom.window.prototype,{focus:function(){this.$.focus()},getViewPaneSize:function(){var a=this.$.document,f="CSS1Compat"==a.compatMode;return{width:(f?a.documentElement.clientWidth:a.body.clientWidth)||0,height:(f?a.documentElement.clientHeight:a.body.clientHeight)||0}},getScrollPosition:function(){var a=this.$;if("pageXOffset"in a)return{x:a.pageXOffset||0,y:a.pageYOffset||0};a=a.document;return{x:a.documentElement.scrollLeft||a.body.scrollLeft||0,y:a.documentElement.scrollTop||
-a.body.scrollTop||0}},getFrame:function(){var a=this.$.frameElement;return a?new CKEDITOR.dom.element.get(a):null}}),CKEDITOR.dom.document=function(a){CKEDITOR.dom.domObject.call(this,a)},CKEDITOR.dom.document.prototype=new CKEDITOR.dom.domObject,CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype,{type:CKEDITOR.NODE_DOCUMENT,appendStyleSheet:function(a){if(this.$.createStyleSheet)this.$.createStyleSheet(a);else{var f=new CKEDITOR.dom.element("link");f.setAttributes({rel:"stylesheet",type:"text/css",
-href:a});this.getHead().append(f)}},appendStyleText:function(a){if(this.$.createStyleSheet){var f=this.$.createStyleSheet("");f.cssText=a}else{var c=new CKEDITOR.dom.element("style",this);c.append(new CKEDITOR.dom.text(a,this));this.getHead().append(c)}return f||c.$.sheet},createElement:function(a,f){var c=new CKEDITOR.dom.element(a,this);f&&(f.attributes&&c.setAttributes(f.attributes),f.styles&&c.setStyles(f.styles));return c},createText:function(a){return new CKEDITOR.dom.text(a,this)},focus:function(){this.getWindow().focus()},
-getActive:function(){var a;try{a=this.$.activeElement}catch(f){return null}return new CKEDITOR.dom.element(a)},getById:function(a){return(a=this.$.getElementById(a))?new CKEDITOR.dom.element(a):null},getByAddress:function(a,f){for(var c=this.$.documentElement,e=0;c&&e<a.length;e++){var h=a[e];if(f)for(var m=-1,l=0;l<c.childNodes.length;l++){var k=c.childNodes[l];if(!0!==f||3!=k.nodeType||!k.previousSibling||3!=k.previousSibling.nodeType)if(m++,m==h){c=k;break}}else c=c.childNodes[h]}return c?new CKEDITOR.dom.node(c):
-null},getElementsByTag:function(a,f){CKEDITOR.env.ie&&8>=document.documentMode||!f||(a=f+":"+a);return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];return a=a?new CKEDITOR.dom.element(a):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),!0)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||
-this.$.defaultView)},write:function(a){this.$.open("text/html","replace");CKEDITOR.env.ie&&(a=a.replace(/(?:^\s*<!DOCTYPE[^>]*?>)|^/i,'$\x26\n\x3cscript data-cke-temp\x3d"1"\x3e('+CKEDITOR.tools.fixDomain+")();\x3c/script\x3e"));this.$.write(a);this.$.close()},find:function(a){return new CKEDITOR.dom.nodeList(this.$.querySelectorAll(a))},findOne:function(a){return(a=this.$.querySelector(a))?new CKEDITOR.dom.element(a):null},_getHtml5ShivFrag:function(){var a=this.getCustomData("html5ShivFrag");a||
-(a=this.$.createDocumentFragment(),CKEDITOR.tools.enableHtml5Elements(a,!0),this.setCustomData("html5ShivFrag",a));return a}}),CKEDITOR.dom.nodeList=function(a){this.$=a},CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(a){return 0>a||a>=this.$.length?null:(a=this.$[a])?new CKEDITOR.dom.node(a):null}},CKEDITOR.dom.element=function(a,f){"string"==typeof a&&(a=(f?f.$:document).createElement(a));CKEDITOR.dom.domObject.call(this,a)},CKEDITOR.dom.element.get=function(a){return(a=
-"string"==typeof a?document.getElementById(a)||document.getElementsByName(a)[0]:a)&&(a.$?a:new CKEDITOR.dom.element(a))},CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node,CKEDITOR.dom.element.createFromHtml=function(a,f){var c=new CKEDITOR.dom.element("div",f);c.setHtml(a);return c.getFirst().remove()},CKEDITOR.dom.element.setMarker=function(a,f,c,e){var h=f.getCustomData("list_marker_id")||f.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),m=f.getCustomData("list_marker_names")||
-f.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");a[h]=f;m[c]=1;return f.setCustomData(c,e)},CKEDITOR.dom.element.clearAllMarkers=function(a){for(var f in a)CKEDITOR.dom.element.clearMarkers(a,a[f],1)},CKEDITOR.dom.element.clearMarkers=function(a,f,c){var e=f.getCustomData("list_marker_names"),h=f.getCustomData("list_marker_id"),m;for(m in e)f.removeCustomData(m);f.removeCustomData("list_marker_names");c&&(f.removeCustomData("list_marker_id"),delete a[h])},function(){function a(a,
-b){return-1<(" "+a+" ").replace(m," ").indexOf(" "+b+" ")}function f(a){var b=!0;a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),b=!1);return function(){b||a.removeAttribute("id")}}function c(a,b){var d=CKEDITOR.tools.escapeCss(a.$.id);return"#"+d+" "+b.split(/,\s*/).join(", #"+d+" ")}function e(a){for(var b=0,d=0,g=l[a].length;d<g;d++)b+=parseInt(this.getComputedStyle(l[a][d])||0,10)||0;return b}var h=document.createElement("_").classList,h="undefined"!==typeof h&&null!==String(h.add).match(/\[Native code\]/gi),
-m=/[\n\t\r]/g;CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:h?function(a){this.$.classList.add(a);return this}:function(k){var b=this.$.className;b&&(a(b,k)||(b+=" "+k));this.$.className=b||k;return this},removeClass:h?function(a){var b=this.$;b.classList.remove(a);b.className||b.removeAttribute("class");return this}:function(k){var b=this.getAttribute("class");b&&a(b,k)&&((b=b.replace(new RegExp("(?:^|\\s+)"+k+"(?\x3d\\s|$)"),"").replace(/^\s+/,""))?this.setAttribute("class",
-b):this.removeAttribute("class"));return this},hasClass:function(k){return a(this.$.className,k)},append:function(a,b){"string"==typeof a&&(a=this.getDocument().createElement(a));b?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var b=new CKEDITOR.dom.element("div",this.getDocument());b.setHtml(a);b.moveChildren(this)}else this.setHtml(a)},appendText:function(a){null!=this.$.text&&CKEDITOR.env.ie&&9>CKEDITOR.env.version?
-this.$.text+=a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(a){if(a||CKEDITOR.env.needsBrFiller){for(a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();a&&a.is&&a.is("br")||(a=this.getDocument().createElement("br"),CKEDITOR.env.gecko&&a.setAttribute("type","_moz"),this.append(a))}},breakParent:function(a,b){var d=new CKEDITOR.dom.range(this.getDocument());d.setStartAfter(this);d.setEndAfter(a);var g=d.extractContents(!1,b||!1),c;d.insertNode(this.remove());
-if(CKEDITOR.env.ie&&!CKEDITOR.env.edge){for(d=new CKEDITOR.dom.element("div");c=g.getFirst();)c.$.style.backgroundColor&&(c.$.style.backgroundColor=c.$.style.backgroundColor),d.append(c);d.insertAfter(this);d.remove(!0)}else g.insertAfterNode(this)},contains:document.compareDocumentPosition?function(a){return!!(this.$.compareDocumentPosition(a.$)&16)}:function(a){var b=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?b.contains(a.getParent().$):b!=a.$&&b.contains(a.$)},focus:function(){function a(){try{this.$.focus()}catch(b){}}
-return function(b){b?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,"");var a=this.$.ownerDocument.createElement("div");a.appendChild(this.$.cloneNode(!0));return a.innerHTML},getClientRect:function(){var a=CKEDITOR.tools.extend({},this.$.getBoundingClientRect());!a.width&&(a.width=a.right-a.left);!a.height&&
-(a.height=a.bottom-a.top);return a},setHtml:CKEDITOR.env.ie&&9>CKEDITOR.env.version?function(a){try{var b=this.$;if(this.getParent())return b.innerHTML=a;var d=this.getDocument()._getHtml5ShivFrag();d.appendChild(b);b.innerHTML=a;d.removeChild(b);return a}catch(g){this.$.innerHTML="";b=new CKEDITOR.dom.element("body",this.getDocument());b.$.innerHTML=a;for(b=b.getChildren();b.count();)this.append(b.getItem(0));return a}}:function(a){return this.$.innerHTML=a},setText:function(){var a=document.createElement("p");
-a.innerHTML="x";a=a.textContent;return function(b){this.$[a?"textContent":"innerText"]=b}}(),getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){switch(a){case "class":a="className";break;case "http-equiv":a="httpEquiv";break;case "name":return this.$.name;case "tabindex":return a=this.$.getAttribute(a,2),0!==a&&0===this.$.tabIndex&&(a=null),a;case "checked":return a=this.$.attributes.getNamedItem(a),
-(a.specified?a.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[a];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?this.$.getAttribute("contentEditable"):null}return this.$.getAttribute(a,2)}:a}(),getAttributes:function(a){var b={},d=this.$.attributes,g;a=CKEDITOR.tools.isArray(a)?a:[];for(g=0;g<d.length;g++)-1===CKEDITOR.tools.indexOf(a,d[g].name)&&(b[d[g].name]=
-d[g].value);return b},getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},getComputedStyle:document.defaultView&&document.defaultView.getComputedStyle?function(a){var b=this.getWindow().$.getComputedStyle(this.$,null);return b?b.getPropertyValue(a):""}:function(a){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]},getDtd:function(){var a=CKEDITOR.dtd[this.getName()];this.getDtd=function(){return a};return a},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,
-getTabIndex:function(){var a=this.$.tabIndex;return 0!==a||CKEDITOR.dtd.$tabIndex[this.getName()]||0===parseInt(this.getAttribute("tabindex"),10)?a:-1},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||null},getNameAtt:function(){return this.$.name||null},getName:function(){var a=this.$.nodeName.toLowerCase();if(CKEDITOR.env.ie&&8>=document.documentMode){var b=this.$.scopeName;"HTML"!=
-b&&(a=b.toLowerCase()+":"+a)}this.getName=function(){return a};return this.getName()},getValue:function(){return this.$.value},getFirst:function(a){var b=this.$.firstChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getNext(a));return b},getLast:function(a){var b=this.$.lastChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getPrevious(a));return b},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]},is:function(){var a=this.getName();if("object"==typeof arguments[0])return!!arguments[0][a];
-for(var b=0;b<arguments.length;b++)if(arguments[b]==a)return!0;return!1},isEditable:function(a){var b=this.getName();return this.isReadOnly()||"none"==this.getComputedStyle("display")||"hidden"==this.getComputedStyle("visibility")||CKEDITOR.dtd.$nonEditable[b]||CKEDITOR.dtd.$empty[b]||this.is("a")&&(this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount()?!1:!1!==a?(a=CKEDITOR.dtd[b]||CKEDITOR.dtd.span,!(!a||!a["#"])):!0},isIdentical:function(a){var b=this.clone(0,1);a=a.clone(0,
-1);b.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(b.$.isEqualNode)return b.$.style.cssText=CKEDITOR.tools.normalizeCssText(b.$.style.cssText),a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText),b.$.isEqualNode(a.$);b=b.getOuterHtml();a=a.getOuterHtml();if(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&this.is("a")){var d=this.getParent();
-d.type==CKEDITOR.NODE_ELEMENT&&(d=d.clone(),d.setHtml(b),b=d.getHtml(),d.setHtml(a),a=d.getHtml())}return b==a},isVisible:function(){var a=(this.$.offsetHeight||this.$.offsetWidth)&&"hidden"!=this.getComputedStyle("visibility"),b,d;a&&CKEDITOR.env.webkit&&(b=this.getWindow(),!b.equals(CKEDITOR.document.getWindow())&&(d=b.$.frameElement)&&(a=(new CKEDITOR.dom.element(d)).isVisible()));return!!a},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return!1;for(var a=this.getChildren(),
-b=0,d=a.count();b<d;b++){var g=a.getItem(b);if(g.type!=CKEDITOR.NODE_ELEMENT||!g.data("cke-bookmark"))if(g.type==CKEDITOR.NODE_ELEMENT&&!g.isEmptyInlineRemoveable()||g.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(g.getText()))return!1}return!0},hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(){for(var a=this.$.attributes,b=0;b<a.length;b++){var d=a[b];switch(d.nodeName){case "class":if(this.getAttribute("class"))return!0;case "data-cke-expando":continue;default:if(d.specified)return!0}}return!1}:
-function(){var a=this.$.attributes,b=a.length,d={"data-cke-expando":1,_moz_dirty:1};return 0<b&&(2<b||!d[a[0].nodeName]||2==b&&!d[a[1].nodeName])},hasAttribute:function(){function a(b){var d=this.$.attributes.getNamedItem(b);if("input"==this.getName())switch(b){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":return b=this.getAttribute("type"),"checkbox"==b||"radio"==b?"on"!=this.$.value:!!this.$.value}return d?d.specified:!1}return CKEDITOR.env.ie?
-8>CKEDITOR.env.version?function(b){return"name"==b?!!this.$.name:a.call(this,b)}:a:function(a){return!!this.$.attributes.getNamedItem(a)}}(),hide:function(){this.setStyle("display","none")},moveChildren:function(a,b){var d=this.$;a=a.$;if(d!=a){var g;if(b)for(;g=d.lastChild;)a.insertBefore(d.removeChild(g),a.firstChild);else for(;g=d.firstChild;)a.appendChild(d.removeChild(g))}},mergeSiblings:function(){function a(b,d,g){if(d&&d.type==CKEDITOR.NODE_ELEMENT){for(var c=[];d.data("cke-bookmark")||d.isEmptyInlineRemoveable();)if(c.push(d),
-d=g?d.getNext():d.getPrevious(),!d||d.type!=CKEDITOR.NODE_ELEMENT)return;if(b.isIdentical(d)){for(var e=g?b.getLast():b.getFirst();c.length;)c.shift().move(b,!g);d.moveChildren(b,!g);d.remove();e&&e.type==CKEDITOR.NODE_ELEMENT&&e.mergeSiblings()}}}return function(b){if(!1===b||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a"))a(this,this.getNext(),!0),a(this,this.getPrevious())}}(),show:function(){this.setStyles({display:"",visibility:""})},setAttribute:function(){var a=function(a,d){this.$.setAttribute(a,
-d);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(b,d){"class"==b?this.$.className=d:"style"==b?this.$.style.cssText=d:"tabindex"==b?this.$.tabIndex=d:"checked"==b?this.$.checked=d:"contenteditable"==b?a.call(this,"contentEditable",d):a.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(b,d){if("src"==b&&d.match(/^http:\/\//))try{a.apply(this,arguments)}catch(g){}else a.apply(this,arguments);return this}:a}(),setAttributes:function(a){for(var b in a)this.setAttribute(b,
-a[b]);return this},setValue:function(a){this.$.value=a;return this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){"class"==a?a="className":"tabindex"==a?a="tabIndex":"contenteditable"==a&&(a="contentEditable");this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var b=0;b<a.length;b++)this.removeAttribute(a[b]);else for(b in a=a||this.getAttributes(),
-a)a.hasOwnProperty(b)&&this.removeAttribute(b)},removeStyle:function(a){var b=this.$.style;if(b.removeProperty||"border"!=a&&"margin"!=a&&"padding"!=a)b.removeProperty?b.removeProperty(a):b.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a)),this.$.style.cssText||this.removeAttribute("style");else{var d=["top","left","right","bottom"],g;"border"==a&&(g=["color","style","width"]);for(var b=[],c=0;c<d.length;c++)if(g)for(var e=0;e<g.length;e++)b.push([a,d[c],g[e]].join("-"));else b.push([a,d[c]].join("-"));
-for(a=0;a<b.length;a++)this.removeStyle(b[a])}},setStyle:function(a,b){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=b;return this},setStyles:function(a){for(var b in a)this.setStyle(b,a[b]);return this},setOpacity:function(a){CKEDITOR.env.ie&&9>CKEDITOR.env.version?(a=Math.round(100*a),this.setStyle("filter",100<=a?"":"progid:DXImageTransform.Microsoft.Alpha(opacity\x3d"+a+")")):this.setStyle("opacity",a)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","none"));
-if(CKEDITOR.env.ie){this.setAttribute("unselectable","on");for(var a,b=this.getElementsByTag("*"),d=0,g=b.count();d<g;d++)a=b.getItem(d),a.setAttribute("unselectable","on")}},getPositionedAncestor:function(){for(var a=this;"html"!=a.getName();){if("static"!=a.getComputedStyle("position"))return a;a=a.getParent()}return null},getDocumentPosition:function(a){var b=0,d=0,g=this.getDocument(),c=g.getBody(),e="BackCompat"==g.$.compatMode;if(document.documentElement.getBoundingClientRect&&(CKEDITOR.env.ie?
-8!==CKEDITOR.env.version:1)){var h=this.$.getBoundingClientRect(),f=g.$.documentElement,n=f.clientTop||c.$.clientTop||0,q=f.clientLeft||c.$.clientLeft||0,m=!0;CKEDITOR.env.ie&&(m=g.getDocumentElement().contains(this),g=g.getBody().contains(this),m=e&&g||!e&&m);m&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(b=c.$.scrollLeft||f.scrollLeft,d=c.$.scrollTop||f.scrollTop):(d=e?c.$:f,b=d.scrollLeft,d=d.scrollTop),b=h.left+b-q,d=h.top+d-n)}else for(n=this,q=null;n&&"body"!=n.getName()&&
-"html"!=n.getName();){b+=n.$.offsetLeft-n.$.scrollLeft;d+=n.$.offsetTop-n.$.scrollTop;n.equals(this)||(b+=n.$.clientLeft||0,d+=n.$.clientTop||0);for(;q&&!q.equals(n);)b-=q.$.scrollLeft,d-=q.$.scrollTop,q=q.getParent();q=n;n=(h=n.$.offsetParent)?new CKEDITOR.dom.element(h):null}a&&(h=this.getWindow(),n=a.getWindow(),!h.equals(n)&&h.$.frameElement&&(a=(new CKEDITOR.dom.element(h.$.frameElement)).getDocumentPosition(a),b+=a.x,d+=a.y));document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko||
-e||(b+=this.$.clientLeft?1:0,d+=this.$.clientTop?1:0);return{x:b,y:d}},scrollIntoView:function(a){var b=this.getParent();if(b){do if((b.$.clientWidth&&b.$.clientWidth<b.$.scrollWidth||b.$.clientHeight&&b.$.clientHeight<b.$.scrollHeight)&&!b.is("body")&&this.scrollIntoParent(b,a,1),b.is("html")){var d=b.getWindow();try{var g=d.$.frameElement;g&&(b=new CKEDITOR.dom.element(g))}catch(c){}}while(b=b.getParent())}},scrollIntoParent:function(a,b,d){var g,c,e,h;function f(g,d){/body|html/.test(a.getName())?
-a.getWindow().$.scrollBy(g,d):(a.$.scrollLeft+=g,a.$.scrollTop+=d)}function n(a,g){var d={x:0,y:0};if(!a.is(m?"body":"html")){var b=a.$.getBoundingClientRect();d.x=b.left;d.y=b.top}b=a.getWindow();b.equals(g)||(b=n(CKEDITOR.dom.element.get(b.$.frameElement),g),d.x+=b.x,d.y+=b.y);return d}function q(a,g){return parseInt(a.getComputedStyle("margin-"+g)||0,10)||0}!a&&(a=this.getWindow());e=a.getDocument();var m="BackCompat"==e.$.compatMode;a instanceof CKEDITOR.dom.window&&(a=m?e.getBody():e.getDocumentElement());
-e=a.getWindow();c=n(this,e);var l=n(a,e),A=this.$.offsetHeight;g=this.$.offsetWidth;var t=a.$.clientHeight,w=a.$.clientWidth;e=c.x-q(this,"left")-l.x||0;h=c.y-q(this,"top")-l.y||0;g=c.x+g+q(this,"right")-(l.x+w)||0;c=c.y+A+q(this,"bottom")-(l.y+t)||0;(0>h||0<c)&&f(0,!0===b?h:!1===b?c:0>h?h:c);d&&(0>e||0<g)&&f(0>e?e:g,0)},setState:function(a,b,d){b=b||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(b+"_on");this.removeClass(b+"_off");this.removeClass(b+"_disabled");d&&this.setAttribute("aria-pressed",
-!0);d&&this.removeAttribute("aria-disabled");break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(b+"_disabled");this.removeClass(b+"_off");this.removeClass(b+"_on");d&&this.setAttribute("aria-disabled",!0);d&&this.removeAttribute("aria-pressed");break;default:this.addClass(b+"_off"),this.removeClass(b+"_on"),this.removeClass(b+"_disabled"),d&&this.removeAttribute("aria-pressed"),d&&this.removeAttribute("aria-disabled")}},getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(b){a.src=
-a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},copyAttributes:function(a,b){var d=this.$.attributes;b=b||{};for(var g=0;g<d.length;g++){var c=d[g],e=c.nodeName.toLowerCase(),h;if(!(e in b))if("checked"==e&&(h=this.getAttribute(e)))a.setAttribute(e,h);else if(!CKEDITOR.env.ie||this.hasAttribute(e))h=this.getAttribute(e),null===h&&(h=c.nodeValue),a.setAttribute(e,h)}""!==this.$.style.cssText&&(a.$.style.cssText=this.$.style.cssText)},renameNode:function(a){if(this.getName()!=a){var b=
-this.getDocument();a=new CKEDITOR.dom.element(a,b);this.copyAttributes(a);this.moveChildren(a);this.getParent(!0)&&this.$.parentNode.replaceChild(a.$,this.$);a.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=a.$;delete this.getName}},getChild:function(){function a(b,d){var g=b.childNodes;if(0<=d&&d<g.length)return g[d]}return function(b){var d=this.$;if(b.slice)for(b=b.slice();0<b.length&&d;)d=a(d,b.shift());else d=a(d,b);return d?new CKEDITOR.dom.node(d):null}}(),getChildCount:function(){return this.$.childNodes.length},
-disableContextMenu:function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT&&b.hasClass("cke_enable_context_menu")}this.on("contextmenu",function(b){b.data.getTarget().getAscendant(a,!0)||b.data.preventDefault()})},getDirection:function(a){return a?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir||"ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(a,b){a="data-"+a;if(void 0===b)return this.getAttribute(a);
-!1===b?this.removeAttribute(a):this.setAttribute(a,b);return null},getEditor:function(){var a=CKEDITOR.instances,b,d;for(b in a)if(d=a[b],d.element.equals(this)&&d.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO)return d;return null},find:function(a){var b=f(this);a=new CKEDITOR.dom.nodeList(this.$.querySelectorAll(c(this,a)));b();return a},findOne:function(a){var b=f(this);a=this.$.querySelector(c(this,a));b();return a?new CKEDITOR.dom.element(a):null},forEach:function(a,b,d){if(!(d||b&&this.type!=b))var g=
-a(this);if(!1!==g){d=this.getChildren();for(var c=0;c<d.count();c++)g=d.getItem(c),g.type==CKEDITOR.NODE_ELEMENT?g.forEach(a,b):b&&g.type!=b||a(g)}}});var l={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};CKEDITOR.dom.element.prototype.setSize=function(a,b,d){"number"==typeof b&&(!d||CKEDITOR.env.ie&&CKEDITOR.env.quirks||(b-=e.call(this,a)),this.setStyle(a,b+"px"))};CKEDITOR.dom.element.prototype.getSize=
-function(a,b){var d=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],this.$["client"+CKEDITOR.tools.capitalize(a)])||0;b&&(d-=e.call(this,a));return d}}(),CKEDITOR.dom.documentFragment=function(a){a=a||CKEDITOR.document;this.$=a.type==CKEDITOR.NODE_DOCUMENT?a.$.createDocumentFragment():a},CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype,CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,insertAfterNode:function(a){a=a.$;a.parentNode.insertBefore(this.$,a.nextSibling)},
-getHtml:function(){var a=new CKEDITOR.dom.element("div");this.clone(1,1).appendTo(a);return a.getHtml().replace(/\s*data-cke-expando=".*?"/g,"")}},!0,{append:1,appendBogus:1,clone:1,getFirst:1,getHtml:1,getLast:1,getParent:1,getNext:1,getPrevious:1,appendTo:1,moveChildren:1,insertBefore:1,insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1}),function(){function a(a,g){var d=this.range;if(this._.end)return null;if(!this._.start){this._.start=
-1;if(d.collapsed)return this.end(),null;d.optimize()}var b,c=d.startContainer;b=d.endContainer;var e=d.startOffset,h=d.endOffset,p,f=this.guard,k=this.type,m=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var l=b.type==CKEDITOR.NODE_ELEMENT?b:b.getParent(),y=b.type==CKEDITOR.NODE_ELEMENT?b.getChild(h):b.getNext();this._.guardLTR=function(a,g){return(!g||!l.equals(a))&&(!y||!a.equals(y))&&(a.type!=CKEDITOR.NODE_ELEMENT||!g||!a.equals(d.root))}}if(a&&!this._.guardRTL){var C=
-c.type==CKEDITOR.NODE_ELEMENT?c:c.getParent(),F=c.type==CKEDITOR.NODE_ELEMENT?e?c.getChild(e-1):null:c.getPrevious();this._.guardRTL=function(a,g){return(!g||!C.equals(a))&&(!F||!a.equals(F))&&(a.type!=CKEDITOR.NODE_ELEMENT||!g||!a.equals(d.root))}}var E=a?this._.guardRTL:this._.guardLTR;p=f?function(a,g){return!1===E(a,g)?!1:f(a,g)}:E;this.current?b=this.current[m](!1,k,p):(a?b.type==CKEDITOR.NODE_ELEMENT&&(b=0<h?b.getChild(h-1):!1===p(b,!0)?null:b.getPreviousSourceNode(!0,k,p)):(b=c,b.type==CKEDITOR.NODE_ELEMENT&&
-((b=b.getChild(e))||(b=!1===p(c,!0)?null:c.getNextSourceNode(!0,k,p)))),b&&!1===p(b)&&(b=null));for(;b&&!this._.end;){this.current=b;if(!this.evaluator||!1!==this.evaluator(b)){if(!g)return b}else if(g&&this.evaluator)return!1;b=b[m](!1,k,p)}this.end();return this.current=null}function f(g){for(var d,b=null;d=a.call(this,g);)b=d;return b}CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range=a;this._={}},proto:{end:function(){this._.end=1},next:function(){return a.call(this)},previous:function(){return a.call(this,
-1)},checkForward:function(){return!1!==a.call(this,0,1)},checkBackward:function(){return!1!==a.call(this,1,1)},lastForward:function(){return f.call(this)},lastBackward:function(){return f.call(this,1)},reset:function(){delete this.current;this._={}}}});var c={block:1,"list-item":1,table:1,"table-row-group":1,"table-header-group":1,"table-footer-group":1,"table-row":1,"table-column-group":1,"table-column":1,"table-cell":1,"table-caption":1},e={absolute:1,fixed:1};CKEDITOR.dom.element.prototype.isBlockBoundary=
-function(a){return"none"!=this.getComputedStyle("float")||this.getComputedStyle("position")in e||!c[this.getComputedStyle("display")]?!!(this.is(CKEDITOR.dtd.$block)||a&&this.is(a)):!0};CKEDITOR.dom.walker.blockBoundary=function(a){return function(g){return!(g.type==CKEDITOR.NODE_ELEMENT&&g.isBlockBoundary(a))}};CKEDITOR.dom.walker.listItemBoundary=function(){return this.blockBoundary({br:1})};CKEDITOR.dom.walker.bookmark=function(a,g){function d(a){return a&&a.getName&&"span"==a.getName()&&a.data("cke-bookmark")}
-return function(b){var c,e;c=b&&b.type!=CKEDITOR.NODE_ELEMENT&&(e=b.getParent())&&d(e);c=a?c:c||d(b);return!!(g^c)}};CKEDITOR.dom.walker.whitespaces=function(a){return function(g){var d;g&&g.type==CKEDITOR.NODE_TEXT&&(d=!CKEDITOR.tools.trim(g.getText())||CKEDITOR.env.webkit&&g.getText()==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE);return!!(a^d)}};CKEDITOR.dom.walker.invisible=function(a){var g=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.env.webkit?1:0;return function(b){g(b)?b=1:(b.type==CKEDITOR.NODE_TEXT&&
-(b=b.getParent()),b=b.$.offsetWidth<=d);return!!(a^b)}};CKEDITOR.dom.walker.nodeType=function(a,g){return function(d){return!!(g^d.type==a)}};CKEDITOR.dom.walker.bogus=function(a){function g(a){return!m(a)&&!l(a)}return function(d){var b=CKEDITOR.env.needsBrFiller?d.is&&d.is("br"):d.getText&&h.test(d.getText());b&&(b=d.getParent(),d=d.getNext(g),b=b.isBlockBoundary()&&(!d||d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()));return!!(a^b)}};CKEDITOR.dom.walker.temp=function(a){return function(g){g.type!=
-CKEDITOR.NODE_ELEMENT&&(g=g.getParent());g=g&&g.hasAttribute("data-cke-temp");return!!(a^g)}};var h=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,m=CKEDITOR.dom.walker.whitespaces(),l=CKEDITOR.dom.walker.bookmark(),k=CKEDITOR.dom.walker.temp(),b=function(a){return l(a)||m(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$inline)&&!a.is(CKEDITOR.dtd.$empty)};CKEDITOR.dom.walker.ignored=function(a){return function(g){g=m(g)||l(g)||k(g);return!!(a^g)}};var d=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=
-function(a){return function(g){for(var b=0,c=g.getChildCount();b<c;++b)if(!d(g.getChild(b)))return!!a;return!a}};var g=CKEDITOR.dom.walker.empty(),p=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(a){var g={},d;for(d in a)CKEDITOR.dtd[d]["#"]&&(g[d]=1);return g}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=function(a){return function(b){b=d(b)?!1:b.type==CKEDITOR.NODE_TEXT||b.type==CKEDITOR.NODE_ELEMENT&&(b.is(CKEDITOR.dtd.$inline)||b.is("hr")||
-"false"==b.getAttribute("contenteditable")||!CKEDITOR.env.needsBrFiller&&b.is(p)&&g(b))?!0:!1;return!!(a^b)}};CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(b(a));return a&&(CKEDITOR.env.needsBrFiller?a.is&&a.is("br"):a.getText&&h.test(a.getText()))?a:!1}}(),CKEDITOR.dom.range=function(a){this.endOffset=this.endContainer=this.startOffset=this.startContainer=null;this.collapsed=!0;var f=a instanceof CKEDITOR.dom.document;this.document=f?a:a.getDocument();
-this.root=f?a.getBody():a},function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset}function f(a,d,b,c,e){function h(a,g,d,b){var c=d?a.getPrevious():a.getNext();if(b&&m)return c;t||b?g.append(a.clone(!0,e),d):(a.remove(),l&&g.append(a));return c}function f(){var a,g,d,b=Math.min(O.length,I.length);for(a=0;a<b;a++)if(g=O[a],d=I[a],!g.equals(d))return a;return a-1}function k(){var d=R-1,b=E&&L&&!w.equals(D);d<M-1||d<
-Q-1||b?(b?a.moveToPosition(D,CKEDITOR.POSITION_BEFORE_START):Q==d+1&&F?a.moveToPosition(I[d],CKEDITOR.POSITION_BEFORE_END):a.moveToPosition(I[d+1],CKEDITOR.POSITION_BEFORE_START),c&&(d=O[d+1])&&d.type==CKEDITOR.NODE_ELEMENT&&(b=CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display:none"\x3e\x26nbsp;\x3c/span\x3e',a.document),b.insertAfter(d),d.mergeSiblings(!1),a.moveToBookmark({startNode:b}))):a.collapse(!0)}a.optimizeBookmark();var m=0===d,l=1==d,t=2==d;d=t||l;
-var w=a.startContainer,D=a.endContainer,B=a.startOffset,y=a.endOffset,C,F,E,L,G,N;if(t&&D.type==CKEDITOR.NODE_TEXT&&w.equals(D))w=a.document.createText(w.substring(B,y)),b.append(w);else{D.type==CKEDITOR.NODE_TEXT?t?N=!0:D=D.split(y):0<D.getChildCount()?y>=D.getChildCount()?(D=D.getChild(y-1),F=!0):D=D.getChild(y):L=F=!0;w.type==CKEDITOR.NODE_TEXT?t?G=!0:w.split(B):0<w.getChildCount()?0===B?(w=w.getChild(B),C=!0):w=w.getChild(B-1):E=C=!0;for(var O=w.getParents(),I=D.getParents(),R=f(),M=O.length-
-1,Q=I.length-1,P=b,K,W,U,S=-1,J=R;J<=M;J++){W=O[J];U=W.getNext();for(J!=M||W.equals(I[J])&&M<Q?d&&(K=P.append(W.clone(0,e))):C?h(W,P,!1,E):G&&P.append(a.document.createText(W.substring(B)));U;){if(U.equals(I[J])){S=J;break}U=h(U,P)}P=K}P=b;for(J=R;J<=Q;J++)if(b=I[J],U=b.getPrevious(),b.equals(O[J]))d&&(P=P.getChild(0));else{J!=Q||b.equals(O[J])&&Q<M?d&&(K=P.append(b.clone(0,e))):F?h(b,P,!1,L):N&&P.append(a.document.createText(b.substring(0,y)));if(J>S)for(;U;)U=h(U,P,!0);P=K}t||k()}}function c(){var a=
-!1,d=CKEDITOR.dom.walker.whitespaces(),b=CKEDITOR.dom.walker.bookmark(!0),c=CKEDITOR.dom.walker.bogus();return function(e){return b(e)||d(e)?!0:c(e)&&!a?a=!0:e.type==CKEDITOR.NODE_TEXT&&(e.hasAscendant("pre")||CKEDITOR.tools.trim(e.getText()).length)||e.type==CKEDITOR.NODE_ELEMENT&&!e.is(m)?!1:!0}}function e(a){var d=CKEDITOR.dom.walker.whitespaces(),b=CKEDITOR.dom.walker.bookmark(1);return function(c){return b(c)||d(c)?!0:!a&&l(c)||c.type==CKEDITOR.NODE_ELEMENT&&c.is(CKEDITOR.dtd.$removeEmpty)}}
-function h(a){return function(){var c;return this[a?"getPreviousNode":"getNextNode"](function(a){!c&&d(a)&&(c=a);return b(a)&&!(l(a)&&a.equals(c))})}}var m={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},l=CKEDITOR.dom.walker.bogus(),k=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,b=CKEDITOR.dom.walker.editable(),d=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var a=
-new CKEDITOR.dom.range(this.root);a._setStartContainer(this.startContainer);a.startOffset=this.startOffset;a._setEndContainer(this.endContainer);a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){a?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),this.startOffset=this.endOffset);this.collapsed=!0},cloneContents:function(a){var d=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||
-f(this,2,d,!1,"undefined"==typeof a?!0:a);return d},deleteContents:function(a){this.collapsed||f(this,0,null,a)},extractContents:function(a,d){var b=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||f(this,1,b,a,"undefined"==typeof d?!0:d);return b},createBookmark:function(a){var d,b,c,e,h=this.collapsed;d=this.document.createElement("span");d.data("cke-bookmark",1);d.setStyle("display","none");d.setHtml("\x26nbsp;");a&&(c="cke_bm_"+CKEDITOR.tools.getNextNumber(),d.setAttribute("id",
-c+(h?"C":"S")));h||(b=d.clone(),b.setHtml("\x26nbsp;"),a&&b.setAttribute("id",c+"E"),e=this.clone(),e.collapse(),e.insertNode(b));e=this.clone();e.collapse(!0);e.insertNode(d);b?(this.setStartAfter(d),this.setEndBefore(b)):this.moveToPosition(d,CKEDITOR.POSITION_AFTER_END);return{startNode:a?c+(h?"C":"S"):d,endNode:a?c+"E":b,serializable:a,collapsed:h}},createBookmark2:function(){function a(g){var d=g.container,c=g.offset,e;e=d;var h=c;e=e.type!=CKEDITOR.NODE_ELEMENT||0===h||h==e.getChildCount()?
-0:e.getChild(h-1).type==CKEDITOR.NODE_TEXT&&e.getChild(h).type==CKEDITOR.NODE_TEXT;e&&(d=d.getChild(c-1),c=d.getLength());if(d.type==CKEDITOR.NODE_ELEMENT&&0<c){a:{for(e=d;c--;)if(h=e.getChild(c).getIndex(!0),0<=h){c=h;break a}c=-1}c+=1}if(d.type==CKEDITOR.NODE_TEXT){e=d;for(h=0;(e=e.getPrevious())&&e.type==CKEDITOR.NODE_TEXT;)h+=e.getText().replace(CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE,"").length;e=h;d.getText()?c+=e:(h=d.getPrevious(b),e?(c=e,d=h?h.getNext():d.getParent().getFirst()):(d=
-d.getParent(),c=h?h.getIndex(!0)+1:0))}g.container=d;g.offset=c}function d(a,g){var b=g.getCustomData("cke-fillingChar");if(b){var c=a.container;b.equals(c)&&(a.offset-=CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length,0>=a.offset&&(a.offset=c.getIndex(),a.container=c.getParent()))}}var b=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT,!0);return function(b){var c=this.collapsed,e={container:this.startContainer,offset:this.startOffset},h={container:this.endContainer,offset:this.endOffset};b&&(a(e),
-d(e,this.root),c||(a(h),d(h,this.root)));return{start:e.container.getAddress(b),end:c?null:h.container.getAddress(b),startOffset:e.offset,endOffset:h.offset,normalized:b,collapsed:c,is2:!0}}}(),moveToBookmark:function(a){if(a.is2){var d=this.document.getByAddress(a.start,a.normalized),b=a.startOffset,c=a.end&&this.document.getByAddress(a.end,a.normalized);a=a.endOffset;this.setStart(d,b);c?this.setEnd(c,a):this.collapse(!0)}else d=(b=a.serializable)?this.document.getById(a.startNode):a.startNode,
-a=b?this.document.getById(a.endNode):a.endNode,this.setStartBefore(d),d.remove(),a?(this.setEndBefore(a),a.remove()):this.collapse(!0)},getBoundaryNodes:function(){var a=this.startContainer,d=this.endContainer,b=this.startOffset,c=this.endOffset,e;if(a.type==CKEDITOR.NODE_ELEMENT)if(e=a.getChildCount(),e>b)a=a.getChild(b);else if(1>e)a=a.getPreviousSourceNode();else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}if(d.type==CKEDITOR.NODE_ELEMENT)if(e=d.getChildCount(),
-e>c)d=d.getChild(c).getPreviousSourceNode(!0);else if(1>e)d=d.getPreviousSourceNode();else{for(d=d.$;d.lastChild;)d=d.lastChild;d=new CKEDITOR.dom.node(d)}a.getPosition(d)&CKEDITOR.POSITION_FOLLOWING&&(a=d);return{startNode:a,endNode:d}},getCommonAncestor:function(a,d){var b=this.startContainer,c=this.endContainer,b=b.equals(c)?a&&b.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?b.getChild(this.startOffset):b:b.getCommonAncestor(c);return d&&!b.is?b.getParent():b},optimize:function(){var a=
-this.startContainer,d=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(d?d>=a.getLength()&&this.setStartAfter(a):this.setStartBefore(a));a=this.endContainer;d=this.endOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(d?d>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,d=this.endContainer;a.is&&a.is("span")&&a.data("cke-bookmark")&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);d&&d.is&&d.is("span")&&d.data("cke-bookmark")&&this.setEndAt(d,CKEDITOR.POSITION_AFTER_END)},
-trim:function(a,d){var b=this.startContainer,c=this.startOffset,e=this.collapsed;if((!a||e)&&b&&b.type==CKEDITOR.NODE_TEXT){if(c)if(c>=b.getLength())c=b.getIndex()+1,b=b.getParent();else{var h=b.split(c),c=b.getIndex()+1,b=b.getParent();this.startContainer.equals(this.endContainer)?this.setEnd(h,this.endOffset-this.startOffset):b.equals(this.endContainer)&&(this.endOffset+=1)}else c=b.getIndex(),b=b.getParent();this.setStart(b,c);if(e){this.collapse(!0);return}}b=this.endContainer;c=this.endOffset;
-d||e||!b||b.type!=CKEDITOR.NODE_TEXT||(c?(c>=b.getLength()||b.split(c),c=b.getIndex()+1):c=b.getIndex(),b=b.getParent(),this.setEnd(b,c))},enlarge:function(a,d){function b(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")?null:a}var c=new RegExp(/[^\s\ufeff]/);switch(a){case CKEDITOR.ENLARGE_INLINE:var e=1;case CKEDITOR.ENLARGE_ELEMENT:var h=function(a,d){var b=new CKEDITOR.dom.range(k);b.setStart(a,d);b.setEndAt(k,CKEDITOR.POSITION_BEFORE_END);var b=new CKEDITOR.dom.walker(b),
-g;for(b.guard=function(a){return!(a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary())};g=b.next();){if(g.type!=CKEDITOR.NODE_TEXT)return!1;C=g!=a?g.getText():g.substring(d);if(c.test(C))return!1}return!0};if(this.collapsed)break;var f=this.getCommonAncestor(),k=this.root,m,l,t,w,D,B=!1,y,C;y=this.startContainer;var F=this.startOffset;y.type==CKEDITOR.NODE_TEXT?(F&&(y=!CKEDITOR.tools.trim(y.substring(0,F)).length&&y,B=!!y),y&&((w=y.getPrevious())||(t=y.getParent()))):(F&&(w=y.getChild(F-1)||y.getLast()),
-w||(t=y));for(t=b(t);t||w;){if(t&&!w){!D&&t.equals(f)&&(D=!0);if(e?t.isBlockBoundary():!k.contains(t))break;B&&"inline"==t.getComputedStyle("display")||(B=!1,D?m=t:this.setStartBefore(t));w=t.getPrevious()}for(;w;)if(y=!1,w.type==CKEDITOR.NODE_COMMENT)w=w.getPrevious();else{if(w.type==CKEDITOR.NODE_TEXT)C=w.getText(),c.test(C)&&(w=null),y=/[\s\ufeff]$/.test(C);else if((w.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||d&&w.is("br"))&&!w.data("cke-bookmark"))if(B&&CKEDITOR.dtd.$removeEmpty[w.getName()]){C=
-w.getText();if(c.test(C))w=null;else for(var F=w.$.getElementsByTagName("*"),E=0,L;L=F[E++];)if(!CKEDITOR.dtd.$removeEmpty[L.nodeName.toLowerCase()]){w=null;break}w&&(y=!!C.length)}else w=null;y&&(B?D?m=t:t&&this.setStartBefore(t):B=!0);if(w){y=w.getPrevious();if(!t&&!y){t=w;w=null;break}w=y}else t=null}t&&(t=b(t.getParent()))}y=this.endContainer;F=this.endOffset;t=w=null;D=B=!1;y.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(y.substring(F)).length?B=!0:(B=!y.getLength(),F==y.getLength()?(w=y.getNext())||
-(t=y.getParent()):h(y,F)&&(t=y.getParent())):(w=y.getChild(F))||(t=y);for(;t||w;){if(t&&!w){!D&&t.equals(f)&&(D=!0);if(e?t.isBlockBoundary():!k.contains(t))break;B&&"inline"==t.getComputedStyle("display")||(B=!1,D?l=t:t&&this.setEndAfter(t));w=t.getNext()}for(;w;){y=!1;if(w.type==CKEDITOR.NODE_TEXT)C=w.getText(),h(w,0)||(w=null),y=/^[\s\ufeff]/.test(C);else if(w.type==CKEDITOR.NODE_ELEMENT){if((0<w.$.offsetWidth||d&&w.is("br"))&&!w.data("cke-bookmark"))if(B&&CKEDITOR.dtd.$removeEmpty[w.getName()]){C=
-w.getText();if(c.test(C))w=null;else for(F=w.$.getElementsByTagName("*"),E=0;L=F[E++];)if(!CKEDITOR.dtd.$removeEmpty[L.nodeName.toLowerCase()]){w=null;break}w&&(y=!!C.length)}else w=null}else y=1;y&&B&&(D?l=t:this.setEndAfter(t));if(w){y=w.getNext();if(!t&&!y){t=w;w=null;break}w=y}else t=null}t&&(t=b(t.getParent()))}m&&l&&(f=m.contains(l)?l:m,this.setStartBefore(f),this.setEndAfter(f));break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:t=new CKEDITOR.dom.range(this.root);
-k=this.root;t.setStartAt(k,CKEDITOR.POSITION_AFTER_START);t.setEnd(this.startContainer,this.startOffset);t=new CKEDITOR.dom.walker(t);var G,N,O=CKEDITOR.dom.walker.blockBoundary(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),I=null,R=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&"false"==a.getAttribute("contenteditable"))if(I){if(I.equals(a)){I=null;return}}else I=a;else if(I)return;var d=O(a);d||(G=a);return d},e=function(a){var d=R(a);!d&&a.is&&a.is("br")&&(N=a);return d};t.guard=R;t=t.lastBackward();
-G=G||k;this.setStartAt(G,!G.is("br")&&(!t&&this.checkStartOfBlock()||t&&G.contains(t))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){t=this.clone();t=new CKEDITOR.dom.walker(t);var M=CKEDITOR.dom.walker.whitespaces(),Q=CKEDITOR.dom.walker.bookmark();t.evaluator=function(a){return!M(a)&&!Q(a)};if((t=t.previous())&&t.type==CKEDITOR.NODE_ELEMENT&&t.is("br"))break}t=this.clone();t.collapse();t.setEndAt(k,CKEDITOR.POSITION_BEFORE_END);t=new CKEDITOR.dom.walker(t);
-t.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?e:R;G=I=N=null;t=t.lastForward();G=G||k;this.setEndAt(G,!t&&this.checkEndOfBlock()||t&&G.contains(t)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);N&&this.setEndAfter(N)}},shrink:function(a,d,b){if(!this.collapsed){a=a||CKEDITOR.SHRINK_TEXT;var c=this.clone(),e=this.startContainer,h=this.endContainer,k=this.startOffset,f=this.endOffset,m=1,l=1;e&&e.type==CKEDITOR.NODE_TEXT&&(k?k>=e.getLength()?c.setStartAfter(e):(c.setStartBefore(e),m=
-0):c.setStartBefore(e));h&&h.type==CKEDITOR.NODE_TEXT&&(f?f>=h.getLength()?c.setEndAfter(h):(c.setEndAfter(h),l=0):c.setEndBefore(h));var c=new CKEDITOR.dom.walker(c),t=CKEDITOR.dom.walker.bookmark();c.evaluator=function(d){return d.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var w;c.guard=function(d,c){if(t(d))return!0;if(a==CKEDITOR.SHRINK_ELEMENT&&d.type==CKEDITOR.NODE_TEXT||c&&d.equals(w)||!1===b&&d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()||d.type==CKEDITOR.NODE_ELEMENT&&
-d.hasAttribute("contenteditable"))return!1;c||d.type!=CKEDITOR.NODE_ELEMENT||(w=d);return!0};m&&(e=c[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(e,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_START);l&&(c.reset(),(c=c[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(c,d?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_END));return!(!m&&!l)}},insertNode:function(a){this.optimizeBookmark();this.trim(!1,!0);var d=this.startContainer,b=d.getChild(this.startOffset);
-b?a.insertBefore(b):d.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&this.endOffset++;this.setStartBefore(a)},moveToPosition:function(a,d){this.setStartAt(a,d);this.collapse(!0)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(d,b){d.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[d.getName()]&&
-(b=d.getIndex(),d=d.getParent());this._setStartContainer(d);this.startOffset=b;this.endContainer||(this._setEndContainer(d),this.endOffset=b);a(this)},setEnd:function(d,b){d.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[d.getName()]&&(b=d.getIndex()+1,d=d.getParent());this._setEndContainer(d);this.endOffset=b;this.startContainer||(this._setStartContainer(d),this.startOffset=b);a(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),
-a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),a.getIndex())},setStartAt:function(d,b){switch(b){case CKEDITOR.POSITION_AFTER_START:this.setStart(d,0);break;case CKEDITOR.POSITION_BEFORE_END:d.type==CKEDITOR.NODE_TEXT?this.setStart(d,d.getLength()):this.setStart(d,d.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(d);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(d)}a(this)},
-setEndAt:function(d,b){switch(b){case CKEDITOR.POSITION_AFTER_START:this.setEnd(d,0);break;case CKEDITOR.POSITION_BEFORE_END:d.type==CKEDITOR.NODE_TEXT?this.setEnd(d,d.getLength()):this.setEnd(d,d.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(d);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(d)}a(this)},fixBlock:function(a,d){var b=this.createBookmark(),c=this.document.createElement(d);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(c);
-c.trim();this.insertNode(c);var e=c.getBogus();e&&e.remove();c.appendBogus();this.moveToBookmark(b);return c},splitBlock:function(a,d){var b=new CKEDITOR.dom.elementPath(this.startContainer,this.root),c=new CKEDITOR.dom.elementPath(this.endContainer,this.root),e=b.block,h=c.block,k=null;if(!b.blockLimit.equals(c.blockLimit))return null;"br"!=a&&(e||(e=this.fixBlock(!0,a),h=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block),h||(h=this.fixBlock(!1,a)));b=e&&this.checkStartOfBlock();
-c=h&&this.checkEndOfBlock();this.deleteContents();e&&e.equals(h)&&(c?(k=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(h,CKEDITOR.POSITION_AFTER_END),h=null):b?(k=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e=null):(h=this.splitElement(e,d||!1),e.is("ul","ol")||e.appendBogus()));return{previousBlock:e,nextBlock:h,wasStartOfBlock:b,wasEndOfBlock:c,elementPath:k}},splitElement:function(a,d){if(!this.collapsed)return null;
-this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var b=this.extractContents(!1,d||!1),c=a.clone(!1,d||!1);b.appendTo(c);c.insertAfter(a);this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return c},removeEmptyBlocksAtEnd:function(){function a(g){return function(a){return d(a)||b(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable()||g.is("table")&&a.is("caption")?!1:!0}}var d=CKEDITOR.dom.walker.whitespaces(),b=CKEDITOR.dom.walker.bookmark(!1);return function(d){for(var b=this.createBookmark(),
-c=this[d?"endPath":"startPath"](),e=c.block||c.blockLimit,h;e&&!e.equals(c.root)&&!e.getFirst(a(e));)h=e.getParent(),this[d?"setEndAt":"setStartAt"](e,CKEDITOR.POSITION_AFTER_END),e.remove(1),e=h;this.moveToBookmark(b)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,this.root)},checkBoundaryOfElement:function(a,d){var b=d==CKEDITOR.START,c=this.clone();c.collapse(b);c[b?"setStartAt":
-"setEndAt"](a,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END);c=new CKEDITOR.dom.walker(c);c.evaluator=e(b);return c[b?"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,d=this.startOffset;CKEDITOR.env.ie&&d&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.ltrim(a.substring(0,d)),k.test(a)&&this.trim(0,1));this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,this.root);d=this.clone();d.collapse(!0);d.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);
-a=new CKEDITOR.dom.walker(d);a.evaluator=c();return a.checkBackward()},checkEndOfBlock:function(){var a=this.endContainer,d=this.endOffset;CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.rtrim(a.substring(d)),k.test(a)&&this.trim(1,0));this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);d=this.clone();d.collapse(!1);d.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);a=new CKEDITOR.dom.walker(d);a.evaluator=c();return a.checkForward()},getPreviousNode:function(a,
-d,b){var c=this.clone();c.collapse(1);c.setStartAt(b||this.root,CKEDITOR.POSITION_AFTER_START);b=new CKEDITOR.dom.walker(c);b.evaluator=a;b.guard=d;return b.previous()},getNextNode:function(a,d,b){var c=this.clone();c.collapse();c.setEndAt(b||this.root,CKEDITOR.POSITION_BEFORE_END);b=new CKEDITOR.dom.walker(c);b.evaluator=a;b.guard=d;return b.next()},checkReadOnly:function(){function a(d,b){for(;d;){if(d.type==CKEDITOR.NODE_ELEMENT){if("false"==d.getAttribute("contentEditable")&&!d.data("cke-editable"))return 0;
-if(d.is("html")||"true"==d.getAttribute("contentEditable")&&(d.contains(b)||d.equals(b)))break}d=d.getParent()}return 1}return function(){var d=this.startContainer,b=this.endContainer;return!(a(d,b)&&a(b,d))}}(),moveToElementEditablePosition:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),!0;for(var c=0;a;){if(a.type==CKEDITOR.NODE_TEXT){b&&this.endContainer&&this.checkEndOfBlock()&&k.test(a.getText())?
-this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START);c=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable())this.moveToPosition(a,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START),c=1;else if(b&&a.is("br")&&this.endContainer&&this.checkEndOfBlock())this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);else if("false"==a.getAttribute("contenteditable")&&a.is(CKEDITOR.dtd.$block))return this.setStartBefore(a),
-this.setEndAfter(a),!0;var e=a,h=c,n=void 0;e.type==CKEDITOR.NODE_ELEMENT&&e.isEditable(!1)&&(n=e[b?"getLast":"getFirst"](d));h||n||(n=e[b?"getPrevious":"getNext"](d));a=n}return!!c},moveToClosestEditablePosition:function(a,d){var b,c=0,e,h,k=[CKEDITOR.POSITION_AFTER_END,CKEDITOR.POSITION_BEFORE_START];a?(b=new CKEDITOR.dom.range(this.root),b.moveToPosition(a,k[d?0:1])):b=this.clone();if(a&&!a.is(CKEDITOR.dtd.$block))c=1;else if(e=b[d?"getNextEditableNode":"getPreviousEditableNode"]())c=1,(h=e.type==
-CKEDITOR.NODE_ELEMENT)&&e.is(CKEDITOR.dtd.$block)&&"false"==e.getAttribute("contenteditable")?(b.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),b.setEndAt(e,CKEDITOR.POSITION_AFTER_END)):!CKEDITOR.env.needsBrFiller&&h&&e.is(CKEDITOR.dom.walker.validEmptyBlockContainers)?(b.setEnd(e,0),b.collapse()):b.moveToPosition(e,k[d?1:0]);c&&this.moveToRange(b);return!!c},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,
-!0)},getEnclosedNode:function(){var a=this.clone();a.optimize();if(a.startContainer.type!=CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),d=CKEDITOR.dom.walker.bookmark(!1,!0),b=CKEDITOR.dom.walker.whitespaces(!0);a.evaluator=function(a){return b(a)&&d(a)};var c=a.next();a.reset();return c&&c.equals(a.previous())?c:null},getTouchedStartNode:function(){var a=this.startContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||
-a},getTouchedEndNode:function(){var a=this.endContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},getNextEditableNode:h(),getPreviousEditableNode:h(1),scrollIntoView:function(){var a=new CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",this.document),d,b,c,e=this.clone();e.optimize();(c=e.startContainer.type==CKEDITOR.NODE_TEXT)?(b=e.startContainer.getText(),d=e.startContainer.split(e.startOffset),a.insertAfter(e.startContainer)):
-e.insertNode(a);a.scrollIntoView();c&&(e.startContainer.setText(b),d.remove());a.remove()},_setStartContainer:function(a){this.startContainer=a},_setEndContainer:function(a){this.endContainer=a}}}(),CKEDITOR.POSITION_AFTER_START=1,CKEDITOR.POSITION_BEFORE_END=2,CKEDITOR.POSITION_BEFORE_START=3,CKEDITOR.POSITION_AFTER_END=4,CKEDITOR.ENLARGE_ELEMENT=1,CKEDITOR.ENLARGE_BLOCK_CONTENTS=2,CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3,CKEDITOR.ENLARGE_INLINE=4,CKEDITOR.START=1,CKEDITOR.END=2,CKEDITOR.SHRINK_ELEMENT=
-1,CKEDITOR.SHRINK_TEXT=2,"use strict",function(){function a(a){1>arguments.length||(this.range=a,this.forceBrBreak=0,this.enlargeBr=1,this.enforceRealBlocks=0,this._||(this._={}))}function f(a){var b=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function c(a,b,e,h){a:{null==h&&(h=f(e));for(var k;k=h.shift();)if(k.getDtd().p){h={element:k,remaining:h};break a}h=null}if(!h)return 0;if((k=CKEDITOR.filter.instances[h.element.data("cke-filter")])&&
-!k.check(b))return c(a,b,e,h.remaining);b=new CKEDITOR.dom.range(h.element);b.selectNodeContents(h.element);b=b.createIterator();b.enlargeBr=a.enlargeBr;b.enforceRealBlocks=a.enforceRealBlocks;b.activeFilter=b.filter=k;a._.nestedEditable={element:h.element,container:e,remaining:h.remaining,iterator:b};return 1}function e(a,b,c){if(!b)return!1;a=a.clone();a.collapse(!c);return a.checkBoundaryOfElement(b,c?CKEDITOR.START:CKEDITOR.END)}var h=/^[\r\n\t ]+$/,m=CKEDITOR.dom.walker.bookmark(!1,!0),l=CKEDITOR.dom.walker.whitespaces(!0),
-k=function(a){return m(a)&&l(a)},b={dd:1,dt:1,li:1};a.prototype={getNextParagraph:function(a){var g,f,l,v,u;a=a||"p";if(this._.nestedEditable){if(g=this._.nestedEditable.iterator.getNextParagraph(a))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,g;this.activeFilter=this.filter;if(c(this,a,this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(a);this._.nestedEditable=
-null}if(!this.range.root.getDtd()[a])return null;if(!this._.started){var n=this.range.clone();f=n.startPath();var q=n.endPath(),x=!n.collapsed&&e(n,f.block),z=!n.collapsed&&e(n,q.block,1);n.shrink(CKEDITOR.SHRINK_ELEMENT,!0);x&&n.setStartAt(f.block,CKEDITOR.POSITION_BEFORE_END);z&&n.setEndAt(q.block,CKEDITOR.POSITION_AFTER_START);f=n.endContainer.hasAscendant("pre",!0)||n.startContainer.hasAscendant("pre",!0);n.enlarge(this.forceBrBreak&&!f||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);
-n.collapsed||(f=new CKEDITOR.dom.walker(n.clone()),q=CKEDITOR.dom.walker.bookmark(!0,!0),f.evaluator=q,this._.nextNode=f.next(),f=new CKEDITOR.dom.walker(n.clone()),f.evaluator=q,f=f.previous(),this._.lastNode=f.getNextSourceNode(!0,null,n.root),this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(q=this.range.clone(),q.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),q.checkEndOfBlock()&&
-(q=new CKEDITOR.dom.elementPath(q.endContainer,q.root),this._.lastNode=(q.block||q.blockLimit).getNextSourceNode(!0))),this._.lastNode&&n.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=n.document.createText(""),this._.lastNode.insertAfter(f)),n=null);this._.started=1;f=n}q=this._.nextNode;n=this._.lastNode;for(this._.nextNode=null;q;){var x=0,z=q.hasAscendant("pre"),A=q.type!=CKEDITOR.NODE_ELEMENT,t=0;if(A)q.type==CKEDITOR.NODE_TEXT&&h.test(q.getText())&&(A=0);else{var w=q.getName();
-if(CKEDITOR.dtd.$block[w]&&"false"==q.getAttribute("contenteditable")){g=q;c(this,a,g);break}else if(q.isBlockBoundary(this.forceBrBreak&&!z&&{br:1})){if("br"==w)A=1;else if(!f&&!q.getChildCount()&&"hr"!=w){g=q;l=q.equals(n);break}f&&(f.setEndAt(q,CKEDITOR.POSITION_BEFORE_START),"br"!=w&&(this._.nextNode=q));x=1}else{if(q.getFirst()){f||(f=this.range.clone(),f.setStartAt(q,CKEDITOR.POSITION_BEFORE_START));q=q.getFirst();continue}A=1}}A&&!f&&(f=this.range.clone(),f.setStartAt(q,CKEDITOR.POSITION_BEFORE_START));
-l=(!x||A)&&q.equals(n);if(f&&!x)for(;!q.getNext(k)&&!l;){w=q.getParent();if(w.isBlockBoundary(this.forceBrBreak&&!z&&{br:1})){x=1;A=0;l||w.equals(n);f.setEndAt(w,CKEDITOR.POSITION_BEFORE_END);break}q=w;A=1;l=q.equals(n);t=1}A&&f.setEndAt(q,CKEDITOR.POSITION_AFTER_END);q=this._getNextSourceNode(q,t,n);if((l=!q)||x&&f)break}if(!g){if(!f)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;g=new CKEDITOR.dom.elementPath(f.startContainer,f.root);q=g.blockLimit;x={div:1,th:1,td:1};
-g=g.block;!g&&q&&!this.enforceRealBlocks&&x[q.getName()]&&f.checkStartOfBlock()&&f.checkEndOfBlock()&&!q.equals(f.root)?g=q:!g||this.enforceRealBlocks&&g.is(b)?(g=this.range.document.createElement(a),f.extractContents().appendTo(g),g.trim(),f.insertNode(g),v=u=!0):"li"!=g.getName()?f.checkStartOfBlock()&&f.checkEndOfBlock()||(g=g.clone(!1),f.extractContents().appendTo(g),g.trim(),u=f.splitBlock(),v=!u.wasStartOfBlock,u=!u.wasEndOfBlock,f.insertNode(g)):l||(this._.nextNode=g.equals(n)?null:this._getNextSourceNode(f.getBoundaryNodes().endNode,
-1,n))}v&&(v=g.getPrevious())&&v.type==CKEDITOR.NODE_ELEMENT&&("br"==v.getName()?v.remove():v.getLast()&&"br"==v.getLast().$.nodeName.toLowerCase()&&v.getLast().remove());u&&(v=g.getLast())&&v.type==CKEDITOR.NODE_ELEMENT&&"br"==v.getName()&&(!CKEDITOR.env.needsBrFiller||v.getPrevious(m)||v.getNext(m))&&v.remove();this._.nextNode||(this._.nextNode=l||g.equals(n)||!n?null:this._getNextSourceNode(g,1,n));return g},_getNextSourceNode:function(a,b,c){function e(a){return!(a.equals(c)||a.equals(h))}var h=
-this.range.root;for(a=a.getNextSourceNode(b,null,e);!m(a);)a=a.getNextSourceNode(b,null,e);return a}};CKEDITOR.dom.range.prototype.createIterator=function(){return new a(this)}}(),CKEDITOR.command=function(a,f){this.uiItems=[];this.exec=function(c){if(this.state==CKEDITOR.TRISTATE_DISABLED||!this.checkAllowed())return!1;this.editorFocus&&a.focus();return!1===this.fire("exec")?!0:!1!==f.exec.call(this,a,c)};this.refresh=function(a,c){if(!this.readOnly&&a.readOnly)return!0;if(this.context&&!c.isContextFor(this.context)||
+defer:function(d){return function(){var g=arguments,b=this;window.setTimeout(function(){d.apply(b,g)},0)}},normalizeCssText:function(d,g){var b=[],a,k=CKEDITOR.tools.parseCssText(d,!0,g);for(a in k)b.push(a+":"+k[a]);b.sort();return b.length?b.join(";")+";":""},convertRgbToHex:function(d){return d.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(g,d,b,a){g=[d,b,a];for(d=0;3>d;d++)g[d]=("0"+parseInt(g[d],10).toString(16)).slice(-2);return"#"+g.join("")})},parseCssText:function(d,
+g,b){var a={};b&&(b=new CKEDITOR.dom.element("span"),b.setAttribute("style",d),d=CKEDITOR.tools.convertRgbToHex(b.getAttribute("style")||""));if(!d||";"==d)return a;d.replace(/&quot;/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(d,b,k){g&&(b=b.toLowerCase(),"font-family"==b&&(k=k.toLowerCase().replace(/["']/g,"").replace(/\s*,\s*/g,",")),k=CKEDITOR.tools.trim(k));a[b]=k});return a},writeCssText:function(d,g){var b,a=[];for(b in d)a.push(b+":"+d[b]);g&&a.sort();return a.join("; ")},
+objectCompare:function(d,g,b){var a;if(!d&&!g)return!0;if(!d||!g)return!1;for(a in d)if(d[a]!=g[a])return!1;if(!b)for(a in g)if(d[a]!=g[a])return!1;return!0},objectKeys:function(d){var g=[],b;for(b in d)g.push(b);return g},convertArrayToObject:function(d,g){var b={};1==arguments.length&&(g=!0);for(var a=0,k=d.length;a<k;++a)b[d[a]]=g;return b},fixDomain:function(){for(var d;;)try{d=window.parent.document.domain;break}catch(g){d=d?d.replace(/.+?(?:\.|$)/,""):document.domain;if(!d)break;document.domain=
+d}return!!d},eventsBuffer:function(d,g,b){function a(){c=(new Date).getTime();k=!1;b?g.call(b):g()}var k,c=0;return{input:function(){if(!k){var g=(new Date).getTime()-c;g<d?k=setTimeout(a,d-g):a()}},reset:function(){k&&clearTimeout(k);k=c=0}}},enableHtml5Elements:function(b,g){for(var a="abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video".split(" "),k=a.length,c;k--;)c=b.createElement(a[k]),
+g&&b.appendChild(c)},checkIfAnyArrayItemMatches:function(b,g){for(var a=0,k=b.length;a<k;++a)if(b[a].match(g))return!0;return!1},checkIfAnyObjectPropertyMatches:function(b,g){for(var a in b)if(a.match(g))return!0;return!1},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d",getCookie:function(b){b=b.toLowerCase();for(var g=document.cookie.split(";"),a,k,c=0;c<g.length;c++)if(a=g[c].split("\x3d"),k=decodeURIComponent(CKEDITOR.tools.trim(a[0]).toLowerCase()),
+k===b)return decodeURIComponent(1<a.length?a[1]:"");return null},setCookie:function(b,g){document.cookie=encodeURIComponent(b)+"\x3d"+encodeURIComponent(g)+";path\x3d/"},getCsrfToken:function(){var b=CKEDITOR.tools.getCookie("ckCsrfToken");if(!b||40!=b.length){var b=[],g="";if(window.crypto&&window.crypto.getRandomValues)b=new Uint8Array(40),window.crypto.getRandomValues(b);else for(var a=0;40>a;a++)b.push(Math.floor(256*Math.random()));for(a=0;a<b.length;a++)var k="abcdefghijklmnopqrstuvwxyz0123456789".charAt(b[a]%
+36),g=g+(.5<Math.random()?k.toUpperCase():k);b=g;CKEDITOR.tools.setCookie("ckCsrfToken",b)}return b}}}(),CKEDITOR.dtd=function(){var a=CKEDITOR.tools.extend,f=function(b,g){for(var a=CKEDITOR.tools.clone(b),k=1;k<arguments.length;k++){g=arguments[k];for(var c in g)delete a[c]}return a},c={},e={},h={address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,
+ul:1},m={command:1,link:1,meta:1,noscript:1,script:1,style:1},l={},k={"#":1},b={center:1,dir:1,noframes:1};a(c,{a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,"var":1,video:1,wbr:1},k,{acronym:1,applet:1,basefont:1,
+big:1,font:1,isindex:1,strike:1,style:1,tt:1});a(e,h,c,b);f={a:f(c,{a:1,button:1}),abbr:c,address:e,area:l,article:e,aside:e,audio:a({source:1,track:1},e),b:c,base:l,bdi:c,bdo:c,blockquote:e,body:e,br:l,button:f(c,{a:1,button:1}),canvas:c,caption:e,cite:c,code:c,col:l,colgroup:{col:1},command:l,datalist:a({option:1},c),dd:e,del:c,details:a({summary:1},e),dfn:c,div:e,dl:{dt:1,dd:1},dt:e,em:c,embed:l,fieldset:a({legend:1},e),figcaption:e,figure:a({figcaption:1},e),footer:e,form:e,h1:c,h2:c,h3:c,h4:c,
+h5:c,h6:c,head:a({title:1,base:1},m),header:e,hgroup:{h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},hr:l,html:a({head:1,body:1},e,m),i:c,iframe:k,img:l,input:l,ins:c,kbd:c,keygen:l,label:c,legend:c,li:e,link:l,main:e,map:e,mark:c,menu:a({li:1},e),meta:l,meter:f(c,{meter:1}),nav:e,noscript:a({link:1,meta:1,style:1},c),object:a({param:1},c),ol:{li:1},optgroup:{option:1},option:k,output:c,p:c,param:l,pre:c,progress:f(c,{progress:1}),q:c,rp:c,rt:c,ruby:a({rp:1,rt:1},c),s:c,samp:c,script:k,section:e,select:{optgroup:1,
+option:1},small:c,source:l,span:c,strong:c,style:k,sub:c,summary:a({h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},c),sup:c,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:e,textarea:k,tfoot:{tr:1},th:e,thead:{tr:1},time:f(c,{time:1}),title:k,tr:{th:1,td:1},track:l,u:c,ul:{li:1},"var":c,video:a({source:1,track:1},e),wbr:l,acronym:c,applet:a({param:1},e),basefont:l,big:c,center:e,dialog:l,dir:{li:1},font:c,isindex:l,noframes:e,strike:c,tt:c};a(f,{$block:a({audio:1,dd:1,dt:1,figcaption:1,
+li:1,video:1},h,b),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,fieldset:1,figcaption:1,figure:1,footer:1,form:1,header:1,hgroup:1,main:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1},$cdata:{script:1,style:1},$editable:{address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,figcaption:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,main:1,nav:1,p:1,pre:1,section:1},$empty:{area:1,base:1,basefont:1,br:1,
+col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1},$inline:c,$list:{dl:1,ol:1,ul:1},$listItem:{dd:1,dt:1,li:1},$nonBodyContent:a({body:1,head:1,html:1},f.head),$nonEditable:{applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,param:1,script:1,textarea:1,video:1},$object:{applet:1,audio:1,button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1},$removeEmpty:{abbr:1,acronym:1,b:1,bdi:1,bdo:1,big:1,
+cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,mark:1,meter:1,output:1,q:1,ruby:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},$transparent:{a:1,audio:1,canvas:1,del:1,ins:1,map:1,noscript:1,object:1,video:1},$intermediate:{caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,
+rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1}});return f}(),CKEDITOR.dom.event=function(a){this.$=a},CKEDITOR.dom.event.prototype={getKey:function(){return this.$.keyCode||this.$.which},getKeystroke:function(){var a=this.getKey();if(this.$.ctrlKey||this.$.metaKey)a+=CKEDITOR.CTRL;this.$.shiftKey&&(a+=CKEDITOR.SHIFT);this.$.altKey&&(a+=CKEDITOR.ALT);return a},preventDefault:function(a){var f=this.$;f.preventDefault?f.preventDefault():f.returnValue=!1;a&&this.stopPropagation()},stopPropagation:function(){var a=
+this.$;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},getTarget:function(){var a=this.$.target||this.$.srcElement;return a?new CKEDITOR.dom.node(a):null},getPhase:function(){return this.$.eventPhase||2},getPageOffset:function(){var a=this.getTarget().getDocument().$;return{x:this.$.pageX||this.$.clientX+(a.documentElement.scrollLeft||a.body.scrollLeft),y:this.$.pageY||this.$.clientY+(a.documentElement.scrollTop||a.body.scrollTop)}}},CKEDITOR.CTRL=1114112,CKEDITOR.SHIFT=2228224,CKEDITOR.ALT=
+4456448,CKEDITOR.EVENT_PHASE_CAPTURING=1,CKEDITOR.EVENT_PHASE_AT_TARGET=2,CKEDITOR.EVENT_PHASE_BUBBLING=3,CKEDITOR.dom.domObject=function(a){a&&(this.$=a)},CKEDITOR.dom.domObject.prototype=function(){var a=function(a,c){return function(e){"undefined"!=typeof CKEDITOR&&a.fire(c,new CKEDITOR.dom.event(e))}};return{getPrivate:function(){var a;(a=this.getCustomData("_"))||this.setCustomData("_",a={});return a},on:function(f){var c=this.getCustomData("_cke_nativeListeners");c||(c={},this.setCustomData("_cke_nativeListeners",
+c));c[f]||(c=c[f]=a(this,f),this.$.addEventListener?this.$.addEventListener(f,c,!!CKEDITOR.event.useCapture):this.$.attachEvent&&this.$.attachEvent("on"+f,c));return CKEDITOR.event.prototype.on.apply(this,arguments)},removeListener:function(a){CKEDITOR.event.prototype.removeListener.apply(this,arguments);if(!this.hasListeners(a)){var c=this.getCustomData("_cke_nativeListeners"),e=c&&c[a];e&&(this.$.removeEventListener?this.$.removeEventListener(a,e,!1):this.$.detachEvent&&this.$.detachEvent("on"+
+a,e),delete c[a])}},removeAllListeners:function(){var a=this.getCustomData("_cke_nativeListeners"),c;for(c in a){var e=a[c];this.$.detachEvent?this.$.detachEvent("on"+c,e):this.$.removeEventListener&&this.$.removeEventListener(c,e,!1);delete a[c]}CKEDITOR.event.prototype.removeAllListeners.call(this)}}}(),function(a){var f={};CKEDITOR.on("reset",function(){f={}});a.equals=function(a){try{return a&&a.$===this.$}catch(e){return!1}};a.setCustomData=function(a,e){var h=this.getUniqueId();(f[h]||(f[h]=
+{}))[a]=e;return this};a.getCustomData=function(a){var e=this.$["data-cke-expando"];return(e=e&&f[e])&&a in e?e[a]:null};a.removeCustomData=function(a){var e=this.$["data-cke-expando"],e=e&&f[e],h,m;e&&(h=e[a],m=a in e,delete e[a]);return m?h:null};a.clearCustomData=function(){this.removeAllListeners();var a=this.$["data-cke-expando"];a&&delete f[a]};a.getUniqueId=function(){return this.$["data-cke-expando"]||(this.$["data-cke-expando"]=CKEDITOR.tools.getNextNumber())};CKEDITOR.event.implementOn(a)}(CKEDITOR.dom.domObject.prototype),
+CKEDITOR.dom.node=function(a){return a?new CKEDITOR.dom[a.nodeType==CKEDITOR.NODE_DOCUMENT?"document":a.nodeType==CKEDITOR.NODE_ELEMENT?"element":a.nodeType==CKEDITOR.NODE_TEXT?"text":a.nodeType==CKEDITOR.NODE_COMMENT?"comment":a.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT?"documentFragment":"domObject"](a):this},CKEDITOR.dom.node.prototype=new CKEDITOR.dom.domObject,CKEDITOR.NODE_ELEMENT=1,CKEDITOR.NODE_DOCUMENT=9,CKEDITOR.NODE_TEXT=3,CKEDITOR.NODE_COMMENT=8,CKEDITOR.NODE_DOCUMENT_FRAGMENT=11,CKEDITOR.POSITION_IDENTICAL=
+0,CKEDITOR.POSITION_DISCONNECTED=1,CKEDITOR.POSITION_FOLLOWING=2,CKEDITOR.POSITION_PRECEDING=4,CKEDITOR.POSITION_IS_CONTAINED=8,CKEDITOR.POSITION_CONTAINS=16,CKEDITOR.tools.extend(CKEDITOR.dom.node.prototype,{appendTo:function(a,f){a.append(this,f);return a},clone:function(a,f){function c(e){e["data-cke-expando"]&&(e["data-cke-expando"]=!1);if(e.nodeType==CKEDITOR.NODE_ELEMENT||e.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)if(f||e.nodeType!=CKEDITOR.NODE_ELEMENT||e.removeAttribute("id",!1),a){e=e.childNodes;
+for(var h=0;h<e.length;h++)c(e[h])}}function e(c){if(c.type==CKEDITOR.NODE_ELEMENT||c.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT){if(c.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var h=c.getName();":"==h[0]&&c.renameNode(h.substring(1))}if(a)for(h=0;h<c.getChildCount();h++)e(c.getChild(h))}}var h=this.$.cloneNode(a);c(h);h=new CKEDITOR.dom.node(h);CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(this.type==CKEDITOR.NODE_ELEMENT||this.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)&&e(h);return h},hasPrevious:function(){return!!this.$.previousSibling},
+hasNext:function(){return!!this.$.nextSibling},insertAfter:function(a){a.$.parentNode.insertBefore(this.$,a.$.nextSibling);return a},insertBefore:function(a){a.$.parentNode.insertBefore(this.$,a.$);return a},insertBeforeMe:function(a){this.$.parentNode.insertBefore(a.$,this.$);return a},getAddress:function(a){for(var f=[],c=this.getDocument().$.documentElement,e=this.$;e&&e!=c;){var h=e.parentNode;h&&f.unshift(this.getIndex.call({$:e},a));e=h}return f},getDocument:function(){return new CKEDITOR.dom.document(this.$.ownerDocument||
+this.$.parentNode.ownerDocument)},getIndex:function(a){function f(a,k){var b=k?a.nextSibling:a.previousSibling;return b&&b.nodeType==CKEDITOR.NODE_TEXT?c(b)?f(b,k):b:null}function c(a){return!a.nodeValue||a.nodeValue==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE}var e=this.$,h=-1,m;if(!this.$.parentNode||a&&e.nodeType==CKEDITOR.NODE_TEXT&&c(e)&&!f(e)&&!f(e,!0))return-1;do a&&e!=this.$&&e.nodeType==CKEDITOR.NODE_TEXT&&(m||c(e))||(h++,m=e.nodeType==CKEDITOR.NODE_TEXT);while(e=e.previousSibling);return h},
+getNextSourceNode:function(a,f,c){if(c&&!c.call){var e=c;c=function(a){return!a.equals(e)}}a=!a&&this.getFirst&&this.getFirst();var h;if(!a){if(this.type==CKEDITOR.NODE_ELEMENT&&c&&!1===c(this,!0))return null;a=this.getNext()}for(;!a&&(h=(h||this).getParent());){if(c&&!1===c(h,!0))return null;a=h.getNext()}return!a||c&&!1===c(a)?null:f&&f!=a.type?a.getNextSourceNode(!1,f,c):a},getPreviousSourceNode:function(a,f,c){if(c&&!c.call){var e=c;c=function(a){return!a.equals(e)}}a=!a&&this.getLast&&this.getLast();
+var h;if(!a){if(this.type==CKEDITOR.NODE_ELEMENT&&c&&!1===c(this,!0))return null;a=this.getPrevious()}for(;!a&&(h=(h||this).getParent());){if(c&&!1===c(h,!0))return null;a=h.getPrevious()}return!a||c&&!1===c(a)?null:f&&a.type!=f?a.getPreviousSourceNode(!1,f,c):a},getPrevious:function(a){var f=this.$,c;do c=(f=f.previousSibling)&&10!=f.nodeType&&new CKEDITOR.dom.node(f);while(c&&a&&!a(c));return c},getNext:function(a){var f=this.$,c;do c=(f=f.nextSibling)&&new CKEDITOR.dom.node(f);while(c&&a&&!a(c));
+return c},getParent:function(a){var f=this.$.parentNode;return f&&(f.nodeType==CKEDITOR.NODE_ELEMENT||a&&f.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)?new CKEDITOR.dom.node(f):null},getParents:function(a){var f=this,c=[];do c[a?"push":"unshift"](f);while(f=f.getParent());return c},getCommonAncestor:function(a){if(a.equals(this))return this;if(a.contains&&a.contains(this))return a;var f=this.contains?this:this.getParent();do if(f.contains(a))return f;while(f=f.getParent());return null},getPosition:function(a){var f=
+this.$,c=a.$;if(f.compareDocumentPosition)return f.compareDocumentPosition(c);if(f==c)return CKEDITOR.POSITION_IDENTICAL;if(this.type==CKEDITOR.NODE_ELEMENT&&a.type==CKEDITOR.NODE_ELEMENT){if(f.contains){if(f.contains(c))return CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING;if(c.contains(f))return CKEDITOR.POSITION_IS_CONTAINED+CKEDITOR.POSITION_FOLLOWING}if("sourceIndex"in f)return 0>f.sourceIndex||0>c.sourceIndex?CKEDITOR.POSITION_DISCONNECTED:f.sourceIndex<c.sourceIndex?CKEDITOR.POSITION_PRECEDING:
+CKEDITOR.POSITION_FOLLOWING}f=this.getAddress();a=a.getAddress();for(var c=Math.min(f.length,a.length),e=0;e<c;e++)if(f[e]!=a[e])return f[e]<a[e]?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING;return f.length<a.length?CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_IS_CONTAINED+CKEDITOR.POSITION_FOLLOWING},getAscendant:function(a,f){var c=this.$,e,h;f||(c=c.parentNode);"function"==typeof a?(h=!0,e=a):(h=!1,e=function(c){c="string"==typeof c.nodeName?c.nodeName.toLowerCase():
+"";return"string"==typeof a?c==a:c in a});for(;c;){if(e(h?new CKEDITOR.dom.node(c):c))return new CKEDITOR.dom.node(c);try{c=c.parentNode}catch(m){c=null}}return null},hasAscendant:function(a,f){var c=this.$;f||(c=c.parentNode);for(;c;){if(c.nodeName&&c.nodeName.toLowerCase()==a)return!0;c=c.parentNode}return!1},move:function(a,f){a.append(this.remove(),f)},remove:function(a){var f=this.$,c=f.parentNode;if(c){if(a)for(;a=f.firstChild;)c.insertBefore(f.removeChild(a),f);c.removeChild(f)}return this},
+replace:function(a){this.insertBefore(a);a.remove()},trim:function(){this.ltrim();this.rtrim()},ltrim:function(){for(var a;this.getFirst&&(a=this.getFirst());){if(a.type==CKEDITOR.NODE_TEXT){var f=CKEDITOR.tools.ltrim(a.getText()),c=a.getLength();if(f)f.length<c&&(a.split(c-f.length),this.$.removeChild(this.$.firstChild));else{a.remove();continue}}break}},rtrim:function(){for(var a;this.getLast&&(a=this.getLast());){if(a.type==CKEDITOR.NODE_TEXT){var f=CKEDITOR.tools.rtrim(a.getText()),c=a.getLength();
+if(f)f.length<c&&(a.split(f.length),this.$.lastChild.parentNode.removeChild(this.$.lastChild));else{a.remove();continue}}break}CKEDITOR.env.needsBrFiller&&(a=this.$.lastChild)&&1==a.type&&"br"==a.nodeName.toLowerCase()&&a.parentNode.removeChild(a)},isReadOnly:function(a){var f=this;this.type!=CKEDITOR.NODE_ELEMENT&&(f=this.getParent());CKEDITOR.env.edge&&f&&f.is("textarea","input")&&(a=!0);if(!a&&f&&"undefined"!=typeof f.$.isContentEditable)return!(f.$.isContentEditable||f.data("cke-editable"));for(;f;){if(f.data("cke-editable"))return!1;
+if(f.hasAttribute("contenteditable"))return"false"==f.getAttribute("contenteditable");f=f.getParent()}return!0}}),CKEDITOR.dom.window=function(a){CKEDITOR.dom.domObject.call(this,a)},CKEDITOR.dom.window.prototype=new CKEDITOR.dom.domObject,CKEDITOR.tools.extend(CKEDITOR.dom.window.prototype,{focus:function(){this.$.focus()},getViewPaneSize:function(){var a=this.$.document,f="CSS1Compat"==a.compatMode;return{width:(f?a.documentElement.clientWidth:a.body.clientWidth)||0,height:(f?a.documentElement.clientHeight:
+a.body.clientHeight)||0}},getScrollPosition:function(){var a=this.$;if("pageXOffset"in a)return{x:a.pageXOffset||0,y:a.pageYOffset||0};a=a.document;return{x:a.documentElement.scrollLeft||a.body.scrollLeft||0,y:a.documentElement.scrollTop||a.body.scrollTop||0}},getFrame:function(){var a=this.$.frameElement;return a?new CKEDITOR.dom.element.get(a):null}}),CKEDITOR.dom.document=function(a){CKEDITOR.dom.domObject.call(this,a)},CKEDITOR.dom.document.prototype=new CKEDITOR.dom.domObject,CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype,
+{type:CKEDITOR.NODE_DOCUMENT,appendStyleSheet:function(a){if(this.$.createStyleSheet)this.$.createStyleSheet(a);else{var f=new CKEDITOR.dom.element("link");f.setAttributes({rel:"stylesheet",type:"text/css",href:a});this.getHead().append(f)}},appendStyleText:function(a){if(this.$.createStyleSheet){var f=this.$.createStyleSheet("");f.cssText=a}else{var c=new CKEDITOR.dom.element("style",this);c.append(new CKEDITOR.dom.text(a,this));this.getHead().append(c)}return f||c.$.sheet},createElement:function(a,
+f){var c=new CKEDITOR.dom.element(a,this);f&&(f.attributes&&c.setAttributes(f.attributes),f.styles&&c.setStyles(f.styles));return c},createText:function(a){return new CKEDITOR.dom.text(a,this)},focus:function(){this.getWindow().focus()},getActive:function(){var a;try{a=this.$.activeElement}catch(f){return null}return new CKEDITOR.dom.element(a)},getById:function(a){return(a=this.$.getElementById(a))?new CKEDITOR.dom.element(a):null},getByAddress:function(a,f){for(var c=this.$.documentElement,e=0;c&&
+e<a.length;e++){var h=a[e];if(f)for(var m=-1,l=0;l<c.childNodes.length;l++){var k=c.childNodes[l];if(!0!==f||3!=k.nodeType||!k.previousSibling||3!=k.previousSibling.nodeType)if(m++,m==h){c=k;break}}else c=c.childNodes[h]}return c?new CKEDITOR.dom.node(c):null},getElementsByTag:function(a,f){CKEDITOR.env.ie&&8>=document.documentMode||!f||(a=f+":"+a);return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];return a=a?new CKEDITOR.dom.element(a):
+this.getDocumentElement().append(new CKEDITOR.dom.element("head"),!0)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView)},write:function(a){this.$.open("text/html","replace");CKEDITOR.env.ie&&(a=a.replace(/(?:^\s*<!DOCTYPE[^>]*?>)|^/i,'$\x26\n\x3cscript data-cke-temp\x3d"1"\x3e('+CKEDITOR.tools.fixDomain+
+")();\x3c/script\x3e"));this.$.write(a);this.$.close()},find:function(a){return new CKEDITOR.dom.nodeList(this.$.querySelectorAll(a))},findOne:function(a){return(a=this.$.querySelector(a))?new CKEDITOR.dom.element(a):null},_getHtml5ShivFrag:function(){var a=this.getCustomData("html5ShivFrag");a||(a=this.$.createDocumentFragment(),CKEDITOR.tools.enableHtml5Elements(a,!0),this.setCustomData("html5ShivFrag",a));return a}}),CKEDITOR.dom.nodeList=function(a){this.$=a},CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},
+getItem:function(a){return 0>a||a>=this.$.length?null:(a=this.$[a])?new CKEDITOR.dom.node(a):null}},CKEDITOR.dom.element=function(a,f){"string"==typeof a&&(a=(f?f.$:document).createElement(a));CKEDITOR.dom.domObject.call(this,a)},CKEDITOR.dom.element.get=function(a){return(a="string"==typeof a?document.getElementById(a)||document.getElementsByName(a)[0]:a)&&(a.$?a:new CKEDITOR.dom.element(a))},CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node,CKEDITOR.dom.element.createFromHtml=function(a,f){var c=
+new CKEDITOR.dom.element("div",f);c.setHtml(a);return c.getFirst().remove()},CKEDITOR.dom.element.setMarker=function(a,f,c,e){var h=f.getCustomData("list_marker_id")||f.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),m=f.getCustomData("list_marker_names")||f.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");a[h]=f;m[c]=1;return f.setCustomData(c,e)},CKEDITOR.dom.element.clearAllMarkers=function(a){for(var f in a)CKEDITOR.dom.element.clearMarkers(a,
+a[f],1)},CKEDITOR.dom.element.clearMarkers=function(a,f,c){var e=f.getCustomData("list_marker_names"),h=f.getCustomData("list_marker_id"),m;for(m in e)f.removeCustomData(m);f.removeCustomData("list_marker_names");c&&(f.removeCustomData("list_marker_id"),delete a[h])},function(){function a(a,b){return-1<(" "+a+" ").replace(m," ").indexOf(" "+b+" ")}function f(a){var b=!0;a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),b=!1);return function(){b||a.removeAttribute("id")}}function c(a,b){return"#"+
+a.$.id+" "+b.split(/,\s*/).join(", #"+a.$.id+" ")}function e(a){for(var b=0,d=0,g=l[a].length;d<g;d++)b+=parseInt(this.getComputedStyle(l[a][d])||0,10)||0;return b}var h=document.createElement("_").classList,h="undefined"!==typeof h&&null!==String(h.add).match(/\[Native code\]/gi),m=/[\n\t\r]/g;CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:h?function(a){this.$.classList.add(a);return this}:function(k){var b=this.$.className;b&&(a(b,k)||(b+=" "+k));this.$.className=
+b||k;return this},removeClass:h?function(a){var b=this.$;b.classList.remove(a);b.className||b.removeAttribute("class");return this}:function(k){var b=this.getAttribute("class");b&&a(b,k)&&((b=b.replace(new RegExp("(?:^|\\s+)"+k+"(?\x3d\\s|$)"),"").replace(/^\s+/,""))?this.setAttribute("class",b):this.removeAttribute("class"));return this},hasClass:function(k){return a(this.$.className,k)},append:function(a,b){"string"==typeof a&&(a=this.getDocument().createElement(a));b?this.$.insertBefore(a.$,this.$.firstChild):
+this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var b=new CKEDITOR.dom.element("div",this.getDocument());b.setHtml(a);b.moveChildren(this)}else this.setHtml(a)},appendText:function(a){null!=this.$.text&&CKEDITOR.env.ie&&9>CKEDITOR.env.version?this.$.text+=a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(a){if(a||CKEDITOR.env.needsBrFiller){for(a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();a&&
+a.is&&a.is("br")||(a=this.getDocument().createElement("br"),CKEDITOR.env.gecko&&a.setAttribute("type","_moz"),this.append(a))}},breakParent:function(a,b){var d=new CKEDITOR.dom.range(this.getDocument());d.setStartAfter(this);d.setEndAfter(a);var g=d.extractContents(!1,b||!1);d.insertNode(this.remove());g.insertAfterNode(this)},contains:document.compareDocumentPosition?function(a){return!!(this.$.compareDocumentPosition(a.$)&16)}:function(a){var b=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?b.contains(a.getParent().$):
+b!=a.$&&b.contains(a.$)},focus:function(){function a(){try{this.$.focus()}catch(b){}}return function(b){b?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,"");var a=this.$.ownerDocument.createElement("div");a.appendChild(this.$.cloneNode(!0));return a.innerHTML},getClientRect:function(){var a=CKEDITOR.tools.extend({},
+this.$.getBoundingClientRect());!a.width&&(a.width=a.right-a.left);!a.height&&(a.height=a.bottom-a.top);return a},setHtml:CKEDITOR.env.ie&&9>CKEDITOR.env.version?function(a){try{var b=this.$;if(this.getParent())return b.innerHTML=a;var d=this.getDocument()._getHtml5ShivFrag();d.appendChild(b);b.innerHTML=a;d.removeChild(b);return a}catch(g){this.$.innerHTML="";b=new CKEDITOR.dom.element("body",this.getDocument());b.$.innerHTML=a;for(b=b.getChildren();b.count();)this.append(b.getItem(0));return a}}:
+function(a){return this.$.innerHTML=a},setText:function(){var a=document.createElement("p");a.innerHTML="x";a=a.textContent;return function(b){this.$[a?"textContent":"innerText"]=b}}(),getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){switch(a){case "class":a="className";break;case "http-equiv":a="httpEquiv";break;case "name":return this.$.name;case "tabindex":return a=this.$.getAttribute(a,
+2),0!==a&&0===this.$.tabIndex&&(a=null),a;case "checked":return a=this.$.attributes.getNamedItem(a),(a.specified?a.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[a];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?this.$.getAttribute("contentEditable"):null}return this.$.getAttribute(a,2)}:a}(),getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},
+getComputedStyle:document.defaultView&&document.defaultView.getComputedStyle?function(a){var b=this.getWindow().$.getComputedStyle(this.$,null);return b?b.getPropertyValue(a):""}:function(a){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]},getDtd:function(){var a=CKEDITOR.dtd[this.getName()];this.getDtd=function(){return a};return a},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,getTabIndex:function(){var a=this.$.tabIndex;return 0!==a||CKEDITOR.dtd.$tabIndex[this.getName()]||
+0===parseInt(this.getAttribute("tabindex"),10)?a:-1},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||null},getNameAtt:function(){return this.$.name||null},getName:function(){var a=this.$.nodeName.toLowerCase();if(CKEDITOR.env.ie&&8>=document.documentMode){var b=this.$.scopeName;"HTML"!=b&&(a=b.toLowerCase()+":"+a)}this.getName=function(){return a};return this.getName()},getValue:function(){return this.$.value},
+getFirst:function(a){var b=this.$.firstChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getNext(a));return b},getLast:function(a){var b=this.$.lastChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getPrevious(a));return b},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]},is:function(){var a=this.getName();if("object"==typeof arguments[0])return!!arguments[0][a];for(var b=0;b<arguments.length;b++)if(arguments[b]==a)return!0;return!1},isEditable:function(a){var b=
+this.getName();return this.isReadOnly()||"none"==this.getComputedStyle("display")||"hidden"==this.getComputedStyle("visibility")||CKEDITOR.dtd.$nonEditable[b]||CKEDITOR.dtd.$empty[b]||this.is("a")&&(this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount()?!1:!1!==a?(a=CKEDITOR.dtd[b]||CKEDITOR.dtd.span,!(!a||!a["#"])):!0},isIdentical:function(a){var b=this.clone(0,1);a=a.clone(0,1);b.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);
+a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(b.$.isEqualNode)return b.$.style.cssText=CKEDITOR.tools.normalizeCssText(b.$.style.cssText),a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText),b.$.isEqualNode(a.$);b=b.getOuterHtml();a=a.getOuterHtml();if(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&this.is("a")){var d=this.getParent();d.type==CKEDITOR.NODE_ELEMENT&&(d=d.clone(),d.setHtml(b),b=d.getHtml(),d.setHtml(a),a=d.getHtml())}return b==
+a},isVisible:function(){var a=(this.$.offsetHeight||this.$.offsetWidth)&&"hidden"!=this.getComputedStyle("visibility"),b,d;a&&CKEDITOR.env.webkit&&(b=this.getWindow(),!b.equals(CKEDITOR.document.getWindow())&&(d=b.$.frameElement)&&(a=(new CKEDITOR.dom.element(d)).isVisible()));return!!a},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return!1;for(var a=this.getChildren(),b=0,d=a.count();b<d;b++){var g=a.getItem(b);if(g.type!=CKEDITOR.NODE_ELEMENT||!g.data("cke-bookmark"))if(g.type==
+CKEDITOR.NODE_ELEMENT&&!g.isEmptyInlineRemoveable()||g.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(g.getText()))return!1}return!0},hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(){for(var a=this.$.attributes,b=0;b<a.length;b++){var d=a[b];switch(d.nodeName){case "class":if(this.getAttribute("class"))return!0;case "data-cke-expando":continue;default:if(d.specified)return!0}}return!1}:function(){var a=this.$.attributes,b=a.length,d={"data-cke-expando":1,_moz_dirty:1};
+return 0<b&&(2<b||!d[a[0].nodeName]||2==b&&!d[a[1].nodeName])},hasAttribute:function(){function a(b){var d=this.$.attributes.getNamedItem(b);if("input"==this.getName())switch(b){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":return b=this.getAttribute("type"),"checkbox"==b||"radio"==b?"on"!=this.$.value:!!this.$.value}return d?d.specified:!1}return CKEDITOR.env.ie?8>CKEDITOR.env.version?function(b){return"name"==b?!!this.$.name:a.call(this,b)}:a:function(a){return!!this.$.attributes.getNamedItem(a)}}(),
+hide:function(){this.setStyle("display","none")},moveChildren:function(a,b){var d=this.$;a=a.$;if(d!=a){var g;if(b)for(;g=d.lastChild;)a.insertBefore(d.removeChild(g),a.firstChild);else for(;g=d.firstChild;)a.appendChild(d.removeChild(g))}},mergeSiblings:function(){function a(b,d,g){if(d&&d.type==CKEDITOR.NODE_ELEMENT){for(var c=[];d.data("cke-bookmark")||d.isEmptyInlineRemoveable();)if(c.push(d),d=g?d.getNext():d.getPrevious(),!d||d.type!=CKEDITOR.NODE_ELEMENT)return;if(b.isIdentical(d)){for(var e=
+g?b.getLast():b.getFirst();c.length;)c.shift().move(b,!g);d.moveChildren(b,!g);d.remove();e&&e.type==CKEDITOR.NODE_ELEMENT&&e.mergeSiblings()}}}return function(b){if(!1===b||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a"))a(this,this.getNext(),!0),a(this,this.getPrevious())}}(),show:function(){this.setStyles({display:"",visibility:""})},setAttribute:function(){var a=function(a,d){this.$.setAttribute(a,d);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(b,
+d){"class"==b?this.$.className=d:"style"==b?this.$.style.cssText=d:"tabindex"==b?this.$.tabIndex=d:"checked"==b?this.$.checked=d:"contenteditable"==b?a.call(this,"contentEditable",d):a.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(b,d){if("src"==b&&d.match(/^http:\/\//))try{a.apply(this,arguments)}catch(g){}else a.apply(this,arguments);return this}:a}(),setAttributes:function(a){for(var b in a)this.setAttribute(b,a[b]);return this},setValue:function(a){this.$.value=
+a;return this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){"class"==a?a="className":"tabindex"==a?a="tabIndex":"contenteditable"==a&&(a="contentEditable");this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var b=0;b<a.length;b++)this.removeAttribute(a[b]);else for(b in a)a.hasOwnProperty(b)&&this.removeAttribute(b)},removeStyle:function(a){var b=
+this.$.style;if(b.removeProperty||"border"!=a&&"margin"!=a&&"padding"!=a)b.removeProperty?b.removeProperty(a):b.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a)),this.$.style.cssText||this.removeAttribute("style");else{var d=["top","left","right","bottom"],g;"border"==a&&(g=["color","style","width"]);for(var b=[],c=0;c<d.length;c++)if(g)for(var e=0;e<g.length;e++)b.push([a,d[c],g[e]].join("-"));else b.push([a,d[c]].join("-"));for(a=0;a<b.length;a++)this.removeStyle(b[a])}},setStyle:function(a,
+b){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=b;return this},setStyles:function(a){for(var b in a)this.setStyle(b,a[b]);return this},setOpacity:function(a){CKEDITOR.env.ie&&9>CKEDITOR.env.version?(a=Math.round(100*a),this.setStyle("filter",100<=a?"":"progid:DXImageTransform.Microsoft.Alpha(opacity\x3d"+a+")")):this.setStyle("opacity",a)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","none"));if(CKEDITOR.env.ie){this.setAttribute("unselectable","on");for(var a,
+b=this.getElementsByTag("*"),d=0,g=b.count();d<g;d++)a=b.getItem(d),a.setAttribute("unselectable","on")}},getPositionedAncestor:function(){for(var a=this;"html"!=a.getName();){if("static"!=a.getComputedStyle("position"))return a;a=a.getParent()}return null},getDocumentPosition:function(a){var b=0,d=0,g=this.getDocument(),c=g.getBody(),e="BackCompat"==g.$.compatMode;if(document.documentElement.getBoundingClientRect){var h=this.$.getBoundingClientRect(),f=g.$.documentElement,n=f.clientTop||c.$.clientTop||
+0,q=f.clientLeft||c.$.clientLeft||0,m=!0;CKEDITOR.env.ie&&(m=g.getDocumentElement().contains(this),g=g.getBody().contains(this),m=e&&g||!e&&m);m&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(b=c.$.scrollLeft||f.scrollLeft,d=c.$.scrollTop||f.scrollTop):(d=e?c.$:f,b=d.scrollLeft,d=d.scrollTop),b=h.left+b-q,d=h.top+d-n)}else for(n=this,q=null;n&&"body"!=n.getName()&&"html"!=n.getName();){b+=n.$.offsetLeft-n.$.scrollLeft;d+=n.$.offsetTop-n.$.scrollTop;n.equals(this)||(b+=n.$.clientLeft||
+0,d+=n.$.clientTop||0);for(;q&&!q.equals(n);)b-=q.$.scrollLeft,d-=q.$.scrollTop,q=q.getParent();q=n;n=(h=n.$.offsetParent)?new CKEDITOR.dom.element(h):null}a&&(h=this.getWindow(),n=a.getWindow(),!h.equals(n)&&h.$.frameElement&&(a=(new CKEDITOR.dom.element(h.$.frameElement)).getDocumentPosition(a),b+=a.x,d+=a.y));document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko||e||(b+=this.$.clientLeft?1:0,d+=this.$.clientTop?1:0);return{x:b,y:d}},scrollIntoView:function(a){var b=this.getParent();
+if(b){do if((b.$.clientWidth&&b.$.clientWidth<b.$.scrollWidth||b.$.clientHeight&&b.$.clientHeight<b.$.scrollHeight)&&!b.is("body")&&this.scrollIntoParent(b,a,1),b.is("html")){var d=b.getWindow();try{var g=d.$.frameElement;g&&(b=new CKEDITOR.dom.element(g))}catch(c){}}while(b=b.getParent())}},scrollIntoParent:function(a,b,d){var g,c,e,h;function f(g,b){/body|html/.test(a.getName())?a.getWindow().$.scrollBy(g,b):(a.$.scrollLeft+=g,a.$.scrollTop+=b)}function n(a,g){var b={x:0,y:0};if(!a.is(m?"body":
+"html")){var d=a.$.getBoundingClientRect();b.x=d.left;b.y=d.top}d=a.getWindow();d.equals(g)||(d=n(CKEDITOR.dom.element.get(d.$.frameElement),g),b.x+=d.x,b.y+=d.y);return b}function q(a,g){return parseInt(a.getComputedStyle("margin-"+g)||0,10)||0}!a&&(a=this.getWindow());e=a.getDocument();var m="BackCompat"==e.$.compatMode;a instanceof CKEDITOR.dom.window&&(a=m?e.getBody():e.getDocumentElement());e=a.getWindow();c=n(this,e);var l=n(a,e),B=this.$.offsetHeight;g=this.$.offsetWidth;var t=a.$.clientHeight,
+x=a.$.clientWidth;e=c.x-q(this,"left")-l.x||0;h=c.y-q(this,"top")-l.y||0;g=c.x+g+q(this,"right")-(l.x+x)||0;c=c.y+B+q(this,"bottom")-(l.y+t)||0;(0>h||0<c)&&f(0,!0===b?h:!1===b?c:0>h?h:c);d&&(0>e||0<g)&&f(0>e?e:g,0)},setState:function(a,b,d){b=b||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(b+"_on");this.removeClass(b+"_off");this.removeClass(b+"_disabled");d&&this.setAttribute("aria-pressed",!0);d&&this.removeAttribute("aria-disabled");break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(b+
+"_disabled");this.removeClass(b+"_off");this.removeClass(b+"_on");d&&this.setAttribute("aria-disabled",!0);d&&this.removeAttribute("aria-pressed");break;default:this.addClass(b+"_off"),this.removeClass(b+"_on"),this.removeClass(b+"_disabled"),d&&this.removeAttribute("aria-pressed"),d&&this.removeAttribute("aria-disabled")}},getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(b){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},copyAttributes:function(a,
+b){var d=this.$.attributes;b=b||{};for(var g=0;g<d.length;g++){var c=d[g],e=c.nodeName.toLowerCase(),h;if(!(e in b))if("checked"==e&&(h=this.getAttribute(e)))a.setAttribute(e,h);else if(!CKEDITOR.env.ie||this.hasAttribute(e))h=this.getAttribute(e),null===h&&(h=c.nodeValue),a.setAttribute(e,h)}""!==this.$.style.cssText&&(a.$.style.cssText=this.$.style.cssText)},renameNode:function(a){if(this.getName()!=a){var b=this.getDocument();a=new CKEDITOR.dom.element(a,b);this.copyAttributes(a);this.moveChildren(a);
+this.getParent(!0)&&this.$.parentNode.replaceChild(a.$,this.$);a.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=a.$;delete this.getName}},getChild:function(){function a(b,d){var g=b.childNodes;if(0<=d&&d<g.length)return g[d]}return function(b){var d=this.$;if(b.slice)for(b=b.slice();0<b.length&&d;)d=a(d,b.shift());else d=a(d,b);return d?new CKEDITOR.dom.node(d):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT&&
+b.hasClass("cke_enable_context_menu")}this.on("contextmenu",function(b){b.data.getTarget().getAscendant(a,!0)||b.data.preventDefault()})},getDirection:function(a){return a?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir||"ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(a,b){a="data-"+a;if(void 0===b)return this.getAttribute(a);!1===b?this.removeAttribute(a):this.setAttribute(a,b);return null},
+getEditor:function(){var a=CKEDITOR.instances,b,d;for(b in a)if(d=a[b],d.element.equals(this)&&d.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO)return d;return null},find:function(a){var b=f(this);a=new CKEDITOR.dom.nodeList(this.$.querySelectorAll(c(this,a)));b();return a},findOne:function(a){var b=f(this);a=this.$.querySelector(c(this,a));b();return a?new CKEDITOR.dom.element(a):null},forEach:function(a,b,d){if(!(d||b&&this.type!=b))var g=a(this);if(!1!==g){d=this.getChildren();for(var c=0;c<d.count();c++)g=
+d.getItem(c),g.type==CKEDITOR.NODE_ELEMENT?g.forEach(a,b):b&&g.type!=b||a(g)}}});var l={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};CKEDITOR.dom.element.prototype.setSize=function(a,b,d){"number"==typeof b&&(!d||CKEDITOR.env.ie&&CKEDITOR.env.quirks||(b-=e.call(this,a)),this.setStyle(a,b+"px"))};CKEDITOR.dom.element.prototype.getSize=function(a,b){var d=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],
+this.$["client"+CKEDITOR.tools.capitalize(a)])||0;b&&(d-=e.call(this,a));return d}}(),CKEDITOR.dom.documentFragment=function(a){a=a||CKEDITOR.document;this.$=a.type==CKEDITOR.NODE_DOCUMENT?a.$.createDocumentFragment():a},CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype,CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,insertAfterNode:function(a){a=a.$;a.parentNode.insertBefore(this.$,a.nextSibling)},getHtml:function(){var a=new CKEDITOR.dom.element("div");this.clone(1,
+1).appendTo(a);return a.getHtml().replace(/\s*data-cke-expando=".*?"/g,"")}},!0,{append:1,appendBogus:1,clone:1,getFirst:1,getHtml:1,getLast:1,getParent:1,getNext:1,getPrevious:1,appendTo:1,moveChildren:1,insertBefore:1,insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1}),function(){function a(a,g){var b=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(b.collapsed)return this.end(),null;b.optimize()}var d,c=b.startContainer;
+d=b.endContainer;var e=b.startOffset,h=b.endOffset,p,k=this.guard,f=this.type,m=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var l=d.type==CKEDITOR.NODE_ELEMENT?d:d.getParent(),z=d.type==CKEDITOR.NODE_ELEMENT?d.getChild(h):d.getNext();this._.guardLTR=function(a,g){return(!g||!l.equals(a))&&(!z||!a.equals(z))&&(a.type!=CKEDITOR.NODE_ELEMENT||!g||!a.equals(b.root))}}if(a&&!this._.guardRTL){var C=c.type==CKEDITOR.NODE_ELEMENT?c:c.getParent(),G=c.type==CKEDITOR.NODE_ELEMENT?
+e?c.getChild(e-1):null:c.getPrevious();this._.guardRTL=function(a,g){return(!g||!C.equals(a))&&(!G||!a.equals(G))&&(a.type!=CKEDITOR.NODE_ELEMENT||!g||!a.equals(b.root))}}var E=a?this._.guardRTL:this._.guardLTR;p=k?function(a,g){return!1===E(a,g)?!1:k(a,g)}:E;this.current?d=this.current[m](!1,f,p):(a?d.type==CKEDITOR.NODE_ELEMENT&&(d=0<h?d.getChild(h-1):!1===p(d,!0)?null:d.getPreviousSourceNode(!0,f,p)):(d=c,d.type==CKEDITOR.NODE_ELEMENT&&((d=d.getChild(e))||(d=!1===p(c,!0)?null:c.getNextSourceNode(!0,
+f,p)))),d&&!1===p(d)&&(d=null));for(;d&&!this._.end;){this.current=d;if(!this.evaluator||!1!==this.evaluator(d)){if(!g)return d}else if(g&&this.evaluator)return!1;d=d[m](!1,f,p)}this.end();return this.current=null}function f(g){for(var b,d=null;b=a.call(this,g);)d=b;return d}CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range=a;this._={}},proto:{end:function(){this._.end=1},next:function(){return a.call(this)},previous:function(){return a.call(this,1)},checkForward:function(){return!1!==
+a.call(this,0,1)},checkBackward:function(){return!1!==a.call(this,1,1)},lastForward:function(){return f.call(this)},lastBackward:function(){return f.call(this,1)},reset:function(){delete this.current;this._={}}}});var c={block:1,"list-item":1,table:1,"table-row-group":1,"table-header-group":1,"table-footer-group":1,"table-row":1,"table-column-group":1,"table-column":1,"table-cell":1,"table-caption":1},e={absolute:1,fixed:1};CKEDITOR.dom.element.prototype.isBlockBoundary=function(a){return"none"!=
+this.getComputedStyle("float")||this.getComputedStyle("position")in e||!c[this.getComputedStyle("display")]?!!(this.is(CKEDITOR.dtd.$block)||a&&this.is(a)):!0};CKEDITOR.dom.walker.blockBoundary=function(a){return function(g){return!(g.type==CKEDITOR.NODE_ELEMENT&&g.isBlockBoundary(a))}};CKEDITOR.dom.walker.listItemBoundary=function(){return this.blockBoundary({br:1})};CKEDITOR.dom.walker.bookmark=function(a,g){function b(a){return a&&a.getName&&"span"==a.getName()&&a.data("cke-bookmark")}return function(d){var c,
+e;c=d&&d.type!=CKEDITOR.NODE_ELEMENT&&(e=d.getParent())&&b(e);c=a?c:c||b(d);return!!(g^c)}};CKEDITOR.dom.walker.whitespaces=function(a){return function(g){var b;g&&g.type==CKEDITOR.NODE_TEXT&&(b=!CKEDITOR.tools.trim(g.getText())||CKEDITOR.env.webkit&&g.getText()==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE);return!!(a^b)}};CKEDITOR.dom.walker.invisible=function(a){var g=CKEDITOR.dom.walker.whitespaces(),b=CKEDITOR.env.webkit?1:0;return function(d){g(d)?d=1:(d.type==CKEDITOR.NODE_TEXT&&(d=d.getParent()),
+d=d.$.offsetWidth<=b);return!!(a^d)}};CKEDITOR.dom.walker.nodeType=function(a,g){return function(b){return!!(g^b.type==a)}};CKEDITOR.dom.walker.bogus=function(a){function g(a){return!m(a)&&!l(a)}return function(b){var d=CKEDITOR.env.needsBrFiller?b.is&&b.is("br"):b.getText&&h.test(b.getText());d&&(d=b.getParent(),b=b.getNext(g),d=d.isBlockBoundary()&&(!b||b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()));return!!(a^d)}};CKEDITOR.dom.walker.temp=function(a){return function(g){g.type!=CKEDITOR.NODE_ELEMENT&&
+(g=g.getParent());g=g&&g.hasAttribute("data-cke-temp");return!!(a^g)}};var h=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,m=CKEDITOR.dom.walker.whitespaces(),l=CKEDITOR.dom.walker.bookmark(),k=CKEDITOR.dom.walker.temp(),b=function(a){return l(a)||m(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$inline)&&!a.is(CKEDITOR.dtd.$empty)};CKEDITOR.dom.walker.ignored=function(a){return function(g){g=m(g)||l(g)||k(g);return!!(a^g)}};var d=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=function(a){return function(g){for(var b=
+0,c=g.getChildCount();b<c;++b)if(!d(g.getChild(b)))return!!a;return!a}};var g=CKEDITOR.dom.walker.empty(),p=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(a){var g={},b;for(b in a)CKEDITOR.dtd[b]["#"]&&(g[b]=1);return g}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=function(a){return function(b){b=d(b)?!1:b.type==CKEDITOR.NODE_TEXT||b.type==CKEDITOR.NODE_ELEMENT&&(b.is(CKEDITOR.dtd.$inline)||b.is("hr")||"false"==b.getAttribute("contenteditable")||
+!CKEDITOR.env.needsBrFiller&&b.is(p)&&g(b))?!0:!1;return!!(a^b)}};CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(b(a));return a&&(CKEDITOR.env.needsBrFiller?a.is&&a.is("br"):a.getText&&h.test(a.getText()))?a:!1}}(),CKEDITOR.dom.range=function(a){this.endOffset=this.endContainer=this.startOffset=this.startContainer=null;this.collapsed=!0;var f=a instanceof CKEDITOR.dom.document;this.document=f?a:a.getDocument();this.root=f?a.getBody():a},function(){function a(a){a.collapsed=
+a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset}function f(a,b,d,c,e){function h(a,g,b,d){var c=b?a.getPrevious():a.getNext();if(d&&m)return c;t||d?g.append(a.clone(!0,e),b):(a.remove(),l&&g.append(a));return c}function k(){var a,g,b,d=Math.min(F.length,P.length);for(a=0;a<d;a++)if(g=F[a],b=P[a],!g.equals(b))return a;return a-1}function f(){var b=R-1,d=E&&J&&!x.equals(D);b<L-1||b<Q-1||d?(d?a.moveToPosition(D,CKEDITOR.POSITION_BEFORE_START):Q==
+b+1&&G?a.moveToPosition(P[b],CKEDITOR.POSITION_BEFORE_END):a.moveToPosition(P[b+1],CKEDITOR.POSITION_BEFORE_START),c&&(b=F[b+1])&&b.type==CKEDITOR.NODE_ELEMENT&&(d=CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display:none"\x3e\x26nbsp;\x3c/span\x3e',a.document),d.insertAfter(b),b.mergeSiblings(!1),a.moveToBookmark({startNode:d}))):a.collapse(!0)}a.optimizeBookmark();var m=0===b,l=1==b,t=2==b;b=t||l;var x=a.startContainer,D=a.endContainer,y=a.startOffset,z=a.endOffset,
+C,G,E,J,I,N;if(t&&D.type==CKEDITOR.NODE_TEXT&&x.equals(D))x=a.document.createText(x.substring(y,z)),d.append(x);else{D.type==CKEDITOR.NODE_TEXT?t?N=!0:D=D.split(z):0<D.getChildCount()?z>=D.getChildCount()?(D=D.getChild(z-1),G=!0):D=D.getChild(z):J=G=!0;x.type==CKEDITOR.NODE_TEXT?t?I=!0:x.split(y):0<x.getChildCount()?0===y?(x=x.getChild(y),C=!0):x=x.getChild(y-1):E=C=!0;for(var F=x.getParents(),P=D.getParents(),R=k(),L=F.length-1,Q=P.length-1,O=d,U,K,V,S=-1,H=R;H<=L;H++){K=F[H];V=K.getNext();for(H!=
+L||K.equals(P[H])&&L<Q?b&&(U=O.append(K.clone(0,e))):C?h(K,O,!1,E):I&&O.append(a.document.createText(K.substring(y)));V;){if(V.equals(P[H])){S=H;break}V=h(V,O)}O=U}O=d;for(H=R;H<=Q;H++)if(d=P[H],V=d.getPrevious(),d.equals(F[H]))b&&(O=O.getChild(0));else{H!=Q||d.equals(F[H])&&Q<L?b&&(U=O.append(d.clone(0,e))):G?h(d,O,!1,J):N&&O.append(a.document.createText(d.substring(0,z)));if(H>S)for(;V;)V=h(V,O,!0);O=U}t||f()}}function c(){var a=!1,b=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark(!0),
+c=CKEDITOR.dom.walker.bogus();return function(e){return d(e)||b(e)?!0:c(e)&&!a?a=!0:e.type==CKEDITOR.NODE_TEXT&&(e.hasAscendant("pre")||CKEDITOR.tools.trim(e.getText()).length)||e.type==CKEDITOR.NODE_ELEMENT&&!e.is(m)?!1:!0}}function e(a){var b=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark(1);return function(c){return d(c)||b(c)?!0:!a&&l(c)||c.type==CKEDITOR.NODE_ELEMENT&&c.is(CKEDITOR.dtd.$removeEmpty)}}function h(a){return function(){var c;return this[a?"getPreviousNode":"getNextNode"](function(a){!c&&
+d(a)&&(c=a);return b(a)&&!(l(a)&&a.equals(c))})}}var m={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},l=CKEDITOR.dom.walker.bogus(),k=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,b=CKEDITOR.dom.walker.editable(),d=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var a=new CKEDITOR.dom.range(this.root);a._setStartContainer(this.startContainer);a.startOffset=this.startOffset;
+a._setEndContainer(this.endContainer);a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){a?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),this.startOffset=this.endOffset);this.collapsed=!0},cloneContents:function(a){var b=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||f(this,2,b,!1,"undefined"==typeof a?!0:a);return b},deleteContents:function(a){this.collapsed||f(this,0,null,
+a)},extractContents:function(a,b){var d=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||f(this,1,d,a,"undefined"==typeof b?!0:b);return d},createBookmark:function(a){var b,d,c,e,h=this.collapsed;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml("\x26nbsp;");a&&(c="cke_bm_"+CKEDITOR.tools.getNextNumber(),b.setAttribute("id",c+(h?"C":"S")));h||(d=b.clone(),d.setHtml("\x26nbsp;"),a&&d.setAttribute("id",c+"E"),e=this.clone(),e.collapse(),
+e.insertNode(d));e=this.clone();e.collapse(!0);e.insertNode(b);d?(this.setStartAfter(b),this.setEndBefore(d)):this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:a?c+(h?"C":"S"):b,endNode:a?c+"E":d,serializable:a,collapsed:h}},createBookmark2:function(){function a(g){var b=g.container,c=g.offset,e;e=b;var h=c;e=e.type!=CKEDITOR.NODE_ELEMENT||0===h||h==e.getChildCount()?0:e.getChild(h-1).type==CKEDITOR.NODE_TEXT&&e.getChild(h).type==CKEDITOR.NODE_TEXT;e&&(b=b.getChild(c-1),c=b.getLength());
+if(b.type==CKEDITOR.NODE_ELEMENT&&0<c){a:{for(e=b;c--;)if(h=e.getChild(c).getIndex(!0),0<=h){c=h;break a}c=-1}c+=1}if(b.type==CKEDITOR.NODE_TEXT){e=b;for(h=0;(e=e.getPrevious())&&e.type==CKEDITOR.NODE_TEXT;)h+=e.getText().replace(CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE,"").length;e=h;b.getText()?c+=e:(h=b.getPrevious(d),e?(c=e,b=h?h.getNext():b.getParent().getFirst()):(b=b.getParent(),c=h?h.getIndex(!0)+1:0))}g.container=b;g.offset=c}function b(a,g){var d=g.getCustomData("cke-fillingChar");if(d){var c=
+a.container;d.equals(c)&&(a.offset-=CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length,0>=a.offset&&(a.offset=c.getIndex(),a.container=c.getParent()))}}var d=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT,!0);return function(d){var c=this.collapsed,e={container:this.startContainer,offset:this.startOffset},h={container:this.endContainer,offset:this.endOffset};d&&(a(e),b(e,this.root),c||(a(h),b(h,this.root)));return{start:e.container.getAddress(d),end:c?null:h.container.getAddress(d),startOffset:e.offset,
+endOffset:h.offset,normalized:d,collapsed:c,is2:!0}}}(),moveToBookmark:function(a){if(a.is2){var b=this.document.getByAddress(a.start,a.normalized),d=a.startOffset,c=a.end&&this.document.getByAddress(a.end,a.normalized);a=a.endOffset;this.setStart(b,d);c?this.setEnd(c,a):this.collapse(!0)}else b=(d=a.serializable)?this.document.getById(a.startNode):a.startNode,a=d?this.document.getById(a.endNode):a.endNode,this.setStartBefore(b),b.remove(),a?(this.setEndBefore(a),a.remove()):this.collapse(!0)},getBoundaryNodes:function(){var a=
+this.startContainer,b=this.endContainer,d=this.startOffset,c=this.endOffset,e;if(a.type==CKEDITOR.NODE_ELEMENT)if(e=a.getChildCount(),e>d)a=a.getChild(d);else if(1>e)a=a.getPreviousSourceNode();else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}if(b.type==CKEDITOR.NODE_ELEMENT)if(e=b.getChildCount(),e>c)b=b.getChild(c).getPreviousSourceNode(!0);else if(1>e)b=b.getPreviousSourceNode();else{for(b=b.$;b.lastChild;)b=b.lastChild;b=new CKEDITOR.dom.node(b)}a.getPosition(b)&
+CKEDITOR.POSITION_FOLLOWING&&(a=b);return{startNode:a,endNode:b}},getCommonAncestor:function(a,b){var d=this.startContainer,c=this.endContainer,d=d.equals(c)?a&&d.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?d.getChild(this.startOffset):d:d.getCommonAncestor(c);return b&&!d.is?d.getParent():d},optimize:function(){var a=this.startContainer,b=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setStartAfter(a):this.setStartBefore(a));a=this.endContainer;b=this.endOffset;
+a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,b=this.endContainer;a.is&&a.is("span")&&a.data("cke-bookmark")&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);b&&b.is&&b.is("span")&&b.data("cke-bookmark")&&this.setEndAt(b,CKEDITOR.POSITION_AFTER_END)},trim:function(a,b){var d=this.startContainer,c=this.startOffset,e=this.collapsed;if((!a||e)&&d&&d.type==CKEDITOR.NODE_TEXT){if(c)if(c>=d.getLength())c=
+d.getIndex()+1,d=d.getParent();else{var h=d.split(c),c=d.getIndex()+1,d=d.getParent();this.startContainer.equals(this.endContainer)?this.setEnd(h,this.endOffset-this.startOffset):d.equals(this.endContainer)&&(this.endOffset+=1)}else c=d.getIndex(),d=d.getParent();this.setStart(d,c);if(e){this.collapse(!0);return}}d=this.endContainer;c=this.endOffset;b||e||!d||d.type!=CKEDITOR.NODE_TEXT||(c?(c>=d.getLength()||d.split(c),c=d.getIndex()+1):c=d.getIndex(),d=d.getParent(),this.setEnd(d,c))},enlarge:function(a,
+b){function d(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")?null:a}var c=new RegExp(/[^\s\ufeff]/);switch(a){case CKEDITOR.ENLARGE_INLINE:var e=1;case CKEDITOR.ENLARGE_ELEMENT:var h=function(a,b){var d=new CKEDITOR.dom.range(f);d.setStart(a,b);d.setEndAt(f,CKEDITOR.POSITION_BEFORE_END);var d=new CKEDITOR.dom.walker(d),g;for(d.guard=function(a){return!(a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary())};g=d.next();){if(g.type!=CKEDITOR.NODE_TEXT)return!1;C=g!=a?g.getText():
+g.substring(b);if(c.test(C))return!1}return!0};if(this.collapsed)break;var k=this.getCommonAncestor(),f=this.root,m,l,t,x,D,y=!1,z,C;z=this.startContainer;var G=this.startOffset;z.type==CKEDITOR.NODE_TEXT?(G&&(z=!CKEDITOR.tools.trim(z.substring(0,G)).length&&z,y=!!z),z&&((x=z.getPrevious())||(t=z.getParent()))):(G&&(x=z.getChild(G-1)||z.getLast()),x||(t=z));for(t=d(t);t||x;){if(t&&!x){!D&&t.equals(k)&&(D=!0);if(e?t.isBlockBoundary():!f.contains(t))break;y&&"inline"==t.getComputedStyle("display")||
+(y=!1,D?m=t:this.setStartBefore(t));x=t.getPrevious()}for(;x;)if(z=!1,x.type==CKEDITOR.NODE_COMMENT)x=x.getPrevious();else{if(x.type==CKEDITOR.NODE_TEXT)C=x.getText(),c.test(C)&&(x=null),z=/[\s\ufeff]$/.test(C);else if((x.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||b&&x.is("br"))&&!x.data("cke-bookmark"))if(y&&CKEDITOR.dtd.$removeEmpty[x.getName()]){C=x.getText();if(c.test(C))x=null;else for(var G=x.$.getElementsByTagName("*"),E=0,J;J=G[E++];)if(!CKEDITOR.dtd.$removeEmpty[J.nodeName.toLowerCase()]){x=
+null;break}x&&(z=!!C.length)}else x=null;z&&(y?D?m=t:t&&this.setStartBefore(t):y=!0);if(x){z=x.getPrevious();if(!t&&!z){t=x;x=null;break}x=z}else t=null}t&&(t=d(t.getParent()))}z=this.endContainer;G=this.endOffset;t=x=null;D=y=!1;z.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(z.substring(G)).length?y=!0:(y=!z.getLength(),G==z.getLength()?(x=z.getNext())||(t=z.getParent()):h(z,G)&&(t=z.getParent())):(x=z.getChild(G))||(t=z);for(;t||x;){if(t&&!x){!D&&t.equals(k)&&(D=!0);if(e?t.isBlockBoundary():!f.contains(t))break;
+y&&"inline"==t.getComputedStyle("display")||(y=!1,D?l=t:t&&this.setEndAfter(t));x=t.getNext()}for(;x;){z=!1;if(x.type==CKEDITOR.NODE_TEXT)C=x.getText(),h(x,0)||(x=null),z=/^[\s\ufeff]/.test(C);else if(x.type==CKEDITOR.NODE_ELEMENT){if((0<x.$.offsetWidth||b&&x.is("br"))&&!x.data("cke-bookmark"))if(y&&CKEDITOR.dtd.$removeEmpty[x.getName()]){C=x.getText();if(c.test(C))x=null;else for(G=x.$.getElementsByTagName("*"),E=0;J=G[E++];)if(!CKEDITOR.dtd.$removeEmpty[J.nodeName.toLowerCase()]){x=null;break}x&&
+(z=!!C.length)}else x=null}else z=1;z&&y&&(D?l=t:this.setEndAfter(t));if(x){z=x.getNext();if(!t&&!z){t=x;x=null;break}x=z}else t=null}t&&(t=d(t.getParent()))}m&&l&&(k=m.contains(l)?l:m,this.setStartBefore(k),this.setEndAfter(k));break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:t=new CKEDITOR.dom.range(this.root);f=this.root;t.setStartAt(f,CKEDITOR.POSITION_AFTER_START);t.setEnd(this.startContainer,this.startOffset);t=new CKEDITOR.dom.walker(t);var I,N,F=CKEDITOR.dom.walker.blockBoundary(a==
+CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),P=null,R=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&"false"==a.getAttribute("contenteditable"))if(P){if(P.equals(a)){P=null;return}}else P=a;else if(P)return;var b=F(a);b||(I=a);return b},e=function(a){var b=R(a);!b&&a.is&&a.is("br")&&(N=a);return b};t.guard=R;t=t.lastBackward();I=I||f;this.setStartAt(I,!I.is("br")&&(!t&&this.checkStartOfBlock()||t&&I.contains(t))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){t=
+this.clone();t=new CKEDITOR.dom.walker(t);var L=CKEDITOR.dom.walker.whitespaces(),Q=CKEDITOR.dom.walker.bookmark();t.evaluator=function(a){return!L(a)&&!Q(a)};if((t=t.previous())&&t.type==CKEDITOR.NODE_ELEMENT&&t.is("br"))break}t=this.clone();t.collapse();t.setEndAt(f,CKEDITOR.POSITION_BEFORE_END);t=new CKEDITOR.dom.walker(t);t.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?e:R;I=P=N=null;t=t.lastForward();I=I||f;this.setEndAt(I,!t&&this.checkEndOfBlock()||t&&I.contains(t)?CKEDITOR.POSITION_BEFORE_END:
+CKEDITOR.POSITION_BEFORE_START);N&&this.setEndAfter(N)}},shrink:function(a,b,d){if(!this.collapsed){a=a||CKEDITOR.SHRINK_TEXT;var c=this.clone(),e=this.startContainer,h=this.endContainer,f=this.startOffset,k=this.endOffset,m=1,l=1;e&&e.type==CKEDITOR.NODE_TEXT&&(f?f>=e.getLength()?c.setStartAfter(e):(c.setStartBefore(e),m=0):c.setStartBefore(e));h&&h.type==CKEDITOR.NODE_TEXT&&(k?k>=h.getLength()?c.setEndAfter(h):(c.setEndAfter(h),l=0):c.setEndBefore(h));var c=new CKEDITOR.dom.walker(c),t=CKEDITOR.dom.walker.bookmark();
+c.evaluator=function(b){return b.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var x;c.guard=function(b,c){if(t(b))return!0;if(a==CKEDITOR.SHRINK_ELEMENT&&b.type==CKEDITOR.NODE_TEXT||c&&b.equals(x)||!1===d&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()||b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("contenteditable"))return!1;c||b.type!=CKEDITOR.NODE_ELEMENT||(x=b);return!0};m&&(e=c[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(e,b?CKEDITOR.POSITION_AFTER_START:
+CKEDITOR.POSITION_BEFORE_START);l&&(c.reset(),(c=c[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(c,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_END));return!(!m&&!l)}},insertNode:function(a){this.optimizeBookmark();this.trim(!1,!0);var b=this.startContainer,d=b.getChild(this.startOffset);d?a.insertBefore(d):b.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&this.endOffset++;this.setStartBefore(a)},moveToPosition:function(a,b){this.setStartAt(a,
+b);this.collapse(!0)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(b,d){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(d=b.getIndex(),b=b.getParent());this._setStartContainer(b);this.startOffset=d;this.endContainer||(this._setEndContainer(b),this.endOffset=d);a(this)},setEnd:function(b,
+d){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(d=b.getIndex()+1,b=b.getParent());this._setEndContainer(b);this.endOffset=d;this.startContainer||(this._setStartContainer(b),this.startOffset=d);a(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),a.getIndex())},setStartAt:function(b,
+d){switch(d){case CKEDITOR.POSITION_AFTER_START:this.setStart(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setStart(b,b.getLength()):this.setStart(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(b)}a(this)},setEndAt:function(b,d){switch(d){case CKEDITOR.POSITION_AFTER_START:this.setEnd(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setEnd(b,
+b.getLength()):this.setEnd(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(b)}a(this)},fixBlock:function(a,b){var d=this.createBookmark(),c=this.document.createElement(b);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(c);c.trim();this.insertNode(c);var e=c.getBogus();e&&e.remove();c.appendBogus();this.moveToBookmark(d);return c},splitBlock:function(a,b){var d=
+new CKEDITOR.dom.elementPath(this.startContainer,this.root),c=new CKEDITOR.dom.elementPath(this.endContainer,this.root),e=d.block,h=c.block,f=null;if(!d.blockLimit.equals(c.blockLimit))return null;"br"!=a&&(e||(e=this.fixBlock(!0,a),h=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block),h||(h=this.fixBlock(!1,a)));d=e&&this.checkStartOfBlock();c=h&&this.checkEndOfBlock();this.deleteContents();e&&e.equals(h)&&(c?(f=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(h,
+CKEDITOR.POSITION_AFTER_END),h=null):d?(f=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e=null):(h=this.splitElement(e,b||!1),e.is("ul","ol")||e.appendBogus()));return{previousBlock:e,nextBlock:h,wasStartOfBlock:d,wasEndOfBlock:c,elementPath:f}},splitElement:function(a,b){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var d=this.extractContents(!1,b||!1),c=a.clone(!1,b||!1);d.appendTo(c);c.insertAfter(a);
+this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return c},removeEmptyBlocksAtEnd:function(){function a(g){return function(a){return b(a)||d(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable()||g.is("table")&&a.is("caption")?!1:!0}}var b=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark(!1);return function(b){for(var d=this.createBookmark(),c=this[b?"endPath":"startPath"](),e=c.block||c.blockLimit,h;e&&!e.equals(c.root)&&!e.getFirst(a(e));)h=e.getParent(),this[b?"setEndAt":
+"setStartAt"](e,CKEDITOR.POSITION_AFTER_END),e.remove(1),e=h;this.moveToBookmark(d)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,this.root)},checkBoundaryOfElement:function(a,b){var d=b==CKEDITOR.START,c=this.clone();c.collapse(d);c[d?"setStartAt":"setEndAt"](a,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END);c=new CKEDITOR.dom.walker(c);c.evaluator=e(d);return c[d?
+"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,b=this.startOffset;CKEDITOR.env.ie&&b&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.ltrim(a.substring(0,b)),k.test(a)&&this.trim(0,1));this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,this.root);b=this.clone();b.collapse(!0);b.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(b);a.evaluator=c();return a.checkBackward()},checkEndOfBlock:function(){var a=this.endContainer,
+b=this.endOffset;CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.rtrim(a.substring(b)),k.test(a)&&this.trim(1,0));this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);b=this.clone();b.collapse(!1);b.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);a=new CKEDITOR.dom.walker(b);a.evaluator=c();return a.checkForward()},getPreviousNode:function(a,b,d){var c=this.clone();c.collapse(1);c.setStartAt(d||this.root,CKEDITOR.POSITION_AFTER_START);d=new CKEDITOR.dom.walker(c);
+d.evaluator=a;d.guard=b;return d.previous()},getNextNode:function(a,b,d){var c=this.clone();c.collapse();c.setEndAt(d||this.root,CKEDITOR.POSITION_BEFORE_END);d=new CKEDITOR.dom.walker(c);d.evaluator=a;d.guard=b;return d.next()},checkReadOnly:function(){function a(b,d){for(;b;){if(b.type==CKEDITOR.NODE_ELEMENT){if("false"==b.getAttribute("contentEditable")&&!b.data("cke-editable"))return 0;if(b.is("html")||"true"==b.getAttribute("contentEditable")&&(b.contains(d)||b.equals(d)))break}b=b.getParent()}return 1}
+return function(){var b=this.startContainer,d=this.endContainer;return!(a(b,d)&&a(d,b))}}(),moveToElementEditablePosition:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),!0;for(var c=0;a;){if(a.type==CKEDITOR.NODE_TEXT){b&&this.endContainer&&this.checkEndOfBlock()&&k.test(a.getText())?this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:
+CKEDITOR.POSITION_BEFORE_START);c=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable())this.moveToPosition(a,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START),c=1;else if(b&&a.is("br")&&this.endContainer&&this.checkEndOfBlock())this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);else if("false"==a.getAttribute("contenteditable")&&a.is(CKEDITOR.dtd.$block))return this.setStartBefore(a),this.setEndAfter(a),!0;var e=a,h=c,n=void 0;e.type==CKEDITOR.NODE_ELEMENT&&e.isEditable(!1)&&
+(n=e[b?"getLast":"getFirst"](d));h||n||(n=e[b?"getPrevious":"getNext"](d));a=n}return!!c},moveToClosestEditablePosition:function(a,b){var d,c=0,e,h,f=[CKEDITOR.POSITION_AFTER_END,CKEDITOR.POSITION_BEFORE_START];a?(d=new CKEDITOR.dom.range(this.root),d.moveToPosition(a,f[b?0:1])):d=this.clone();if(a&&!a.is(CKEDITOR.dtd.$block))c=1;else if(e=d[b?"getNextEditableNode":"getPreviousEditableNode"]())c=1,(h=e.type==CKEDITOR.NODE_ELEMENT)&&e.is(CKEDITOR.dtd.$block)&&"false"==e.getAttribute("contenteditable")?
+(d.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),d.setEndAt(e,CKEDITOR.POSITION_AFTER_END)):!CKEDITOR.env.needsBrFiller&&h&&e.is(CKEDITOR.dom.walker.validEmptyBlockContainers)?(d.setEnd(e,0),d.collapse()):d.moveToPosition(e,f[b?1:0]);c&&this.moveToRange(d);return!!c},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,!0)},getEnclosedNode:function(){var a=this.clone();a.optimize();if(a.startContainer.type!=
+CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),b=CKEDITOR.dom.walker.bookmark(!1,!0),d=CKEDITOR.dom.walker.whitespaces(!0);a.evaluator=function(a){return d(a)&&b(a)};var c=a.next();a.reset();return c&&c.equals(a.previous())?c:null},getTouchedStartNode:function(){var a=this.startContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=this.endContainer;return this.collapsed||
+a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},getNextEditableNode:h(),getPreviousEditableNode:h(1),scrollIntoView:function(){var a=new CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",this.document),b,d,c,e=this.clone();e.optimize();(c=e.startContainer.type==CKEDITOR.NODE_TEXT)?(d=e.startContainer.getText(),b=e.startContainer.split(e.startOffset),a.insertAfter(e.startContainer)):e.insertNode(a);a.scrollIntoView();c&&(e.startContainer.setText(d),b.remove());
+a.remove()},_setStartContainer:function(a){this.startContainer=a},_setEndContainer:function(a){this.endContainer=a}}}(),CKEDITOR.POSITION_AFTER_START=1,CKEDITOR.POSITION_BEFORE_END=2,CKEDITOR.POSITION_BEFORE_START=3,CKEDITOR.POSITION_AFTER_END=4,CKEDITOR.ENLARGE_ELEMENT=1,CKEDITOR.ENLARGE_BLOCK_CONTENTS=2,CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3,CKEDITOR.ENLARGE_INLINE=4,CKEDITOR.START=1,CKEDITOR.END=2,CKEDITOR.SHRINK_ELEMENT=1,CKEDITOR.SHRINK_TEXT=2,"use strict",function(){function a(a){1>arguments.length||
+(this.range=a,this.forceBrBreak=0,this.enlargeBr=1,this.enforceRealBlocks=0,this._||(this._={}))}function f(a){var b=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function c(a,b,e,h){a:{null==h&&(h=f(e));for(var k;k=h.shift();)if(k.getDtd().p){h={element:k,remaining:h};break a}h=null}if(!h)return 0;if((k=CKEDITOR.filter.instances[h.element.data("cke-filter")])&&!k.check(b))return c(a,b,e,h.remaining);b=new CKEDITOR.dom.range(h.element);
+b.selectNodeContents(h.element);b=b.createIterator();b.enlargeBr=a.enlargeBr;b.enforceRealBlocks=a.enforceRealBlocks;b.activeFilter=b.filter=k;a._.nestedEditable={element:h.element,container:e,remaining:h.remaining,iterator:b};return 1}function e(a,b,c){if(!b)return!1;a=a.clone();a.collapse(!c);return a.checkBoundaryOfElement(b,c?CKEDITOR.START:CKEDITOR.END)}var h=/^[\r\n\t ]+$/,m=CKEDITOR.dom.walker.bookmark(!1,!0),l=CKEDITOR.dom.walker.whitespaces(!0),k=function(a){return m(a)&&l(a)},b={dd:1,dt:1,
+li:1};a.prototype={getNextParagraph:function(a){var g,f,l,v,r;a=a||"p";if(this._.nestedEditable){if(g=this._.nestedEditable.iterator.getNextParagraph(a))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,g;this.activeFilter=this.filter;if(c(this,a,this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(a);this._.nestedEditable=null}if(!this.range.root.getDtd()[a])return null;
+if(!this._.started){var n=this.range.clone();f=n.startPath();var q=n.endPath(),w=!n.collapsed&&e(n,f.block),A=!n.collapsed&&e(n,q.block,1);n.shrink(CKEDITOR.SHRINK_ELEMENT,!0);w&&n.setStartAt(f.block,CKEDITOR.POSITION_BEFORE_END);A&&n.setEndAt(q.block,CKEDITOR.POSITION_AFTER_START);f=n.endContainer.hasAscendant("pre",!0)||n.startContainer.hasAscendant("pre",!0);n.enlarge(this.forceBrBreak&&!f||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);n.collapsed||(f=new CKEDITOR.dom.walker(n.clone()),
+q=CKEDITOR.dom.walker.bookmark(!0,!0),f.evaluator=q,this._.nextNode=f.next(),f=new CKEDITOR.dom.walker(n.clone()),f.evaluator=q,f=f.previous(),this._.lastNode=f.getNextSourceNode(!0,null,n.root),this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(q=this.range.clone(),q.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),q.checkEndOfBlock()&&(q=new CKEDITOR.dom.elementPath(q.endContainer,
+q.root),this._.lastNode=(q.block||q.blockLimit).getNextSourceNode(!0))),this._.lastNode&&n.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=n.document.createText(""),this._.lastNode.insertAfter(f)),n=null);this._.started=1;f=n}q=this._.nextNode;n=this._.lastNode;for(this._.nextNode=null;q;){var w=0,A=q.hasAscendant("pre"),B=q.type!=CKEDITOR.NODE_ELEMENT,t=0;if(B)q.type==CKEDITOR.NODE_TEXT&&h.test(q.getText())&&(B=0);else{var x=q.getName();if(CKEDITOR.dtd.$block[x]&&"false"==q.getAttribute("contenteditable")){g=
+q;c(this,a,g);break}else if(q.isBlockBoundary(this.forceBrBreak&&!A&&{br:1})){if("br"==x)B=1;else if(!f&&!q.getChildCount()&&"hr"!=x){g=q;l=q.equals(n);break}f&&(f.setEndAt(q,CKEDITOR.POSITION_BEFORE_START),"br"!=x&&(this._.nextNode=q));w=1}else{if(q.getFirst()){f||(f=this.range.clone(),f.setStartAt(q,CKEDITOR.POSITION_BEFORE_START));q=q.getFirst();continue}B=1}}B&&!f&&(f=this.range.clone(),f.setStartAt(q,CKEDITOR.POSITION_BEFORE_START));l=(!w||B)&&q.equals(n);if(f&&!w)for(;!q.getNext(k)&&!l;){x=
+q.getParent();if(x.isBlockBoundary(this.forceBrBreak&&!A&&{br:1})){w=1;B=0;l||x.equals(n);f.setEndAt(x,CKEDITOR.POSITION_BEFORE_END);break}q=x;B=1;l=q.equals(n);t=1}B&&f.setEndAt(q,CKEDITOR.POSITION_AFTER_END);q=this._getNextSourceNode(q,t,n);if((l=!q)||w&&f)break}if(!g){if(!f)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;g=new CKEDITOR.dom.elementPath(f.startContainer,f.root);q=g.blockLimit;w={div:1,th:1,td:1};g=g.block;!g&&q&&!this.enforceRealBlocks&&w[q.getName()]&&
+f.checkStartOfBlock()&&f.checkEndOfBlock()&&!q.equals(f.root)?g=q:!g||this.enforceRealBlocks&&g.is(b)?(g=this.range.document.createElement(a),f.extractContents().appendTo(g),g.trim(),f.insertNode(g),v=r=!0):"li"!=g.getName()?f.checkStartOfBlock()&&f.checkEndOfBlock()||(g=g.clone(!1),f.extractContents().appendTo(g),g.trim(),r=f.splitBlock(),v=!r.wasStartOfBlock,r=!r.wasEndOfBlock,f.insertNode(g)):l||(this._.nextNode=g.equals(n)?null:this._getNextSourceNode(f.getBoundaryNodes().endNode,1,n))}v&&(v=
+g.getPrevious())&&v.type==CKEDITOR.NODE_ELEMENT&&("br"==v.getName()?v.remove():v.getLast()&&"br"==v.getLast().$.nodeName.toLowerCase()&&v.getLast().remove());r&&(v=g.getLast())&&v.type==CKEDITOR.NODE_ELEMENT&&"br"==v.getName()&&(!CKEDITOR.env.needsBrFiller||v.getPrevious(m)||v.getNext(m))&&v.remove();this._.nextNode||(this._.nextNode=l||g.equals(n)||!n?null:this._getNextSourceNode(g,1,n));return g},_getNextSourceNode:function(a,b,c){function e(a){return!(a.equals(c)||a.equals(h))}var h=this.range.root;
+for(a=a.getNextSourceNode(b,null,e);!m(a);)a=a.getNextSourceNode(b,null,e);return a}};CKEDITOR.dom.range.prototype.createIterator=function(){return new a(this)}}(),CKEDITOR.command=function(a,f){this.uiItems=[];this.exec=function(c){if(this.state==CKEDITOR.TRISTATE_DISABLED||!this.checkAllowed())return!1;this.editorFocus&&a.focus();return!1===this.fire("exec")?!0:!1!==f.exec.call(this,a,c)};this.refresh=function(a,c){if(!this.readOnly&&a.readOnly)return!0;if(this.context&&!c.isContextFor(this.context)||
 !this.checkAllowed(!0))return this.disable(),!0;this.startDisabled||this.enable();this.modes&&!this.modes[a.mode]&&this.disable();return!1===this.fire("refresh",{editor:a,path:c})?!0:f.refresh&&!1!==f.refresh.apply(this,arguments)};var c;this.checkAllowed=function(e){return e||"boolean"!=typeof c?c=a.activeFilter.checkFeature(this):c};CKEDITOR.tools.extend(this,f,{modes:{wysiwyg:1},editorFocus:1,contextSensitive:!!f.context,state:CKEDITOR.TRISTATE_DISABLED});CKEDITOR.event.call(this)},CKEDITOR.command.prototype=
 {enable:function(){this.state==CKEDITOR.TRISTATE_DISABLED&&this.checkAllowed()&&this.setState(this.preserveState&&"undefined"!=typeof this.previousState?this.previousState:CKEDITOR.TRISTATE_OFF)},disable:function(){this.setState(CKEDITOR.TRISTATE_DISABLED)},setState:function(a){if(this.state==a||a!=CKEDITOR.TRISTATE_DISABLED&&!this.checkAllowed())return!1;this.previousState=this.state;this.state=a;this.fire("state");return!0},toggleState:function(){this.state==CKEDITOR.TRISTATE_OFF?this.setState(CKEDITOR.TRISTATE_ON):
 this.state==CKEDITOR.TRISTATE_ON&&this.setState(CKEDITOR.TRISTATE_OFF)}},CKEDITOR.event.implementOn(CKEDITOR.command.prototype),CKEDITOR.ENTER_P=1,CKEDITOR.ENTER_BR=2,CKEDITOR.ENTER_DIV=3,CKEDITOR.config={customConfig:"config.js",autoUpdateElement:!0,language:"",defaultLanguage:"en",contentsLangDirection:"",enterMode:CKEDITOR.ENTER_P,forceEnterMode:!1,shiftEnterMode:CKEDITOR.ENTER_BR,docType:"\x3c!DOCTYPE html\x3e",bodyId:"",bodyClass:"",fullPage:!1,height:200,contentsCss:CKEDITOR.getUrl("contents.css"),
 extraPlugins:"",removePlugins:"",protectedSource:[],tabIndex:0,width:"",baseFloatZIndex:1E4,blockedKeystrokes:[CKEDITOR.CTRL+66,CKEDITOR.CTRL+73,CKEDITOR.CTRL+85]},function(){function a(a,b,d,c,g){var e,h;a=[];for(e in b){h=b[e];h="boolean"==typeof h?{}:"function"==typeof h?{match:h}:E(h);"$"!=e.charAt(0)&&(h.elements=e);d&&(h.featureName=d.toLowerCase());var f=h;f.elements=l(f.elements,/\s+/)||null;f.propertiesOnly=f.propertiesOnly||!0===f.elements;var n=/\s*,\s*/,k=void 0;for(k in N){f[k]=l(f[k],
-n)||null;var t=f,m=O[k],p=l(f[O[k]],n),w=f[k],q=[],D=!0,A=void 0;p?D=!1:p={};for(A in w)"!"==A.charAt(0)&&(A=A.slice(1),q.push(A),p[A]=!0,D=!1);for(;A=q.pop();)w[A]=w["!"+A],delete w["!"+A];t[m]=(D?!1:p)||null}f.match=f.match||null;c.push(h);a.push(h)}b=g.elements;g=g.generic;var u;d=0;for(c=a.length;d<c;++d){e=E(a[d]);h=!0===e.classes||!0===e.styles||!0===e.attributes;f=e;k=m=n=void 0;for(n in N)f[n]=x(f[n]);t=!0;for(k in O){n=O[k];m=f[n];p=[];w=void 0;for(w in m)-1<w.indexOf("*")?p.push(new RegExp("^"+
-w.replace(/\*/g,".*")+"$")):p.push(w);m=p;m.length&&(f[n]=m,t=!1)}f.nothingRequired=t;f.noProperties=!(f.attributes||f.classes||f.styles);if(!0===e.elements||null===e.elements)g[h?"unshift":"push"](e);else for(u in f=e.elements,delete e.elements,f)if(b[u])b[u][h?"unshift":"push"](e);else b[u]=[e]}}function f(a,b,d,g){if(!a.match||a.match(b))if(g||k(a,b))if(a.propertiesOnly||(d.valid=!0),d.allAttributes||(d.allAttributes=c(a.attributes,b.attributes,d.validAttributes)),d.allStyles||(d.allStyles=c(a.styles,
+n)||null;var t=f,m=F[k],p=l(f[F[k]],n),x=f[k],q=[],D=!0,B=void 0;p?D=!1:p={};for(B in x)"!"==B.charAt(0)&&(B=B.slice(1),q.push(B),p[B]=!0,D=!1);for(;B=q.pop();)x[B]=x["!"+B],delete x["!"+B];t[m]=(D?!1:p)||null}f.match=f.match||null;c.push(h);a.push(h)}b=g.elements;g=g.generic;var r;d=0;for(c=a.length;d<c;++d){e=E(a[d]);h=!0===e.classes||!0===e.styles||!0===e.attributes;f=e;k=m=n=void 0;for(n in N)f[n]=w(f[n]);t=!0;for(k in F){n=F[k];m=f[n];p=[];x=void 0;for(x in m)-1<x.indexOf("*")?p.push(new RegExp("^"+
+x.replace(/\*/g,".*")+"$")):p.push(x);m=p;m.length&&(f[n]=m,t=!1)}f.nothingRequired=t;f.noProperties=!(f.attributes||f.classes||f.styles);if(!0===e.elements||null===e.elements)g[h?"unshift":"push"](e);else for(r in f=e.elements,delete e.elements,f)if(b[r])b[r][h?"unshift":"push"](e);else b[r]=[e]}}function f(a,b,d,g){if(!a.match||a.match(b))if(g||k(a,b))if(a.propertiesOnly||(d.valid=!0),d.allAttributes||(d.allAttributes=c(a.attributes,b.attributes,d.validAttributes)),d.allStyles||(d.allStyles=c(a.styles,
 b.styles,d.validStyles)),!d.allClasses){a=a.classes;b=b.classes;g=d.validClasses;if(a)if(!0===a)a=!0;else{for(var e=0,h=b.length,f;e<h;++e)f=b[e],g[f]||(g[f]=a(f));a=!1}else a=!1;d.allClasses=a}}function c(a,b,d){if(!a)return!1;if(!0===a)return!0;for(var c in b)d[c]||(d[c]=a(c));return!1}function e(a,b,d){if(!a.match||a.match(b)){if(a.noProperties)return!1;d.hadInvalidAttribute=h(a.attributes,b.attributes)||d.hadInvalidAttribute;d.hadInvalidStyle=h(a.styles,b.styles)||d.hadInvalidStyle;a=a.classes;
-b=b.classes;if(a){for(var c=!1,g=!0===a,e=b.length;e--;)if(g||a(b[e]))b.splice(e,1),c=!0;a=c}else a=!1;d.hadInvalidClass=a||d.hadInvalidClass}}function h(a,b){if(!a)return!1;var d=!1,c=!0===a,g;for(g in b)if(c||a(g))delete b[g],d=!0;return d}function m(a,b,d){if(a.disabled||a.customConfig&&!d||!b)return!1;a._.cachedChecks={};return!0}function l(a,b){if(!a)return!1;if(!0===a)return a;if("string"==typeof a)return a=L(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(b));if(CKEDITOR.tools.isArray(a))return a.length?
+b=b.classes;if(a){for(var c=!1,g=!0===a,e=b.length;e--;)if(g||a(b[e]))b.splice(e,1),c=!0;a=c}else a=!1;d.hadInvalidClass=a||d.hadInvalidClass}}function h(a,b){if(!a)return!1;var d=!1,c=!0===a,g;for(g in b)if(c||a(g))delete b[g],d=!0;return d}function m(a,b,d){if(a.disabled||a.customConfig&&!d||!b)return!1;a._.cachedChecks={};return!0}function l(a,b){if(!a)return!1;if(!0===a)return a;if("string"==typeof a)return a=J(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(b));if(CKEDITOR.tools.isArray(a))return a.length?
 CKEDITOR.tools.convertArrayToObject(a):!1;var d={},c=0,g;for(g in a)d[g]=a[g],c++;return c?d:!1}function k(a,d){if(a.nothingRequired)return!0;var c,g,e,h;if(e=a.requiredClasses)for(h=d.classes,c=0;c<e.length;++c)if(g=e[c],"string"==typeof g){if(-1==CKEDITOR.tools.indexOf(h,g))return!1}else if(!CKEDITOR.tools.checkIfAnyArrayItemMatches(h,g))return!1;return b(d.styles,a.requiredStyles)&&b(d.attributes,a.requiredAttributes)}function b(a,b){if(!b)return!0;for(var d=0,c;d<b.length;++d)if(c=b[d],"string"==
-typeof c){if(!(c in a))return!1}else if(!CKEDITOR.tools.checkIfAnyObjectPropertyMatches(a,c))return!1;return!0}function d(a){if(!a)return{};a=a.split(/\s*,\s*/).sort();for(var b={};a.length;)b[a.shift()]="cke-test";return b}function g(a){var b,d,c,g,e={},h=1;for(a=L(a);b=a.match(I);)(d=b[2])?(c=p(d,"styles"),g=p(d,"attrs"),d=p(d,"classes")):c=g=d=null,e["$"+h++]={elements:b[1],classes:d,styles:c,attributes:g},a=a.slice(b[0].length);return e}function p(a,b){var d=a.match(R[b]);return d?L(d[1]):null}
-function r(a){var d=a.styleBackup=a.attributes.style,b=a.classBackup=a.attributes["class"];a.styles||(a.styles=CKEDITOR.tools.parseCssText(d||"",1));a.classes||(a.classes=b?b.split(/\s+/):[])}function v(a,b,d,c){var g=0,h;c.toHtml&&(b.name=b.name.replace(M,"$1"));if(c.doCallbacks&&a.elementCallbacks){a:{h=a.elementCallbacks;for(var k=0,t=h.length,m;k<t;++k)if(m=h[k](b)){h=m;break a}h=void 0}if(h)return h}if(c.doTransform&&(h=a._.transformations[b.name])){r(b);for(k=0;k<h.length;++k)w(a,b,h[k]);n(b)}if(c.doFilter){a:{k=
-b.name;t=a._;a=t.allowedRules.elements[k];h=t.allowedRules.generic;k=t.disallowedRules.elements[k];t=t.disallowedRules.generic;m=c.skipRequired;var p={valid:!1,validAttributes:{},validClasses:{},validStyles:{},allAttributes:!1,allClasses:!1,allStyles:!1,hadInvalidAttribute:!1,hadInvalidClass:!1,hadInvalidStyle:!1},l,A;if(a||h){r(b);if(k)for(l=0,A=k.length;l<A;++l)if(!1===e(k[l],b,p)){a=null;break a}if(t)for(l=0,A=t.length;l<A;++l)e(t[l],b,p);if(a)for(l=0,A=a.length;l<A;++l)f(a[l],b,p,m);if(h)for(l=
-0,A=h.length;l<A;++l)f(h[l],b,p,m);a=p}else a=null}if(!a||!a.valid)return d.push(b),1;A=a.validAttributes;var D=a.validStyles;h=a.validClasses;var k=b.attributes,x=b.styles,t=b.classes;m=b.classBackup;var u=b.styleBackup,I,B,O=[],p=[],v=/^data-cke-/;l=!1;delete k.style;delete k["class"];delete b.classBackup;delete b.styleBackup;if(!a.allAttributes)for(I in k)A[I]||(v.test(I)?I==(B=I.replace(/^data-cke-saved-/,""))||A[B]||(delete k[I],l=!0):(delete k[I],l=!0));if(!a.allStyles||a.hadInvalidStyle){for(I in x)a.allStyles||
-D[I]?O.push(I+":"+x[I]):l=!0;O.length&&(k.style=O.sort().join("; "))}else u&&(k.style=u);if(!a.allClasses||a.hadInvalidClass){for(I=0;I<t.length;++I)(a.allClasses||h[t[I]])&&p.push(t[I]);p.length&&(k["class"]=p.sort().join(" "));m&&p.length<m.split(/\s+/).length&&(l=!0)}else m&&(k["class"]=m);l&&(g=1);if(!c.skipFinalValidation&&!q(b))return d.push(b),1}c.toHtml&&(b.name=b.name.replace(Q,"cke:$1"));return g}function u(a){var b=[],d;for(d in a)-1<d.indexOf("*")&&b.push(d.replace(/\*/g,".*"));return b.length?
-new RegExp("^(?:"+b.join("|")+")$"):null}function n(a){var b=a.attributes,d;delete b.style;delete b["class"];if(d=CKEDITOR.tools.writeCssText(a.styles,!0))b.style=d;a.classes.length&&(b["class"]=a.classes.sort().join(" "))}function q(a){switch(a.name){case "a":if(!(a.children.length||a.attributes.name||a.attributes.id))return!1;break;case "img":if(!a.attributes.src)return!1}return!0}function x(a){if(!a)return!1;if(!0===a)return!0;var b=u(a);return function(d){return d in a||b&&d.match(b)}}function z(){return new CKEDITOR.htmlParser.element("br")}
-function A(a){return a.type==CKEDITOR.NODE_ELEMENT&&("br"==a.name||F.$block[a.name])}function t(a,b,d){var c=a.name;if(F.$empty[c]||!a.children.length)"hr"==c&&"br"==b?a.replaceWith(z()):(a.parent&&d.push({check:"it",el:a.parent}),a.remove());else if(F.$block[c]||"tr"==c)if("br"==b)a.previous&&!A(a.previous)&&(b=z(),b.insertBefore(a)),a.next&&!A(a.next)&&(b=z(),b.insertAfter(a)),a.replaceWithChildren();else{var c=a.children,g;b:{g=F[b];for(var e=0,h=c.length,f;e<h;++e)if(f=c[e],f.type==CKEDITOR.NODE_ELEMENT&&
-!g[f.name]){g=!1;break b}g=!0}if(g)a.name=b,a.attributes={},d.push({check:"parent-down",el:a});else{g=a.parent;for(var e=g.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==g.name,k,n,h=c.length;0<h;)f=c[--h],e&&(f.type==CKEDITOR.NODE_TEXT||f.type==CKEDITOR.NODE_ELEMENT&&F.$inline[f.name])?(k||(k=new CKEDITOR.htmlParser.element(b),k.insertAfter(a),d.push({check:"parent-down",el:k})),k.add(f,0)):(k=null,n=F[g.name]||F.span,f.insertAfter(a),g.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||f.type!=CKEDITOR.NODE_ELEMENT||
-n[f.name]||d.push({check:"el-up",el:f}));a.remove()}}else c in{style:1,script:1}?a.remove():(a.parent&&d.push({check:"it",el:a.parent}),a.replaceWithChildren())}function w(a,b,d){var c,g;for(c=0;c<d.length;++c)if(g=d[c],!(g.check&&!a.check(g.check,!1)||g.left&&!g.left(b))){g.right(b,P);break}}function D(a,b){var d=b.getDefinition(),c=d.attributes,g=d.styles,e,h,f,k;if(a.name!=d.element)return!1;for(e in c)if("class"==e)for(d=c[e].split(/\s+/),f=a.classes.join("|");k=d.pop();){if(-1==f.indexOf(k))return!1}else if(a.attributes[e]!=
-c[e])return!1;for(h in g)if(a.styles[h]!=g[h])return!1;return!0}function B(a,b){var d,c;"string"==typeof a?d=a:a instanceof CKEDITOR.style?c=a:(d=a[0],c=a[1]);return[{element:d,left:c,right:function(a,d){d.transform(a,b)}}]}function y(a){return function(b){return D(b,a)}}function C(a){return function(b,d){d[a](b)}}var F=CKEDITOR.dtd,E=CKEDITOR.tools.copy,L=CKEDITOR.tools.trim,G=["","p","br","div"];CKEDITOR.FILTER_SKIP_TREE=2;CKEDITOR.filter=function(a){this.allowedContent=[];this.disallowedContent=
-[];this.elementCallbacks=null;this.disabled=!1;this.editor=null;this.id=CKEDITOR.tools.getNextNumber();this._={allowedRules:{elements:{},generic:[]},disallowedRules:{elements:{},generic:[]},transformations:{},cachedTests:{}};CKEDITOR.filter.instances[this.id]=this;if(a instanceof CKEDITOR.editor){a=this.editor=a;this.customConfig=!0;var b=a.config.allowedContent;!0===b?this.disabled=!0:(b||(this.customConfig=!1),this.allow(b,"config",1),this.allow(a.config.extraAllowedContent,"extra",1),this.allow(G[a.enterMode]+
-" "+G[a.shiftEnterMode],"default",1),this.disallow(a.config.disallowedContent))}else this.customConfig=!1,this.allow(a,"default",1)};CKEDITOR.filter.instances={};CKEDITOR.filter.prototype={allow:function(b,d,c){if(!m(this,b,c))return!1;var e,h;if("string"==typeof b)b=g(b);else if(b instanceof CKEDITOR.style){if(b.toAllowedContentRules)return this.allow(b.toAllowedContentRules(this.editor),d,c);e=b.getDefinition();b={};c=e.attributes;b[e.element]=e={styles:e.styles,requiredStyles:e.styles&&CKEDITOR.tools.objectKeys(e.styles)};
+typeof c){if(!(c in a))return!1}else if(!CKEDITOR.tools.checkIfAnyObjectPropertyMatches(a,c))return!1;return!0}function d(a){if(!a)return{};a=a.split(/\s*,\s*/).sort();for(var b={};a.length;)b[a.shift()]="cke-test";return b}function g(a){var b,d,c,g,e={},h=1;for(a=J(a);b=a.match(P);)(d=b[2])?(c=p(d,"styles"),g=p(d,"attrs"),d=p(d,"classes")):c=g=d=null,e["$"+h++]={elements:b[1],classes:d,styles:c,attributes:g},a=a.slice(b[0].length);return e}function p(a,b){var d=a.match(R[b]);return d?J(d[1]):null}
+function u(a){var b=a.styleBackup=a.attributes.style,d=a.classBackup=a.attributes["class"];a.styles||(a.styles=CKEDITOR.tools.parseCssText(b||"",1));a.classes||(a.classes=d?d.split(/\s+/):[])}function v(a,b,d,c){var g=0,h;c.toHtml&&(b.name=b.name.replace(L,"$1"));if(c.doCallbacks&&a.elementCallbacks){a:{h=a.elementCallbacks;for(var k=0,t=h.length,m;k<t;++k)if(m=h[k](b)){h=m;break a}h=void 0}if(h)return h}if(c.doTransform&&(h=a._.transformations[b.name])){u(b);for(k=0;k<h.length;++k)x(a,b,h[k]);n(b)}if(c.doFilter){a:{k=
+b.name;t=a._;a=t.allowedRules.elements[k];h=t.allowedRules.generic;k=t.disallowedRules.elements[k];t=t.disallowedRules.generic;m=c.skipRequired;var p={valid:!1,validAttributes:{},validClasses:{},validStyles:{},allAttributes:!1,allClasses:!1,allStyles:!1,hadInvalidAttribute:!1,hadInvalidClass:!1,hadInvalidStyle:!1},l,F;if(a||h){u(b);if(k)for(l=0,F=k.length;l<F;++l)if(!1===e(k[l],b,p)){a=null;break a}if(t)for(l=0,F=t.length;l<F;++l)e(t[l],b,p);if(a)for(l=0,F=a.length;l<F;++l)f(a[l],b,p,m);if(h)for(l=
+0,F=h.length;l<F;++l)f(h[l],b,p,m);a=p}else a=null}if(!a||!a.valid)return d.push(b),1;F=a.validAttributes;var B=a.validStyles;h=a.validClasses;var k=b.attributes,D=b.styles,t=b.classes;m=b.classBackup;var w=b.styleBackup,r,z,y=[],p=[],v=/^data-cke-/;l=!1;delete k.style;delete k["class"];delete b.classBackup;delete b.styleBackup;if(!a.allAttributes)for(r in k)F[r]||(v.test(r)?r==(z=r.replace(/^data-cke-saved-/,""))||F[z]||(delete k[r],l=!0):(delete k[r],l=!0));if(!a.allStyles||a.hadInvalidStyle){for(r in D)a.allStyles||
+B[r]?y.push(r+":"+D[r]):l=!0;y.length&&(k.style=y.sort().join("; "))}else w&&(k.style=w);if(!a.allClasses||a.hadInvalidClass){for(r=0;r<t.length;++r)(a.allClasses||h[t[r]])&&p.push(t[r]);p.length&&(k["class"]=p.sort().join(" "));m&&p.length<m.split(/\s+/).length&&(l=!0)}else m&&(k["class"]=m);l&&(g=1);if(!c.skipFinalValidation&&!q(b))return d.push(b),1}c.toHtml&&(b.name=b.name.replace(Q,"cke:$1"));return g}function r(a){var b=[],d;for(d in a)-1<d.indexOf("*")&&b.push(d.replace(/\*/g,".*"));return b.length?
+new RegExp("^(?:"+b.join("|")+")$"):null}function n(a){var b=a.attributes,d;delete b.style;delete b["class"];if(d=CKEDITOR.tools.writeCssText(a.styles,!0))b.style=d;a.classes.length&&(b["class"]=a.classes.sort().join(" "))}function q(a){switch(a.name){case "a":if(!(a.children.length||a.attributes.name||a.attributes.id))return!1;break;case "img":if(!a.attributes.src)return!1}return!0}function w(a){if(!a)return!1;if(!0===a)return!0;var b=r(a);return function(d){return d in a||b&&d.match(b)}}function A(){return new CKEDITOR.htmlParser.element("br")}
+function B(a){return a.type==CKEDITOR.NODE_ELEMENT&&("br"==a.name||G.$block[a.name])}function t(a,b,d){var c=a.name;if(G.$empty[c]||!a.children.length)"hr"==c&&"br"==b?a.replaceWith(A()):(a.parent&&d.push({check:"it",el:a.parent}),a.remove());else if(G.$block[c]||"tr"==c)if("br"==b)a.previous&&!B(a.previous)&&(b=A(),b.insertBefore(a)),a.next&&!B(a.next)&&(b=A(),b.insertAfter(a)),a.replaceWithChildren();else{var c=a.children,g;b:{g=G[b];for(var e=0,h=c.length,f;e<h;++e)if(f=c[e],f.type==CKEDITOR.NODE_ELEMENT&&
+!g[f.name]){g=!1;break b}g=!0}if(g)a.name=b,a.attributes={},d.push({check:"parent-down",el:a});else{g=a.parent;for(var e=g.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==g.name,k,n,h=c.length;0<h;)f=c[--h],e&&(f.type==CKEDITOR.NODE_TEXT||f.type==CKEDITOR.NODE_ELEMENT&&G.$inline[f.name])?(k||(k=new CKEDITOR.htmlParser.element(b),k.insertAfter(a),d.push({check:"parent-down",el:k})),k.add(f,0)):(k=null,n=G[g.name]||G.span,f.insertAfter(a),g.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||f.type!=CKEDITOR.NODE_ELEMENT||
+n[f.name]||d.push({check:"el-up",el:f}));a.remove()}}else c in{style:1,script:1}?a.remove():(a.parent&&d.push({check:"it",el:a.parent}),a.replaceWithChildren())}function x(a,b,d){var c,g;for(c=0;c<d.length;++c)if(g=d[c],!(g.check&&!a.check(g.check,!1)||g.left&&!g.left(b))){g.right(b,O);break}}function D(a,b){var d=b.getDefinition(),c=d.attributes,g=d.styles,e,h,f,k;if(a.name!=d.element)return!1;for(e in c)if("class"==e)for(d=c[e].split(/\s+/),f=a.classes.join("|");k=d.pop();){if(-1==f.indexOf(k))return!1}else if(a.attributes[e]!=
+c[e])return!1;for(h in g)if(a.styles[h]!=g[h])return!1;return!0}function y(a,b){var d,c;"string"==typeof a?d=a:a instanceof CKEDITOR.style?c=a:(d=a[0],c=a[1]);return[{element:d,left:c,right:function(a,d){d.transform(a,b)}}]}function z(a){return function(b){return D(b,a)}}function C(a){return function(b,d){d[a](b)}}var G=CKEDITOR.dtd,E=CKEDITOR.tools.copy,J=CKEDITOR.tools.trim,I=["","p","br","div"];CKEDITOR.FILTER_SKIP_TREE=2;CKEDITOR.filter=function(a){this.allowedContent=[];this.disallowedContent=
+[];this.elementCallbacks=null;this.disabled=!1;this.editor=null;this.id=CKEDITOR.tools.getNextNumber();this._={allowedRules:{elements:{},generic:[]},disallowedRules:{elements:{},generic:[]},transformations:{},cachedTests:{}};CKEDITOR.filter.instances[this.id]=this;if(a instanceof CKEDITOR.editor){a=this.editor=a;this.customConfig=!0;var b=a.config.allowedContent;!0===b?this.disabled=!0:(b||(this.customConfig=!1),this.allow(b,"config",1),this.allow(a.config.extraAllowedContent,"extra",1),this.allow(I[a.enterMode]+
+" "+I[a.shiftEnterMode],"default",1),this.disallow(a.config.disallowedContent))}else this.customConfig=!1,this.allow(a,"default",1)};CKEDITOR.filter.instances={};CKEDITOR.filter.prototype={allow:function(b,d,c){if(!m(this,b,c))return!1;var e,h;if("string"==typeof b)b=g(b);else if(b instanceof CKEDITOR.style){if(b.toAllowedContentRules)return this.allow(b.toAllowedContentRules(this.editor),d,c);e=b.getDefinition();b={};c=e.attributes;b[e.element]=e={styles:e.styles,requiredStyles:e.styles&&CKEDITOR.tools.objectKeys(e.styles)};
 c&&(c=E(c),e.classes=c["class"]?c["class"].split(/\s+/):null,e.requiredClasses=e.classes,delete c["class"],e.attributes=c,e.requiredAttributes=c&&CKEDITOR.tools.objectKeys(c))}else if(CKEDITOR.tools.isArray(b)){for(e=0;e<b.length;++e)h=this.allow(b[e],d,c);return h}a(this,b,d,this.allowedContent,this._.allowedRules);return!0},applyTo:function(a,b,d,c){if(this.disabled)return!1;var g=this,e=[],h=this.editor&&this.editor.config.protectedSource,f,k=!1,n={doFilter:!d,doTransform:!0,doCallbacks:!0,toHtml:b};
 a.forEach(function(a){if(a.type==CKEDITOR.NODE_ELEMENT){if("off"==a.attributes["data-cke-filter"])return!1;if(!b||"span"!=a.name||!~CKEDITOR.tools.objectKeys(a.attributes).join("|").indexOf("data-cke-"))if(f=v(g,a,e,n),f&1)k=!0;else if(f&2)return!1}else if(a.type==CKEDITOR.NODE_COMMENT&&a.value.match(/^\{cke_protected\}(?!\{C\})/)){var d;a:{var c=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));d=[];var t,m,p;if(h)for(m=0;m<h.length;++m)if((p=c.match(h[m]))&&p[0].length==c.length){d=!0;
-break a}c=CKEDITOR.htmlParser.fragment.fromHtml(c);1==c.children.length&&(t=c.children[0]).type==CKEDITOR.NODE_ELEMENT&&v(g,t,d,n);d=!d.length}d||e.push(a)}},null,!0);e.length&&(k=!0);var m;a=[];c=G[c||(this.editor?this.editor.enterMode:CKEDITOR.ENTER_P)];for(var p;d=e.pop();)d.type==CKEDITOR.NODE_ELEMENT?t(d,c,a):d.remove();for(;m=a.pop();)if(d=m.el,d.parent)switch(p=F[d.parent.name]||F.span,m.check){case "it":F.$removeEmpty[d.name]&&!d.children.length?t(d,c,a):q(d)||t(d,c,a);break;case "el-up":d.parent.type==
+break a}c=CKEDITOR.htmlParser.fragment.fromHtml(c);1==c.children.length&&(t=c.children[0]).type==CKEDITOR.NODE_ELEMENT&&v(g,t,d,n);d=!d.length}d||e.push(a)}},null,!0);e.length&&(k=!0);var m;a=[];c=I[c||(this.editor?this.editor.enterMode:CKEDITOR.ENTER_P)];for(var p;d=e.pop();)d.type==CKEDITOR.NODE_ELEMENT?t(d,c,a):d.remove();for(;m=a.pop();)if(d=m.el,d.parent)switch(p=G[d.parent.name]||G.span,m.check){case "it":G.$removeEmpty[d.name]&&!d.children.length?t(d,c,a):q(d)||t(d,c,a);break;case "el-up":d.parent.type==
 CKEDITOR.NODE_DOCUMENT_FRAGMENT||p[d.name]||t(d,c,a);break;case "parent-down":d.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||p[d.name]||t(d.parent,c,a)}return k},checkFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));return!a.requiredContent||this.check(a.requiredContent)},disable:function(){this.disabled=!0},disallow:function(b){if(!m(this,b,!0))return!1;"string"==typeof b&&(b=g(b));a(this,b,null,this.disallowedContent,this._.disallowedRules);return!0},
-addContentForms:function(a){if(!this.disabled&&a){var b,d,c=[],g;for(b=0;b<a.length&&!g;++b)d=a[b],("string"==typeof d||d instanceof CKEDITOR.style)&&this.check(d)&&(g=d);if(g){for(b=0;b<a.length;++b)c.push(B(a[b],g));this.addTransformations(c)}}},addElementCallback:function(a){this.elementCallbacks||(this.elementCallbacks=[]);this.elementCallbacks.push(a)},addFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations);
+addContentForms:function(a){if(!this.disabled&&a){var b,d,c=[],g;for(b=0;b<a.length&&!g;++b)d=a[b],("string"==typeof d||d instanceof CKEDITOR.style)&&this.check(d)&&(g=d);if(g){for(b=0;b<a.length;++b)c.push(y(a[b],g));this.addTransformations(c)}}},addElementCallback:function(a){this.elementCallbacks||(this.elementCallbacks=[]);this.elementCallbacks.push(a)},addFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations);
 this.addContentForms(a.contentForms);return a.requiredContent&&(this.customConfig||this.disallowedContent.length)?this.check(a.requiredContent):!0},addTransformations:function(a){var b,d;if(!this.disabled&&a){var c=this._.transformations,g;for(g=0;g<a.length;++g){b=a[g];var e=void 0,h=void 0,f=void 0,k=void 0,n=void 0,t=void 0;d=[];for(h=0;h<b.length;++h)f=b[h],"string"==typeof f?(f=f.split(/\s*:\s*/),k=f[0],n=null,t=f[1]):(k=f.check,n=f.left,t=f.right),e||(e=f,e=e.element?e.element:k?k.match(/^([a-z0-9]+)/i)[0]:
-e.left.getDefinition().element),n instanceof CKEDITOR.style&&(n=y(n)),d.push({check:k==e?null:k,left:n,right:"string"==typeof t?C(t):t});b=e;c[b]||(c[b]=[]);c[b].push(d)}}},check:function(a,b,c){if(this.disabled)return!0;if(CKEDITOR.tools.isArray(a)){for(var e=a.length;e--;)if(this.check(a[e],b,c))return!0;return!1}var h,f;if("string"==typeof a){f=a+"\x3c"+(!1===b?"0":"1")+(c?"1":"0")+"\x3e";if(f in this._.cachedChecks)return this._.cachedChecks[f];e=g(a).$1;h=e.styles;var k=e.classes;e.name=e.elements;
-e.classes=k=k?k.split(/\s*,\s*/):[];e.styles=d(h);e.attributes=d(e.attributes);e.children=[];k.length&&(e.attributes["class"]=k.join(" "));h&&(e.attributes.style=CKEDITOR.tools.writeCssText(e.styles));h=e}else e=a.getDefinition(),h=e.styles,k=e.attributes||{},h&&!CKEDITOR.tools.isEmpty(h)?(h=E(h),k.style=CKEDITOR.tools.writeCssText(h,!0)):h={},h={name:e.element,attributes:k,classes:k["class"]?k["class"].split(/\s+/):[],styles:h,children:[]};var k=CKEDITOR.tools.clone(h),t=[],m;if(!1!==b&&(m=this._.transformations[h.name])){for(e=
-0;e<m.length;++e)w(this,h,m[e]);n(h)}v(this,k,t,{doFilter:!0,doTransform:!1!==b,skipRequired:!c,skipFinalValidation:!c});b=0<t.length?!1:CKEDITOR.tools.objectCompare(h.attributes,k.attributes,!0)?!0:!1;"string"==typeof a&&(this._.cachedChecks[f]=b);return b},getAllowedEnterMode:function(){var a=["p","div","br"],b={p:CKEDITOR.ENTER_P,div:CKEDITOR.ENTER_DIV,br:CKEDITOR.ENTER_BR};return function(d,c){var g=a.slice(),e;if(this.check(G[d]))return d;for(c||(g=g.reverse());e=g.pop();)if(this.check(e))return b[e];
-return CKEDITOR.ENTER_BR}}(),destroy:function(){delete CKEDITOR.filter.instances[this.id];delete this._;delete this.allowedContent;delete this.disallowedContent}};var N={styles:1,attributes:1,classes:1},O={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},I=/^([a-z0-9\-*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,R={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},M=/^cke:(object|embed|param)$/,
-Q=/^(object|embed|param)$/,P;P=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,"height")},sizeToAttribute:function(a){this.lengthToAttribute(a,"width");this.lengthToAttribute(a,"height")},lengthToStyle:function(a,b,d){d=d||b;if(!(d in a.styles)){var c=a.attributes[b];c&&(/^\d+$/.test(c)&&(c+="px"),a.styles[d]=c)}delete a.attributes[b]},lengthToAttribute:function(a,b,d){d=d||b;if(!(d in a.attributes)){var c=a.styles[b],g=c&&c.match(/^(\d+)(?:\.\d*)?px$/);
+e.left.getDefinition().element),n instanceof CKEDITOR.style&&(n=z(n)),d.push({check:k==e?null:k,left:n,right:"string"==typeof t?C(t):t});b=e;c[b]||(c[b]=[]);c[b].push(d)}}},check:function(a,b,c){if(this.disabled)return!0;if(CKEDITOR.tools.isArray(a)){for(var e=a.length;e--;)if(this.check(a[e],b,c))return!0;return!1}var h,f;if("string"==typeof a){f=a+"\x3c"+(!1===b?"0":"1")+(c?"1":"0")+"\x3e";if(f in this._.cachedChecks)return this._.cachedChecks[f];e=g(a).$1;h=e.styles;var k=e.classes;e.name=e.elements;
+e.classes=k=k?k.split(/\s*,\s*/):[];e.styles=d(h);e.attributes=d(e.attributes);e.children=[];k.length&&(e.attributes["class"]=k.join(" "));h&&(e.attributes.style=CKEDITOR.tools.writeCssText(e.styles));h=e}else e=a.getDefinition(),h=e.styles,k=e.attributes||{},h?(h=E(h),k.style=CKEDITOR.tools.writeCssText(h,!0)):h={},h={name:e.element,attributes:k,classes:k["class"]?k["class"].split(/\s+/):[],styles:h,children:[]};var k=CKEDITOR.tools.clone(h),t=[],m;if(!1!==b&&(m=this._.transformations[h.name])){for(e=
+0;e<m.length;++e)x(this,h,m[e]);n(h)}v(this,k,t,{doFilter:!0,doTransform:!1!==b,skipRequired:!c,skipFinalValidation:!c});b=0<t.length?!1:CKEDITOR.tools.objectCompare(h.attributes,k.attributes,!0)?!0:!1;"string"==typeof a&&(this._.cachedChecks[f]=b);return b},getAllowedEnterMode:function(){var a=["p","div","br"],b={p:CKEDITOR.ENTER_P,div:CKEDITOR.ENTER_DIV,br:CKEDITOR.ENTER_BR};return function(d,c){var g=a.slice(),e;if(this.check(I[d]))return d;for(c||(g=g.reverse());e=g.pop();)if(this.check(e))return b[e];
+return CKEDITOR.ENTER_BR}}(),destroy:function(){delete CKEDITOR.filter.instances[this.id];delete this._;delete this.allowedContent;delete this.disallowedContent}};var N={styles:1,attributes:1,classes:1},F={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},P=/^([a-z0-9\-*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,R={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},L=/^cke:(object|embed|param)$/,
+Q=/^(object|embed|param)$/,O=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,"height")},sizeToAttribute:function(a){this.lengthToAttribute(a,"width");this.lengthToAttribute(a,"height")},lengthToStyle:function(a,b,d){d=d||b;if(!(d in a.styles)){var c=a.attributes[b];c&&(/^\d+$/.test(c)&&(c+="px"),a.styles[d]=c)}delete a.attributes[b]},lengthToAttribute:function(a,b,d){d=d||b;if(!(d in a.attributes)){var c=a.styles[b],g=c&&c.match(/^(\d+)(?:\.\d*)?px$/);
 g?a.attributes[d]=g[1]:"cke-test"==c&&(a.attributes[d]="cke-test")}delete a.styles[b]},alignmentToStyle:function(a){if(!("float"in a.styles)){var b=a.attributes.align;if("left"==b||"right"==b)a.styles["float"]=b}delete a.attributes.align},alignmentToAttribute:function(a){if(!("align"in a.attributes)){var b=a.styles["float"];if("left"==b||"right"==b)a.attributes.align=b}delete a.styles["float"]},matchesStyle:D,transform:function(a,b){if("string"==typeof b)a.name=b;else{var d=b.getDefinition(),c=d.styles,
 g=d.attributes,e,h,f,k;a.name=d.element;for(e in g)if("class"==e)for(d=a.classes.join("|"),f=g[e].split(/\s+/);k=f.pop();)-1==d.indexOf(k)&&a.classes.push(k);else a.attributes[e]=g[e];for(h in c)a.styles[h]=c[h]}}}}(),function(){CKEDITOR.focusManager=function(a){if(a.focusManager)return a.focusManager;this.hasFocus=!1;this.currentActive=null;this._={editor:a};return this};CKEDITOR.focusManager._={blurDelay:200};CKEDITOR.focusManager.prototype={focus:function(a){this._.timer&&clearTimeout(this._.timer);
 a&&(this.currentActive=a);this.hasFocus||this._.locked||((a=CKEDITOR.currentInstance)&&a.focusManager.blur(1),this.hasFocus=!0,(a=this._.editor.container)&&a.addClass("cke_focus"),this._.editor.fire("focus"))},lock:function(){this._.locked=1},unlock:function(){delete this._.locked},blur:function(a){function f(){if(this.hasFocus){this.hasFocus=!1;var a=this._.editor.container;a&&a.removeClass("cke_focus");this._.editor.fire("blur")}}if(!this._.locked){this._.timer&&clearTimeout(this._.timer);var c=
@@ -214,33 +213,33 @@ CKEDITOR.focusManager._.blurDelay;a||!c?f.call(this):this._.timer=CKEDITOR.tools
 l=this._.editor;a=!1===l.fire("key",{keyCode:h,domEvent:c});a||(f&&(a=!1!==l.execCommand(f,{from:"keystrokeHandler"})),a||(a=!!this.blockedKeystrokes[h]));a&&c.preventDefault(!0);return!a},c=function(c){a&&(a=!1,c.data.preventDefault(!0))};CKEDITOR.keystrokeHandler.prototype={attach:function(a){a.on("keydown",f,this);if(CKEDITOR.env.gecko&&CKEDITOR.env.mac)a.on("keypress",c,this)}}}(),function(){CKEDITOR.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,"en-au":1,"en-ca":1,
 "en-gb":1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,"fr-ca":1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,"pt-br":1,pt:1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,"sr-latn":1,sr:1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,"zh-cn":1,zh:1},rtl:{ar:1,fa:1,he:1,ku:1,ug:1},load:function(a,f,c){a&&CKEDITOR.lang.languages[a]||(a=this.detect(f,a));var e=this;f=function(){e[a].dir=e.rtl[a]?"rtl":"ltr";c(a,e[a])};this[a]?f():CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+
 a+".js"),f,this)},detect:function(a,f){var c=this.languages;f=f||navigator.userLanguage||navigator.language||a;var e=f.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),h=e[1],e=e[2];c[h+"-"+e]?h=h+"-"+e:c[h]||(h=null);CKEDITOR.lang.detect=h?function(){return h}:function(a){return a};return h||a}}}(),CKEDITOR.scriptLoader=function(){var a={},f={};return{load:function(c,e,h,m){var l="string"==typeof c;l&&(c=[c]);h||(h=CKEDITOR);var k=c.length,b=[],d=[],g=function(a){e&&(l?e.call(h,a):e.call(h,b,d))};if(0===
-k)g(!0);else{var p=function(a,c){(c?b:d).push(a);0>=--k&&(m&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),g(c))},r=function(b,d){a[b]=1;var c=f[b];delete f[b];for(var g=0;g<c.length;g++)c[g](b,d)},v=function(b){if(a[b])p(b,!0);else{var d=f[b]||(f[b]=[]);d.push(p);if(!(1<d.length)){var c=new CKEDITOR.dom.element("script");c.setAttributes({type:"text/javascript",src:b});e&&(CKEDITOR.env.ie&&8>=CKEDITOR.env.version?c.$.onreadystatechange=function(){if("loaded"==c.$.readyState||"complete"==
-c.$.readyState)c.$.onreadystatechange=null,r(b,!0)}:(c.$.onload=function(){setTimeout(function(){r(b,!0)},0)},c.$.onerror=function(){r(b,!1)}));c.appendTo(CKEDITOR.document.getHead())}}};m&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var u=0;u<k;u++)v(c[u])}},queue:function(){function a(){var c;(c=e[0])&&this.load(c.scriptUrl,c.callback,CKEDITOR,0)}var e=[];return function(h,f){var l=this;e.push({scriptUrl:h,callback:function(){f&&f.apply(this,arguments);e.shift();a.call(l)}});
+k)g(!0);else{var p=function(a,c){(c?b:d).push(a);0>=--k&&(m&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),g(c))},u=function(b,d){a[b]=1;var c=f[b];delete f[b];for(var g=0;g<c.length;g++)c[g](b,d)},v=function(b){if(a[b])p(b,!0);else{var d=f[b]||(f[b]=[]);d.push(p);if(!(1<d.length)){var c=new CKEDITOR.dom.element("script");c.setAttributes({type:"text/javascript",src:b});e&&(CKEDITOR.env.ie&&11>CKEDITOR.env.version?c.$.onreadystatechange=function(){if("loaded"==c.$.readyState||"complete"==
+c.$.readyState)c.$.onreadystatechange=null,u(b,!0)}:(c.$.onload=function(){setTimeout(function(){u(b,!0)},0)},c.$.onerror=function(){u(b,!1)}));c.appendTo(CKEDITOR.document.getHead())}}};m&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var r=0;r<k;r++)v(c[r])}},queue:function(){function a(){var c;(c=e[0])&&this.load(c.scriptUrl,c.callback,CKEDITOR,0)}var e=[];return function(h,f){var l=this;e.push({scriptUrl:h,callback:function(){f&&f.apply(this,arguments);e.shift();a.call(l)}});
 1==e.length&&a.call(this)}}()}}(),CKEDITOR.resourceManager=function(a,f){this.basePath=a;this.fileName=f;this.registered={};this.loaded={};this.externals={};this._={waitingList:{}}},CKEDITOR.resourceManager.prototype={add:function(a,f){if(this.registered[a])throw Error('[CKEDITOR.resourceManager.add] The resource name "'+a+'" is already registered.');var c=this.registered[a]=f||{};c.name=a;c.path=this.getPath(a);CKEDITOR.fire(a+CKEDITOR.tools.capitalize(this.fileName)+"Ready",c);return this.get(a)},
 get:function(a){return this.registered[a]||null},getPath:function(a){var f=this.externals[a];return CKEDITOR.getUrl(f&&f.dir||this.basePath+a+"/")},getFilePath:function(a){var f=this.externals[a];return CKEDITOR.getUrl(this.getPath(a)+(f?f.file:this.fileName+".js"))},addExternal:function(a,f,c){a=a.split(",");for(var e=0;e<a.length;e++){var h=a[e];c||(f=f.replace(/[^\/]+$/,function(a){c=a;return""}));this.externals[h]={dir:f,file:c||this.fileName+".js"}}},load:function(a,f,c){CKEDITOR.tools.isArray(a)||
 (a=a?[a]:[]);for(var e=this.loaded,h=this.registered,m=[],l={},k={},b=0;b<a.length;b++){var d=a[b];if(d)if(e[d]||h[d])k[d]=this.get(d);else{var g=this.getFilePath(d);m.push(g);g in l||(l[g]=[]);l[g].push(d)}}CKEDITOR.scriptLoader.load(m,function(a,b){if(b.length)throw Error('[CKEDITOR.resourceManager.load] Resource name "'+l[b[0]].join(",")+'" was not found at "'+b[0]+'".');for(var d=0;d<a.length;d++)for(var g=l[a[d]],h=0;h<g.length;h++){var m=g[h];k[m]=this.get(m);e[m]=1}f.call(c,k)},this)}},CKEDITOR.plugins=
-new CKEDITOR.resourceManager("plugins/","plugin"),CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(a){var f={};return function(c,e,h){var m={},l=function(c){a.call(this,c,function(a){CKEDITOR.tools.extend(m,a);var d=[],c;for(c in a){var k=a[c],r=k&&k.requires;if(!f[c]){if(k.icons)for(var v=k.icons.split(","),u=v.length;u--;)CKEDITOR.skin.addIcon(v[u],k.path+"icons/"+(CKEDITOR.env.hidpi&&k.hidpi?"hidpi/":"")+v[u]+".png");f[c]=1}if(r)for(r.split&&(r=r.split(",")),k=0;k<r.length;k++)m[r[k]]||
-d.push(r[k])}if(d.length)l.call(this,d);else{for(c in m)k=m[c],k.onLoad&&!k.onLoad._called&&(!1===k.onLoad()&&delete m[c],k.onLoad._called=1);e&&e.call(h||window,m)}},this)};l.call(this,c)}}),CKEDITOR.plugins.setLang=function(a,f,c){var e=this.get(a);a=e.langEntries||(e.langEntries={});e=e.lang||(e.lang=[]);e.split&&(e=e.split(","));-1==CKEDITOR.tools.indexOf(e,f)&&e.push(f);a[f]=c},CKEDITOR.ui=function(a){if(a.ui)return a.ui;this.items={};this.instances={};this.editor=a;this._={handlers:{}};return this},
+new CKEDITOR.resourceManager("plugins/","plugin"),CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(a){var f={};return function(c,e,h){var m={},l=function(c){a.call(this,c,function(a){CKEDITOR.tools.extend(m,a);var d=[],c;for(c in a){var k=a[c],u=k&&k.requires;if(!f[c]){if(k.icons)for(var v=k.icons.split(","),r=v.length;r--;)CKEDITOR.skin.addIcon(v[r],k.path+"icons/"+(CKEDITOR.env.hidpi&&k.hidpi?"hidpi/":"")+v[r]+".png");f[c]=1}if(u)for(u.split&&(u=u.split(",")),k=0;k<u.length;k++)m[u[k]]||
+d.push(u[k])}if(d.length)l.call(this,d);else{for(c in m)k=m[c],k.onLoad&&!k.onLoad._called&&(!1===k.onLoad()&&delete m[c],k.onLoad._called=1);e&&e.call(h||window,m)}},this)};l.call(this,c)}}),CKEDITOR.plugins.setLang=function(a,f,c){var e=this.get(a);a=e.langEntries||(e.langEntries={});e=e.lang||(e.lang=[]);e.split&&(e=e.split(","));-1==CKEDITOR.tools.indexOf(e,f)&&e.push(f);a[f]=c},CKEDITOR.ui=function(a){if(a.ui)return a.ui;this.items={};this.instances={};this.editor=a;this._={handlers:{}};return this},
 CKEDITOR.ui.prototype={add:function(a,f,c){c.name=a.toLowerCase();var e=this.items[a]={type:f,command:c.command||null,args:Array.prototype.slice.call(arguments,2)};CKEDITOR.tools.extend(e,c)},get:function(a){return this.instances[a]},create:function(a){var f=this.items[a],c=f&&this._.handlers[f.type],e=f&&f.command&&this.editor.getCommand(f.command),c=c&&c.create.apply(this,f.args);this.instances[a]=c;e&&e.uiItems.push(c);c&&!c.type&&(c.type=f.type);return c},addHandler:function(a,f){this._.handlers[a]=
 f},space:function(a){return CKEDITOR.document.getById(this.spaceId(a))},spaceId:function(a){return this.editor.id+"_"+a}},CKEDITOR.event.implementOn(CKEDITOR.ui),function(){function a(a,b,d){CKEDITOR.event.call(this);a=a&&CKEDITOR.tools.clone(a);if(void 0!==b){if(!(b instanceof CKEDITOR.dom.element))throw Error("Expect element of type CKEDITOR.dom.element.");if(!d)throw Error("One of the element modes must be specified.");if(CKEDITOR.env.ie&&CKEDITOR.env.quirks&&d==CKEDITOR.ELEMENT_MODE_INLINE)throw Error("Inline element mode is not supported on IE quirks.");
 if(!c(b,d))throw Error('The specified element mode is not supported on element: "'+b.getName()+'".');this.element=b;this.elementMode=d;this.name=this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO&&(b.getId()||b.getNameAtt())}else this.elementMode=CKEDITOR.ELEMENT_MODE_NONE;this._={};this.commands={};this.templates={};this.name=this.name||f();this.id=CKEDITOR.tools.getNextId();this.status="unloaded";this.config=CKEDITOR.tools.prototypedCopy(CKEDITOR.config);this.ui=new CKEDITOR.ui(this);this.focusManager=
 new CKEDITOR.focusManager(this);this.keystrokeHandler=new CKEDITOR.keystrokeHandler(this);this.on("readOnly",e);this.on("selectionChange",function(a){m(this,a.data.path)});this.on("activeFilterChange",function(){m(this,this.elementPath(),!0)});this.on("mode",e);this.on("instanceReady",function(){this.config.startupFocus&&this.focus()});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){"destroyed"!==this.status?k(this,a):CKEDITOR.warn("editor-incorrect-destroy")},
 0,this)}function f(){do var a="editor"+ ++v;while(CKEDITOR.instances[a]);return a}function c(a,b){return b==CKEDITOR.ELEMENT_MODE_INLINE?a.is(CKEDITOR.dtd.$editable)||a.is("textarea"):b==CKEDITOR.ELEMENT_MODE_REPLACE?!a.is(CKEDITOR.dtd.$nonBodyContent):1}function e(){var a=this.commands,b;for(b in a)h(this,a[b])}function h(a,b){b[b.startDisabled?"disable":a.readOnly&&!b.readOnly?"disable":b.modes[a.mode]?"enable":"disable"]()}function m(a,b,d){if(b){var c,g,e=a.commands;for(g in e)c=e[g],(d||c.contextSensitive)&&
-c.refresh(a,b)}}function l(a){var b=a.config.customConfig;if(!b)return!1;var b=CKEDITOR.getUrl(b),d=u[b]||(u[b]={});d.fn?(d.fn.call(a,a.config),CKEDITOR.getUrl(a.config.customConfig)!=b&&l(a)||a.fireOnce("customConfigLoaded")):CKEDITOR.scriptLoader.queue(b,function(){d.fn=CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};l(a)});return!0}function k(a,d){a.on("customConfigLoaded",function(){if(d){if(d.on)for(var c in d.on)a.on(c,d.on[c]);CKEDITOR.tools.extend(a.config,d,!0);delete a.config.on}c=
+c.refresh(a,b)}}function l(a){var b=a.config.customConfig;if(!b)return!1;var b=CKEDITOR.getUrl(b),d=r[b]||(r[b]={});d.fn?(d.fn.call(a,a.config),CKEDITOR.getUrl(a.config.customConfig)!=b&&l(a)||a.fireOnce("customConfigLoaded")):CKEDITOR.scriptLoader.queue(b,function(){d.fn=CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};l(a)});return!0}function k(a,d){a.on("customConfigLoaded",function(){if(d){if(d.on)for(var c in d.on)a.on(c,d.on[c]);CKEDITOR.tools.extend(a.config,d,!0);delete a.config.on}c=
 a.config;a.readOnly=c.readOnly?!0:a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.is("textarea")?a.element.hasAttribute("disabled")||a.element.hasAttribute("readonly"):a.element.isReadOnly():a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.element.hasAttribute("disabled")||a.element.hasAttribute("readonly"):!1;a.blockless=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?!(a.element.is("textarea")||CKEDITOR.dtd[a.element.getName()].p):!1;a.tabIndex=c.tabIndex||a.element&&a.element.getAttribute("tabindex")||
 0;a.activeEnterMode=a.enterMode=a.blockless?CKEDITOR.ENTER_BR:c.enterMode;a.activeShiftEnterMode=a.shiftEnterMode=a.blockless?CKEDITOR.ENTER_BR:c.shiftEnterMode;c.skin&&(CKEDITOR.skinName=c.skin);a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);a.filter=a.activeFilter=new CKEDITOR.filter(a);b(a)});d&&null!=d.customConfig&&(a.config.customConfig=d.customConfig);l(a)||a.fireOnce("customConfigLoaded")}function b(a){CKEDITOR.skin.loadPart("editor",function(){d(a)})}function d(a){CKEDITOR.lang.load(a.config.language,
 a.config.defaultLanguage,function(b,d){var c=a.config.title;a.langCode=b;a.lang=CKEDITOR.tools.prototypedCopy(d);a.title="string"==typeof c||!1===c?c:[a.lang.editor,a.name].join(", ");a.config.contentsLangDirection||(a.config.contentsLangDirection=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.getDirection(1):a.lang.dir);a.fire("langLoaded");g(a)})}function g(a){a.getStylesSet(function(b){a.once("loaded",function(){a.fire("stylesSet",{styles:b})},null,null,1);p(a)})}function p(a){var b=a.config,
 d=b.plugins,c=b.extraPlugins,g=b.removePlugins;if(c)var e=new RegExp("(?:^|,)(?:"+c.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),d=d.replace(e,""),d=d+(","+c);if(g)var h=new RegExp("(?:^|,)(?:"+g.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),d=d.replace(h,"");CKEDITOR.env.air&&(d+=",adobeair");CKEDITOR.plugins.load(d.split(","),function(d){var c=[],g=[],e=[];a.plugins=d;for(var f in d){var k=d[f],t=k.lang,m=null,p=k.requires,l;CKEDITOR.tools.isArray(p)&&(p=p.join(","));if(p&&(l=p.match(h)))for(;p=l.pop();)CKEDITOR.error("editor-plugin-required",
 {plugin:p.replace(",",""),requiredBy:f});t&&!a.lang[f]&&(t.split&&(t=t.split(",")),0<=CKEDITOR.tools.indexOf(t,a.langCode)?m=a.langCode:(m=a.langCode.replace(/-.*/,""),m=m!=a.langCode&&0<=CKEDITOR.tools.indexOf(t,m)?m:0<=CKEDITOR.tools.indexOf(t,"en")?"en":t[0]),k.langEntries&&k.langEntries[m]?(a.lang[f]=k.langEntries[m],m=null):e.push(CKEDITOR.getUrl(k.path+"lang/"+m+".js")));g.push(m);c.push(k)}CKEDITOR.scriptLoader.load(e,function(){for(var d=["beforeInit","init","afterInit"],e=0;e<d.length;e++)for(var h=
-0;h<c.length;h++){var f=c[h];0===e&&g[h]&&f.lang&&f.langEntries&&(a.lang[f.name]=f.langEntries[g[h]]);if(f[d[e]])f[d[e]](a)}a.fireOnce("pluginsLoaded");b.keystrokes&&a.setKeystroke(a.config.keystrokes);for(h=0;h<a.config.blockedKeystrokes.length;h++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[h]]=1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)})})}function r(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var b=this.getData();
-this.config.htmlEncodeOutput&&(b=CKEDITOR.tools.htmlEncode(b));a.is("textarea")?a.setValue(b):a.setHtml(b);return!0}return!1}a.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=a;var v=0,u={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{addCommand:function(a,b){b.name=a.toLowerCase();var d=new CKEDITOR.command(this,b);this.mode&&h(this,d);return this.commands[a]=d},_attachToForm:function(){function a(b){d.updateElement();d._.required&&!c.getValue()&&!1===d.fire("required")&&b.data.preventDefault()}
-function b(a){return!!(a&&a.call&&a.apply)}var d=this,c=d.element,g=new CKEDITOR.dom.element(c.$.form);c.is("textarea")&&g&&(g.on("submit",a),b(g.$.submit)&&(g.$.submit=CKEDITOR.tools.override(g.$.submit,function(b){return function(){a();b.apply?b.apply(this):b()}})),d.on("destroy",function(){g.removeListener("submit",a)}))},destroy:function(a){this.fire("beforeDestroy");!a&&r.call(this);this.editable(null);this.filter&&(this.filter.destroy(),delete this.filter);delete this.activeFilter;this.status=
+0;h<c.length;h++){var f=c[h];0===e&&g[h]&&f.lang&&f.langEntries&&(a.lang[f.name]=f.langEntries[g[h]]);if(f[d[e]])f[d[e]](a)}a.fireOnce("pluginsLoaded");b.keystrokes&&a.setKeystroke(a.config.keystrokes);for(h=0;h<a.config.blockedKeystrokes.length;h++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[h]]=1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)})})}function u(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var b=this.getData();
+this.config.htmlEncodeOutput&&(b=CKEDITOR.tools.htmlEncode(b));a.is("textarea")?a.setValue(b):a.setHtml(b);return!0}return!1}a.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=a;var v=0,r={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{addCommand:function(a,b){b.name=a.toLowerCase();var d=new CKEDITOR.command(this,b);this.mode&&h(this,d);return this.commands[a]=d},_attachToForm:function(){function a(b){d.updateElement();d._.required&&!c.getValue()&&!1===d.fire("required")&&b.data.preventDefault()}
+function b(a){return!!(a&&a.call&&a.apply)}var d=this,c=d.element,g=new CKEDITOR.dom.element(c.$.form);c.is("textarea")&&g&&(g.on("submit",a),b(g.$.submit)&&(g.$.submit=CKEDITOR.tools.override(g.$.submit,function(b){return function(){a();b.apply?b.apply(this):b()}})),d.on("destroy",function(){g.removeListener("submit",a)}))},destroy:function(a){this.fire("beforeDestroy");!a&&u.call(this);this.editable(null);this.filter&&(this.filter.destroy(),delete this.filter);delete this.activeFilter;this.status=
 "destroyed";this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);CKEDITOR.fire("instanceDestroyed",null,this)},elementPath:function(a){if(!a){a=this.getSelection();if(!a)return null;a=a.getStartElement()}return a?new CKEDITOR.dom.elementPath(a,this.editable()):null},createRange:function(){var a=this.editable();return a?new CKEDITOR.dom.range(a):null},execCommand:function(a,b){var d=this.getCommand(a),c={name:a,commandData:b,command:d};return d&&d.state!=CKEDITOR.TRISTATE_DISABLED&&
 !1!==this.fire("beforeCommandExec",c)&&(c.returnValue=d.exec(c.commandData),!d.async&&!1!==this.fire("afterCommandExec",c))?c.returnValue:!1},getCommand:function(a){return this.commands[a]},getData:function(a){!a&&this.fire("beforeGetData");var b=this._.data;"string"!=typeof b&&(b=(b=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?b.is("textarea")?b.getValue():b.getHtml():"");b={dataValue:b};!a&&this.fire("getData",b);return b.dataValue},getSnapshot:function(){var a=this.fire("getSnapshot");
 "string"!=typeof a&&(a=(a=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.is("textarea")?a.getValue():a.getHtml():"");return a},loadSnapshot:function(a){this.fire("loadSnapshot",a)},setData:function(a,b,d){var c=!0,g=b;b&&"object"==typeof b&&(d=b.internal,g=b.callback,c=!b.noSnapshot);!d&&c&&this.fire("saveSnapshot");if(g||!d)this.once("dataReady",function(a){!d&&c&&this.fire("saveSnapshot");g&&g.call(a.editor)});a={dataValue:a};!d&&this.fire("setData",a);this._.data=a.dataValue;
 !d&&this.fire("afterSetData",a)},setReadOnly:function(a){a=null==a||a;this.readOnly!=a&&(this.readOnly=a,this.keystrokeHandler.blockedKeystrokes[8]=+a,this.editable().setReadOnly(a),this.fire("readOnly"))},insertHtml:function(a,b,d){this.fire("insertHtml",{dataValue:a,mode:b,range:d})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement",a)},getSelectedHtml:function(a){var b=this.editable(),d=this.getSelection(),d=d&&d.getRanges();if(!b||!d||0===d.length)return null;
 for(var c=new CKEDITOR.dom.documentFragment,g,e,h,f=0;f<d.length;f++){var k=d[f],m=k.startContainer;m.getName&&"tr"==m.getName()?(g||(g=m.getAscendant("table").clone(),g.append(m.getAscendant("tbody").clone()),c.append(g),g=g.findOne("tbody")),e&&e.equals(m)||(e=m,h=m.clone(),g.append(h)),h.append(k.cloneContents())):c.append(k.cloneContents())}b=g?c:b.getHtmlFromRange(d[0]);return a?b.getHtml():b},extractSelectedHtml:function(a,b){var d=this.editable(),c=this.getSelection().getRanges();if(!d||0===
-c.length)return null;c=c[0];d=d.extractHtmlFromRange(c,b);b||this.getSelection().selectRanges([c]);return a?d.getHtml():d},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return"ready"==this.status&&this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return r.call(this)},setKeystroke:function(){for(var a=this.keystrokeHandler.keystrokes,b=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,
+c.length)return null;c=c[0];d=d.extractHtmlFromRange(c,b);b||this.getSelection().selectRanges([c]);return a?d.getHtml():d},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return"ready"==this.status&&this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return u.call(this)},setKeystroke:function(){for(var a=this.keystrokeHandler.keystrokes,b=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,
 0)],d,c,g=b.length;g--;)d=b[g],c=0,CKEDITOR.tools.isArray(d)&&(c=d[1],d=d[0]),c?a[d]=c:delete a[d]},addFeature:function(a){return this.filter.addFeature(a)},setActiveFilter:function(a){a||(a=this.filter);this.activeFilter!==a&&(this.activeFilter=a,this.fire("activeFilterChange"),a===this.filter?this.setActiveEnterMode(null,null):this.setActiveEnterMode(a.getAllowedEnterMode(this.enterMode),a.getAllowedEnterMode(this.shiftEnterMode,!0)))},setActiveEnterMode:function(a,b){a=a?this.blockless?CKEDITOR.ENTER_BR:
 a:this.enterMode;b=b?this.blockless?CKEDITOR.ENTER_BR:b:this.shiftEnterMode;if(this.activeEnterMode!=a||this.activeShiftEnterMode!=b)this.activeEnterMode=a,this.activeShiftEnterMode=b,this.fire("activeEnterModeChange")},showNotification:function(a){alert(a)}})}(),CKEDITOR.ELEMENT_MODE_NONE=0,CKEDITOR.ELEMENT_MODE_REPLACE=1,CKEDITOR.ELEMENT_MODE_APPENDTO=2,CKEDITOR.ELEMENT_MODE_INLINE=3,CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)--\x3e)|(?:([^\/\s>]+)((?:\s+[\w\-:.]+(?:\s*=\s*?(?:(?:"[^"]*")|(?:'[^']*')|[^\s"'\/>]+))?)*)[\S\s]*?(\/?)>))/g}},
 function(){var a=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,f={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(c){for(var e,h,m=0,l;e=this._.htmlPartsRegex.exec(c);){h=e.index;if(h>m)if(m=c.substring(m,h),l)l.push(m);else this.onText(m);
@@ -252,13 +251,13 @@ this);a.previous=this;this.parent=a.parent},getAscendant:function(a){var f="func
 function(a){this.value=a;this._={isBlockLike:!1}},CKEDITOR.htmlParser.comment.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_COMMENT,filter:function(a,f){var c=this.value;if(!(c=a.onComment(f,c,this)))return this.remove(),!1;if("string"!=typeof c)return this.replaceWith(c),!1;this.value=c;return!0},writeHtml:function(a,f){f&&this.filter(f);a.comment(this.value)}}),"use strict",function(){CKEDITOR.htmlParser.text=function(a){this.value=a;this._={isBlockLike:!1}};CKEDITOR.htmlParser.text.prototype=
 CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(a,f){if(!(this.value=a.onText(f,this.value,this)))return this.remove(),!1},writeHtml:function(a,f){f&&this.filter(f);a.text(this.value)}})}(),"use strict",function(){CKEDITOR.htmlParser.cdata=function(a){this.value=a};CKEDITOR.htmlParser.cdata.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(){},writeHtml:function(a){a.write(this.value)}})}(),"use strict",
 CKEDITOR.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:!0,hasInlineStarted:!1}},function(){function a(a){return a.attributes["data-cke-survive"]?!1:"a"==a.name&&a.attributes.href||CKEDITOR.dtd.$removeEmpty[a.name]}var f=CKEDITOR.tools.extend({table:1,ul:1,ol:1,dl:1},CKEDITOR.dtd.table,CKEDITOR.dtd.ul,CKEDITOR.dtd.ol,CKEDITOR.dtd.dl),c={ol:1,ul:1},e=CKEDITOR.tools.extend({},{html:1},CKEDITOR.dtd.html,CKEDITOR.dtd.body,CKEDITOR.dtd.head,{style:1,script:1}),h={ul:"li",
-ol:"li",dl:"dd",table:"tbody",tbody:"tr",thead:"tr",tfoot:"tr",tr:"td"};CKEDITOR.htmlParser.fragment.fromHtml=function(m,l,k){function b(a){var b;if(0<q.length)for(var c=0;c<q.length;c++){var g=q[c],e=g.name,h=CKEDITOR.dtd[e],f=z.name&&CKEDITOR.dtd[z.name];f&&!f[e]||a&&h&&!h[a]&&CKEDITOR.dtd[a]?e==z.name&&(p(z,z.parent,1),c--):(b||(d(),b=1),g=g.clone(),g.parent=z,z=g,q.splice(c,1),c--)}}function d(){for(;x.length;)p(x.shift(),z)}function g(a){if(a._.isBlockLike&&"pre"!=a.name&&"textarea"!=a.name){var b=
-a.children.length,d=a.children[b-1],c;d&&d.type==CKEDITOR.NODE_TEXT&&((c=CKEDITOR.tools.rtrim(d.value))?d.value=c:a.children.length=b-1)}}function p(b,d,c){d=d||z||n;var e=z;void 0===b.previous&&(r(d,b)&&(z=d,u.onTagOpen(k,{}),b.returnPoint=d=z),g(b),a(b)&&!b.children.length||d.add(b),"pre"==b.name&&(t=!1),"textarea"==b.name&&(A=!1));b.returnPoint?(z=b.returnPoint,delete b.returnPoint):z=c?d:e}function r(a,b){if((a==n||"body"==a.name)&&k&&(!a.name||CKEDITOR.dtd[a.name][k])){var d,c;return(d=b.attributes&&
-(c=b.attributes["data-cke-real-element-type"])?c:b.name)&&d in CKEDITOR.dtd.$inline&&!(d in CKEDITOR.dtd.head)&&!b.isOrphan||b.type==CKEDITOR.NODE_TEXT}}function v(a,b){return a in CKEDITOR.dtd.$listItem||a in CKEDITOR.dtd.$tableContent?a==b||"dt"==a&&"dd"==b||"dd"==a&&"dt"==b:!1}var u=new CKEDITOR.htmlParser,n=l instanceof CKEDITOR.htmlParser.element?l:"string"==typeof l?new CKEDITOR.htmlParser.element(l):new CKEDITOR.htmlParser.fragment,q=[],x=[],z=n,A="textarea"==n.name,t="pre"==n.name;u.onTagOpen=
-function(g,h,k,m){h=new CKEDITOR.htmlParser.element(g,h);h.isUnknown&&k&&(h.isEmpty=!0);h.isOptionalClose=m;if(a(h))q.push(h);else{if("pre"==g)t=!0;else{if("br"==g&&t){z.add(new CKEDITOR.htmlParser.text("\n"));return}"textarea"==g&&(A=!0)}if("br"==g)x.push(h);else{for(;!(m=(k=z.name)?CKEDITOR.dtd[k]||(z._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):e,h.isUnknown||z.isUnknown||m[g]);)if(z.isOptionalClose)u.onTagClose(k);else if(g in c&&k in c)k=z.children,(k=k[k.length-1])&&"li"==k.name||p(k=new CKEDITOR.htmlParser.element("li"),
-z),!h.returnPoint&&(h.returnPoint=z),z=k;else if(g in CKEDITOR.dtd.$listItem&&!v(g,k))u.onTagOpen("li"==g?"ul":"dl",{},0,1);else if(k in f&&!v(g,k))!h.returnPoint&&(h.returnPoint=z),z=z.parent;else if(k in CKEDITOR.dtd.$inline&&q.unshift(z),z.parent)p(z,z.parent,1);else{h.isOrphan=1;break}b(g);d();h.parent=z;h.isEmpty?p(h):z=h}}};u.onTagClose=function(a){for(var b=q.length-1;0<=b;b--)if(a==q[b].name){q.splice(b,1);return}for(var c=[],g=[],e=z;e!=n&&e.name!=a;)e._.isBlockLike||g.unshift(e),c.push(e),
-e=e.returnPoint||e.parent;if(e!=n){for(b=0;b<c.length;b++){var h=c[b];p(h,h.parent)}z=e;e._.isBlockLike&&d();p(e,e.parent);e==z&&(z=z.parent);q=q.concat(g)}"body"==a&&(k=!1)};u.onText=function(a){if(!(z._.hasInlineStarted&&!x.length||t||A)&&(a=CKEDITOR.tools.ltrim(a),0===a.length))return;var c=z.name,g=c?CKEDITOR.dtd[c]||(z._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):e;if(!A&&!g["#"]&&c in f)u.onTagOpen(h[c]||""),u.onText(a);else{d();b();t||A||(a=a.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));a=
-new CKEDITOR.htmlParser.text(a);if(r(z,a))this.onTagOpen(k,{},0,1);z.add(a)}};u.onCDATA=function(a){z.add(new CKEDITOR.htmlParser.cdata(a))};u.onComment=function(a){d();b();z.add(new CKEDITOR.htmlParser.comment(a))};u.parse(m);for(d();z!=n;)p(z,z.parent,1);g(n);return n};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,c){isNaN(c)&&(c=this.children.length);var e=0<c?this.children[c-1]:null;if(e){if(a._.isBlockLike&&e.type==CKEDITOR.NODE_TEXT&&(e.value=CKEDITOR.tools.rtrim(e.value),
+ol:"li",dl:"dd",table:"tbody",tbody:"tr",thead:"tr",tfoot:"tr",tr:"td"};CKEDITOR.htmlParser.fragment.fromHtml=function(m,l,k){function b(a){var b;if(0<q.length)for(var c=0;c<q.length;c++){var g=q[c],e=g.name,h=CKEDITOR.dtd[e],f=A.name&&CKEDITOR.dtd[A.name];f&&!f[e]||a&&h&&!h[a]&&CKEDITOR.dtd[a]?e==A.name&&(p(A,A.parent,1),c--):(b||(d(),b=1),g=g.clone(),g.parent=A,A=g,q.splice(c,1),c--)}}function d(){for(;w.length;)p(w.shift(),A)}function g(a){if(a._.isBlockLike&&"pre"!=a.name&&"textarea"!=a.name){var b=
+a.children.length,d=a.children[b-1],c;d&&d.type==CKEDITOR.NODE_TEXT&&((c=CKEDITOR.tools.rtrim(d.value))?d.value=c:a.children.length=b-1)}}function p(b,d,c){d=d||A||n;var e=A;void 0===b.previous&&(u(d,b)&&(A=d,r.onTagOpen(k,{}),b.returnPoint=d=A),g(b),a(b)&&!b.children.length||d.add(b),"pre"==b.name&&(t=!1),"textarea"==b.name&&(B=!1));b.returnPoint?(A=b.returnPoint,delete b.returnPoint):A=c?d:e}function u(a,b){if((a==n||"body"==a.name)&&k&&(!a.name||CKEDITOR.dtd[a.name][k])){var d,c;return(d=b.attributes&&
+(c=b.attributes["data-cke-real-element-type"])?c:b.name)&&d in CKEDITOR.dtd.$inline&&!(d in CKEDITOR.dtd.head)&&!b.isOrphan||b.type==CKEDITOR.NODE_TEXT}}function v(a,b){return a in CKEDITOR.dtd.$listItem||a in CKEDITOR.dtd.$tableContent?a==b||"dt"==a&&"dd"==b||"dd"==a&&"dt"==b:!1}var r=new CKEDITOR.htmlParser,n=l instanceof CKEDITOR.htmlParser.element?l:"string"==typeof l?new CKEDITOR.htmlParser.element(l):new CKEDITOR.htmlParser.fragment,q=[],w=[],A=n,B="textarea"==n.name,t="pre"==n.name;r.onTagOpen=
+function(g,h,k,m){h=new CKEDITOR.htmlParser.element(g,h);h.isUnknown&&k&&(h.isEmpty=!0);h.isOptionalClose=m;if(a(h))q.push(h);else{if("pre"==g)t=!0;else{if("br"==g&&t){A.add(new CKEDITOR.htmlParser.text("\n"));return}"textarea"==g&&(B=!0)}if("br"==g)w.push(h);else{for(;!(m=(k=A.name)?CKEDITOR.dtd[k]||(A._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):e,h.isUnknown||A.isUnknown||m[g]);)if(A.isOptionalClose)r.onTagClose(k);else if(g in c&&k in c)k=A.children,(k=k[k.length-1])&&"li"==k.name||p(k=new CKEDITOR.htmlParser.element("li"),
+A),!h.returnPoint&&(h.returnPoint=A),A=k;else if(g in CKEDITOR.dtd.$listItem&&!v(g,k))r.onTagOpen("li"==g?"ul":"dl",{},0,1);else if(k in f&&!v(g,k))!h.returnPoint&&(h.returnPoint=A),A=A.parent;else if(k in CKEDITOR.dtd.$inline&&q.unshift(A),A.parent)p(A,A.parent,1);else{h.isOrphan=1;break}b(g);d();h.parent=A;h.isEmpty?p(h):A=h}}};r.onTagClose=function(a){for(var b=q.length-1;0<=b;b--)if(a==q[b].name){q.splice(b,1);return}for(var c=[],g=[],e=A;e!=n&&e.name!=a;)e._.isBlockLike||g.unshift(e),c.push(e),
+e=e.returnPoint||e.parent;if(e!=n){for(b=0;b<c.length;b++){var h=c[b];p(h,h.parent)}A=e;e._.isBlockLike&&d();p(e,e.parent);e==A&&(A=A.parent);q=q.concat(g)}"body"==a&&(k=!1)};r.onText=function(a){if(!(A._.hasInlineStarted&&!w.length||t||B)&&(a=CKEDITOR.tools.ltrim(a),0===a.length))return;var c=A.name,g=c?CKEDITOR.dtd[c]||(A._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):e;if(!B&&!g["#"]&&c in f)r.onTagOpen(h[c]||""),r.onText(a);else{d();b();t||B||(a=a.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));a=
+new CKEDITOR.htmlParser.text(a);if(u(A,a))this.onTagOpen(k,{},0,1);A.add(a)}};r.onCDATA=function(a){A.add(new CKEDITOR.htmlParser.cdata(a))};r.onComment=function(a){d();b();A.add(new CKEDITOR.htmlParser.comment(a))};r.parse(m);for(d();A!=n;)p(A,A.parent,1);g(n);return n};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,c){isNaN(c)&&(c=this.children.length);var e=0<c?this.children[c-1]:null;if(e){if(a._.isBlockLike&&e.type==CKEDITOR.NODE_TEXT&&(e.value=CKEDITOR.tools.rtrim(e.value),
 0===e.value.length)){this.children.pop();this.add(a);return}e.next=a}a.previous=e;a.parent=this;this.children.splice(c,0,a);this._.hasInlineStarted||(this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike)},filter:function(a,c){c=this.getFilterContext(c);a.onRoot(c,this);this.filterChildren(a,!1,c)},filterChildren:function(a,c,e){if(this.childrenFilteredBy!=a.id){e=this.getFilterContext(e);if(c&&!this.parent)a.onRoot(e,this);this.childrenFilteredBy=a.id;
 for(c=0;c<this.children.length;c++)!1===this.children[c].filter(a,e)&&c--}},writeHtml:function(a,c){c&&this.filter(c);this.writeChildrenHtml(a)},writeChildrenHtml:function(a,c,e){var b=this.getFilterContext();if(e&&!this.parent&&c)c.onRoot(b,this);c&&this.filterChildren(c,!1,b);c=0;e=this.children;for(b=e.length;c<b;c++)e[c].writeHtml(a)},forEach:function(a,c,e){if(!(e||c&&this.type!=c))var b=a(this);if(!1!==b){e=this.children;for(var d=0;d<e.length;d++)b=e[d],b.type==CKEDITOR.NODE_ELEMENT?b.forEach(a,
 c):c&&b.type!=c||a(b)}},getFilterContext:function(a){return a||{}}}}(),"use strict",function(){function a(){this.rules=[]}function f(c,e,h,f){var l,k;for(l in e)(k=c[l])||(k=c[l]=new a),k.add(e[l],h,f)}CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(c){this.id=CKEDITOR.tools.getNextNumber();this.elementNameRules=new a;this.attributeNameRules=new a;this.elementsRules={};this.attributesRules={};this.textRules=new a;this.commentRules=new a;this.rootRules=new a;c&&this.addRules(c,10)},
@@ -267,26 +266,26 @@ h,e)},applyTo:function(a){a.filter(this)},onElementName:function(a,e){return thi
 f.exec(a,e,this);if(!1===f)return null;if(f&&f!=e)return this.onNode(a,f);if(e.parent&&!e.name)break}return e},onNode:function(a,e){var h=e.type;return h==CKEDITOR.NODE_ELEMENT?this.onElement(a,e):h==CKEDITOR.NODE_TEXT?new CKEDITOR.htmlParser.text(this.onText(a,e.value)):h==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(a,e.value)):null},onAttribute:function(a,e,h,f){return(h=this.attributesRules[h])?h.exec(a,f,e,this):f}}});CKEDITOR.htmlParser.filterRulesGroup=a;a.prototype=
 {add:function(a,e,h){this.rules.splice(this.findIndex(e),0,{value:a,priority:e,options:h})},addMany:function(a,e,h){for(var f=[this.findIndex(e),0],l=0,k=a.length;l<k;l++)f.push({value:a[l],priority:e,options:h});this.rules.splice.apply(this.rules,f)},findIndex:function(a){for(var e=this.rules,h=e.length-1;0<=h&&a<e[h].priority;)h--;return h+1},exec:function(a,e){var h=e instanceof CKEDITOR.htmlParser.node||e instanceof CKEDITOR.htmlParser.fragment,f=Array.prototype.slice.call(arguments,1),l=this.rules,
 k=l.length,b,d,g,p;for(p=0;p<k;p++)if(h&&(b=e.type,d=e.name),g=l[p],!(a.nonEditable&&!g.options.applyToAll||a.nestedEditable&&g.options.excludeNestedEditable)){g=g.value.apply(null,f);if(!1===g||h&&g&&(g.name!=d||g.type!=b))return g;null!=g&&(f[0]=e=g)}return e},execOnName:function(a,e){for(var h=0,f=this.rules,l=f.length,k;e&&h<l;h++)k=f[h],a.nonEditable&&!k.options.applyToAll||a.nestedEditable&&k.options.excludeNestedEditable||(e=e.replace(k.value[0],k.value[1]));return e}}}(),function(){function a(a,
-b){function d(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function g(a,b){return function(g){if(g.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var h=[],k=c(g),t,l;if(k)for(f(k,1)&&h.push(k);k;)m(k)&&(t=e(k))&&f(t)&&((l=e(t))&&!m(l)?h.push(t):(d(p).insertAfter(t),t.remove())),k=k.previous;for(k=0;k<h.length;k++)h[k].remove();if(h=!a||!1!==("function"==typeof b?b(g):b))p||CKEDITOR.env.needsBrFiller||g.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT?
+b){function d(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function g(a,b){return function(g){if(g.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var h=[],k=c(g),t,F;if(k)for(f(k,1)&&h.push(k);k;)m(k)&&(t=e(k))&&f(t)&&((F=e(t))&&!m(F)?h.push(t):(d(p).insertAfter(t),t.remove())),k=k.previous;for(k=0;k<h.length;k++)h[k].remove();if(h=!a||!1!==("function"==typeof b?b(g):b))p||CKEDITOR.env.needsBrFiller||g.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT?
 p||CKEDITOR.env.needsBrFiller||!(7<document.documentMode||g.name in CKEDITOR.dtd.tr||g.name in CKEDITOR.dtd.$listItem)?(h=c(g),h=!h||"form"==g.name&&"input"==h.name):h=!1:h=!1;h&&g.add(d(a))}}}function f(a,b){if((!p||CKEDITOR.env.needsBrFiller)&&a.type==CKEDITOR.NODE_ELEMENT&&"br"==a.name&&!a.attributes["data-cke-eol"])return!0;var d;return a.type==CKEDITOR.NODE_TEXT&&(d=a.value.match(q))&&(d.index&&((new CKEDITOR.htmlParser.text(a.value.substring(0,d.index))).insertBefore(a),a.value=d[0]),!CKEDITOR.env.needsBrFiller&&
-p&&(!b||a.parent.name in n)||!p&&((d=a.previous)&&"br"==d.name||!d||m(d)))?!0:!1}var k={elements:{}},p="html"==b,n=CKEDITOR.tools.extend({},t),w;for(w in n)"#"in z[w]||delete n[w];for(w in n)k.elements[w]=g(p,a.config.fillEmptyBlocks);k.root=g(p,!1);k.elements.br=function(a){return function(b){if(b.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var c=b.attributes;if("data-cke-bogus"in c||"data-cke-eol"in c)delete c["data-cke-bogus"];else{for(c=b.next;c&&h(c);)c=c.next;var g=e(b);!c&&m(b.parent)?l(b.parent,
+p&&(!b||a.parent.name in F)||!p&&((d=a.previous)&&"br"==d.name||!d||m(d)))?!0:!1}var k={elements:{}},p="html"==b,F=CKEDITOR.tools.extend({},t),n;for(n in F)"#"in A[n]||delete F[n];for(n in F)k.elements[n]=g(p,a.config.fillEmptyBlocks);k.root=g(p,!1);k.elements.br=function(a){return function(b){if(b.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var c=b.attributes;if("data-cke-bogus"in c||"data-cke-eol"in c)delete c["data-cke-bogus"];else{for(c=b.next;c&&h(c);)c=c.next;var g=e(b);!c&&m(b.parent)?l(b.parent,
 d(a)):m(c)&&g&&!m(g)&&d(a).insertBefore(c)}}}}(p);return k}function f(a,b){return a!=CKEDITOR.ENTER_BR&&!1!==b?a==CKEDITOR.ENTER_DIV?"div":"p":!1}function c(a){for(a=a.children[a.children.length-1];a&&h(a);)a=a.previous;return a}function e(a){for(a=a.previous;a&&h(a);)a=a.previous;return a}function h(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function m(a){return a&&(a.type==CKEDITOR.NODE_ELEMENT&&a.name in
-t||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function l(a,b){var d=a.children[a.children.length-1];a.children.push(b);b.parent=a;d&&(d.next=b,b.previous=d)}function k(a){a=a.attributes;"false"!=a.contenteditable&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function b(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function d(a){return a.replace(C,function(a,b,d){return"\x3c"+b+d.replace(F,
-function(a,b){return E.test(b)&&-1==d.indexOf("data-cke-saved-"+b)?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+"\x3e"})}function g(a,b){return a.replace(b,function(a,b,d){0===a.indexOf("\x3ctextarea")&&(a=b+v(d).replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;")+"\x3c/textarea\x3e");return"\x3ccke:encoded\x3e"+encodeURIComponent(a)+"\x3c/cke:encoded\x3e"})}function p(a){return a.replace(N,function(a,b){return decodeURIComponent(b)})}function r(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,
-function(a){return"\x3c!--"+x+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\x3e"})}function v(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)})}function u(a,b){var d=b._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return d&&d[b]||""})}function n(a,b){var d=[],c=b.config.protectedSource,g=b._.dataStore||(b._.dataStore=
-{id:1}),e=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,c=[/<script[\s\S]*?(<\/script>|$)/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<meta[\s\S]*?\/?>/gi].concat(c);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return"\x3c!--{cke_tempcomment}"+(d.push(a)-1)+"--\x3e"});for(var h=0;h<c.length;h++)a=a.replace(c[h],function(a){a=a.replace(e,function(a,b,c){return d[c]});return/cke_temp(comment)?/.test(a)?a:"\x3c!--{cke_temp}"+(d.push(a)-1)+"--\x3e"});a=a.replace(e,function(a,b,c){return"\x3c!--"+x+(b?"{C}":
-"")+encodeURIComponent(d[c]).replace(/--/g,"%2D%2D")+"--\x3e"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,b){g[g.id]=decodeURIComponent(b);return"{cke_protected_"+g.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,d,c,g){return"\x3c"+d+c+"\x3e"+u(v(g),b)+"\x3c/"+d+"\x3e"})}CKEDITOR.htmlDataProcessor=function(b){var c,
-e,h=this;this.editor=b;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=e=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(w);c.addRules(D,{applyToAll:!0});c.addRules(a(b,"data"),{applyToAll:!0});e.addRules(B);e.addRules(y,{applyToAll:!0});e.addRules(a(b,"html"),{applyToAll:!0});b.on("toHtml",function(a){a=a.data;var c=a.dataValue,e,c=n(c,b),c=g(c,G),c=d(c),c=g(c,L),c=c.replace(O,"$1cke:$2"),c=c.replace(R,"\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"),
-c=c.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),c=c.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");e=a.context||b.editable().getName();var h;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==e&&(e="div",c="\x3cpre\x3e"+c+"\x3c/pre\x3e",h=1);e=b.document.createElement(e);e.setHtml("a"+c);c=e.getHtml().substr(1);c=c.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");h&&(c=c.replace(/^<pre>|<\/pre>$/gi,""));c=c.replace(I,"$1$2");c=p(c);c=v(c);e=!1===a.fixForBody?!1:
+t||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function l(a,b){var d=a.children[a.children.length-1];a.children.push(b);b.parent=a;d&&(d.next=b,b.previous=d)}function k(a){a=a.attributes;"false"!=a.contenteditable&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function b(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function d(a){return a.replace(C,function(a,b,d){return"\x3c"+b+d.replace(G,
+function(a,b){return E.test(b)&&-1==d.indexOf("data-cke-saved-"+b)?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+"\x3e"})}function g(a,b){return a.replace(b,function(a,b,d){0===a.indexOf("\x3ctextarea")&&(a=b+v(d).replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;")+"\x3c/textarea\x3e");return"\x3ccke:encoded\x3e"+encodeURIComponent(a)+"\x3c/cke:encoded\x3e"})}function p(a){return a.replace(N,function(a,b){return decodeURIComponent(b)})}function u(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,
+function(a){return"\x3c!--"+w+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\x3e"})}function v(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)})}function r(a,b){var d=b._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return d&&d[b]||""})}function n(a,b){var d=[],c=b.config.protectedSource,g=b._.dataStore||(b._.dataStore=
+{id:1}),e=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,c=[/<script[\s\S]*?(<\/script>|$)/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<meta[\s\S]*?\/?>/gi].concat(c);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return"\x3c!--{cke_tempcomment}"+(d.push(a)-1)+"--\x3e"});for(var h=0;h<c.length;h++)a=a.replace(c[h],function(a){a=a.replace(e,function(a,b,c){return d[c]});return/cke_temp(comment)?/.test(a)?a:"\x3c!--{cke_temp}"+(d.push(a)-1)+"--\x3e"});a=a.replace(e,function(a,b,c){return"\x3c!--"+w+(b?"{C}":
+"")+encodeURIComponent(d[c]).replace(/--/g,"%2D%2D")+"--\x3e"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,b){g[g.id]=decodeURIComponent(b);return"{cke_protected_"+g.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,d,c,g){return"\x3c"+d+c+"\x3e"+r(v(g),b)+"\x3c/"+d+"\x3e"})}CKEDITOR.htmlDataProcessor=function(b){var c,
+e,h=this;this.editor=b;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=e=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(x);c.addRules(D,{applyToAll:!0});c.addRules(a(b,"data"),{applyToAll:!0});e.addRules(y);e.addRules(z,{applyToAll:!0});e.addRules(a(b,"html"),{applyToAll:!0});b.on("toHtml",function(a){a=a.data;var c=a.dataValue,e,c=n(c,b),c=g(c,I),c=d(c),c=g(c,J),c=c.replace(F,"$1cke:$2"),c=c.replace(R,"\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"),
+c=c.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),c=c.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");e=a.context||b.editable().getName();var h;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==e&&(e="div",c="\x3cpre\x3e"+c+"\x3c/pre\x3e",h=1);e=b.document.createElement(e);e.setHtml("a"+c);c=e.getHtml().substr(1);c=c.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");h&&(c=c.replace(/^<pre>|<\/pre>$/gi,""));c=c.replace(P,"$1$2");c=p(c);c=v(c);e=!1===a.fixForBody?!1:
 f(a.enterMode,b.config.autoParagraph);c=CKEDITOR.htmlParser.fragment.fromHtml(c,a.context,e);e&&(h=c,!h.children.length&&CKEDITOR.dtd[h.name][e]&&(e=new CKEDITOR.htmlParser.element(e),h.add(e)));a.dataValue=c},null,null,5);b.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,!0,a.data.dontFilter,a.data.enterMode)&&b.fire("dataFiltered")},null,null,6);b.on("toHtml",function(a){a.data.dataValue.filterChildren(h.dataFilter,!0)},null,null,10);b.on("toHtml",function(a){a=a.data;var b=a.dataValue,
-d=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(d);b=d.getHtml(!0);a.dataValue=r(b)},null,null,15);b.on("toDataFormat",function(a){var d=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(d=d.replace(/^<br *\/?>/i,""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(d,a.data.context,f(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(h.htmlFilter,!0)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,
-!1,!0)},null,null,11);b.on("toDataFormat",function(a){var d=a.data.dataValue,c=h.writer;c.reset();d.writeChildrenHtml(c);d=c.getHtml(!0);d=v(d);d=u(d,b);a.data.dataValue=d},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,d,c){var g=this.editor,e,h,f,k;b&&"object"==typeof b?(e=b.context,d=b.fixForBody,c=b.dontFilter,h=b.filter,f=b.enterMode,k=b.protectedWhitespaces):e=b;e||null===e||(e=g.editable().getName());return g.fire("toHtml",{dataValue:a,context:e,fixForBody:d,dontFilter:c,
-filter:h||g.filter,enterMode:f||g.enterMode,protectedWhitespaces:k}).dataValue},toDataFormat:function(a,b){var d,c,g;b&&(d=b.context,c=b.filter,g=b.enterMode);d||null===d||(d=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:c||this.editor.filter,context:d,enterMode:g||this.editor.enterMode}).dataValue}};var q=/(?:&nbsp;|\xa0)$/,x="{cke_protected}",z=CKEDITOR.dtd,A="caption colgroup col thead tfoot tbody".split(" "),t=CKEDITOR.tools.extend({},z.$blockLimit,
-z.$block),w={elements:{input:k,textarea:k}},D={attributeNames:[[/^on/,"data-cke-pa-on"],[/^data-cke-expando$/,""]]},B={elements:{embed:function(a){var b=a.parent;if(b&&"object"==b.name){var d=b.attributes.width,b=b.attributes.height;d&&(a.attributes.width=d);b&&(a.attributes.height=b)}},a:function(a){var b=a.attributes;if(!(a.children.length||b.name||b.id||a.attributes["data-cke-saved-name"]))return!1}}},y={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,
-""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return!1;for(var d=["name","href","src"],c,g=0;g<d.length;g++)c="data-cke-saved-"+d[g],c in b&&delete b[d[g]]}return a},table:function(a){a.children.slice(0).sort(function(a,b){var d,c;a.type==CKEDITOR.NODE_ELEMENT&&b.type==a.type&&(d=CKEDITOR.tools.indexOf(A,a.name),c=CKEDITOR.tools.indexOf(A,b.name));-1<d&&-1<c&&d!=c||(d=a.parent?a.getIndex():-1,c=b.parent?b.getIndex():-1);return d>c?
+d=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(d);b=d.getHtml(!0);a.dataValue=u(b)},null,null,15);b.on("toDataFormat",function(a){var d=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(d=d.replace(/^<br *\/?>/i,""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(d,a.data.context,f(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(h.htmlFilter,!0)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,
+!1,!0)},null,null,11);b.on("toDataFormat",function(a){var d=a.data.dataValue,c=h.writer;c.reset();d.writeChildrenHtml(c);d=c.getHtml(!0);d=v(d);d=r(d,b);a.data.dataValue=d},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,d,c){var g=this.editor,e,h,f,k;b&&"object"==typeof b?(e=b.context,d=b.fixForBody,c=b.dontFilter,h=b.filter,f=b.enterMode,k=b.protectedWhitespaces):e=b;e||null===e||(e=g.editable().getName());return g.fire("toHtml",{dataValue:a,context:e,fixForBody:d,dontFilter:c,
+filter:h||g.filter,enterMode:f||g.enterMode,protectedWhitespaces:k}).dataValue},toDataFormat:function(a,b){var d,c,g;b&&(d=b.context,c=b.filter,g=b.enterMode);d||null===d||(d=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:c||this.editor.filter,context:d,enterMode:g||this.editor.enterMode}).dataValue}};var q=/(?:&nbsp;|\xa0)$/,w="{cke_protected}",A=CKEDITOR.dtd,B="caption colgroup col thead tfoot tbody".split(" "),t=CKEDITOR.tools.extend({},A.$blockLimit,
+A.$block),x={elements:{input:k,textarea:k}},D={attributeNames:[[/^on/,"data-cke-pa-on"],[/^data-cke-expando$/,""]]},y={elements:{embed:function(a){var b=a.parent;if(b&&"object"==b.name){var d=b.attributes.width,b=b.attributes.height;d&&(a.attributes.width=d);b&&(a.attributes.height=b)}},a:function(a){var b=a.attributes;if(!(a.children.length||b.name||b.id||a.attributes["data-cke-saved-name"]))return!1}}},z={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,
+""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return!1;for(var d=["name","href","src"],c,g=0;g<d.length;g++)c="data-cke-saved-"+d[g],c in b&&delete b[d[g]]}return a},table:function(a){a.children.slice(0).sort(function(a,b){var d,c;a.type==CKEDITOR.NODE_ELEMENT&&b.type==a.type&&(d=CKEDITOR.tools.indexOf(B,a.name),c=CKEDITOR.tools.indexOf(B,b.name));-1<d&&-1<c&&d!=c||(d=a.parent?a.getIndex():-1,c=b.parent?b.getIndex():-1);return d>c?
 1:-1})},param:function(a){a.children=[];a.isEmpty=!0;return a},span:function(a){"Apple-style-span"==a.attributes["class"]&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck;delete a.attributes.contenteditable},style:function(a){var b=a.children[0];b&&b.value&&(b.value=CKEDITOR.tools.trim(b.value));a.attributes.type||(a.attributes.type="text/css")},title:function(a){var b=a.children[0];!b&&l(a,b=new CKEDITOR.htmlParser.text);
-b.value=a.attributes["data-cke-title"]||""},input:b,textarea:b},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||!1}}};CKEDITOR.env.ie&&(y.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})});var C=/<(a|area|img|input|source)\b([^>]*)>/gi,F=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,E=/^(href|src|name)$/i,L=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,
-G=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,N=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,O=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,I=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,R=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi}(),"use strict",CKEDITOR.htmlParser.element=function(a,f){this.name=a;this.attributes=f||{};this.children=[];var c=a||"",e=c.match(/^cke:(.*)/);e&&(c=e[1]);c=!!(CKEDITOR.dtd.$nonBodyContent[c]||CKEDITOR.dtd.$block[c]||CKEDITOR.dtd.$listItem[c]||
+b.value=a.attributes["data-cke-title"]||""},input:b,textarea:b},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||!1}}};CKEDITOR.env.ie&&(z.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})});var C=/<(a|area|img|input|source)\b([^>]*)>/gi,G=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,E=/^(href|src|name)$/i,J=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,
+I=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,N=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,F=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,P=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,R=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi}(),"use strict",CKEDITOR.htmlParser.element=function(a,f){this.name=a;this.attributes=f||{};this.children=[];var c=a||"",e=c.match(/^cke:(.*)/);e&&(c=e[1]);c=!!(CKEDITOR.dtd.$nonBodyContent[c]||CKEDITOR.dtd.$block[c]||CKEDITOR.dtd.$listItem[c]||
 CKEDITOR.dtd.$tableContent[c]||CKEDITOR.dtd.$nonEditable[c]||"br"==c);this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:c,hasInlineStarted:this.isEmpty||!c}},CKEDITOR.htmlParser.cssStyle=function(a){var f={};((a instanceof CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/&quot;/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,e,h){"font-family"==e&&(h=h.replace(/["']/g,""));f[e.toLowerCase()]=h});return{rules:f,populate:function(a){var e=
 this.toString();e&&(a instanceof CKEDITOR.dom.element?a.setAttribute("style",e):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=e:a.style=e)},toString:function(){var a=[],e;for(e in f)f[e]&&a.push(e,":",f[e],";");return a.join("")}}},function(){function a(a){return function(c){return c.type==CKEDITOR.NODE_ELEMENT&&("string"==typeof a?c.name==a:c.name in a)}}var f=function(a,c){a=a[0];c=c[0];return a<c?-1:a>c?1:0},c=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=
 CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:c.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,c){var f=this,l,k;c=f.getFilterContext(c);if(c.off)return!0;if(!f.parent)a.onRoot(c,f);for(;;){l=f.name;if(!(k=a.onElementName(c,l)))return this.remove(),!1;f.name=k;if(!(f=a.onElement(c,f)))return this.remove(),!1;if(f!==this)return this.replaceWith(f),!1;if(f.name==l)break;if(f.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(f),
@@ -314,9 +313,9 @@ l(b,d.block,c)&&h.collapsed&&!h.getCommonAncestor().isReadOnly()&&(d=h.clone(),d
 k=1,a.cancel());k&&h.select()}function f(a,b){if(a.isFake)return 0;var d=b.block||b.blockLimit,c=d&&d.getLast(e);if(!(!d||!d.isBlockBoundary()||c&&c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()||d.is("pre")||d.getBogus()))return d}function c(a){var b=a.data.getTarget();b.is("input")&&(b=b.getAttribute("type"),"submit"!=b&&"reset"!=b||a.data.preventDefault())}function e(a){return g(a)&&p(a)}function h(a,b){return function(d){var c=d.data.$.toElement||d.data.$.fromElement||d.data.$.relatedTarget;
 (c=c&&c.nodeType==CKEDITOR.NODE_ELEMENT?new CKEDITOR.dom.element(c):null)&&(b.equals(c)||b.contains(c))||a.call(this,d)}}function m(a){function b(a){return function(b,c){c&&b.type==CKEDITOR.NODE_ELEMENT&&b.is(g)&&(d=b);if(!(c||!e(b)||a&&v(b)))return!1}}var d,c=a.getRanges()[0];a=a.root;var g={table:1,ul:1,ol:1,dl:1};if(c.startPath().contains(g)){var h=c.clone();h.collapse(1);h.setStartAt(a,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(h);a.guard=b();a.checkBackward();if(d)return h=c.clone(),
 h.collapse(),h.setEndAt(d,CKEDITOR.POSITION_AFTER_END),a=new CKEDITOR.dom.walker(h),a.guard=b(!0),d=!1,a.checkForward(),d}return null}function l(a,b,d){return!1!==a.config.autoParagraph&&a.activeEnterMode!=CKEDITOR.ENTER_BR&&(a.editable().equals(d)&&!b||b&&"true"==b.getAttribute("contenteditable"))}function k(a){return a.activeEnterMode!=CKEDITOR.ENTER_BR&&!1!==a.config.autoParagraph?a.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p":!1}function b(a){var b=a.editor;b.getSelection().scrollIntoView();
-setTimeout(function(){b.fire("saveSnapshot")},0)}function d(a,b,d){var c=a.getCommonAncestor(b);for(b=a=d?b:a;(a=a.getParent())&&!c.equals(a)&&1==a.getChildCount();)b=a;b.remove()}var g,p,r,v,u,n,q,x,z;CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,$:function(a,b){this.base(b.$||b);this.editor=a;this.status="unloaded";this.hasFocus=!1;this.setup()},proto:{focus:function(){var a;if(CKEDITOR.env.webkit&&!this.hasFocus&&(a=this.editor._.previousActive||this.getDocument().getActive(),
-this.contains(a))){a.focus();return}try{this.$[CKEDITOR.env.ie&&this.getDocument().equals(CKEDITOR.document)?"setActive":"focus"]()}catch(b){if(!CKEDITOR.env.ie)throw b;}CKEDITOR.env.safari&&!this.isInline()&&(a=CKEDITOR.document.getActive(),a.equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(a,b){var d=Array.prototype.slice.call(arguments,0);CKEDITOR.env.ie&&/^focus|blur$/.exec(a)&&(a="focus"==a?"focusin":"focusout",b=h(b,this),d[0]=a,d[1]=b);return CKEDITOR.dom.element.prototype.on.apply(this,
-d)},attachListener:function(a){!this._.listeners&&(this._.listeners=[]);var b=Array.prototype.slice.call(arguments,1),b=a.on.apply(a,b);this._.listeners.push(b);return b},clearListeners:function(){var a=this._.listeners;try{for(;a.length;)a.pop().removeListener()}catch(b){}},restoreAttrs:function(){var a=this._.attrChanges,b,d;for(d in a)a.hasOwnProperty(d)&&(b=a[d],null!==b?this.setAttribute(d,b):this.removeAttribute(d))},attachClass:function(a){var b=this.getCustomData("classes");this.hasClass(a)||
+setTimeout(function(){b.fire("saveSnapshot")},0)}function d(a,b,d){var c=a.getCommonAncestor(b);for(b=a=d?b:a;(a=a.getParent())&&!c.equals(a)&&1==a.getChildCount();)b=a;b.remove()}CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,$:function(a,b){this.base(b.$||b);this.editor=a;this.status="unloaded";this.hasFocus=!1;this.setup()},proto:{focus:function(){var a;if(CKEDITOR.env.webkit&&!this.hasFocus&&(a=this.editor._.previousActive||this.getDocument().getActive(),this.contains(a))){a.focus();
+return}try{this.$[CKEDITOR.env.ie&&this.getDocument().equals(CKEDITOR.document)?"setActive":"focus"]()}catch(b){if(!CKEDITOR.env.ie)throw b;}CKEDITOR.env.safari&&!this.isInline()&&(a=CKEDITOR.document.getActive(),a.equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(a,b){var d=Array.prototype.slice.call(arguments,0);CKEDITOR.env.ie&&/^focus|blur$/.exec(a)&&(a="focus"==a?"focusin":"focusout",b=h(b,this),d[0]=a,d[1]=b);return CKEDITOR.dom.element.prototype.on.apply(this,d)},
+attachListener:function(a){!this._.listeners&&(this._.listeners=[]);var b=Array.prototype.slice.call(arguments,1),b=a.on.apply(a,b);this._.listeners.push(b);return b},clearListeners:function(){var a=this._.listeners;try{for(;a.length;)a.pop().removeListener()}catch(b){}},restoreAttrs:function(){var a=this._.attrChanges,b,d;for(d in a)a.hasOwnProperty(d)&&(b=a[d],null!==b?this.setAttribute(d,b):this.removeAttribute(d))},attachClass:function(a){var b=this.getCustomData("classes");this.hasClass(a)||
 (!b&&(b=[]),b.push(a),this.setCustomData("classes",b),this.addClass(a))},changeAttr:function(a,b){var d=this.getAttribute(a);b!==d&&(!this._.attrChanges&&(this._.attrChanges={}),a in this._.attrChanges||(this._.attrChanges[a]=d),this.setAttribute(a,b))},insertText:function(a){this.editor.focus();this.insertHtml(this.transformPlainTextToHtml(a),"text")},transformPlainTextToHtml:function(a){var b=this.editor.getSelection().getStartElement().hasAscendant("pre",!0)?CKEDITOR.ENTER_BR:this.editor.activeEnterMode;
 return CKEDITOR.tools.transformPlainTextToHtml(a,b)},insertHtml:function(a,d,c){var g=this.editor;g.focus();g.fire("saveSnapshot");c||(c=g.getSelection().getRanges()[0]);n(this,d||"html",a,c);c.select();b(this);this.editor.fire("afterInsertHtml",{})},insertHtmlIntoRange:function(a,b,d){n(this,d||"html",a,b);this.editor.fire("afterInsertHtml",{intoRange:b})},insertElement:function(a,d){var c=this.editor;c.focus();c.fire("saveSnapshot");var g=c.activeEnterMode,c=c.getSelection(),h=a.getName(),h=CKEDITOR.dtd.$block[h];
 d||(d=c.getRanges()[0]);this.insertElementIntoRange(a,d)&&(d.moveToPosition(a,CKEDITOR.POSITION_AFTER_END),h&&((h=a.getNext(function(a){return e(a)&&!v(a)}))&&h.type==CKEDITOR.NODE_ELEMENT&&h.is(CKEDITOR.dtd.$block)?h.getDtd()["#"]?d.moveToElementEditStart(h):d.moveToElementEditEnd(a):h||g==CKEDITOR.ENTER_BR||(h=d.fixBlock(!0,g==CKEDITOR.ENTER_DIV?"div":"p"),d.moveToElementEditStart(h))));c.selectRanges([d]);b(this)},insertElementIntoSelection:function(a){this.insertElement(a)},insertElementIntoRange:function(a,
@@ -324,144 +323,144 @@ b){var d=this.editor,c=d.config.enterMode,g=a.getName(),e=CKEDITOR.dtd.$block[g]
 "div":"p",d.editable());b.insertNode(a);return!0},setData:function(a,b){b||(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.fixInitialSelection();"unloaded"==this.status&&(this.status="ready");this.editor.fire("dataReady")},getData:function(a){var b=this.getHtml();a||(b=this.editor.dataProcessor.toDataFormat(b));return b},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.removeClass("cke_editable");this.status="detached";var a=this.editor;this._.detach();
 delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},fixInitialSelection:function(){function a(){var b=d.getDocument().$,c=b.getSelection(),g;a:if(c.anchorNode&&c.anchorNode==d.$)g=!0;else{if(CKEDITOR.env.webkit&&(g=d.getDocument().getActive())&&g.equals(d)&&!c.anchorNode){g=!0;break a}g=void 0}g&&(g=new CKEDITOR.dom.range(d),g.moveToElementEditStart(d),b=b.createRange(),b.setStart(g.startContainer.$,g.startOffset),b.collapse(!0),c.removeAllRanges(),
 c.addRange(b))}function b(){var a=d.getDocument().$,c=a.selection,g=d.getDocument().getActive();"None"==c.type&&g.equals(d)&&(c=new CKEDITOR.dom.range(d),a=a.body.createTextRange(),c.moveToElementEditStart(d),c=c.startContainer,c.type!=CKEDITOR.NODE_ELEMENT&&(c=c.getParent()),a.moveToElementText(c.$),a.collapse(!0),a.select())}var d=this;if(CKEDITOR.env.ie&&(9>CKEDITOR.env.version||CKEDITOR.env.quirks))this.hasFocus&&(this.focus(),b());else if(this.hasFocus)this.focus(),a();else this.once("focus",
-function(){a()},null,null,-999)},getHtmlFromRange:function(a){if(a.collapsed)return new CKEDITOR.dom.documentFragment(a.document);a={doc:this.getDocument(),range:a.clone()};x.eol.detect(a,this);x.bogus.exclude(a);x.cell.shrink(a);a.fragment=a.range.cloneContents();x.tree.rebuild(a,this);x.eol.fix(a,this);return new CKEDITOR.dom.documentFragment(a.fragment.$)},extractHtmlFromRange:function(a,b){var d=z,c={range:a,doc:a.document},g=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),g;a.enlarge(CKEDITOR.ENLARGE_INLINE,
+function(){a()},null,null,-999)},getHtmlFromRange:function(a){if(a.collapsed)return new CKEDITOR.dom.documentFragment(a.document);a={doc:this.getDocument(),range:a.clone()};w.eol.detect(a,this);w.bogus.exclude(a);w.cell.shrink(a);a.fragment=a.range.cloneContents();w.tree.rebuild(a,this);w.eol.fix(a,this);return new CKEDITOR.dom.documentFragment(a.fragment.$)},extractHtmlFromRange:function(a,b){var d=A,c={range:a,doc:a.document},g=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),g;a.enlarge(CKEDITOR.ENLARGE_INLINE,
 1);d.table.detectPurge(c);c.bookmark=a.createBookmark();delete c.range;var e=this.editor.createRange();e.moveToPosition(c.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START);c.targetBookmark=e.createBookmark();d.list.detectMerge(c,this);d.table.detectRanges(c,this);d.block.detectMerge(c,this);c.tableContentsRanges?(d.table.deleteRanges(c),a.moveToBookmark(c.bookmark),c.range=a):(a.moveToBookmark(c.bookmark),c.range=a,a.extractContents(d.detectExtractMerge(c)));a.moveToBookmark(c.targetBookmark);a.optimize();
-d.fixUneditableRangePosition(a);d.list.merge(c,this);d.table.purge(c,this);d.block.merge(c,this);if(b){d=a.startPath();if(c=a.checkStartOfBlock()&&a.checkEndOfBlock()&&d.block&&!a.root.equals(d.block)){a:{var c=d.block.getElementsByTag("span"),e=0,h;if(c)for(;h=c.getItem(e++);)if(!p(h)){c=!0;break a}c=!1}c=!c}c&&(a.moveToPosition(d.block,CKEDITOR.POSITION_BEFORE_START),d.block.remove())}else d.autoParagraph(this.editor,a),r(a.startContainer)&&a.startContainer.appendBogus();a.startContainer.mergeSiblings();
-return g},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(b=b.replace(u,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a,
+d.fixUneditableRangePosition(a);d.list.merge(c,this);d.table.purge(c,this);d.block.merge(c,this);if(b){d=a.startPath();if(c=a.checkStartOfBlock()&&a.checkEndOfBlock()&&d.block&&!a.root.equals(d.block)){a:{var c=d.block.getElementsByTag("span"),e=0,h;if(c)for(;h=c.getItem(e++);)if(!p(h)){c=!0;break a}c=!1}c=!c}c&&(a.moveToPosition(d.block,CKEDITOR.POSITION_BEFORE_START),d.block.remove())}else d.autoParagraph(this.editor,a),u(a.startContainer)&&a.startContainer.appendBogus();a.startContainer.mergeSiblings();
+return g},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(b=b.replace(r,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a,
 "beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&"Control"==b.type||this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode,a.data.range)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a,"insertText",function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?this.attachClass("cke_editable_inline"):
 a.elementMode!=CKEDITOR.ELEMENT_MODE_REPLACE&&a.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||this.attachClass("cke_editable_themed");this.attachClass("cke_contents_"+a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(){this.hasFocus=!1},null,null,-1);this.on("focus",function(){this.hasFocus=!0},null,null,-1);a.focusManager.add(this);this.equals(CKEDITOR.document.getActive())&&(this.hasFocus=!0,a.once("contentDom",
-function(){a.focusManager.focus(this)},this));this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=this.getDocument();a.window=this.getWindow();var b=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var h=a.config.contentsLangDirection;this.getDirection(1)!=h&&this.changeAttr("dir",h);var f=CKEDITOR.getCss();if(f){var h=b.getHead(),k=h.getCustomData("stylesheet");k?f!=k.getText()&&(CKEDITOR.env.ie&&9>CKEDITOR.env.version?k.$.styleSheet.cssText=
-f:k.setText(f)):(f=b.appendStyleText(f),f=new CKEDITOR.dom.element(f.ownerNode||f.owningElement),h.setCustomData("stylesheet",f),f.data("cke-temp",1))}h=b.getCustomData("stylesheet_ref")||0;b.setCustomData("stylesheet_ref",h+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){a=a.data;var b=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a");b&&2!=a.$.button&&b.isReadOnly()&&a.preventDefault()});var p={8:1,46:1};this.attachListener(a,
-"key",function(b){if(a.readOnly)return!0;var d=b.data.domEvent.getKey(),c;if(d in p){b=a.getSelection();var e,h=b.getRanges()[0],f=h.startPath(),k,t,l,d=8==d;CKEDITOR.env.ie&&11>CKEDITOR.env.version&&(e=b.getSelectedElement())||(e=m(b))?(a.fire("saveSnapshot"),h.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e.remove(),h.select(),a.fire("saveSnapshot"),c=1):h.collapsed&&((k=f.block)&&(l=k[d?"getPrevious":"getNext"](g))&&l.type==CKEDITOR.NODE_ELEMENT&&l.is("table")&&h[d?"checkStartOfBlock":"checkEndOfBlock"]()?
-(a.fire("saveSnapshot"),h[d?"checkEndOfBlock":"checkStartOfBlock"]()&&k.remove(),h["moveToElementEdit"+(d?"End":"Start")](l),h.select(),a.fire("saveSnapshot"),c=1):f.blockLimit&&f.blockLimit.is("td")&&(t=f.blockLimit.getAscendant("table"))&&h.checkBoundaryOfElement(t,d?CKEDITOR.START:CKEDITOR.END)&&(l=t[d?"getPrevious":"getNext"](g))?(a.fire("saveSnapshot"),h["moveToElementEdit"+(d?"End":"Start")](l),h.checkStartOfBlock()&&h.checkEndOfBlock()?l.remove():h.select(),a.fire("saveSnapshot"),c=1):(t=f.contains(["td",
-"th","caption"]))&&h.checkBoundaryOfElement(t,d?CKEDITOR.START:CKEDITOR.END)&&(c=1))}return!c});a.blockless&&CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(b){b.data.getKeystroke()in p&&!this.getFirst(e)&&(this.appendBogus(),b=a.createRange(),b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START),b.select())});this.attachListener(this,"dblclick",function(b){if(a.readOnly)return!1;b={element:b.data.getTarget()};a.fire("doubleclick",b)});CKEDITOR.env.ie&&this.attachListener(this,
-"click",c);CKEDITOR.env.ie&&!CKEDITOR.env.edge||this.attachListener(this,"mousedown",function(b){var d=b.data.getTarget();d.is("img","hr","input","textarea","select")&&!d.isReadOnly()&&(a.getSelection().selectElement(d),d.is("input","textarea","select")&&b.data.preventDefault())});CKEDITOR.env.edge&&this.attachListener(this,"mouseup",function(b){(b=b.data.getTarget())&&b.is("img")&&a.getSelection().selectElement(b)});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(2==b.data.$.button&&
-(b=b.data.getTarget(),!b.getOuterHtml().replace(u,""))){var d=a.createRange();d.moveToElementEditStart(b);d.select(!0)}});CKEDITOR.env.webkit&&(this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()}),this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()}));CKEDITOR.env.webkit&&this.attachListener(a,"key",function(b){if(a.readOnly)return!0;b=b.data.domEvent.getKey();if(b in p){var c=
-8==b,g=a.getSelection().getRanges()[0];b=g.startPath();if(g.collapsed)a:{var e=b.block;if(e&&g[c?"checkStartOfBlock":"checkEndOfBlock"]()&&g.moveToClosestEditablePosition(e,!c)&&g.collapsed){if(g.startContainer.type==CKEDITOR.NODE_ELEMENT){var h=g.startContainer.getChild(g.startOffset-(c?1:0));if(h&&h.type==CKEDITOR.NODE_ELEMENT&&h.is("hr")){a.fire("saveSnapshot");h.remove();b=!0;break a}}g=g.startPath().block;if(!g||g&&g.contains(e))b=void 0;else{a.fire("saveSnapshot");var f;(f=(c?g:e).getBogus())&&
-f.remove();f=a.getSelection();h=f.createBookmarks();(c?e:g).moveChildren(c?g:e,!1);b.lastElement.mergeSiblings();d(e,g,!c);f.selectBookmarks(h);b=!0}}else b=!1}else c=g,f=b.block,g=c.endPath().block,f&&g&&!f.equals(g)?(a.fire("saveSnapshot"),(e=f.getBogus())&&e.remove(),c.enlarge(CKEDITOR.ENLARGE_INLINE),c.deleteContents(),g.getParent()&&(g.moveChildren(f,!1),b.lastElement.mergeSiblings(),d(f,g,!0)),c=a.getSelection().getRanges()[0],c.collapse(1),c.optimize(),""===c.startContainer.getHtml()&&c.startContainer.appendBogus(),
-c.select(),b=!0):b=!1;if(!b)return;a.getSelection().scrollIntoView();a.fire("saveSnapshot");return!1}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var d=a.getCustomData("stylesheet_ref");--d?a.setCustomData("stylesheet_ref",d):(a.removeCustomData("stylesheet_ref"),
-b.removeCustomData("stylesheet").remove())}}this.editor.fire("contentDomUnload");delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;arguments.length&&(b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null));return b};CKEDITOR.on("instanceLoaded",function(b){var d=b.editor;d.on("insertElement",function(a){a=a.data;a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))&&("false"!=a.getAttribute("contentEditable")&&
-a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1"),a.setAttribute("contentEditable",!1))});d.on("selectionChange",function(b){if(!d.readOnly){var c=d.getSelection();c&&!c.isLocked&&(c=d.checkDirty(),d.fire("lockSnapshot"),a(b),d.fire("unlockSnapshot"),!c&&d.resetDirty())}})});CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var d=b.title;a.changeAttr("role","textbox");a.changeAttr("aria-label",d);d&&a.changeAttr("title",
-d);var c=b.fire("ariaEditorHelpLabel",{}).label;if(c&&(d=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var g=CKEDITOR.tools.getNextId(),c=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+g+'" class\x3d"cke_voice_label"\x3e'+c+"\x3c/span\x3e");d.append(c);a.changeAttr("aria-describedby",g)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");g=CKEDITOR.dom.walker.whitespaces(!0);p=CKEDITOR.dom.walker.bookmark(!1,
-!0);r=CKEDITOR.dom.walker.empty();v=CKEDITOR.dom.walker.bogus();u=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;n=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function b(d,c){var g,e,h,f,k=[],l=c.range.startContainer;g=c.range.startPath();for(var l=p[l.getName()],n=0,m=d.getChildren(),u=m.count(),q=-1,w=-1,x=0,r=g.contains(p.$list);n<u;++n)g=m.getItem(n),a(g)?(h=g.getName(),r&&h in CKEDITOR.dtd.$list?
-k=k.concat(b(g,c)):(f=!!l[h],"br"!=h||!g.data("cke-eol")||n&&n!=u-1||(x=(e=n?k[n-1].node:m.getItem(n+1))&&(!a(e)||!e.is("br")),e=e&&a(e)&&p.$block[e.getName()]),-1!=q||f||(q=n),f||(w=n),k.push({isElement:1,isLineBreak:x,isBlock:g.isBlockBoundary(),hasBlockSibling:e,node:g,name:h,allowed:f}),e=x=0)):k.push({isElement:0,node:g,allowed:1});-1<q&&(k[q].firstNotAllowed=1);-1<w&&(k[w].lastNotAllowed=1);return k}function d(b,c){var g=[],e=b.getChildren(),h=e.count(),f,k=0,l=p[c],n=!b.is(p.$inline)||b.is("br");
-for(n&&g.push(" ");k<h;k++)f=e.getItem(k),a(f)&&!f.is(l)?g=g.concat(d(f,c)):g.push(f);n&&g.push(" ");return g}function c(b){return a(b.startContainer)&&b.startContainer.getChild(b.startOffset-1)}function g(b){return b&&a(b)&&(b.is(p.$removeEmpty)||b.is("a")&&!b.isBlockBoundary())}function h(b,d,c,g){var e=b.clone(),f,k;e.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);(f=(new CKEDITOR.dom.walker(e)).next())&&a(f)&&n[f.getName()]&&(k=f.getPrevious())&&a(k)&&!k.getParent().equals(b.startContainer)&&c.contains(k)&&
-g.contains(f)&&f.isIdentical(k)&&(f.moveChildren(k),f.remove(),h(b,d,c,g))}function f(b,d){function c(b,d){if(d.isBlock&&d.isElement&&!d.node.is("br")&&a(b)&&b.is("br"))return b.remove(),1}var g=d.endContainer.getChild(d.endOffset),e=d.endContainer.getChild(d.endOffset-1);g&&c(g,b[b.length-1]);e&&c(e,b[0])&&(d.setEnd(d.endContainer,d.endOffset-1),d.collapse())}var p=CKEDITOR.dtd,n={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},m={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,
-h6:1},u=CKEDITOR.tools.extend({},p.$inline);delete u.br;return function(n,q,I,x){var r=n.editor,v=!1;"unfiltered_html"==q&&(q="html",v=!0);if(!x.checkReadOnly()){var z=(new CKEDITOR.dom.elementPath(x.startContainer,x.root)).blockLimit||x.root;n={type:q,dontFilter:v,editable:n,editor:r,range:x,blockLimit:z,mergeCandidates:[],zombies:[]};q=n.range;x=n.mergeCandidates;var K,E;"text"==n.type&&q.shrink(CKEDITOR.SHRINK_ELEMENT,!0,!1)&&(K=CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",
-q.document),q.insertNode(K),q.setStartAfter(K));v=new CKEDITOR.dom.elementPath(q.startContainer);n.endPath=z=new CKEDITOR.dom.elementPath(q.endContainer);if(!q.collapsed){var r=z.block||z.blockLimit,U=q.getCommonAncestor();r&&!r.equals(U)&&!r.contains(U)&&q.checkEndOfBlock()&&n.zombies.push(r);q.deleteContents()}for(;(E=c(q))&&a(E)&&E.isBlockBoundary()&&v.contains(E);)q.moveToPosition(E,CKEDITOR.POSITION_BEFORE_END);h(q,n.blockLimit,v,z);K&&(q.setEndBefore(K),q.collapse(),K.remove());K=q.startPath();
-if(r=K.contains(g,!1,1))q.splitElement(r),n.inlineStylesRoot=r,n.inlineStylesPeak=K.lastElement;K=q.createBookmark();(r=K.startNode.getPrevious(e))&&a(r)&&g(r)&&x.push(r);(r=K.startNode.getNext(e))&&a(r)&&g(r)&&x.push(r);for(r=K.startNode;(r=r.getParent())&&g(r);)x.push(r);q.moveToBookmark(K);if(K=I){K=n.range;if("text"==n.type&&n.inlineStylesRoot){E=n.inlineStylesPeak;q=E.getDocument().createText("{cke-peak}");for(x=n.inlineStylesRoot.getParent();!E.equals(x);)q=q.appendTo(E.clone()),E=E.getParent();
-I=q.getOuterHtml().split("{cke-peak}").join(I)}E=n.blockLimit.getName();if(/^\s+|\s+$/.test(I)&&"span"in CKEDITOR.dtd[E]){var S='\x3cspan data-cke-marker\x3d"1"\x3e\x26nbsp;\x3c/span\x3e';I=S+I+S}I=n.editor.dataProcessor.toHtml(I,{context:null,fixForBody:!1,protectedWhitespaces:!!S,dontFilter:n.dontFilter,filter:n.editor.activeFilter,enterMode:n.editor.activeEnterMode});E=K.document.createElement("body");E.setHtml(I);S&&(E.getFirst().remove(),E.getLast().remove());if((S=K.startPath().block)&&(1!=
-S.getChildCount()||!S.getBogus()))a:{var J;if(1==E.getChildCount()&&a(J=E.getFirst())&&J.is(m)&&!J.hasAttribute("contenteditable")){S=J.getElementsByTag("*");K=0;for(x=S.count();K<x;K++)if(q=S.getItem(K),!q.is(u))break a;J.moveChildren(J.getParent(1));J.remove()}}n.dataWrapper=E;K=I}if(K){J=n.range;K=J.document;var H;E=n.blockLimit;x=0;var V,S=[],T,Z;I=r=0;var X,da;q=J.startContainer;var v=n.endPath.elements[0],aa,z=v.getPosition(q),U=!!v.getCommonAncestor(q)&&z!=CKEDITOR.POSITION_IDENTICAL&&!(z&
-CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);q=b(n.dataWrapper,n);for(f(q,J);x<q.length;x++){z=q[x];if(H=z.isLineBreak){H=J;X=E;var Y=void 0,fa=void 0;z.hasBlockSibling?H=1:(Y=H.startContainer.getAscendant(p.$block,1))&&Y.is({div:1,p:1})?(fa=Y.getPosition(X),fa==CKEDITOR.POSITION_IDENTICAL||fa==CKEDITOR.POSITION_CONTAINS?H=0:(X=H.splitElement(Y),H.moveToPosition(X,CKEDITOR.POSITION_AFTER_START),H=1)):H=0}if(H)I=0<x;else{H=J.startPath();!z.isBlock&&l(n.editor,H.block,H.blockLimit)&&(Z=
-k(n.editor))&&(Z=K.createElement(Z),Z.appendBogus(),J.insertNode(Z),CKEDITOR.env.needsBrFiller&&(V=Z.getBogus())&&V.remove(),J.moveToPosition(Z,CKEDITOR.POSITION_BEFORE_END));if((H=J.startPath().block)&&!H.equals(T)){if(V=H.getBogus())V.remove(),S.push(H);T=H}z.firstNotAllowed&&(r=1);if(r&&z.isElement){H=J.startContainer;for(X=null;H&&!p[H.getName()][z.name];){if(H.equals(E)){H=null;break}X=H;H=H.getParent()}if(H)X&&(da=J.splitElement(X),n.zombies.push(da),n.zombies.push(X));else{X=E.getName();aa=
-!x;H=x==q.length-1;X=d(z.node,X);for(var Y=[],fa=X.length,ca=0,ea=void 0,ha=0,ia=-1;ca<fa;ca++)ea=X[ca]," "==ea?(ha||aa&&!ca||(Y.push(new CKEDITOR.dom.text(" ")),ia=Y.length),ha=1):(Y.push(ea),ha=0);H&&ia==Y.length&&Y.pop();aa=Y}}if(aa){for(;H=aa.pop();)J.insertNode(H);aa=0}else J.insertNode(z.node);z.lastNotAllowed&&x<q.length-1&&((da=U?v:da)&&J.setEndAt(da,CKEDITOR.POSITION_AFTER_START),r=0);J.collapse()}}1!=q.length?V=!1:(V=q[0],V=V.isElement&&"false"==V.node.getAttribute("contenteditable"));V&&
-(I=!0,H=q[0].node,J.setStartAt(H,CKEDITOR.POSITION_BEFORE_START),J.setEndAt(H,CKEDITOR.POSITION_AFTER_END));n.dontMoveCaret=I;n.bogusNeededBlocks=S}V=n.range;var ba;da=n.bogusNeededBlocks;for(aa=V.createBookmark();T=n.zombies.pop();)T.getParent()&&(Z=V.clone(),Z.moveToElementEditStart(T),Z.removeEmptyBlocksAtEnd());if(da)for(;T=da.pop();)CKEDITOR.env.needsBrFiller?T.appendBogus():T.append(V.document.createText(" "));for(;T=n.mergeCandidates.pop();)T.mergeSiblings();V.moveToBookmark(aa);if(!n.dontMoveCaret){for(T=
-c(V);T&&a(T)&&!T.is(p.$empty);){if(T.isBlockBoundary())V.moveToPosition(T,CKEDITOR.POSITION_BEFORE_END);else{if(g(T)&&T.getHtml().match(/(\s|&nbsp;)$/g)){ba=null;break}ba=V.clone();ba.moveToPosition(T,CKEDITOR.POSITION_BEFORE_END)}T=T.getLast(e)}ba&&V.moveToRange(ba)}}}}();q=function(){function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$tableContent)};b.evaluator=function(a){return a.type==CKEDITOR.NODE_ELEMENT};
-return b}function b(a,d,c){d=a.getDocument().createElement(d);a.append(d,c);return d}function d(a){var b=a.count(),c;for(b;0<b--;)c=a.getItem(b),CKEDITOR.tools.trim(c.getHtml())||(c.appendBogus(),CKEDITOR.env.ie&&9>CKEDITOR.env.version&&c.getChildCount()&&c.getFirst().remove())}return function(c){var g=c.startContainer,e=g.getAscendant("table",1),h=!1;d(e.getElementsByTag("td"));d(e.getElementsByTag("th"));e=c.clone();e.setStart(g,0);e=a(e).lastBackward();e||(e=c.clone(),e.setEndAt(g,CKEDITOR.POSITION_BEFORE_END),
-e=a(e).lastForward(),h=!0);e||(e=g);e.is("table")?(c.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),c.collapse(!0),e.remove()):(e.is({tbody:1,thead:1,tfoot:1})&&(e=b(e,"tr",h)),e.is("tr")&&(e=b(e,e.getParent().is("thead")?"th":"td",h)),(g=e.getBogus())&&g.remove(),c.moveToPosition(e,h?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}();x={eol:{detect:function(a,b){var d=a.range,c=d.clone(),g=d.clone(),e=new CKEDITOR.dom.elementPath(d.startContainer,b),h=new CKEDITOR.dom.elementPath(d.endContainer,
-b);c.collapse(1);g.collapse();e.block&&c.checkBoundaryOfElement(e.block,CKEDITOR.END)&&(d.setStartAfter(e.block),a.prependEolBr=1);h.block&&g.checkBoundaryOfElement(h.block,CKEDITOR.START)&&(d.setEndBefore(h.block),a.appendEolBr=1)},fix:function(a,b){var d=b.getDocument(),c;a.appendEolBr&&(c=this.createEolBr(d),a.fragment.append(c));!a.prependEolBr||c&&!c.getPrevious()||a.fragment.append(this.createEolBr(d),1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},
-bogus:{exclude:function(a){var b=a.range.getBoundaryNodes(),d=b.startNode,b=b.endNode;!b||!v(b)||d&&d.equals(b)||a.range.setEndBefore(b)}},tree:{rebuild:function(a,b){var d=a.range,c=d.getCommonAncestor(),g=new CKEDITOR.dom.elementPath(c,b),e=new CKEDITOR.dom.elementPath(d.startContainer,b),d=new CKEDITOR.dom.elementPath(d.endContainer,b),h;c.type==CKEDITOR.NODE_TEXT&&(c=c.getParent());if(g.blockLimit.is({tr:1,table:1})){var f=g.contains("table").getParent();h=function(a){return!a.equals(f)}}else if(g.block&&
-g.block.is(CKEDITOR.dtd.$listItem)&&(e=e.contains(CKEDITOR.dtd.$list),d=d.contains(CKEDITOR.dtd.$list),!e.equals(d))){var k=g.contains(CKEDITOR.dtd.$list).getParent();h=function(a){return!a.equals(k)}}h||(h=function(a){return!a.equals(g.block)&&!a.equals(g.blockLimit)});this.rebuildFragment(a,b,c,h)},rebuildFragment:function(a,b,d,c){for(var g;d&&!d.equals(b)&&c(d);)g=d.clone(0,1),a.fragment.appendTo(g),a.fragment=g,d=d.getParent()}},cell:{shrink:function(a){a=a.range;var b=a.startContainer,d=a.endContainer,
-c=a.startOffset,g=a.endOffset;b.type==CKEDITOR.NODE_ELEMENT&&b.equals(d)&&b.is("tr")&&++c==g&&a.shrink(CKEDITOR.SHRINK_TEXT)}}};z=function(){function a(b,d){var c=b.getParent();if(c.is(CKEDITOR.dtd.$inline))b[d?"insertBefore":"insertAfter"](c)}function b(d,c,g){a(c);a(g,1);for(var e;e=g.getNext();)e.insertAfter(c),c=e;r(d)&&d.remove()}function d(a,b){var c=new CKEDITOR.dom.range(a);c.setStartAfter(b.startNode);c.setEndBefore(b.endNode);return c}return{list:{detectMerge:function(a,b){var c=d(b,a.bookmark),
-g=c.startPath(),e=c.endPath(),h=g.contains(CKEDITOR.dtd.$list),f=e.contains(CKEDITOR.dtd.$list);a.mergeList=h&&f&&h.getParent().equals(f.getParent())&&!h.equals(f);a.mergeListItems=g.block&&e.block&&g.block.is(CKEDITOR.dtd.$listItem)&&e.block.is(CKEDITOR.dtd.$listItem);if(a.mergeList||a.mergeListItems)c=c.clone(),c.setStartBefore(a.bookmark.startNode),c.setEndAfter(a.bookmark.endNode),a.mergeListBookmark=c.createBookmark()},merge:function(a,d){if(a.mergeListBookmark){var c=a.mergeListBookmark.startNode,
-g=a.mergeListBookmark.endNode,e=new CKEDITOR.dom.elementPath(c,d),h=new CKEDITOR.dom.elementPath(g,d);if(a.mergeList){var f=e.contains(CKEDITOR.dtd.$list),k=h.contains(CKEDITOR.dtd.$list);f.equals(k)||(k.moveChildren(f),k.remove())}a.mergeListItems&&(e=e.contains(CKEDITOR.dtd.$listItem),h=h.contains(CKEDITOR.dtd.$listItem),e.equals(h)||b(h,c,g));c.remove();g.remove()}}},block:{detectMerge:function(a,b){if(!a.tableContentsRanges&&!a.mergeListBookmark){var d=new CKEDITOR.dom.range(b);d.setStartBefore(a.bookmark.startNode);
-d.setEndAfter(a.bookmark.endNode);a.mergeBlockBookmark=d.createBookmark()}},merge:function(a,d){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var c=a.mergeBlockBookmark.startNode,g=a.mergeBlockBookmark.endNode,e=new CKEDITOR.dom.elementPath(c,d),h=new CKEDITOR.dom.elementPath(g,d),e=e.block,h=h.block;e&&h&&!e.equals(h)&&b(h,c,g);c.remove();g.remove()}}},table:function(){function a(d){var g=[],e,h=new CKEDITOR.dom.walker(d),f=d.startPath().contains(c),k=d.endPath().contains(c),p={};h.guard=function(a,
-h){if(a.type==CKEDITOR.NODE_ELEMENT){var n="visited_"+(h?"out":"in");if(a.getCustomData(n))return;CKEDITOR.dom.element.setMarker(p,a,n,1)}if(h&&f&&a.equals(f))e=d.clone(),e.setEndAt(f,CKEDITOR.POSITION_BEFORE_END),g.push(e);else if(!h&&k&&a.equals(k))e=d.clone(),e.setStartAt(k,CKEDITOR.POSITION_AFTER_START),g.push(e);else{if(n=!h)n=a.type==CKEDITOR.NODE_ELEMENT&&a.is(c)&&(!f||b(a,f))&&(!k||b(a,k));n&&(e=d.clone(),e.selectNodeContents(a),g.push(e))}};h.lastForward();CKEDITOR.dom.element.clearAllMarkers(p);
-return g}function b(a,d){var c=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,g=a.getPosition(d);return g===CKEDITOR.POSITION_IDENTICAL?!1:0===(g&c)}var c={td:1,th:1,caption:1};return{detectPurge:function(a){var b=a.range,d=b.clone();d.enlarge(CKEDITOR.ENLARGE_ELEMENT);var d=new CKEDITOR.dom.walker(d),g=0;d.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(c)&&++g};d.checkForward();if(1<g){var d=b.startPath().contains("table"),e=b.endPath().contains("table");d&&e&&b.checkBoundaryOfElement(d,
-CKEDITOR.START)&&b.checkBoundaryOfElement(e,CKEDITOR.END)&&(b=a.range.clone(),b.setStartBefore(d),b.setEndAfter(e),a.purgeTableBookmark=b.createBookmark())}},detectRanges:function(g,e){var h=d(e,g.bookmark),f=h.clone(),k,p,n=h.getCommonAncestor();n.is(CKEDITOR.dtd.$tableContent)&&!n.is(c)&&(n=n.getAscendant("table",!0));p=n;n=new CKEDITOR.dom.elementPath(h.startContainer,p);p=new CKEDITOR.dom.elementPath(h.endContainer,p);n=n.contains("table");p=p.contains("table");if(n||p)n&&p&&b(n,p)?(g.tableSurroundingRange=
-f,f.setStartAt(n,CKEDITOR.POSITION_AFTER_END),f.setEndAt(p,CKEDITOR.POSITION_BEFORE_START),f=h.clone(),f.setEndAt(n,CKEDITOR.POSITION_AFTER_END),k=h.clone(),k.setStartAt(p,CKEDITOR.POSITION_BEFORE_START),k=a(f).concat(a(k))):n?p||(g.tableSurroundingRange=f,f.setStartAt(n,CKEDITOR.POSITION_AFTER_END),h.setEndAt(n,CKEDITOR.POSITION_AFTER_END)):(g.tableSurroundingRange=f,f.setEndAt(p,CKEDITOR.POSITION_BEFORE_START),h.setStartAt(p,CKEDITOR.POSITION_AFTER_START)),g.tableContentsRanges=k?k:a(h)},deleteRanges:function(a){for(var b;b=
-a.tableContentsRanges.pop();)b.extractContents(),r(b.startContainer)&&b.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var b=a.doc,d=a.range.clone(),b=b.createElement("p");b.insertBefore(a.purgeTableBookmark.startNode);d.moveToBookmark(a.purgeTableBookmark);d.deleteContents();a.range.moveToPosition(b,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&
-a.range.endPath().contains(CKEDITOR.dtd.$listItem))},fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,!0)},autoParagraph:function(a,b){var d=b.startPath(),c;l(a,d.block,d.blockLimit)&&(c=k(a))&&(c=b.document.createElement(c),c.appendBogus(),b.insertNode(c),b.moveToPosition(c,CKEDITOR.POSITION_AFTER_START))}}}()}(),function(){function a(){var a=this._.fakeSelection,b;a&&(b=this.getSelection(1),b&&b.isHidden()||(a.reset(),a=0));if(!a&&(a=b||
-this.getSelection(1),!a||a.getType()==CKEDITOR.SELECTION_NONE))return;this.fire("selectionCheck",a);b=this.elementPath();b.compare(this._.selectionPreviousPath)||(CKEDITOR.env.webkit&&(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=b,this.fire("selectionChange",{selection:a,path:b}))}function f(){r=!0;p||(c.call(this),p=CKEDITOR.tools.setTimeout(c,200,this))}function c(){p=null;r&&(CKEDITOR.tools.setTimeout(a,0,this),r=!1)}function e(a){return v(a)||a.type==CKEDITOR.NODE_ELEMENT&&
-!a.is(CKEDITOR.dtd.$empty)?!0:!1}function h(a){function b(d,c){return d&&d.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(c?"End":"Start")](d):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var d=a.startContainer,c=a.getPreviousNode(e,null,d),g=a.getNextNode(e,null,d);return b(c)||b(g,1)||!(c||g||d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()&&d.getBogus())?!0:!1}function m(a){l(a,!1);var b=a.getDocument().createText(z);a.setCustomData("cke-fillingChar",b);return b}function l(a,
-b){var d=a&&a.removeCustomData("cke-fillingChar");if(d){if(!1!==b){var c=a.getDocument().getSelection().getNative(),g=c&&"None"!=c.type&&c.getRangeAt(0),e=z.length;if(d.getLength()>e&&g&&g.intersectsNode(d.$)){var h=[{node:c.anchorNode,offset:c.anchorOffset},{node:c.focusNode,offset:c.focusOffset}];c.anchorNode==d.$&&c.anchorOffset>e&&(h[0].offset-=e);c.focusNode==d.$&&c.focusOffset>e&&(h[1].offset-=e)}}d.setText(k(d.getText(),1));h&&(d=a.getDocument().$,c=d.getSelection(),d=d.createRange(),d.setStart(h[0].node,
-h[0].offset),d.collapse(!0),c.removeAllRanges(),c.addRange(d),c.extend(h[1].node,h[1].offset))}}function k(a,b){return b?a.replace(A,function(a,b){return b?" ":""}):a.replace(z,"")}function b(a,b){var d=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" style\x3d"'+(CKEDITOR.env.ie?"display:none":"position:fixed;top:0;left:-1000px")+'"\x3e'+(b||"\x26nbsp;")+"\x3c/div\x3e",a.document);a.fire("lockSnapshot");a.editable().append(d);var c=a.getSelection(1),g=
-a.createRange(),e=c.root.on("selectionchange",function(a){a.cancel()},null,null,0);g.setStartAt(d,CKEDITOR.POSITION_AFTER_START);g.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);c.selectRanges([g]);e.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=d}function d(a){var b={37:1,39:1,8:1,46:1};return function(d){var c=d.data.getKeystroke();if(b[c]){var g=a.getSelection().getRanges(),e=g[0];1==g.length&&e.collapsed&&(c=e[38>c?"getPreviousEditableNode":"getNextEditableNode"]())&&c.type==
-CKEDITOR.NODE_ELEMENT&&"false"==c.getAttribute("contenteditable")&&(a.getSelection().fake(c),d.data.preventDefault(),d.cancel())}}}function g(a){for(var b=0;b<a.length;b++){var d=a[b];d.getCommonAncestor().isReadOnly()&&a.splice(b,1);if(!d.collapsed){if(d.startContainer.isReadOnly())for(var c=d.startContainer,g;c&&!((g=c.type==CKEDITOR.NODE_ELEMENT)&&c.is("body")||!c.isReadOnly());)g&&"false"==c.getAttribute("contentEditable")&&d.setStartAfter(c),c=c.getParent();c=d.startContainer;g=d.endContainer;
-var e=d.startOffset,h=d.endOffset,f=d.clone();c&&c.type==CKEDITOR.NODE_TEXT&&(e>=c.getLength()?f.setStartAfter(c):f.setStartBefore(c));g&&g.type==CKEDITOR.NODE_TEXT&&(h?f.setEndAfter(g):f.setEndBefore(g));c=new CKEDITOR.dom.walker(f);c.evaluator=function(c){if(c.type==CKEDITOR.NODE_ELEMENT&&c.isReadOnly()){var g=d.clone();d.setEndBefore(c);d.collapsed&&a.splice(b--,1);c.getPosition(f.endContainer)&CKEDITOR.POSITION_CONTAINS||(g.setStartAfter(c),g.collapsed||a.splice(b+1,0,g));return!0}return!1};c.next()}}return a}
-var p,r,v=CKEDITOR.dom.walker.invisible(1),u=function(){function a(b){return function(a){var d=a.editor.createRange();d.moveToClosestEditablePosition(a.selected,b)&&a.editor.getSelection().selectRanges([d]);return!1}}function b(a){return function(b){var d=b.editor,c=d.createRange(),g;(g=c.moveToClosestEditablePosition(b.selected,a))||(g=c.moveToClosestEditablePosition(b.selected,!a));g&&d.getSelection().selectRanges([c]);d.fire("saveSnapshot");b.selected.remove();g||(c.moveToElementEditablePosition(d.editable()),
-d.getSelection().selectRanges([c]));d.fire("saveSnapshot");return!1}}var d=a(),c=a(1);return{37:d,38:d,39:c,40:c,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(b){function c(){var a=g.getSelection();a&&a.removeAllRanges()}var g=b.editor;g.on("contentDom",function(){function b(){u=new CKEDITOR.dom.selection(g.getSelection());u.lock()}function c(){h.removeListener("mouseup",c);m.removeListener("mouseup",c);var a=CKEDITOR.document.$.selection,b=a.createRange();"None"!=a.type&&b.parentElement().ownerDocument==
-e.$&&b.select()}var e=g.document,h=CKEDITOR.document,k=g.editable(),p=e.getBody(),m=e.getDocumentElement(),t=k.isInline(),q,u;CKEDITOR.env.gecko&&k.attachListener(k,"focus",function(a){a.removeListener();0!==q&&(a=g.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==k.$&&(a=g.createRange(),a.moveToElementEditStart(k),a.select())},null,null,-2);k.attachListener(k,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){q&&CKEDITOR.env.webkit&&(q=g._.previousActive&&g._.previousActive.equals(e.getActive()));
-g.unlockSelection(q);q=0},null,null,-1);k.attachListener(k,"mousedown",function(){q=0});if(CKEDITOR.env.ie||t)n?k.attachListener(k,"beforedeactivate",b,null,null,-1):k.attachListener(g,"selectionCheck",b,null,null,-1),k.attachListener(k,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){g.lockSelection(u);q=1},null,null,-1),k.attachListener(k,"mousedown",function(){q=0});if(CKEDITOR.env.ie&&!t){var x;k.attachListener(k,"mousedown",function(a){2==a.data.$.button&&((a=g.document.getSelection())&&a.getType()!=
-CKEDITOR.SELECTION_NONE||(x=g.window.getScrollPosition()))});k.attachListener(k,"mouseup",function(a){2==a.data.$.button&&x&&(g.document.$.documentElement.scrollLeft=x.x,g.document.$.documentElement.scrollTop=x.y);x=null});if("BackCompat"!=e.$.compatMode){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)m.on("mousedown",function(a){function b(a){a=a.data.$;if(c){var d=p.$.createTextRange();try{d.moveToPoint(a.clientX,a.clientY)}catch(g){}c.setEndPoint(0>e.compareEndPoints("StartToStart",d)?"EndToEnd":
-"StartToStart",d);c.select()}}function d(){m.removeListener("mousemove",b);h.removeListener("mouseup",d);m.removeListener("mouseup",d);c.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<m.$.clientHeight&&a.$.x<m.$.clientWidth){var c=p.$.createTextRange();try{c.moveToPoint(a.$.clientX,a.$.clientY)}catch(g){}var e=c.duplicate();m.on("mousemove",b);h.on("mouseup",d);m.on("mouseup",d)}});if(7<CKEDITOR.env.version&&11>CKEDITOR.env.version)m.on("mousedown",function(a){a.data.getTarget().is("html")&&
-(h.on("mouseup",c),m.on("mouseup",c))})}}k.attachListener(k,"selectionchange",a,g);k.attachListener(k,"keyup",f,g);k.attachListener(k,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){g.forceNextSelectionCheck();g.selectionChange(1)});if(t&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var r;k.attachListener(k,"mousedown",function(){r=1});k.attachListener(e.getDocumentElement(),"mouseup",function(){r&&f.call(g);r=0})}else k.attachListener(CKEDITOR.env.ie?k:e.getDocumentElement(),"mouseup",f,g);CKEDITOR.env.webkit&&
-k.attachListener(e,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:l(k)}},null,null,-1);k.attachListener(k,"keydown",d(g),null,null,-1)});g.on("setData",function(){g.unlockSelection();CKEDITOR.env.webkit&&c()});g.on("contentDomUnload",function(){g.unlockSelection()});if(CKEDITOR.env.ie9Compat)g.on("beforeDestroy",c,null,null,9);g.on("dataReady",function(){delete g._.fakeSelection;delete g._.hiddenSelectionContainer;g.selectionChange(1)});
-g.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),b=g.editable().getLast(a);b&&b.hasAttribute("data-cke-hidden-sel")&&(b.remove(),CKEDITOR.env.gecko&&(a=g.editable().getFirst(a))&&a.is("br")&&a.getAttribute("_moz_editor_bogus_node")&&a.remove())},null,null,100);g.on("key",function(a){if("wysiwyg"==g.mode){var b=g.getSelection();if(b.isFake){var d=u[a.data.keyCode];if(d)return d({editor:g,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})});if(CKEDITOR.env.webkit)CKEDITOR.on("instanceReady",
-function(a){var b=a.editor;b.on("selectionChange",function(){var a=b.editable(),d=a.getCustomData("cke-fillingChar");d&&(d.getCustomData("ready")?l(a):d.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){l(b.editable())},null,null,-1);b.on("getSnapshot",function(a){a.data&&(a.data=k(a.data))},b,null,20);b.on("toDataFormat",function(a){a.data.dataValue=k(a.data.dataValue)},null,null,0)});CKEDITOR.editor.prototype.selectionChange=function(b){(b?a:f).call(this)};CKEDITOR.editor.prototype.getSelection=
-function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);return a.getType()!=CKEDITOR.SELECTION_NONE?(!a.isLocked&&a.lock(),this._.savedSelection=a,!0):!1};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;return b?(b.unlock(a),delete this._.savedSelection,!0):
-!1};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;var n="function"!=typeof window.getSelection,
-q=1;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var b=a;a=a.root}var d=a instanceof CKEDITOR.dom.element;this.rev=b?b.rev:q++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=d?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(b)return CKEDITOR.tools.extend(this._.cache,b._.cache),this.isFake=b.isFake,this.isLocked=b.isLocked,this;a=this.getNative();var c,g;if(a)if(a.getRangeAt)c=(g=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(g.commonAncestorContainer);
-else{try{g=a.createRange()}catch(e){}c=g&&CKEDITOR.dom.element.get(g.item&&g.item(0)||g.parentElement())}if(!c||c.type!=CKEDITOR.NODE_ELEMENT&&c.type!=CKEDITOR.NODE_TEXT||!this.root.equals(c)&&!this.root.contains(c))this._.cache.type=CKEDITOR.SELECTION_NONE,this._.cache.startElement=null,this._.cache.selectedElement=null,this._.cache.selectedText="",this._.cache.ranges=new CKEDITOR.dom.rangeList;return this};var x={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,
-select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1},z=CKEDITOR.tools.repeat("​",7),A=new RegExp(z+"( )?","g");CKEDITOR.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:k,_createFillingCharSequenceNode:m,FILLING_CHAR_SEQUENCE:z});CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=n?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:n?function(){var a=this._.cache;
-if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var d=this.getNative(),c=d.type;"Text"==c&&(b=CKEDITOR.SELECTION_TEXT);"Control"==c&&(b=CKEDITOR.SELECTION_ELEMENT);d.createRange().parentElement()&&(b=CKEDITOR.SELECTION_TEXT)}catch(g){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,d=this.getNative();if(!d||!d.rangeCount)b=CKEDITOR.SELECTION_NONE;else if(1==d.rangeCount){var d=d.getRangeAt(0),c=d.startContainer;c==d.endContainer&&1==c.nodeType&&
-1==d.endOffset-d.startOffset&&x[c.childNodes[d.startOffset].nodeName.toLowerCase()]&&(b=CKEDITOR.SELECTION_ELEMENT)}return a.type=b},getRanges:function(){var a=n?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,d){b=b.duplicate();b.collapse(d);var c=b.parentElement();if(!c.hasChildNodes())return{container:c,offset:0};for(var g=c.children,e,h,f=b.duplicate(),k=0,p=g.length-1,n=-1,l,m;k<=p;)if(n=Math.floor((k+p)/2),e=g[n],f.moveToElementText(e),l=f.compareEndPoints("StartToStart",
-b),0<l)p=n-1;else if(0>l)k=n+1;else return{container:c,offset:a(e)};if(-1==n||n==g.length-1&&0>l){f.moveToElementText(c);f.setEndPoint("StartToStart",b);f=f.text.replace(/(\r\n|\r)/g,"\n").length;g=c.childNodes;if(!f)return e=g[g.length-1],e.nodeType!=CKEDITOR.NODE_TEXT?{container:c,offset:g.length}:{container:e,offset:e.nodeValue.length};for(c=g.length;0<f&&0<c;)h=g[--c],h.nodeType==CKEDITOR.NODE_TEXT&&(m=h,f-=h.nodeValue.length);return{container:m,offset:-f}}f.collapse(0<l?!0:!1);f.setEndPoint(0<
-l?"StartToStart":"EndToStart",b);f=f.text.replace(/(\r\n|\r)/g,"\n").length;if(!f)return{container:c,offset:a(e)+(0<l?0:1)};for(;0<f;)try{h=e[0<l?"previousSibling":"nextSibling"],h.nodeType==CKEDITOR.NODE_TEXT&&(f-=h.nodeValue.length,m=h),e=h}catch(q){return{container:c,offset:a(e)}}return{container:m,offset:0<l?-f:m.nodeValue.length+f}};return function(){var a=this.getNative(),d=a&&a.createRange(),c=this.getType();if(!a)return[];if(c==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),
-c=b(d,!0),a.setStart(new CKEDITOR.dom.node(c.container),c.offset),c=b(d),a.setEnd(new CKEDITOR.dom.node(c.container),c.offset),a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse(),[a];if(c==CKEDITOR.SELECTION_ELEMENT){for(var c=[],g=0;g<d.length;g++){for(var e=d.item(g),h=e.parentNode,f=0,a=new CKEDITOR.dom.range(this.root);f<h.childNodes.length&&h.childNodes[f]!=e;f++);a.setStart(new CKEDITOR.dom.node(h),f);a.setEnd(new CKEDITOR.dom.node(h),
-f+1);c.push(a)}return c}return[]}}():function(){var a=[],b,d=this.getNative();if(!d)return a;for(var c=0;c<d.rangeCount;c++){var g=d.getRangeAt(c);b=new CKEDITOR.dom.range(this.root);b.setStart(new CKEDITOR.dom.node(g.startContainer),g.startOffset);b.setEnd(new CKEDITOR.dom.node(g.endContainer),g.endOffset);a.push(b)}return a};return function(b){var d=this._.cache,c=d.ranges;c||(d.ranges=c=new CKEDITOR.dom.rangeList(a.call(this)));return b?g(new CKEDITOR.dom.rangeList(c.slice())):c}}(),getStartElement:function(){var a=
-this._.cache;if(void 0!==a.startElement)return a.startElement;var b;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var d=this.getRanges()[0];if(d){if(d.collapsed)b=d.startContainer,b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());else{for(d.optimize();b=d.startContainer,d.startOffset==(b.getChildCount?b.getChildCount():b.getLength())&&!b.isBlockBoundary();)d.setStartAfter(b);b=d.startContainer;if(b.type!=CKEDITOR.NODE_ELEMENT)return b.getParent();
-if((b=b.getChild(d.startOffset))&&b.type==CKEDITOR.NODE_ELEMENT)for(d=b.getFirst();d&&d.type==CKEDITOR.NODE_ELEMENT;)b=d,d=d.getFirst();else b=d.startContainer}b=b.$}}return a.startElement=b?new CKEDITOR.dom.element(b):null},getSelectedElement:function(){var a=this._.cache;if(void 0!==a.selectedElement)return a.selectedElement;var b=this,d=CKEDITOR.tools.tryThese(function(){return b.getNative().createRange().item(0)},function(){for(var a=b.getRanges()[0].clone(),d,c,g=2;g&&!((d=a.getEnclosedNode())&&
-d.type==CKEDITOR.NODE_ELEMENT&&x[d.getName()]&&(c=d));g--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return c&&c.$});return a.selectedElement=d?new CKEDITOR.dom.element(d):null},getSelectedText:function(){var a=this._.cache;if(void 0!==a.selectedText)return a.selectedText;var b=this.getNative(),b=n?"Control"==b.type?"":b.createRange().text:b.toString();return a.selectedText=b},lock:function(){this.getRanges();this.getStartElement();this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;
-this.isLocked=1},unlock:function(a){if(this.isLocked){if(a)var b=this.getSelectedElement(),d=!b&&this.getRanges(),c=this.isFake;this.isLocked=0;this.reset();a&&(a=b||d[0]&&d[0].getCommonAncestor())&&a.getAscendant("body",1)&&(c?this.fake(b):b?this.selectElement(b):this.selectRanges(d))}},reset:function(){this._.cache={};this.isFake=0;var a=this.root.editor;if(a&&a._.fakeSelection)if(this.rev==a._.fakeSelection.rev){delete a._.fakeSelection;var b=a._.hiddenSelectionContainer;if(b){var d=a.checkDirty();
-a.fire("lockSnapshot");b.remove();a.fire("unlockSnapshot");!d&&a.resetDirty()}delete a._.hiddenSelectionContainer}else CKEDITOR.warn("selection-fake-reset");this.rev=q++},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(a){var b=this.root.editor,b=b&&b._.hiddenSelectionContainer;this.reset();if(b)for(var b=this.root,d,c=0;c<a.length;++c)d=a[c],d.endContainer.equals(b)&&(d.endOffset=Math.min(d.endOffset,
-b.getChildCount()));if(a.length)if(this.isLocked){var g=CKEDITOR.document.getActive();this.unlock();this.selectRanges(a);this.lock();g&&!g.equals(this.root)&&g.focus()}else{var e;a:{var f,k;if(1==a.length&&!(k=a[0]).collapsed&&(e=k.getEnclosedNode())&&e.type==CKEDITOR.NODE_ELEMENT&&(k=k.clone(),k.shrink(CKEDITOR.SHRINK_ELEMENT,!0),(f=k.getEnclosedNode())&&f.type==CKEDITOR.NODE_ELEMENT&&(e=f),"false"==e.getAttribute("contenteditable")))break a;e=void 0}if(e)this.fake(e);else{if(n){k=CKEDITOR.dom.walker.whitespaces(!0);
-f=/\ufeff|\u00a0/;b={table:1,tbody:1,tr:1};1<a.length&&(e=a[a.length-1],a[0].setEnd(e.endContainer,e.endOffset));e=a[0];a=e.collapsed;var p,q,u;if((d=e.getEnclosedNode())&&d.type==CKEDITOR.NODE_ELEMENT&&d.getName()in x&&(!d.is("a")||!d.getText()))try{u=d.$.createControlRange();u.addElement(d.$);u.select();return}catch(r){}if(e.startContainer.type==CKEDITOR.NODE_ELEMENT&&e.startContainer.getName()in b||e.endContainer.type==CKEDITOR.NODE_ELEMENT&&e.endContainer.getName()in b)e.shrink(CKEDITOR.NODE_ELEMENT,
-!0),a=e.collapsed;u=e.createBookmark();b=u.startNode;a||(g=u.endNode);u=e.document.$.body.createTextRange();u.moveToElementText(b.$);u.moveStart("character",1);g?(f=e.document.$.body.createTextRange(),f.moveToElementText(g.$),u.setEndPoint("EndToEnd",f),u.moveEnd("character",-1)):(p=b.getNext(k),q=b.hasAscendant("pre"),p=!(p&&p.getText&&p.getText().match(f))&&(q||!b.hasPrevious()||b.getPrevious().is&&b.getPrevious().is("br")),q=e.document.createElement("span"),q.setHtml("\x26#65279;"),q.insertBefore(b),
-p&&e.document.createText("﻿").insertBefore(b));e.setStartBefore(b);b.remove();a?(p?(u.moveStart("character",-1),u.select(),e.document.$.selection.clear()):u.select(),e.moveToPosition(q,CKEDITOR.POSITION_BEFORE_START),q.remove()):(e.setEndBefore(g),g.remove(),u.select())}else{g=this.getNative();if(!g)return;this.removeAllRanges();for(u=0;u<a.length;u++){if(u<a.length-1&&(p=a[u],q=a[u+1],f=p.clone(),f.setStart(p.endContainer,p.endOffset),f.setEnd(q.startContainer,q.startOffset),!f.collapsed&&(f.shrink(CKEDITOR.NODE_ELEMENT,
-!0),e=f.getCommonAncestor(),f=f.getEnclosedNode(),e.isReadOnly()||f&&f.isReadOnly()))){q.setStart(p.startContainer,p.startOffset);a.splice(u--,1);continue}e=a[u];q=this.document.$.createRange();e.collapsed&&CKEDITOR.env.webkit&&h(e)&&(f=m(this.root),e.insertNode(f),(p=f.getNext())&&!f.getPrevious()&&p.type==CKEDITOR.NODE_ELEMENT&&"br"==p.getName()?(l(this.root),e.moveToPosition(p,CKEDITOR.POSITION_BEFORE_START)):e.moveToPosition(f,CKEDITOR.POSITION_AFTER_END));q.setStart(e.startContainer.$,e.startOffset);
-try{q.setEnd(e.endContainer.$,e.endOffset)}catch(I){if(0<=I.toString().indexOf("NS_ERROR_ILLEGAL_VALUE"))e.collapse(1),q.setEnd(e.endContainer.$,e.endOffset);else throw I;}g.addRange(q)}}this.reset();this.root.fire("selectionchange")}}},fake:function(a,d){var c=this.root.editor;void 0===d&&a.hasAttribute("aria-label")&&(d=a.getAttribute("aria-label"));this.reset();b(c,d);var g=this._.cache,e=new CKEDITOR.dom.range(this.root);e.setStartBefore(a);e.setEndAfter(a);g.ranges=new CKEDITOR.dom.rangeList(e);
-g.selectedElement=g.startElement=a;g.type=CKEDITOR.SELECTION_ELEMENT;g.selectedText=g.nativeSel=null;this.isFake=1;this.rev=q++;c._.fakeSelection=this;this.root.fire("selectionchange")},isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},createBookmarks:function(a){a=this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a},createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&
-(a.isFake=1);return a},selectBookmarks:function(a){for(var b=[],d,c=0;c<a.length;c++){var g=new CKEDITOR.dom.range(this.root);g.moveToBookmark(a[c]);b.push(g)}a.isFake&&(d=b[0].getEnclosedNode(),d&&d.type==CKEDITOR.NODE_ELEMENT||(CKEDITOR.warn("selection-not-fake"),a.isFake=0));a.isFake?this.fake(d):this.selectRanges(b);return this},getCommonAncestor:function(){var a=this.getRanges();return a.length?a[0].startContainer.getCommonAncestor(a[a.length-1].endContainer):null},scrollIntoView:function(){this.type!=
-CKEDITOR.SELECTION_NONE&&this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){if(this.getType()!=CKEDITOR.SELECTION_NONE){var a=this.getNative();try{a&&a[n?"empty":"removeAllRanges"]()}catch(b){}this.reset()}}}}(),"use strict",CKEDITOR.STYLE_BLOCK=1,CKEDITOR.STYLE_INLINE=2,CKEDITOR.STYLE_OBJECT=3,function(){function a(a,b){for(var d,c;(a=a.getParent())&&!a.equals(b);)if(a.getAttribute("data-nostyle"))d=a;else if(!c){var g=a.getAttribute("contentEditable");"false"==g?d=a:"true"==g&&(c=
-1)}return d}function f(a,b,d,c){return(a.getPosition(b)|c)==c&&(!d.childRule||d.childRule(a))}function c(b){var d=b.document;if(b.collapsed)d=x(this,d),b.insertNode(d),b.moveToPosition(d,CKEDITOR.POSITION_BEFORE_END);else{var g=this.element,e=this._.definition,k,p=e.ignoreReadonly,n=p||e.includeReadonly;null==n&&(n=b.root.getCustomData("cke_includeReadonly"));var l=CKEDITOR.dtd[g];l||(k=!0,l=CKEDITOR.dtd.span);b.enlarge(CKEDITOR.ENLARGE_INLINE,1);b.trim();var m=b.createBookmark(),q=m.startNode,r=
-m.endNode,v=q,t;if(!p){var z=b.getCommonAncestor(),p=a(q,z),z=a(r,z);p&&(v=p.getNextSourceNode(!0));z&&(r=z)}for(v.getPosition(r)==CKEDITOR.POSITION_FOLLOWING&&(v=0);v;){p=!1;if(v.equals(r))v=null,p=!0;else{var A=v.type==CKEDITOR.NODE_ELEMENT?v.getName():null,z=A&&"false"==v.getAttribute("contentEditable"),w=A&&v.getAttribute("data-nostyle");if(A&&v.data("cke-bookmark")){v=v.getNextSourceNode(!0);continue}if(z&&n&&CKEDITOR.dtd.$block[A])for(var D=v,y=h(D),B=void 0,C=y.length,ea=0,D=C&&new CKEDITOR.dom.range(D.getDocument());ea<
-C;++ea){var B=y[ea],F=CKEDITOR.filter.instances[B.data("cke-filter")];if(F?F.check(this):1)D.selectNodeContents(B),c.call(this,D)}y=A?!l[A]||w?0:z&&!n?0:f(v,r,e,N):1;if(y)if(B=v.getParent(),y=e,C=g,ea=k,!B||!(B.getDtd()||CKEDITOR.dtd.span)[C]&&!ea||y.parentRule&&!y.parentRule(B))p=!0;else{if(t||A&&CKEDITOR.dtd.$removeEmpty[A]&&(v.getPosition(r)|N)!=N||(t=b.clone(),t.setStartBefore(v)),A=v.type,A==CKEDITOR.NODE_TEXT||z||A==CKEDITOR.NODE_ELEMENT&&!v.getChildCount()){for(var A=v,E;(p=!A.getNext(L))&&
-(E=A.getParent(),l[E.getName()])&&f(E,q,e,O);)A=E;t.setEndAfter(A)}}else p=!0;v=v.getNextSourceNode(w||z)}if(p&&t&&!t.collapsed){for(var p=x(this,d),z=p.hasAttributes(),w=t.getCommonAncestor(),A={},y={},B={},C={},ba,G,ga;p&&w;){if(w.getName()==g){for(ba in e.attributes)!C[ba]&&(ga=w.getAttribute(G))&&(p.getAttribute(ba)==ga?y[ba]=1:C[ba]=1);for(G in e.styles)!B[G]&&(ga=w.getStyle(G))&&(p.getStyle(G)==ga?A[G]=1:B[G]=1)}w=w.getParent()}for(ba in y)p.removeAttribute(ba);for(G in A)p.removeStyle(G);z&&
-!p.hasAttributes()&&(p=null);p?(t.extractContents().appendTo(p),t.insertNode(p),u.call(this,p),p.mergeSiblings(),CKEDITOR.env.ie||p.$.normalize()):(p=new CKEDITOR.dom.element("span"),t.extractContents().appendTo(p),t.insertNode(p),u.call(this,p),p.remove(!0));t=null}}b.moveToBookmark(m);b.shrink(CKEDITOR.SHRINK_TEXT);b.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function e(a){function b(){for(var a=new CKEDITOR.dom.elementPath(c.getParent()),d=new CKEDITOR.dom.elementPath(p.getParent()),g=null,e=null,h=0;h<
-a.elements.length;h++){var f=a.elements[h];if(f==a.block||f==a.blockLimit)break;l.checkElementRemovable(f,!0)&&(g=f)}for(h=0;h<d.elements.length;h++){f=d.elements[h];if(f==d.block||f==d.blockLimit)break;l.checkElementRemovable(f,!0)&&(e=f)}e&&p.breakParent(e);g&&c.breakParent(g)}a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var d=a.createBookmark(),c=d.startNode;if(a.collapsed){for(var g=new CKEDITOR.dom.elementPath(c.getParent(),a.root),e,h=0,f;h<g.elements.length&&(f=g.elements[h])&&f!=g.block&&f!=g.blockLimit;h++)if(this.checkElementRemovable(f)){var k;
-a.collapsed&&(a.checkBoundaryOfElement(f,CKEDITOR.END)||(k=a.checkBoundaryOfElement(f,CKEDITOR.START)))?(e=f,e.match=k?"start":"end"):(f.mergeSiblings(),f.is(this.element)?v.call(this,f):n(f,t(this)[f.getName()]))}if(e){f=c;for(h=0;;h++){k=g.elements[h];if(k.equals(e))break;else if(k.match)continue;else k=k.clone();k.append(f);f=k}f["start"==e.match?"insertBefore":"insertAfter"](e)}}else{var p=d.endNode,l=this;b();for(g=c;!g.equals(p);)e=g.getNextSourceNode(),g.type==CKEDITOR.NODE_ELEMENT&&this.checkElementRemovable(g)&&
-(g.getName()==this.element?v.call(this,g):n(g,t(this)[g.getName()]),e.type==CKEDITOR.NODE_ELEMENT&&e.contains(c)&&(b(),e=c.getNext())),g=e}a.moveToBookmark(d);a.shrink(CKEDITOR.NODE_ELEMENT,!0)}function h(a){var b=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function m(a){var b=a.getEnclosedNode()||a.getCommonAncestor(!1,!0);(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1))&&!a.isReadOnly()&&z(a,this)}
-function l(a){var b=a.getCommonAncestor(!0,!0);if(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1)){var b=this._.definition,d=b.attributes;if(d)for(var c in d)a.removeAttribute(c,d[c]);if(b.styles)for(var g in b.styles)b.styles.hasOwnProperty(g)&&a.removeStyle(g)}}function k(a){var b=a.createBookmark(!0),c=a.createIterator();c.enforceRealBlocks=!0;this._.enterMode&&(c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR);for(var g,e=a.document,h;g=c.getNextParagraph();)!g.isReadOnly()&&
-(c.activeFilter?c.activeFilter.check(this):1)&&(h=x(this,e,g),d(g,h));a.moveToBookmark(b)}function b(a){var b=a.createBookmark(1),c=a.createIterator();c.enforceRealBlocks=!0;c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var g,e;g=c.getNextParagraph();)this.checkElementRemovable(g)&&(g.is("pre")?((e=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))&&g.copyAttributes(e),d(g,e)):v.call(this,g));a.moveToBookmark(b)}function d(a,b){var d=
-!b;d&&(b=a.getDocument().createElement("div"),a.copyAttributes(b));var c=b&&b.is("pre"),e=a.is("pre"),h=!c&&e;if(c&&!e){e=b;(h=a.getBogus())&&h.remove();h=a.getHtml();h=p(h,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");h=h.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");h=h.replace(/([ \t\n\r]+|&nbsp;)/g," ");h=h.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var f=a.getDocument().createElement("div");f.append(e);e.$.outerHTML="\x3cpre\x3e"+h+"\x3c/pre\x3e";e.copyAttributes(f.getFirst());e=f.getFirst().remove()}else e.setHtml(h);
-b=e}else h?b=r(d?[a.getHtml()]:g(a),b):a.moveChildren(b);b.replace(a);if(c){var d=b,k;(k=d.getPrevious(G))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("pre")&&(c=p(k.getHtml(),/\n$/,"")+"\n\n"+p(d.getHtml(),/^\n/,""),CKEDITOR.env.ie?d.$.outerHTML="\x3cpre\x3e"+c+"\x3c/pre\x3e":d.setHtml(c),k.remove())}else d&&q(b)}function g(a){var b=[];p(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,d){return b+"\x3c/pre\x3e"+d+"\x3cpre\x3e"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,
-function(a,d){b.push(d)});return b}function p(a,b,d){var c="",g="";a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,d){b&&(c=b);d&&(g=d);return""});return c+a.replace(b,d)+g}function r(a,b){var d;1<a.length&&(d=new CKEDITOR.dom.documentFragment(b.getDocument()));for(var c=0;c<a.length;c++){var g=a[c],g=g.replace(/(\r\n|\r)/g,"\n"),g=p(g,/^[ \t]*\n/,""),g=p(g,/\n$/,""),g=p(g,/^[ \t]+|[ \t]+$/g,function(a,b){return 1==a.length?"\x26nbsp;":
-b?" "+CKEDITOR.tools.repeat("\x26nbsp;",a.length-1):CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "}),g=g.replace(/\n/g,"\x3cbr\x3e"),g=g.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "});if(d){var e=b.clone();e.setHtml(g);d.append(e)}else b.setHtml(g)}return d||b}function v(a,b){var d=this._.definition,c=d.attributes,d=d.styles,g=t(this)[a.getName()],e=CKEDITOR.tools.isEmpty(c)&&CKEDITOR.tools.isEmpty(d),h;for(h in c)if("class"!=h&&!this._.definition.fullMatch||
-a.getAttribute(h)==w(h,c[h]))b&&"data-"==h.slice(0,5)||(e=a.hasAttribute(h),a.removeAttribute(h));for(var f in d)this._.definition.fullMatch&&a.getStyle(f)!=w(f,d[f],!0)||(e=e||!!a.getStyle(f),a.removeStyle(f));n(a,g,y[a.getName()]);e&&(this._.definition.alwaysRemoveElement?q(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?q(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function u(a){for(var b=t(this),d=a.getElementsByTag(this.element),
-c,g=d.count();0<=--g;)c=d.getItem(g),c.isReadOnly()||v.call(this,c,!0);for(var e in b)if(e!=this.element)for(d=a.getElementsByTag(e),g=d.count()-1;0<=g;g--)c=d.getItem(g),c.isReadOnly()||n(c,b[e])}function n(a,b,d){if(b=b&&b.attributes)for(var c=0;c<b.length;c++){var g=b[c][0],e;if(e=a.getAttribute(g)){var h=b[c][1];(null===h||h.test&&h.test(e)||"string"==typeof h&&e==h)&&a.removeAttribute(g)}}d||q(a)}function q(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getName()]){var d=a.getPrevious(G),
-c=a.getNext(G);!d||d.type!=CKEDITOR.NODE_TEXT&&d.isBlockBoundary({br:1})||a.append("br",1);!c||c.type!=CKEDITOR.NODE_TEXT&&c.isBlockBoundary({br:1})||a.append("br");a.remove(!0)}else d=a.getFirst(),c=a.getLast(),a.remove(!0),d&&(d.type==CKEDITOR.NODE_ELEMENT&&d.mergeSiblings(),c&&!d.equals(c)&&c.type==CKEDITOR.NODE_ELEMENT&&c.mergeSiblings())}function x(a,b,d){var c;c=a.element;"*"==c&&(c="span");c=new CKEDITOR.dom.element(c,b);d&&d.copyAttributes(c);c=z(c,a);b.getCustomData("doc_processing_style")&&
-c.hasAttribute("id")?c.removeAttribute("id"):b.setCustomData("doc_processing_style",1);return c}function z(a,b){var d=b._.definition,c=d.attributes,d=CKEDITOR.style.getStyleText(d);if(c)for(var g in c)a.setAttribute(g,c[g]);d&&a.setAttribute("style",d);return a}function A(a,b){for(var d in a)a[d]=a[d].replace(E,function(a,d){return b[d]})}function t(a){if(a._.overrides)return a._.overrides;var b=a._.overrides={},d=a._.definition.overrides;if(d){CKEDITOR.tools.isArray(d)||(d=[d]);for(var c=0;c<d.length;c++){var g=
-d[c],e,h;"string"==typeof g?e=g.toLowerCase():(e=g.element?g.element.toLowerCase():a.element,h=g.attributes);g=b[e]||(b[e]={});if(h){var g=g.attributes=g.attributes||[],f;for(f in h)g.push([f.toLowerCase(),h[f]])}}}return b}function w(a,b,d){var c=new CKEDITOR.dom.element("span");c[d?"setStyle":"setAttribute"](a,b);return c[d?"getStyle":"getAttribute"](a)}function D(a,b){function d(a,b){return"font-family"==b.toLowerCase()?a.replace(/["']/g,""):a}"string"==typeof a&&(a=CKEDITOR.tools.parseCssText(a));
-"string"==typeof b&&(b=CKEDITOR.tools.parseCssText(b,!0));for(var c in a)if(!(c in b)||d(b[c],c)!=d(a[c],c)&&"inherit"!=a[c]&&"inherit"!=b[c])return!1;return!0}function B(a,b,d){var c=a.document,g=a.getRanges();b=b?this.removeFromRange:this.applyToRange;for(var e,h=g.createIterator();e=h.getNextRange();)b.call(this,e,d);a.selectRanges(g);c.removeCustomData("doc_processing_style")}var y={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,
-dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},C={a:1,blockquote:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1},F=/\s*(?:;\s*|$)/,E=/#\((.+?)\)/g,L=CKEDITOR.dom.walker.bookmark(0,1),G=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,b){if("string"==typeof a.type)return new CKEDITOR.style.customHandlers[a.type](a);var d=a.attributes;d&&d.style&&(a.styles=CKEDITOR.tools.extend({},
-a.styles,CKEDITOR.tools.parseCssText(d.style)),delete d.style);b&&(a=CKEDITOR.tools.clone(a),A(a.attributes,b),A(a.styles,b));d=this.element=a.element?"string"==typeof a.element?a.element.toLowerCase():a.element:"*";this.type=a.type||(y[d]?CKEDITOR.STYLE_BLOCK:C[d]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);"object"==typeof this.element&&(this.type=CKEDITOR.STYLE_OBJECT);this._={definition:a}};CKEDITOR.style.prototype={apply:function(a){if(a instanceof CKEDITOR.dom.document)return B.call(this,a.getSelection());
-if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);B.call(this,a.getSelection(),0,a);this._.enterMode=b}},remove:function(a){if(a instanceof CKEDITOR.dom.document)return B.call(this,a.getSelection(),1);if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);B.call(this,a.getSelection(),1,a);this._.enterMode=b}},applyToRange:function(a){this.applyToRange=this.type==CKEDITOR.STYLE_INLINE?c:this.type==
-CKEDITOR.STYLE_BLOCK?k:this.type==CKEDITOR.STYLE_OBJECT?m:null;return this.applyToRange(a)},removeFromRange:function(a){this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?e:this.type==CKEDITOR.STYLE_BLOCK?b:this.type==CKEDITOR.STYLE_OBJECT?l:null;return this.removeFromRange(a)},applyToObject:function(a){z(a,this)},checkActive:function(a,b){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||a.blockLimit,!0,b);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var d=
+function(){a.focusManager.focus(this)},this));this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=this.getDocument();a.window=this.getWindow();var b=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var h=a.config.contentsLangDirection;this.getDirection(1)!=h&&this.changeAttr("dir",h);var f=CKEDITOR.getCss();f&&(h=b.getHead(),h.getCustomData("stylesheet")||(f=b.appendStyleText(f),f=new CKEDITOR.dom.element(f.ownerNode||f.owningElement),
+h.setCustomData("stylesheet",f),f.data("cke-temp",1)));h=b.getCustomData("stylesheet_ref")||0;b.setCustomData("stylesheet_ref",h+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){a=a.data;var b=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a");b&&2!=a.$.button&&b.isReadOnly()&&a.preventDefault()});var k={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var d=b.data.domEvent.getKey(),c;if(d in
+k){b=a.getSelection();var e,h=b.getRanges()[0],f=h.startPath(),p,F,t,d=8==d;CKEDITOR.env.ie&&11>CKEDITOR.env.version&&(e=b.getSelectedElement())||(e=m(b))?(a.fire("saveSnapshot"),h.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e.remove(),h.select(),a.fire("saveSnapshot"),c=1):h.collapsed&&((p=f.block)&&(t=p[d?"getPrevious":"getNext"](g))&&t.type==CKEDITOR.NODE_ELEMENT&&t.is("table")&&h[d?"checkStartOfBlock":"checkEndOfBlock"]()?(a.fire("saveSnapshot"),h[d?"checkEndOfBlock":"checkStartOfBlock"]()&&
+p.remove(),h["moveToElementEdit"+(d?"End":"Start")](t),h.select(),a.fire("saveSnapshot"),c=1):f.blockLimit&&f.blockLimit.is("td")&&(F=f.blockLimit.getAscendant("table"))&&h.checkBoundaryOfElement(F,d?CKEDITOR.START:CKEDITOR.END)&&(t=F[d?"getPrevious":"getNext"](g))?(a.fire("saveSnapshot"),h["moveToElementEdit"+(d?"End":"Start")](t),h.checkStartOfBlock()&&h.checkEndOfBlock()?t.remove():h.select(),a.fire("saveSnapshot"),c=1):(F=f.contains(["td","th","caption"]))&&h.checkBoundaryOfElement(F,d?CKEDITOR.START:
+CKEDITOR.END)&&(c=1))}return!c});a.blockless&&CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(b){b.data.getKeystroke()in k&&!this.getFirst(e)&&(this.appendBogus(),b=a.createRange(),b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START),b.select())});this.attachListener(this,"dblclick",function(b){if(a.readOnly)return!1;b={element:b.data.getTarget()};a.fire("doubleclick",b)});CKEDITOR.env.ie&&this.attachListener(this,"click",c);CKEDITOR.env.ie&&!CKEDITOR.env.edge||
+this.attachListener(this,"mousedown",function(b){var d=b.data.getTarget();d.is("img","hr","input","textarea","select")&&!d.isReadOnly()&&(a.getSelection().selectElement(d),d.is("input","textarea","select")&&b.data.preventDefault())});CKEDITOR.env.edge&&this.attachListener(this,"mouseup",function(b){(b=b.data.getTarget())&&b.is("img")&&a.getSelection().selectElement(b)});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(2==b.data.$.button&&(b=b.data.getTarget(),!b.getOuterHtml().replace(r,
+""))){var d=a.createRange();d.moveToElementEditStart(b);d.select(!0)}});CKEDITOR.env.webkit&&(this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()}),this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()}));CKEDITOR.env.webkit&&this.attachListener(a,"key",function(b){if(a.readOnly)return!0;b=b.data.domEvent.getKey();if(b in k){var c=8==b,g=a.getSelection().getRanges()[0];b=g.startPath();
+if(g.collapsed)a:{var e=b.block;if(e&&g[c?"checkStartOfBlock":"checkEndOfBlock"]()&&g.moveToClosestEditablePosition(e,!c)&&g.collapsed){if(g.startContainer.type==CKEDITOR.NODE_ELEMENT){var h=g.startContainer.getChild(g.startOffset-(c?1:0));if(h&&h.type==CKEDITOR.NODE_ELEMENT&&h.is("hr")){a.fire("saveSnapshot");h.remove();b=!0;break a}}g=g.startPath().block;if(!g||g&&g.contains(e))b=void 0;else{a.fire("saveSnapshot");var f;(f=(c?g:e).getBogus())&&f.remove();f=a.getSelection();h=f.createBookmarks();
+(c?e:g).moveChildren(c?g:e,!1);b.lastElement.mergeSiblings();d(e,g,!c);f.selectBookmarks(h);b=!0}}else b=!1}else c=g,f=b.block,g=c.endPath().block,f&&g&&!f.equals(g)?(a.fire("saveSnapshot"),(e=f.getBogus())&&e.remove(),c.enlarge(CKEDITOR.ENLARGE_INLINE),c.deleteContents(),g.getParent()&&(g.moveChildren(f,!1),b.lastElement.mergeSiblings(),d(f,g,!0)),c=a.getSelection().getRanges()[0],c.collapse(1),c.optimize(),""===c.startContainer.getHtml()&&c.startContainer.appendBogus(),c.select(),b=!0):b=!1;if(!b)return;
+a.getSelection().scrollIntoView();a.fire("saveSnapshot");return!1}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var d=a.getCustomData("stylesheet_ref");--d?a.setCustomData("stylesheet_ref",d):(a.removeCustomData("stylesheet_ref"),b.removeCustomData("stylesheet").remove())}}this.editor.fire("contentDomUnload");
+delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;arguments.length&&(b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null));return b};CKEDITOR.on("instanceLoaded",function(b){var d=b.editor;d.on("insertElement",function(a){a=a.data;a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))&&("false"!=a.getAttribute("contentEditable")&&a.data("cke-editable",a.hasAttribute("contenteditable")?
+"true":"1"),a.setAttribute("contentEditable",!1))});d.on("selectionChange",function(b){if(!d.readOnly){var c=d.getSelection();c&&!c.isLocked&&(c=d.checkDirty(),d.fire("lockSnapshot"),a(b),d.fire("unlockSnapshot"),!c&&d.resetDirty())}})});CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var d=b.title;a.changeAttr("role","textbox");a.changeAttr("aria-label",d);d&&a.changeAttr("title",d);var c=b.fire("ariaEditorHelpLabel",{}).label;
+if(c&&(d=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var g=CKEDITOR.tools.getNextId(),c=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+g+'" class\x3d"cke_voice_label"\x3e'+c+"\x3c/span\x3e");d.append(c);a.changeAttr("aria-describedby",g)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");var g=CKEDITOR.dom.walker.whitespaces(!0),p=CKEDITOR.dom.walker.bookmark(!1,!0),u=CKEDITOR.dom.walker.empty(),
+v=CKEDITOR.dom.walker.bogus(),r=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,n=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function b(d,c){var g,e,h,f,k=[],l=c.range.startContainer;g=c.range.startPath();for(var l=p[l.getName()],n=0,m=d.getChildren(),r=m.count(),q=-1,x=-1,w=0,u=g.contains(p.$list);n<r;++n)g=m.getItem(n),a(g)?(h=g.getName(),u&&h in CKEDITOR.dtd.$list?k=k.concat(b(g,c)):(f=!!l[h],
+"br"!=h||!g.data("cke-eol")||n&&n!=r-1||(w=(e=n?k[n-1].node:m.getItem(n+1))&&(!a(e)||!e.is("br")),e=e&&a(e)&&p.$block[e.getName()]),-1!=q||f||(q=n),f||(x=n),k.push({isElement:1,isLineBreak:w,isBlock:g.isBlockBoundary(),hasBlockSibling:e,node:g,name:h,allowed:f}),e=w=0)):k.push({isElement:0,node:g,allowed:1});-1<q&&(k[q].firstNotAllowed=1);-1<x&&(k[x].lastNotAllowed=1);return k}function d(b,c){var g=[],e=b.getChildren(),h=e.count(),f,k=0,n=p[c],l=!b.is(p.$inline)||b.is("br");for(l&&g.push(" ");k<h;k++)f=
+e.getItem(k),a(f)&&!f.is(n)?g=g.concat(d(f,c)):g.push(f);l&&g.push(" ");return g}function c(b){return a(b.startContainer)&&b.startContainer.getChild(b.startOffset-1)}function g(b){return b&&a(b)&&(b.is(p.$removeEmpty)||b.is("a")&&!b.isBlockBoundary())}function h(b,d,c,g){var e=b.clone(),f,k;e.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);(f=(new CKEDITOR.dom.walker(e)).next())&&a(f)&&n[f.getName()]&&(k=f.getPrevious())&&a(k)&&!k.getParent().equals(b.startContainer)&&c.contains(k)&&g.contains(f)&&f.isIdentical(k)&&
+(f.moveChildren(k),f.remove(),h(b,d,c,g))}function f(b,d){function c(b,d){if(d.isBlock&&d.isElement&&!d.node.is("br")&&a(b)&&b.is("br"))return b.remove(),1}var g=d.endContainer.getChild(d.endOffset),e=d.endContainer.getChild(d.endOffset-1);g&&c(g,b[b.length-1]);e&&c(e,b[0])&&(d.setEnd(d.endContainer,d.endOffset-1),d.collapse())}var p=CKEDITOR.dtd,n={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},m={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},r=CKEDITOR.tools.extend({},
+p.$inline);delete r.br;return function(n,F,q,w){var u=n.editor,v=!1;"unfiltered_html"==F&&(F="html",v=!0);if(!w.checkReadOnly()){var A=(new CKEDITOR.dom.elementPath(w.startContainer,w.root)).blockLimit||w.root;n={type:F,dontFilter:v,editable:n,editor:u,range:w,blockLimit:A,mergeCandidates:[],zombies:[]};F=n.range;w=n.mergeCandidates;var E,K;"text"==n.type&&F.shrink(CKEDITOR.SHRINK_ELEMENT,!0,!1)&&(E=CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",F.document),F.insertNode(E),
+F.setStartAfter(E));v=new CKEDITOR.dom.elementPath(F.startContainer);n.endPath=A=new CKEDITOR.dom.elementPath(F.endContainer);if(!F.collapsed){var u=A.block||A.blockLimit,V=F.getCommonAncestor();u&&!u.equals(V)&&!u.contains(V)&&F.checkEndOfBlock()&&n.zombies.push(u);F.deleteContents()}for(;(K=c(F))&&a(K)&&K.isBlockBoundary()&&v.contains(K);)F.moveToPosition(K,CKEDITOR.POSITION_BEFORE_END);h(F,n.blockLimit,v,A);E&&(F.setEndBefore(E),F.collapse(),E.remove());E=F.startPath();if(u=E.contains(g,!1,1))F.splitElement(u),
+n.inlineStylesRoot=u,n.inlineStylesPeak=E.lastElement;E=F.createBookmark();(u=E.startNode.getPrevious(e))&&a(u)&&g(u)&&w.push(u);(u=E.startNode.getNext(e))&&a(u)&&g(u)&&w.push(u);for(u=E.startNode;(u=u.getParent())&&g(u);)w.push(u);F.moveToBookmark(E);if(E=q){E=n.range;if("text"==n.type&&n.inlineStylesRoot){K=n.inlineStylesPeak;F=K.getDocument().createText("{cke-peak}");for(w=n.inlineStylesRoot.getParent();!K.equals(w);)F=F.appendTo(K.clone()),K=K.getParent();q=F.getOuterHtml().split("{cke-peak}").join(q)}K=
+n.blockLimit.getName();if(/^\s+|\s+$/.test(q)&&"span"in CKEDITOR.dtd[K]){var S='\x3cspan data-cke-marker\x3d"1"\x3e\x26nbsp;\x3c/span\x3e';q=S+q+S}q=n.editor.dataProcessor.toHtml(q,{context:null,fixForBody:!1,protectedWhitespaces:!!S,dontFilter:n.dontFilter,filter:n.editor.activeFilter,enterMode:n.editor.activeEnterMode});K=E.document.createElement("body");K.setHtml(q);S&&(K.getFirst().remove(),K.getLast().remove());if((S=E.startPath().block)&&(1!=S.getChildCount()||!S.getBogus()))a:{var H;if(1==
+K.getChildCount()&&a(H=K.getFirst())&&H.is(m)&&!H.hasAttribute("contenteditable")){S=H.getElementsByTag("*");E=0;for(w=S.count();E<w;E++)if(F=S.getItem(E),!F.is(r))break a;H.moveChildren(H.getParent(1));H.remove()}}n.dataWrapper=K;E=q}if(E){H=n.range;E=H.document;var M;K=n.blockLimit;w=0;var W,S=[],T,aa;q=u=0;var X,da;F=H.startContainer;var v=n.endPath.elements[0],ba,A=v.getPosition(F),V=!!v.getCommonAncestor(F)&&A!=CKEDITOR.POSITION_IDENTICAL&&!(A&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);
+F=b(n.dataWrapper,n);for(f(F,H);w<F.length;w++){A=F[w];if(M=A.isLineBreak){M=H;X=K;var Y=void 0,ea=void 0;A.hasBlockSibling?M=1:(Y=M.startContainer.getAscendant(p.$block,1))&&Y.is({div:1,p:1})?(ea=Y.getPosition(X),ea==CKEDITOR.POSITION_IDENTICAL||ea==CKEDITOR.POSITION_CONTAINS?M=0:(X=M.splitElement(Y),M.moveToPosition(X,CKEDITOR.POSITION_AFTER_START),M=1)):M=0}if(M)q=0<w;else{M=H.startPath();!A.isBlock&&l(n.editor,M.block,M.blockLimit)&&(aa=k(n.editor))&&(aa=E.createElement(aa),aa.appendBogus(),H.insertNode(aa),
+CKEDITOR.env.needsBrFiller&&(W=aa.getBogus())&&W.remove(),H.moveToPosition(aa,CKEDITOR.POSITION_BEFORE_END));if((M=H.startPath().block)&&!M.equals(T)){if(W=M.getBogus())W.remove(),S.push(M);T=M}A.firstNotAllowed&&(u=1);if(u&&A.isElement){M=H.startContainer;for(X=null;M&&!p[M.getName()][A.name];){if(M.equals(K)){M=null;break}X=M;M=M.getParent()}if(M)X&&(da=H.splitElement(X),n.zombies.push(da),n.zombies.push(X));else{X=K.getName();ba=!w;M=w==F.length-1;X=d(A.node,X);for(var Y=[],ea=X.length,ca=0,ga=
+void 0,fa=0,ia=-1;ca<ea;ca++)ga=X[ca]," "==ga?(fa||ba&&!ca||(Y.push(new CKEDITOR.dom.text(" ")),ia=Y.length),fa=1):(Y.push(ga),fa=0);M&&ia==Y.length&&Y.pop();ba=Y}}if(ba){for(;M=ba.pop();)H.insertNode(M);ba=0}else H.insertNode(A.node);A.lastNotAllowed&&w<F.length-1&&((da=V?v:da)&&H.setEndAt(da,CKEDITOR.POSITION_AFTER_START),u=0);H.collapse()}}1!=F.length?W=!1:(W=F[0],W=W.isElement&&"false"==W.node.getAttribute("contenteditable"));W&&(q=!0,M=F[0].node,H.setStartAt(M,CKEDITOR.POSITION_BEFORE_START),
+H.setEndAt(M,CKEDITOR.POSITION_AFTER_END));n.dontMoveCaret=q;n.bogusNeededBlocks=S}W=n.range;var Z;da=n.bogusNeededBlocks;for(ba=W.createBookmark();T=n.zombies.pop();)T.getParent()&&(aa=W.clone(),aa.moveToElementEditStart(T),aa.removeEmptyBlocksAtEnd());if(da)for(;T=da.pop();)CKEDITOR.env.needsBrFiller?T.appendBogus():T.append(W.document.createText(" "));for(;T=n.mergeCandidates.pop();)T.mergeSiblings();W.moveToBookmark(ba);if(!n.dontMoveCaret){for(T=c(W);T&&a(T)&&!T.is(p.$empty);){if(T.isBlockBoundary())W.moveToPosition(T,
+CKEDITOR.POSITION_BEFORE_END);else{if(g(T)&&T.getHtml().match(/(\s|&nbsp;)$/g)){Z=null;break}Z=W.clone();Z.moveToPosition(T,CKEDITOR.POSITION_BEFORE_END)}T=T.getLast(e)}Z&&W.moveToRange(Z)}}}}(),q=function(){function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$tableContent)};b.evaluator=function(a){return a.type==CKEDITOR.NODE_ELEMENT};return b}function b(a,d,c){d=a.getDocument().createElement(d);a.append(d,c);return d}
+function d(a){var b=a.count(),c;for(b;0<b--;)c=a.getItem(b),CKEDITOR.tools.trim(c.getHtml())||(c.appendBogus(),CKEDITOR.env.ie&&9>CKEDITOR.env.version&&c.getChildCount()&&c.getFirst().remove())}return function(c){var g=c.startContainer,e=g.getAscendant("table",1),h=!1;d(e.getElementsByTag("td"));d(e.getElementsByTag("th"));e=c.clone();e.setStart(g,0);e=a(e).lastBackward();e||(e=c.clone(),e.setEndAt(g,CKEDITOR.POSITION_BEFORE_END),e=a(e).lastForward(),h=!0);e||(e=g);e.is("table")?(c.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),
+c.collapse(!0),e.remove()):(e.is({tbody:1,thead:1,tfoot:1})&&(e=b(e,"tr",h)),e.is("tr")&&(e=b(e,e.getParent().is("thead")?"th":"td",h)),(g=e.getBogus())&&g.remove(),c.moveToPosition(e,h?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}(),w={eol:{detect:function(a,b){var d=a.range,c=d.clone(),g=d.clone(),e=new CKEDITOR.dom.elementPath(d.startContainer,b),h=new CKEDITOR.dom.elementPath(d.endContainer,b);c.collapse(1);g.collapse();e.block&&c.checkBoundaryOfElement(e.block,CKEDITOR.END)&&
+(d.setStartAfter(e.block),a.prependEolBr=1);h.block&&g.checkBoundaryOfElement(h.block,CKEDITOR.START)&&(d.setEndBefore(h.block),a.appendEolBr=1)},fix:function(a,b){var d=b.getDocument(),c;a.appendEolBr&&(c=this.createEolBr(d),a.fragment.append(c));!a.prependEolBr||c&&!c.getPrevious()||a.fragment.append(this.createEolBr(d),1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},bogus:{exclude:function(a){var b=a.range.getBoundaryNodes(),d=b.startNode,b=b.endNode;
+!b||!v(b)||d&&d.equals(b)||a.range.setEndBefore(b)}},tree:{rebuild:function(a,b){var d=a.range,c=d.getCommonAncestor(),g=new CKEDITOR.dom.elementPath(c,b),e=new CKEDITOR.dom.elementPath(d.startContainer,b),d=new CKEDITOR.dom.elementPath(d.endContainer,b),h;c.type==CKEDITOR.NODE_TEXT&&(c=c.getParent());if(g.blockLimit.is({tr:1,table:1})){var f=g.contains("table").getParent();h=function(a){return!a.equals(f)}}else if(g.block&&g.block.is(CKEDITOR.dtd.$listItem)&&(e=e.contains(CKEDITOR.dtd.$list),d=d.contains(CKEDITOR.dtd.$list),
+!e.equals(d))){var k=g.contains(CKEDITOR.dtd.$list).getParent();h=function(a){return!a.equals(k)}}h||(h=function(a){return!a.equals(g.block)&&!a.equals(g.blockLimit)});this.rebuildFragment(a,b,c,h)},rebuildFragment:function(a,b,d,c){for(var g;d&&!d.equals(b)&&c(d);)g=d.clone(0,1),a.fragment.appendTo(g),a.fragment=g,d=d.getParent()}},cell:{shrink:function(a){a=a.range;var b=a.startContainer,d=a.endContainer,c=a.startOffset,g=a.endOffset;b.type==CKEDITOR.NODE_ELEMENT&&b.equals(d)&&b.is("tr")&&++c==
+g&&a.shrink(CKEDITOR.SHRINK_TEXT)}}},A=function(){function a(b,d){var c=b.getParent();if(c.is(CKEDITOR.dtd.$inline))b[d?"insertBefore":"insertAfter"](c)}function b(d,c,g){a(c);a(g,1);for(var e;e=g.getNext();)e.insertAfter(c),c=e;u(d)&&d.remove()}function d(a,b){var c=new CKEDITOR.dom.range(a);c.setStartAfter(b.startNode);c.setEndBefore(b.endNode);return c}return{list:{detectMerge:function(a,b){var c=d(b,a.bookmark),g=c.startPath(),e=c.endPath(),h=g.contains(CKEDITOR.dtd.$list),f=e.contains(CKEDITOR.dtd.$list);
+a.mergeList=h&&f&&h.getParent().equals(f.getParent())&&!h.equals(f);a.mergeListItems=g.block&&e.block&&g.block.is(CKEDITOR.dtd.$listItem)&&e.block.is(CKEDITOR.dtd.$listItem);if(a.mergeList||a.mergeListItems)c=c.clone(),c.setStartBefore(a.bookmark.startNode),c.setEndAfter(a.bookmark.endNode),a.mergeListBookmark=c.createBookmark()},merge:function(a,d){if(a.mergeListBookmark){var c=a.mergeListBookmark.startNode,g=a.mergeListBookmark.endNode,e=new CKEDITOR.dom.elementPath(c,d),h=new CKEDITOR.dom.elementPath(g,
+d);if(a.mergeList){var f=e.contains(CKEDITOR.dtd.$list),k=h.contains(CKEDITOR.dtd.$list);f.equals(k)||(k.moveChildren(f),k.remove())}a.mergeListItems&&(e=e.contains(CKEDITOR.dtd.$listItem),h=h.contains(CKEDITOR.dtd.$listItem),e.equals(h)||b(h,c,g));c.remove();g.remove()}}},block:{detectMerge:function(a,b){if(!a.tableContentsRanges&&!a.mergeListBookmark){var d=new CKEDITOR.dom.range(b);d.setStartBefore(a.bookmark.startNode);d.setEndAfter(a.bookmark.endNode);a.mergeBlockBookmark=d.createBookmark()}},
+merge:function(a,d){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var c=a.mergeBlockBookmark.startNode,g=a.mergeBlockBookmark.endNode,e=new CKEDITOR.dom.elementPath(c,d),h=new CKEDITOR.dom.elementPath(g,d),e=e.block,h=h.block;e&&h&&!e.equals(h)&&b(h,c,g);c.remove();g.remove()}}},table:function(){function a(d){var g=[],e,h=new CKEDITOR.dom.walker(d),f=d.startPath().contains(c),k=d.endPath().contains(c),p={};h.guard=function(a,h){if(a.type==CKEDITOR.NODE_ELEMENT){var n="visited_"+(h?"out":"in");if(a.getCustomData(n))return;
+CKEDITOR.dom.element.setMarker(p,a,n,1)}if(h&&f&&a.equals(f))e=d.clone(),e.setEndAt(f,CKEDITOR.POSITION_BEFORE_END),g.push(e);else if(!h&&k&&a.equals(k))e=d.clone(),e.setStartAt(k,CKEDITOR.POSITION_AFTER_START),g.push(e);else{if(n=!h)n=a.type==CKEDITOR.NODE_ELEMENT&&a.is(c)&&(!f||b(a,f))&&(!k||b(a,k));n&&(e=d.clone(),e.selectNodeContents(a),g.push(e))}};h.lastForward();CKEDITOR.dom.element.clearAllMarkers(p);return g}function b(a,d){var c=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,
+g=a.getPosition(d);return g===CKEDITOR.POSITION_IDENTICAL?!1:0===(g&c)}var c={td:1,th:1,caption:1};return{detectPurge:function(a){var b=a.range,d=b.clone();d.enlarge(CKEDITOR.ENLARGE_ELEMENT);var d=new CKEDITOR.dom.walker(d),g=0;d.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(c)&&++g};d.checkForward();if(1<g){var d=b.startPath().contains("table"),e=b.endPath().contains("table");d&&e&&b.checkBoundaryOfElement(d,CKEDITOR.START)&&b.checkBoundaryOfElement(e,CKEDITOR.END)&&(b=a.range.clone(),
+b.setStartBefore(d),b.setEndAfter(e),a.purgeTableBookmark=b.createBookmark())}},detectRanges:function(g,e){var h=d(e,g.bookmark),f=h.clone(),k,p,n=h.getCommonAncestor();n.is(CKEDITOR.dtd.$tableContent)&&!n.is(c)&&(n=n.getAscendant("table",!0));p=n;n=new CKEDITOR.dom.elementPath(h.startContainer,p);p=new CKEDITOR.dom.elementPath(h.endContainer,p);n=n.contains("table");p=p.contains("table");if(n||p)n&&p&&b(n,p)?(g.tableSurroundingRange=f,f.setStartAt(n,CKEDITOR.POSITION_AFTER_END),f.setEndAt(p,CKEDITOR.POSITION_BEFORE_START),
+f=h.clone(),f.setEndAt(n,CKEDITOR.POSITION_AFTER_END),k=h.clone(),k.setStartAt(p,CKEDITOR.POSITION_BEFORE_START),k=a(f).concat(a(k))):n?p||(g.tableSurroundingRange=f,f.setStartAt(n,CKEDITOR.POSITION_AFTER_END),h.setEndAt(n,CKEDITOR.POSITION_AFTER_END)):(g.tableSurroundingRange=f,f.setEndAt(p,CKEDITOR.POSITION_BEFORE_START),h.setStartAt(p,CKEDITOR.POSITION_AFTER_START)),g.tableContentsRanges=k?k:a(h)},deleteRanges:function(a){for(var b;b=a.tableContentsRanges.pop();)b.extractContents(),u(b.startContainer)&&
+b.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var b=a.doc,d=a.range.clone(),b=b.createElement("p");b.insertBefore(a.purgeTableBookmark.startNode);d.moveToBookmark(a.purgeTableBookmark);d.deleteContents();a.range.moveToPosition(b,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&a.range.endPath().contains(CKEDITOR.dtd.$listItem))},
+fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,!0)},autoParagraph:function(a,b){var d=b.startPath(),c;l(a,d.block,d.blockLimit)&&(c=k(a))&&(c=b.document.createElement(c),c.appendBogus(),b.insertNode(c),b.moveToPosition(c,CKEDITOR.POSITION_AFTER_START))}}}()}(),function(){function a(){var a=this._.fakeSelection,b;a&&(b=this.getSelection(1),b&&b.isHidden()||(a.reset(),a=0));if(!a&&(a=b||this.getSelection(1),!a||a.getType()==CKEDITOR.SELECTION_NONE))return;
+this.fire("selectionCheck",a);b=this.elementPath();b.compare(this._.selectionPreviousPath)||(CKEDITOR.env.webkit&&(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=b,this.fire("selectionChange",{selection:a,path:b}))}function f(){u=!0;p||(c.call(this),p=CKEDITOR.tools.setTimeout(c,200,this))}function c(){p=null;u&&(CKEDITOR.tools.setTimeout(a,0,this),u=!1)}function e(a){return v(a)||a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?!0:!1}function h(a){function b(d,
+c){return d&&d.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(c?"End":"Start")](d):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var d=a.startContainer,c=a.getPreviousNode(e,null,d),g=a.getNextNode(e,null,d);return b(c)||b(g,1)||!(c||g||d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()&&d.getBogus())?!0:!1}function m(a){l(a,!1);var b=a.getDocument().createText(A);a.setCustomData("cke-fillingChar",b);return b}function l(a,b){var d=a&&a.removeCustomData("cke-fillingChar");if(d){if(!1!==
+b){var c=a.getDocument().getSelection().getNative(),g=c&&"None"!=c.type&&c.getRangeAt(0),e=A.length;if(d.getLength()>e&&g&&g.intersectsNode(d.$)){var h=[{node:c.anchorNode,offset:c.anchorOffset},{node:c.focusNode,offset:c.focusOffset}];c.anchorNode==d.$&&c.anchorOffset>e&&(h[0].offset-=e);c.focusNode==d.$&&c.focusOffset>e&&(h[1].offset-=e)}}d.setText(k(d.getText(),1));h&&(d=a.getDocument().$,c=d.getSelection(),d=d.createRange(),d.setStart(h[0].node,h[0].offset),d.collapse(!0),c.removeAllRanges(),
+c.addRange(d),c.extend(h[1].node,h[1].offset))}}function k(a,b){return b?a.replace(B,function(a,b){return b?" ":""}):a.replace(A,"")}function b(a){var b=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" style\x3d"'+(CKEDITOR.env.ie?"display:none":"position:fixed;top:0;left:-1000px")+'"\x3e\x26nbsp;\x3c/div\x3e',a.document);a.fire("lockSnapshot");a.editable().append(b);var d=a.getSelection(1),c=a.createRange(),g=d.root.on("selectionchange",function(a){a.cancel()},
+null,null,0);c.setStartAt(b,CKEDITOR.POSITION_AFTER_START);c.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);d.selectRanges([c]);g.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=b}function d(a){var b={37:1,39:1,8:1,46:1};return function(d){var c=d.data.getKeystroke();if(b[c]){var g=a.getSelection().getRanges(),e=g[0];1==g.length&&e.collapsed&&(c=e[38>c?"getPreviousEditableNode":"getNextEditableNode"]())&&c.type==CKEDITOR.NODE_ELEMENT&&"false"==c.getAttribute("contenteditable")&&(a.getSelection().fake(c),
+d.data.preventDefault(),d.cancel())}}}function g(a){for(var b=0;b<a.length;b++){var d=a[b];d.getCommonAncestor().isReadOnly()&&a.splice(b,1);if(!d.collapsed){if(d.startContainer.isReadOnly())for(var c=d.startContainer,g;c&&!((g=c.type==CKEDITOR.NODE_ELEMENT)&&c.is("body")||!c.isReadOnly());)g&&"false"==c.getAttribute("contentEditable")&&d.setStartAfter(c),c=c.getParent();c=d.startContainer;g=d.endContainer;var e=d.startOffset,h=d.endOffset,f=d.clone();c&&c.type==CKEDITOR.NODE_TEXT&&(e>=c.getLength()?
+f.setStartAfter(c):f.setStartBefore(c));g&&g.type==CKEDITOR.NODE_TEXT&&(h?f.setEndAfter(g):f.setEndBefore(g));c=new CKEDITOR.dom.walker(f);c.evaluator=function(c){if(c.type==CKEDITOR.NODE_ELEMENT&&c.isReadOnly()){var g=d.clone();d.setEndBefore(c);d.collapsed&&a.splice(b--,1);c.getPosition(f.endContainer)&CKEDITOR.POSITION_CONTAINS||(g.setStartAfter(c),g.collapsed||a.splice(b+1,0,g));return!0}return!1};c.next()}}return a}var p,u,v=CKEDITOR.dom.walker.invisible(1),r=function(){function a(b){return function(a){var d=
+a.editor.createRange();d.moveToClosestEditablePosition(a.selected,b)&&a.editor.getSelection().selectRanges([d]);return!1}}function b(a){return function(b){var d=b.editor,c=d.createRange(),g;(g=c.moveToClosestEditablePosition(b.selected,a))||(g=c.moveToClosestEditablePosition(b.selected,!a));g&&d.getSelection().selectRanges([c]);d.fire("saveSnapshot");b.selected.remove();g||(c.moveToElementEditablePosition(d.editable()),d.getSelection().selectRanges([c]));d.fire("saveSnapshot");return!1}}var d=a(),
+c=a(1);return{37:d,38:d,39:c,40:c,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(b){function c(){var a=g.getSelection();a&&a.removeAllRanges()}var g=b.editor;g.on("contentDom",function(){function b(){r=new CKEDITOR.dom.selection(g.getSelection());r.lock()}function c(){h.removeListener("mouseup",c);m.removeListener("mouseup",c);var a=CKEDITOR.document.$.selection,b=a.createRange();"None"!=a.type&&b.parentElement().ownerDocument==e.$&&b.select()}var e=g.document,h=CKEDITOR.document,k=g.editable(),
+p=e.getBody(),m=e.getDocumentElement(),t=k.isInline(),F,r;CKEDITOR.env.gecko&&k.attachListener(k,"focus",function(a){a.removeListener();0!==F&&(a=g.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==k.$&&(a=g.createRange(),a.moveToElementEditStart(k),a.select())},null,null,-2);k.attachListener(k,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){F&&CKEDITOR.env.webkit&&(F=g._.previousActive&&g._.previousActive.equals(e.getActive()));g.unlockSelection(F);F=0},null,null,-1);k.attachListener(k,
+"mousedown",function(){F=0});if(CKEDITOR.env.ie||t)n?k.attachListener(k,"beforedeactivate",b,null,null,-1):k.attachListener(g,"selectionCheck",b,null,null,-1),k.attachListener(k,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){g.lockSelection(r);F=1},null,null,-1),k.attachListener(k,"mousedown",function(){F=0});if(CKEDITOR.env.ie&&!t){var q;k.attachListener(k,"mousedown",function(a){2==a.data.$.button&&((a=g.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(q=g.window.getScrollPosition()))});
+k.attachListener(k,"mouseup",function(a){2==a.data.$.button&&q&&(g.document.$.documentElement.scrollLeft=q.x,g.document.$.documentElement.scrollTop=q.y);q=null});if("BackCompat"!=e.$.compatMode){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)m.on("mousedown",function(a){function b(a){a=a.data.$;if(c){var d=p.$.createTextRange();try{d.moveToPoint(a.clientX,a.clientY)}catch(g){}c.setEndPoint(0>e.compareEndPoints("StartToStart",d)?"EndToEnd":"StartToStart",d);c.select()}}function d(){m.removeListener("mousemove",
+b);h.removeListener("mouseup",d);m.removeListener("mouseup",d);c.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<m.$.clientHeight&&a.$.x<m.$.clientWidth){var c=p.$.createTextRange();try{c.moveToPoint(a.$.clientX,a.$.clientY)}catch(g){}var e=c.duplicate();m.on("mousemove",b);h.on("mouseup",d);m.on("mouseup",d)}});if(7<CKEDITOR.env.version&&11>CKEDITOR.env.version)m.on("mousedown",function(a){a.data.getTarget().is("html")&&(h.on("mouseup",c),m.on("mouseup",c))})}}k.attachListener(k,"selectionchange",
+a,g);k.attachListener(k,"keyup",f,g);k.attachListener(k,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){g.forceNextSelectionCheck();g.selectionChange(1)});if(t&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var w;k.attachListener(k,"mousedown",function(){w=1});k.attachListener(e.getDocumentElement(),"mouseup",function(){w&&f.call(g);w=0})}else k.attachListener(CKEDITOR.env.ie?k:e.getDocumentElement(),"mouseup",f,g);CKEDITOR.env.webkit&&k.attachListener(e,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:l(k)}},
+null,null,-1);k.attachListener(k,"keydown",d(g),null,null,-1)});g.on("setData",function(){g.unlockSelection();CKEDITOR.env.webkit&&c()});g.on("contentDomUnload",function(){g.unlockSelection()});if(CKEDITOR.env.ie9Compat)g.on("beforeDestroy",c,null,null,9);g.on("dataReady",function(){delete g._.fakeSelection;delete g._.hiddenSelectionContainer;g.selectionChange(1)});g.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),b=g.editable().getLast(a);b&&b.hasAttribute("data-cke-hidden-sel")&&
+(b.remove(),CKEDITOR.env.gecko&&(a=g.editable().getFirst(a))&&a.is("br")&&a.getAttribute("_moz_editor_bogus_node")&&a.remove())},null,null,100);g.on("key",function(a){if("wysiwyg"==g.mode){var b=g.getSelection();if(b.isFake){var d=r[a.data.keyCode];if(d)return d({editor:g,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})});if(CKEDITOR.env.webkit)CKEDITOR.on("instanceReady",function(a){var b=a.editor;b.on("selectionChange",function(){var a=b.editable(),d=a.getCustomData("cke-fillingChar");
+d&&(d.getCustomData("ready")?l(a):d.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){l(b.editable())},null,null,-1);b.on("getSnapshot",function(a){a.data&&(a.data=k(a.data))},b,null,20);b.on("toDataFormat",function(a){a.data.dataValue=k(a.data.dataValue)},null,null,0)});CKEDITOR.editor.prototype.selectionChange=function(b){(b?a:f).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==
+this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);return a.getType()!=CKEDITOR.SELECTION_NONE?(!a.isLocked&&a.lock(),this._.savedSelection=a,!0):!1};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;return b?(b.unlock(a),delete this._.savedSelection,!0):!1};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};
+CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;var n="function"!=typeof window.getSelection,q=1;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var b=
+a;a=a.root}var d=a instanceof CKEDITOR.dom.element;this.rev=b?b.rev:q++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=d?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(b)return CKEDITOR.tools.extend(this._.cache,b._.cache),this.isFake=b.isFake,this.isLocked=b.isLocked,this;a=this.getNative();var c,g;if(a)if(a.getRangeAt)c=(g=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(g.commonAncestorContainer);else{try{g=a.createRange()}catch(e){}c=g&&CKEDITOR.dom.element.get(g.item&&
+g.item(0)||g.parentElement())}if(!c||c.type!=CKEDITOR.NODE_ELEMENT&&c.type!=CKEDITOR.NODE_TEXT||!this.root.equals(c)&&!this.root.contains(c))this._.cache.type=CKEDITOR.SELECTION_NONE,this._.cache.startElement=null,this._.cache.selectedElement=null,this._.cache.selectedText="",this._.cache.ranges=new CKEDITOR.dom.rangeList;return this};var w={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1},A=CKEDITOR.tools.repeat("​",
+7),B=new RegExp(A+"( )?","g");CKEDITOR.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:k,_createFillingCharSequenceNode:m,FILLING_CHAR_SEQUENCE:A});CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=n?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:n?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var d=this.getNative(),
+c=d.type;"Text"==c&&(b=CKEDITOR.SELECTION_TEXT);"Control"==c&&(b=CKEDITOR.SELECTION_ELEMENT);d.createRange().parentElement()&&(b=CKEDITOR.SELECTION_TEXT)}catch(g){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,d=this.getNative();if(!d||!d.rangeCount)b=CKEDITOR.SELECTION_NONE;else if(1==d.rangeCount){var d=d.getRangeAt(0),c=d.startContainer;c==d.endContainer&&1==c.nodeType&&1==d.endOffset-d.startOffset&&w[c.childNodes[d.startOffset].nodeName.toLowerCase()]&&
+(b=CKEDITOR.SELECTION_ELEMENT)}return a.type=b},getRanges:function(){var a=n?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,d){b=b.duplicate();b.collapse(d);var c=b.parentElement();if(!c.hasChildNodes())return{container:c,offset:0};for(var g=c.children,e,h,f=b.duplicate(),k=0,p=g.length-1,n=-1,l,m;k<=p;)if(n=Math.floor((k+p)/2),e=g[n],f.moveToElementText(e),l=f.compareEndPoints("StartToStart",b),0<l)p=n-1;else if(0>l)k=n+1;else return{container:c,offset:a(e)};
+if(-1==n||n==g.length-1&&0>l){f.moveToElementText(c);f.setEndPoint("StartToStart",b);f=f.text.replace(/(\r\n|\r)/g,"\n").length;g=c.childNodes;if(!f)return e=g[g.length-1],e.nodeType!=CKEDITOR.NODE_TEXT?{container:c,offset:g.length}:{container:e,offset:e.nodeValue.length};for(c=g.length;0<f&&0<c;)h=g[--c],h.nodeType==CKEDITOR.NODE_TEXT&&(m=h,f-=h.nodeValue.length);return{container:m,offset:-f}}f.collapse(0<l?!0:!1);f.setEndPoint(0<l?"StartToStart":"EndToStart",b);f=f.text.replace(/(\r\n|\r)/g,"\n").length;
+if(!f)return{container:c,offset:a(e)+(0<l?0:1)};for(;0<f;)try{h=e[0<l?"previousSibling":"nextSibling"],h.nodeType==CKEDITOR.NODE_TEXT&&(f-=h.nodeValue.length,m=h),e=h}catch(r){return{container:c,offset:a(e)}}return{container:m,offset:0<l?-f:m.nodeValue.length+f}};return function(){var a=this.getNative(),d=a&&a.createRange(),c=this.getType();if(!a)return[];if(c==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),c=b(d,!0),a.setStart(new CKEDITOR.dom.node(c.container),c.offset),c=b(d),
+a.setEnd(new CKEDITOR.dom.node(c.container),c.offset),a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse(),[a];if(c==CKEDITOR.SELECTION_ELEMENT){for(var c=[],g=0;g<d.length;g++){for(var e=d.item(g),h=e.parentNode,f=0,a=new CKEDITOR.dom.range(this.root);f<h.childNodes.length&&h.childNodes[f]!=e;f++);a.setStart(new CKEDITOR.dom.node(h),f);a.setEnd(new CKEDITOR.dom.node(h),f+1);c.push(a)}return c}return[]}}():function(){var a=
+[],b,d=this.getNative();if(!d)return a;for(var c=0;c<d.rangeCount;c++){var g=d.getRangeAt(c);b=new CKEDITOR.dom.range(this.root);b.setStart(new CKEDITOR.dom.node(g.startContainer),g.startOffset);b.setEnd(new CKEDITOR.dom.node(g.endContainer),g.endOffset);a.push(b)}return a};return function(b){var d=this._.cache,c=d.ranges;c||(d.ranges=c=new CKEDITOR.dom.rangeList(a.call(this)));return b?g(new CKEDITOR.dom.rangeList(c.slice())):c}}(),getStartElement:function(){var a=this._.cache;if(void 0!==a.startElement)return a.startElement;
+var b;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var d=this.getRanges()[0];if(d){if(d.collapsed)b=d.startContainer,b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());else{for(d.optimize();b=d.startContainer,d.startOffset==(b.getChildCount?b.getChildCount():b.getLength())&&!b.isBlockBoundary();)d.setStartAfter(b);b=d.startContainer;if(b.type!=CKEDITOR.NODE_ELEMENT)return b.getParent();if((b=b.getChild(d.startOffset))&&b.type==
+CKEDITOR.NODE_ELEMENT)for(d=b.getFirst();d&&d.type==CKEDITOR.NODE_ELEMENT;)b=d,d=d.getFirst();else b=d.startContainer}b=b.$}}return a.startElement=b?new CKEDITOR.dom.element(b):null},getSelectedElement:function(){var a=this._.cache;if(void 0!==a.selectedElement)return a.selectedElement;var b=this,d=CKEDITOR.tools.tryThese(function(){return b.getNative().createRange().item(0)},function(){for(var a=b.getRanges()[0].clone(),d,c,g=2;g&&!((d=a.getEnclosedNode())&&d.type==CKEDITOR.NODE_ELEMENT&&w[d.getName()]&&
+(c=d));g--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return c&&c.$});return a.selectedElement=d?new CKEDITOR.dom.element(d):null},getSelectedText:function(){var a=this._.cache;if(void 0!==a.selectedText)return a.selectedText;var b=this.getNative(),b=n?"Control"==b.type?"":b.createRange().text:b.toString();return a.selectedText=b},lock:function(){this.getRanges();this.getStartElement();this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;this.isLocked=1},unlock:function(a){if(this.isLocked){if(a)var b=
+this.getSelectedElement(),d=!b&&this.getRanges(),c=this.isFake;this.isLocked=0;this.reset();a&&(a=b||d[0]&&d[0].getCommonAncestor())&&a.getAscendant("body",1)&&(c?this.fake(b):b?this.selectElement(b):this.selectRanges(d))}},reset:function(){this._.cache={};this.isFake=0;var a=this.root.editor;if(a&&a._.fakeSelection)if(this.rev==a._.fakeSelection.rev){delete a._.fakeSelection;var b=a._.hiddenSelectionContainer;if(b){var d=a.checkDirty();a.fire("lockSnapshot");b.remove();a.fire("unlockSnapshot");!d&&
+a.resetDirty()}delete a._.hiddenSelectionContainer}else CKEDITOR.warn("selection-fake-reset");this.rev=q++},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(a){var b=this.root.editor,b=b&&b._.hiddenSelectionContainer;this.reset();if(b)for(var b=this.root,d,c=0;c<a.length;++c)d=a[c],d.endContainer.equals(b)&&(d.endOffset=Math.min(d.endOffset,b.getChildCount()));if(a.length)if(this.isLocked){var g=CKEDITOR.document.getActive();
+this.unlock();this.selectRanges(a);this.lock();g&&!g.equals(this.root)&&g.focus()}else{var e;a:{var f,k;if(1==a.length&&!(k=a[0]).collapsed&&(e=k.getEnclosedNode())&&e.type==CKEDITOR.NODE_ELEMENT&&(k=k.clone(),k.shrink(CKEDITOR.SHRINK_ELEMENT,!0),(f=k.getEnclosedNode())&&f.type==CKEDITOR.NODE_ELEMENT&&(e=f),"false"==e.getAttribute("contenteditable")))break a;e=void 0}if(e)this.fake(e);else{if(n){k=CKEDITOR.dom.walker.whitespaces(!0);f=/\ufeff|\u00a0/;b={table:1,tbody:1,tr:1};1<a.length&&(e=a[a.length-
+1],a[0].setEnd(e.endContainer,e.endOffset));e=a[0];a=e.collapsed;var p,r,q;if((d=e.getEnclosedNode())&&d.type==CKEDITOR.NODE_ELEMENT&&d.getName()in w&&(!d.is("a")||!d.getText()))try{q=d.$.createControlRange();q.addElement(d.$);q.select();return}catch(F){}if(e.startContainer.type==CKEDITOR.NODE_ELEMENT&&e.startContainer.getName()in b||e.endContainer.type==CKEDITOR.NODE_ELEMENT&&e.endContainer.getName()in b)e.shrink(CKEDITOR.NODE_ELEMENT,!0),a=e.collapsed;q=e.createBookmark();b=q.startNode;a||(g=q.endNode);
+q=e.document.$.body.createTextRange();q.moveToElementText(b.$);q.moveStart("character",1);g?(f=e.document.$.body.createTextRange(),f.moveToElementText(g.$),q.setEndPoint("EndToEnd",f),q.moveEnd("character",-1)):(p=b.getNext(k),r=b.hasAscendant("pre"),p=!(p&&p.getText&&p.getText().match(f))&&(r||!b.hasPrevious()||b.getPrevious().is&&b.getPrevious().is("br")),r=e.document.createElement("span"),r.setHtml("\x26#65279;"),r.insertBefore(b),p&&e.document.createText("﻿").insertBefore(b));e.setStartBefore(b);
+b.remove();a?(p?(q.moveStart("character",-1),q.select(),e.document.$.selection.clear()):q.select(),e.moveToPosition(r,CKEDITOR.POSITION_BEFORE_START),r.remove()):(e.setEndBefore(g),g.remove(),q.select())}else{g=this.getNative();if(!g)return;this.removeAllRanges();for(q=0;q<a.length;q++){if(q<a.length-1&&(p=a[q],r=a[q+1],f=p.clone(),f.setStart(p.endContainer,p.endOffset),f.setEnd(r.startContainer,r.startOffset),!f.collapsed&&(f.shrink(CKEDITOR.NODE_ELEMENT,!0),e=f.getCommonAncestor(),f=f.getEnclosedNode(),
+e.isReadOnly()||f&&f.isReadOnly()))){r.setStart(p.startContainer,p.startOffset);a.splice(q--,1);continue}e=a[q];r=this.document.$.createRange();e.collapsed&&CKEDITOR.env.webkit&&h(e)&&(f=m(this.root),e.insertNode(f),(p=f.getNext())&&!f.getPrevious()&&p.type==CKEDITOR.NODE_ELEMENT&&"br"==p.getName()?(l(this.root),e.moveToPosition(p,CKEDITOR.POSITION_BEFORE_START)):e.moveToPosition(f,CKEDITOR.POSITION_AFTER_END));r.setStart(e.startContainer.$,e.startOffset);try{r.setEnd(e.endContainer.$,e.endOffset)}catch(u){if(0<=
+u.toString().indexOf("NS_ERROR_ILLEGAL_VALUE"))e.collapse(1),r.setEnd(e.endContainer.$,e.endOffset);else throw u;}g.addRange(r)}}this.reset();this.root.fire("selectionchange")}}},fake:function(a){var d=this.root.editor;this.reset();b(d);var c=this._.cache,g=new CKEDITOR.dom.range(this.root);g.setStartBefore(a);g.setEndAfter(a);c.ranges=new CKEDITOR.dom.rangeList(g);c.selectedElement=c.startElement=a;c.type=CKEDITOR.SELECTION_ELEMENT;c.selectedText=c.nativeSel=null;this.isFake=1;this.rev=q++;d._.fakeSelection=
+this;this.root.fire("selectionchange")},isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},createBookmarks:function(a){a=this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a},createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&(a.isFake=1);return a},selectBookmarks:function(a){for(var b=[],d,c=0;c<a.length;c++){var g=new CKEDITOR.dom.range(this.root);g.moveToBookmark(a[c]);
+b.push(g)}a.isFake&&(d=b[0].getEnclosedNode(),d&&d.type==CKEDITOR.NODE_ELEMENT||(CKEDITOR.warn("selection-not-fake"),a.isFake=0));a.isFake?this.fake(d):this.selectRanges(b);return this},getCommonAncestor:function(){var a=this.getRanges();return a.length?a[0].startContainer.getCommonAncestor(a[a.length-1].endContainer):null},scrollIntoView:function(){this.type!=CKEDITOR.SELECTION_NONE&&this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){if(this.getType()!=CKEDITOR.SELECTION_NONE){var a=
+this.getNative();try{a&&a[n?"empty":"removeAllRanges"]()}catch(b){}this.reset()}}}}(),"use strict",CKEDITOR.STYLE_BLOCK=1,CKEDITOR.STYLE_INLINE=2,CKEDITOR.STYLE_OBJECT=3,function(){function a(a,b){for(var d,c;(a=a.getParent())&&!a.equals(b);)if(a.getAttribute("data-nostyle"))d=a;else if(!c){var g=a.getAttribute("contentEditable");"false"==g?d=a:"true"==g&&(c=1)}return d}function f(a,b,d,c){return(a.getPosition(b)|c)==c&&(!d.childRule||d.childRule(a))}function c(b){var d=b.document;if(b.collapsed)d=
+w(this,d),b.insertNode(d),b.moveToPosition(d,CKEDITOR.POSITION_BEFORE_END);else{var g=this.element,e=this._.definition,k,p=e.ignoreReadonly,n=p||e.includeReadonly;null==n&&(n=b.root.getCustomData("cke_includeReadonly"));var l=CKEDITOR.dtd[g];l||(k=!0,l=CKEDITOR.dtd.span);b.enlarge(CKEDITOR.ENLARGE_INLINE,1);b.trim();var m=b.createBookmark(),q=m.startNode,u=m.endNode,v=q,t;if(!p){var A=b.getCommonAncestor(),p=a(q,A),A=a(u,A);p&&(v=p.getNextSourceNode(!0));A&&(u=A)}for(v.getPosition(u)==CKEDITOR.POSITION_FOLLOWING&&
+(v=0);v;){p=!1;if(v.equals(u))v=null,p=!0;else{var B=v.type==CKEDITOR.NODE_ELEMENT?v.getName():null,A=B&&"false"==v.getAttribute("contentEditable"),x=B&&v.getAttribute("data-nostyle");if(B&&v.data("cke-bookmark")){v=v.getNextSourceNode(!0);continue}if(A&&n&&CKEDITOR.dtd.$block[B])for(var D=v,z=h(D),y=void 0,C=z.length,G=0,D=C&&new CKEDITOR.dom.range(D.getDocument());G<C;++G){var y=z[G],ga=CKEDITOR.filter.instances[y.data("cke-filter")];if(ga?ga.check(this):1)D.selectNodeContents(y),c.call(this,D)}z=
+B?!l[B]||x?0:A&&!n?0:f(v,u,e,I):1;if(z)if(y=v.getParent(),z=e,C=g,G=k,!y||!(y.getDtd()||CKEDITOR.dtd.span)[C]&&!G||z.parentRule&&!z.parentRule(y))p=!0;else{if(t||B&&CKEDITOR.dtd.$removeEmpty[B]&&(v.getPosition(u)|I)!=I||(t=b.clone(),t.setStartBefore(v)),B=v.type,B==CKEDITOR.NODE_TEXT||A||B==CKEDITOR.NODE_ELEMENT&&!v.getChildCount()){for(var B=v,fa;(p=!B.getNext(E))&&(fa=B.getParent(),l[fa.getName()])&&f(fa,q,e,N);)B=fa;t.setEndAfter(B)}}else p=!0;v=v.getNextSourceNode(x||A)}if(p&&t&&!t.collapsed){for(var p=
+w(this,d),A=p.hasAttributes(),x=t.getCommonAncestor(),B={},z={},y={},C={},J,Z,ha;p&&x;){if(x.getName()==g){for(J in e.attributes)!C[J]&&(ha=x.getAttribute(Z))&&(p.getAttribute(J)==ha?z[J]=1:C[J]=1);for(Z in e.styles)!y[Z]&&(ha=x.getStyle(Z))&&(p.getStyle(Z)==ha?B[Z]=1:y[Z]=1)}x=x.getParent()}for(J in z)p.removeAttribute(J);for(Z in B)p.removeStyle(Z);A&&!p.hasAttributes()&&(p=null);p?(t.extractContents().appendTo(p),t.insertNode(p),r.call(this,p),p.mergeSiblings(),CKEDITOR.env.ie||p.$.normalize()):
+(p=new CKEDITOR.dom.element("span"),t.extractContents().appendTo(p),t.insertNode(p),r.call(this,p),p.remove(!0));t=null}}b.moveToBookmark(m);b.shrink(CKEDITOR.SHRINK_TEXT);b.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function e(a){function b(){for(var a=new CKEDITOR.dom.elementPath(c.getParent()),d=new CKEDITOR.dom.elementPath(p.getParent()),g=null,e=null,h=0;h<a.elements.length;h++){var f=a.elements[h];if(f==a.block||f==a.blockLimit)break;l.checkElementRemovable(f,!0)&&(g=f)}for(h=0;h<d.elements.length;h++){f=
+d.elements[h];if(f==d.block||f==d.blockLimit)break;l.checkElementRemovable(f,!0)&&(e=f)}e&&p.breakParent(e);g&&c.breakParent(g)}a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var d=a.createBookmark(),c=d.startNode;if(a.collapsed){for(var g=new CKEDITOR.dom.elementPath(c.getParent(),a.root),e,h=0,f;h<g.elements.length&&(f=g.elements[h])&&f!=g.block&&f!=g.blockLimit;h++)if(this.checkElementRemovable(f)){var k;a.collapsed&&(a.checkBoundaryOfElement(f,CKEDITOR.END)||(k=a.checkBoundaryOfElement(f,CKEDITOR.START)))?
+(e=f,e.match=k?"start":"end"):(f.mergeSiblings(),f.is(this.element)?v.call(this,f):n(f,t(this)[f.getName()]))}if(e){f=c;for(h=0;;h++){k=g.elements[h];if(k.equals(e))break;else if(k.match)continue;else k=k.clone();k.append(f);f=k}f["start"==e.match?"insertBefore":"insertAfter"](e)}}else{var p=d.endNode,l=this;b();for(g=c;!g.equals(p);)e=g.getNextSourceNode(),g.type==CKEDITOR.NODE_ELEMENT&&this.checkElementRemovable(g)&&(g.getName()==this.element?v.call(this,g):n(g,t(this)[g.getName()]),e.type==CKEDITOR.NODE_ELEMENT&&
+e.contains(c)&&(b(),e=c.getNext())),g=e}a.moveToBookmark(d);a.shrink(CKEDITOR.NODE_ELEMENT,!0)}function h(a){var b=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function m(a){var b=a.getEnclosedNode()||a.getCommonAncestor(!1,!0);(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1))&&!a.isReadOnly()&&A(a,this)}function l(a){var b=a.getCommonAncestor(!0,!0);if(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,
+1)){var b=this._.definition,d=b.attributes;if(d)for(var c in d)a.removeAttribute(c,d[c]);if(b.styles)for(var g in b.styles)b.styles.hasOwnProperty(g)&&a.removeStyle(g)}}function k(a){var b=a.createBookmark(!0),c=a.createIterator();c.enforceRealBlocks=!0;this._.enterMode&&(c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR);for(var g,e=a.document,h;g=c.getNextParagraph();)!g.isReadOnly()&&(c.activeFilter?c.activeFilter.check(this):1)&&(h=w(this,e,g),d(g,h));a.moveToBookmark(b)}function b(a){var b=a.createBookmark(1),
+c=a.createIterator();c.enforceRealBlocks=!0;c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var g,e;g=c.getNextParagraph();)this.checkElementRemovable(g)&&(g.is("pre")?((e=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))&&g.copyAttributes(e),d(g,e)):v.call(this,g));a.moveToBookmark(b)}function d(a,b){var d=!b;d&&(b=a.getDocument().createElement("div"),a.copyAttributes(b));var c=b&&b.is("pre"),e=a.is("pre"),h=!c&&e;if(c&&!e){e=b;(h=
+a.getBogus())&&h.remove();h=a.getHtml();h=p(h,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");h=h.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");h=h.replace(/([ \t\n\r]+|&nbsp;)/g," ");h=h.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var f=a.getDocument().createElement("div");f.append(e);e.$.outerHTML="\x3cpre\x3e"+h+"\x3c/pre\x3e";e.copyAttributes(f.getFirst());e=f.getFirst().remove()}else e.setHtml(h);b=e}else h?b=u(d?[a.getHtml()]:g(a),b):a.moveChildren(b);b.replace(a);if(c){var d=b,k;(k=d.getPrevious(J))&&
+k.type==CKEDITOR.NODE_ELEMENT&&k.is("pre")&&(c=p(k.getHtml(),/\n$/,"")+"\n\n"+p(d.getHtml(),/^\n/,""),CKEDITOR.env.ie?d.$.outerHTML="\x3cpre\x3e"+c+"\x3c/pre\x3e":d.setHtml(c),k.remove())}else d&&q(b)}function g(a){var b=[];p(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,d){return b+"\x3c/pre\x3e"+d+"\x3cpre\x3e"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,d){b.push(d)});return b}function p(a,b,d){var c="",g="";a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,
+function(a,b,d){b&&(c=b);d&&(g=d);return""});return c+a.replace(b,d)+g}function u(a,b){var d;1<a.length&&(d=new CKEDITOR.dom.documentFragment(b.getDocument()));for(var c=0;c<a.length;c++){var g=a[c],g=g.replace(/(\r\n|\r)/g,"\n"),g=p(g,/^[ \t]*\n/,""),g=p(g,/\n$/,""),g=p(g,/^[ \t]+|[ \t]+$/g,function(a,b){return 1==a.length?"\x26nbsp;":b?" "+CKEDITOR.tools.repeat("\x26nbsp;",a.length-1):CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "}),g=g.replace(/\n/g,"\x3cbr\x3e"),g=g.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("\x26nbsp;",
+a.length-1)+" "});if(d){var e=b.clone();e.setHtml(g);d.append(e)}else b.setHtml(g)}return d||b}function v(a,b){var d=this._.definition,c=d.attributes,d=d.styles,g=t(this)[a.getName()],e=CKEDITOR.tools.isEmpty(c)&&CKEDITOR.tools.isEmpty(d),h;for(h in c)if("class"!=h&&!this._.definition.fullMatch||a.getAttribute(h)==x(h,c[h]))b&&"data-"==h.slice(0,5)||(e=a.hasAttribute(h),a.removeAttribute(h));for(var f in d)this._.definition.fullMatch&&a.getStyle(f)!=x(f,d[f],!0)||(e=e||!!a.getStyle(f),a.removeStyle(f));
+n(a,g,y[a.getName()]);e&&(this._.definition.alwaysRemoveElement?q(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?q(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function r(a){for(var b=t(this),d=a.getElementsByTag(this.element),c,g=d.count();0<=--g;)c=d.getItem(g),c.isReadOnly()||v.call(this,c,!0);for(var e in b)if(e!=this.element)for(d=a.getElementsByTag(e),g=d.count()-1;0<=g;g--)c=d.getItem(g),c.isReadOnly()||n(c,b[e])}function n(a,
+b,d){if(b=b&&b.attributes)for(var c=0;c<b.length;c++){var g=b[c][0],e;if(e=a.getAttribute(g)){var h=b[c][1];(null===h||h.test&&h.test(e)||"string"==typeof h&&e==h)&&a.removeAttribute(g)}}d||q(a)}function q(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getName()]){var d=a.getPrevious(J),c=a.getNext(J);!d||d.type!=CKEDITOR.NODE_TEXT&&d.isBlockBoundary({br:1})||a.append("br",1);!c||c.type!=CKEDITOR.NODE_TEXT&&c.isBlockBoundary({br:1})||a.append("br");a.remove(!0)}else d=a.getFirst(),c=a.getLast(),
+a.remove(!0),d&&(d.type==CKEDITOR.NODE_ELEMENT&&d.mergeSiblings(),c&&!d.equals(c)&&c.type==CKEDITOR.NODE_ELEMENT&&c.mergeSiblings())}function w(a,b,d){var c;c=a.element;"*"==c&&(c="span");c=new CKEDITOR.dom.element(c,b);d&&d.copyAttributes(c);c=A(c,a);b.getCustomData("doc_processing_style")&&c.hasAttribute("id")?c.removeAttribute("id"):b.setCustomData("doc_processing_style",1);return c}function A(a,b){var d=b._.definition,c=d.attributes,d=CKEDITOR.style.getStyleText(d);if(c)for(var g in c)a.setAttribute(g,
+c[g]);d&&a.setAttribute("style",d);return a}function B(a,b){for(var d in a)a[d]=a[d].replace(G,function(a,d){return b[d]})}function t(a){if(a._.overrides)return a._.overrides;var b=a._.overrides={},d=a._.definition.overrides;if(d){CKEDITOR.tools.isArray(d)||(d=[d]);for(var c=0;c<d.length;c++){var g=d[c],e,h;"string"==typeof g?e=g.toLowerCase():(e=g.element?g.element.toLowerCase():a.element,h=g.attributes);g=b[e]||(b[e]={});if(h){var g=g.attributes=g.attributes||[],f;for(f in h)g.push([f.toLowerCase(),
+h[f]])}}}return b}function x(a,b,d){var c=new CKEDITOR.dom.element("span");c[d?"setStyle":"setAttribute"](a,b);return c[d?"getStyle":"getAttribute"](a)}function D(a,b,d){var c=a.document,g=a.getRanges();b=b?this.removeFromRange:this.applyToRange;for(var e,h=g.createIterator();e=h.getNextRange();)b.call(this,e,d);a.selectRanges(g);c.removeCustomData("doc_processing_style")}var y={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,
+hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},z={a:1,blockquote:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1},C=/\s*(?:;\s*|$)/,G=/#\((.+?)\)/g,E=CKEDITOR.dom.walker.bookmark(0,1),J=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,b){if("string"==typeof a.type)return new CKEDITOR.style.customHandlers[a.type](a);var d=a.attributes;d&&d.style&&(a.styles=CKEDITOR.tools.extend({},
+a.styles,CKEDITOR.tools.parseCssText(d.style)),delete d.style);b&&(a=CKEDITOR.tools.clone(a),B(a.attributes,b),B(a.styles,b));d=this.element=a.element?"string"==typeof a.element?a.element.toLowerCase():a.element:"*";this.type=a.type||(y[d]?CKEDITOR.STYLE_BLOCK:z[d]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);"object"==typeof this.element&&(this.type=CKEDITOR.STYLE_OBJECT);this._={definition:a}};CKEDITOR.style.prototype={apply:function(a){if(a instanceof CKEDITOR.dom.document)return D.call(this,a.getSelection());
+if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);D.call(this,a.getSelection(),0,a);this._.enterMode=b}},remove:function(a){if(a instanceof CKEDITOR.dom.document)return D.call(this,a.getSelection(),1);if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);D.call(this,a.getSelection(),1,a);this._.enterMode=b}},applyToRange:function(a){this.applyToRange=this.type==CKEDITOR.STYLE_INLINE?c:this.type==
+CKEDITOR.STYLE_BLOCK?k:this.type==CKEDITOR.STYLE_OBJECT?m:null;return this.applyToRange(a)},removeFromRange:function(a){this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?e:this.type==CKEDITOR.STYLE_BLOCK?b:this.type==CKEDITOR.STYLE_OBJECT?l:null;return this.removeFromRange(a)},applyToObject:function(a){A(a,this)},checkActive:function(a,b){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||a.blockLimit,!0,b);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var d=
 a.elements,c=0,g;c<d.length;c++)if(g=d[c],this.type!=CKEDITOR.STYLE_INLINE||g!=a.block&&g!=a.blockLimit){if(this.type==CKEDITOR.STYLE_OBJECT){var e=g.getName();if(!("string"==typeof this.element?e==this.element:e in this.element))continue}if(this.checkElementRemovable(g,!0,b))return!0}}return!1},checkApplicable:function(a,b,d){b&&b instanceof CKEDITOR.filter&&(d=b);if(d&&!d.check(this))return!1;switch(this.type){case CKEDITOR.STYLE_OBJECT:return!!a.contains(this.element);case CKEDITOR.STYLE_BLOCK:return!!a.blockLimit.getDtd()[this.element]}return!0},
-checkElementMatch:function(a,b){var d=this._.definition;if(!a||!d.ignoreReadonly&&a.isReadOnly())return!1;var c=a.getName();if("string"==typeof this.element?c==this.element:c in this.element){if(!b&&!a.hasAttributes())return!0;if(c=d._AC)d=c;else{var c={},g=0,e=d.attributes;if(e)for(var h in e)g++,c[h]=e[h];if(h=CKEDITOR.style.getStyleText(d))c.style||g++,c.style=h;c._length=g;d=d._AC=c}if(d._length){for(var f in d)if("_length"!=f)if(c=a.getAttribute(f)||"","style"==f?D(d[f],c):d[f]==c){if(!b)return!0}else if(b)return!1;
-if(b)return!0}else return!0}return!1},checkElementRemovable:function(a,b,d){if(this.checkElementMatch(a,b,d))return!0;if(b=t(this)[a.getName()]){var c;if(!(b=b.attributes))return!0;for(d=0;d<b.length;d++)if(c=b[d][0],c=a.getAttribute(c)){var g=b[d][1];if(null===g)return!0;if("string"==typeof g){if(c==g)return!0}else if(g.test(c))return!0}}return!1},buildPreview:function(a){var b=this._.definition,d=[],c=b.element;"bdo"==c&&(c="span");var d=["\x3c",c],g=b.attributes;if(g)for(var e in g)d.push(" ",
-e,'\x3d"',g[e],'"');(g=CKEDITOR.style.getStyleText(b))&&d.push(' style\x3d"',g,'"');d.push("\x3e",a||b.name,"\x3c/",c,"\x3e");return d.join("")},getDefinition:function(){return this._.definition}};CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;var b=a.styles,d=a.attributes&&a.attributes.style||"",c="";d.length&&(d=d.replace(F,";"));for(var g in b){var e=b[g],h=(g+":"+e).replace(F,";");"inherit"==e?c+=h:d+=h}d.length&&(d=CKEDITOR.tools.normalizeCssText(d,!0));return a._ST=d+c};CKEDITOR.style.customHandlers=
-{};CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a};this.setup&&this.setup(a)};b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),{assignedTo:CKEDITOR.STYLE_OBJECT},a,!0);return this.customHandlers[a.type]=b};var N=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,O=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED}(),CKEDITOR.styleCommand=function(a,
-f){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,f,!0)},CKEDITOR.styleCommand.prototype.exec=function(a){a.focus();this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&a.removeStyle(this.style)},CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet"),CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet),CKEDITOR.loadStylesSet=function(a,f,c){CKEDITOR.stylesSet.addExternal(a,f,"");CKEDITOR.stylesSet.load(a,
-c)},CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,f){var c=this._.styleStateChangeCallbacks;c||(c=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(a){for(var h=0;h<c.length;h++){var f=c[h],l=f.style.checkActive(a.data.path,this)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;f.fn.call(this,l)}}));c.push({style:a,fn:f})},applyStyle:function(a){a.apply(this)},removeStyle:function(a){a.remove(this)},getStylesSet:function(a){if(this._.stylesDefinitions)a(this._.stylesDefinitions);
-else{var f=this,c=f.config.stylesCombo_stylesSet||f.config.stylesSet;if(!1===c)a(null);else if(c instanceof Array)f._.stylesDefinitions=c,a(c);else{c||(c="default");var c=c.split(":"),e=c[0];CKEDITOR.stylesSet.addExternal(e,c[1]?c.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(e,function(c){f._.stylesDefinitions=c[e];a(f._.stylesDefinitions)})}}}}),CKEDITOR.dom.comment=function(a,f){"string"==typeof a&&(a=(f?f.$:document).createComment(a));CKEDITOR.dom.domObject.call(this,
-a)},CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node,CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"\x3c!--"+this.$.nodeValue+"--\x3e"}}),"use strict",function(){var a={},f={},c;for(c in CKEDITOR.dtd.$blockLimit)c in CKEDITOR.dtd.$list||(a[c]=1);for(c in CKEDITOR.dtd.$block)c in CKEDITOR.dtd.$blockLimit||c in CKEDITOR.dtd.$empty||(f[c]=1);CKEDITOR.dom.elementPath=function(c,h){var m=null,l=null,k=[],b=c,d;h=h||c.getDocument().getBody();
-do if(b.type==CKEDITOR.NODE_ELEMENT){k.push(b);if(!this.lastElement&&(this.lastElement=b,b.is(CKEDITOR.dtd.$object)||"false"==b.getAttribute("contenteditable")))continue;if(b.equals(h))break;if(!l&&(d=b.getName(),"true"==b.getAttribute("contenteditable")?l=b:!m&&f[d]&&(m=b),a[d])){if(d=!m&&"div"==d){a:{d=b.getChildren();for(var g=0,p=d.count();g<p;g++){var r=d.getItem(g);if(r.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[r.getName()]){d=!0;break a}}d=!1}d=!d}d?m=b:l=b}}while(b=b.getParent());l||
-(l=h);this.block=m;this.blockLimit=l;this.root=h;this.elements=k}}(),CKEDITOR.dom.elementPath.prototype={compare:function(a){var f=this.elements;a=a&&a.elements;if(!a||f.length!=a.length)return!1;for(var c=0;c<f.length;c++)if(!f[c].equals(a[c]))return!1;return!0},contains:function(a,f,c){var e;"string"==typeof a&&(e=function(c){return c.getName()==a});a instanceof CKEDITOR.dom.element?e=function(c){return c.equals(a)}:CKEDITOR.tools.isArray(a)?e=function(c){return-1<CKEDITOR.tools.indexOf(a,c.getName())}:
-"function"==typeof a?e=a:"object"==typeof a&&(e=function(c){return c.getName()in a});var h=this.elements,m=h.length;f&&m--;c&&(h=Array.prototype.slice.call(h,0),h.reverse());for(f=0;f<m;f++)if(e(h[f]))return h[f];return null},isContextFor:function(a){var f;return a in CKEDITOR.dtd.$block?(f=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!f.getDtd()[a]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}},CKEDITOR.dom.text=
-function(a,f){"string"==typeof a&&(a=(f?f.$:document).createTextNode(a));this.$=a},CKEDITOR.dom.text.prototype=new CKEDITOR.dom.node,CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype,{type:CKEDITOR.NODE_TEXT,getLength:function(){return this.$.nodeValue.length},getText:function(){return this.$.nodeValue},setText:function(a){this.$.nodeValue=a},split:function(a){var f=this.$.parentNode,c=f.childNodes.length,e=this.getLength(),h=this.getDocument(),m=new CKEDITOR.dom.text(this.$.splitText(a),h);f.childNodes.length==
-c&&(a>=e?(m=h.createText(""),m.insertAfter(this)):(a=h.createText(""),a.insertAfter(m),a.remove()));return m},substring:function(a,f){return"number"!=typeof f?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,f)}}),function(){function a(a,e,h){var f=a.serializable,l=e[h?"endContainer":"startContainer"],k=h?"endOffset":"startOffset",b=f?e.document.getById(a.startNode):a.startNode;a=f?e.document.getById(a.endNode):a.endNode;l.equals(b.getPrevious())?(e.startOffset=e.startOffset-l.getLength()-
-a.getPrevious().getLength(),l=a.getNext()):l.equals(a.getPrevious())&&(e.startOffset-=l.getLength(),l=a.getNext());l.equals(b.getParent())&&e[k]++;l.equals(a.getParent())&&e[k]++;e[h?"endContainer":"startContainer"]=l;return e}CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,f)};var f={createIterator:function(){var a=this,e=CKEDITOR.dom.walker.bookmark(),h=[],f;return{getNextRange:function(l){f=
-void 0===f?0:f+1;var k=a[f];if(k&&1<a.length){if(!f)for(var b=a.length-1;0<=b;b--)h.unshift(a[b].createBookmark(!0));if(l)for(var d=0;a[f+d+1];){var g=k.document;l=0;b=g.getById(h[d].endNode);for(g=g.getById(h[d+1].startNode);;){b=b.getNextSourceNode(!1);if(g.equals(b))l=1;else if(e(b)||b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary())continue;break}if(!l)break;d++}for(k.moveToBookmark(h.shift());d--;)b=a[++f],b.moveToBookmark(h.shift()),k.setEnd(b.endContainer,b.endOffset)}return k}}},createBookmarks:function(c){for(var e=
-[],h,f=0;f<this.length;f++){e.push(h=this[f].createBookmark(c,!0));for(var l=f+1;l<this.length;l++)this[l]=a(h,this[l]),this[l]=a(h,this[l],!0)}return e},createBookmarks2:function(a){for(var e=[],h=0;h<this.length;h++)e.push(this[h].createBookmark2(a));return e},moveToBookmarks:function(a){for(var e=0;e<this.length;e++)this[e].moveToBookmark(a[e])}}}(),function(){function a(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function f(b){var c=
-CKEDITOR.skin["ua_"+b],e=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,b){return a>b?-1:1}),h=0,f;h<c.length;h++)if(f=c[h],e.ie&&(f.replace(/^ie/,"")==e.version||e.quirks&&"iequirks"==f)&&(f="ie"),e[f]){b+="_"+c[h];break}return CKEDITOR.getUrl(a()+b+".css")}function c(a,b){m[a]||(CKEDITOR.document.appendStyleSheet(f(a)),m[a]=1);b&&b()}function e(a){var b=a.getById(l);b||(b=a.getHead().append("style"),b.setAttribute("id",l),b.setAttribute("type","text/css"));return b}function h(a,b,c){var e,
-h,f;if(CKEDITOR.env.webkit)for(b=b.split("}").slice(0,-1),h=0;h<b.length;h++)b[h]=b[h].split("{");for(var k=0;k<a.length;k++)if(CKEDITOR.env.webkit)for(h=0;h<b.length;h++){f=b[h][1];for(e=0;e<c.length;e++)f=f.replace(c[e][0],c[e][1]);a[k].$.sheet.addRule(b[h][0],f)}else{f=b;for(e=0;e<c.length;e++)f=f.replace(c[e][0],c[e][1]);CKEDITOR.env.ie&&11>CKEDITOR.env.version?a[k].$.styleSheet.cssText+=f:a[k].$.innerHTML+=f}}var m={};CKEDITOR.skin={path:a,loadPart:function(b,g){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?
-CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a()+"skin.js"),function(){c(b,g)}):c(b,g)},getPath:function(a){return CKEDITOR.getUrl(f(a))},icons:{},addIcon:function(a,b,c,e){a=a.toLowerCase();this.icons[a]||(this.icons[a]={path:b,offset:c||0,bgsize:e||"16px"})},getIconStyle:function(a,b,c,e,h){var f;a&&(a=a.toLowerCase(),b&&(f=this.icons[a+"-rtl"]),f||(f=this.icons[a]));a=c||f&&f.path||"";e=e||f&&f.offset;h=h||f&&f.bgsize||"16px";a&&(a=a.replace(/'/g,"\\'"));return a&&"background-image:url('"+CKEDITOR.getUrl(a)+
-"');background-position:0 "+e+"px;background-size:"+h+";"}};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(a){var c=e(CKEDITOR.document);return(this.setUiColor=function(a){this.uiColor=a;var d=CKEDITOR.skin.chameleon,e="",f="";"function"==typeof d&&(e=d(this,"editor"),f=d(this,"panel"));a=[[b,a]];h([c],e,a);h(k,f,a)}).call(this,a)}});var l="cke_ui_color",k=[],b=/\$color/g;CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||
-!CKEDITOR.env.quirks){var c=a.editor;a=function(a){a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!a.getById("cke_ui_color")){a=e(a);k.push(a);var d=c.getUiColor();d&&h([a],CKEDITOR.skin.chameleon(c,"panel"),[[b,d]])}};c.on("panelShow",a);c.on("menuShow",a);c.config.uiColor&&c.setUiColor(c.config.uiColor)}})}(),function(){if(CKEDITOR.env.webkit)CKEDITOR.env.hc=!1;else{var a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"width:0;height:0;position:absolute;left:-10000px;border:1px solid;border-color:red blue"\x3e\x3c/div\x3e',
-CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var f=a.getComputedStyle("border-top-color"),c=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!(!f||f!=c)}catch(e){CKEDITOR.env.hc=!1}a.remove()}CKEDITOR.env.hc&&(CKEDITOR.env.cssClass+=" cke_hc");CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending)for(delete CKEDITOR._.pending,f=0;f<a.length;f++)CKEDITOR.editor.prototype.constructor.apply(a[f][0],
-a[f][1]),CKEDITOR.add(a[f][0])}(),CKEDITOR.skin.name="moono",CKEDITOR.skin.ua_editor="ie,iequirks,ie7,ie8,gecko",CKEDITOR.skin.ua_dialog="ie,iequirks,ie7,ie8",CKEDITOR.skin.chameleon=function(){var a=function(){return function(a,c){for(var f=a.match(/[^#]./g),l=0;3>l;l++){var k=l,b;b=parseInt(f[l],16);b=("0"+(0>c?0|b*(1+c):0|b+(255-b)*c).toString(16)).slice(-2);f[k]=b}return"#"+f.join("")}}(),f=function(){var a=new CKEDITOR.template("background:#{to};background-image:linear-gradient(to bottom,{from},{to});filter:progid:DXImageTransform.Microsoft.gradient(gradientType\x3d0,startColorstr\x3d'{from}',endColorstr\x3d'{to}');");
+checkElementMatch:function(a,b){var d=this._.definition;if(!a||!d.ignoreReadonly&&a.isReadOnly())return!1;var c=a.getName();if("string"==typeof this.element?c==this.element:c in this.element){if(!b&&!a.hasAttributes())return!0;if(c=d._AC)d=c;else{var c={},g=0,e=d.attributes;if(e)for(var h in e)g++,c[h]=e[h];if(h=CKEDITOR.style.getStyleText(d))c.style||g++,c.style=h;c._length=g;d=d._AC=c}if(d._length){for(var f in d)if("_length"!=f){g=a.getAttribute(f)||"";if("style"==f)a:{c=d[f];"string"==typeof c&&
+(c=CKEDITOR.tools.parseCssText(c));"string"==typeof g&&(g=CKEDITOR.tools.parseCssText(g,!0));h=void 0;for(h in c)if(!(h in g)||g[h]!=c[h]&&"inherit"!=c[h]&&"inherit"!=g[h]){c=!1;break a}c=!0}else c=d[f]==g;if(c){if(!b)return!0}else if(b)return!1}if(b)return!0}else return!0}return!1},checkElementRemovable:function(a,b,d){if(this.checkElementMatch(a,b,d))return!0;if(b=t(this)[a.getName()]){var c;if(!(b=b.attributes))return!0;for(d=0;d<b.length;d++)if(c=b[d][0],c=a.getAttribute(c)){var g=b[d][1];if(null===
+g)return!0;if("string"==typeof g){if(c==g)return!0}else if(g.test(c))return!0}}return!1},buildPreview:function(a){var b=this._.definition,d=[],c=b.element;"bdo"==c&&(c="span");var d=["\x3c",c],g=b.attributes;if(g)for(var e in g)d.push(" ",e,'\x3d"',g[e],'"');(g=CKEDITOR.style.getStyleText(b))&&d.push(' style\x3d"',g,'"');d.push("\x3e",a||b.name,"\x3c/",c,"\x3e");return d.join("")},getDefinition:function(){return this._.definition}};CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;
+var b=a.styles,d=a.attributes&&a.attributes.style||"",c="";d.length&&(d=d.replace(C,";"));for(var g in b){var e=b[g],h=(g+":"+e).replace(C,";");"inherit"==e?c+=h:d+=h}d.length&&(d=CKEDITOR.tools.normalizeCssText(d,!0));return a._ST=d+c};CKEDITOR.style.customHandlers={};CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a};this.setup&&this.setup(a)};b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),{assignedTo:CKEDITOR.STYLE_OBJECT},
+a,!0);return this.customHandlers[a.type]=b};var I=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,N=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED}(),CKEDITOR.styleCommand=function(a,f){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,f,!0)},CKEDITOR.styleCommand.prototype.exec=function(a){a.focus();this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&
+a.removeStyle(this.style)},CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet"),CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet),CKEDITOR.loadStylesSet=function(a,f,c){CKEDITOR.stylesSet.addExternal(a,f,"");CKEDITOR.stylesSet.load(a,c)},CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,f){var c=this._.styleStateChangeCallbacks;c||(c=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(a){for(var h=0;h<
+c.length;h++){var f=c[h],l=f.style.checkActive(a.data.path,this)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;f.fn.call(this,l)}}));c.push({style:a,fn:f})},applyStyle:function(a){a.apply(this)},removeStyle:function(a){a.remove(this)},getStylesSet:function(a){if(this._.stylesDefinitions)a(this._.stylesDefinitions);else{var f=this,c=f.config.stylesCombo_stylesSet||f.config.stylesSet;if(!1===c)a(null);else if(c instanceof Array)f._.stylesDefinitions=c,a(c);else{c||(c="default");var c=c.split(":"),e=c[0];
+CKEDITOR.stylesSet.addExternal(e,c[1]?c.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(e,function(c){f._.stylesDefinitions=c[e];a(f._.stylesDefinitions)})}}}}),CKEDITOR.dom.comment=function(a,f){"string"==typeof a&&(a=(f?f.$:document).createComment(a));CKEDITOR.dom.domObject.call(this,a)},CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node,CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"\x3c!--"+this.$.nodeValue+
+"--\x3e"}}),"use strict",function(){var a={},f={},c;for(c in CKEDITOR.dtd.$blockLimit)c in CKEDITOR.dtd.$list||(a[c]=1);for(c in CKEDITOR.dtd.$block)c in CKEDITOR.dtd.$blockLimit||c in CKEDITOR.dtd.$empty||(f[c]=1);CKEDITOR.dom.elementPath=function(c,h){var m=null,l=null,k=[],b=c,d;h=h||c.getDocument().getBody();do if(b.type==CKEDITOR.NODE_ELEMENT){k.push(b);if(!this.lastElement&&(this.lastElement=b,b.is(CKEDITOR.dtd.$object)||"false"==b.getAttribute("contenteditable")))continue;if(b.equals(h))break;
+if(!l&&(d=b.getName(),"true"==b.getAttribute("contenteditable")?l=b:!m&&f[d]&&(m=b),a[d])){if(d=!m&&"div"==d){a:{d=b.getChildren();for(var g=0,p=d.count();g<p;g++){var u=d.getItem(g);if(u.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[u.getName()]){d=!0;break a}}d=!1}d=!d}d?m=b:l=b}}while(b=b.getParent());l||(l=h);this.block=m;this.blockLimit=l;this.root=h;this.elements=k}}(),CKEDITOR.dom.elementPath.prototype={compare:function(a){var f=this.elements;a=a&&a.elements;if(!a||f.length!=a.length)return!1;
+for(var c=0;c<f.length;c++)if(!f[c].equals(a[c]))return!1;return!0},contains:function(a,f,c){var e;"string"==typeof a&&(e=function(c){return c.getName()==a});a instanceof CKEDITOR.dom.element?e=function(c){return c.equals(a)}:CKEDITOR.tools.isArray(a)?e=function(c){return-1<CKEDITOR.tools.indexOf(a,c.getName())}:"function"==typeof a?e=a:"object"==typeof a&&(e=function(c){return c.getName()in a});var h=this.elements,m=h.length;f&&m--;c&&(h=Array.prototype.slice.call(h,0),h.reverse());for(f=0;f<m;f++)if(e(h[f]))return h[f];
+return null},isContextFor:function(a){var f;return a in CKEDITOR.dtd.$block?(f=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!f.getDtd()[a]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}},CKEDITOR.dom.text=function(a,f){"string"==typeof a&&(a=(f?f.$:document).createTextNode(a));this.$=a},CKEDITOR.dom.text.prototype=new CKEDITOR.dom.node,CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype,{type:CKEDITOR.NODE_TEXT,
+getLength:function(){return this.$.nodeValue.length},getText:function(){return this.$.nodeValue},setText:function(a){this.$.nodeValue=a},split:function(a){var f=this.$.parentNode,c=f.childNodes.length,e=this.getLength(),h=this.getDocument(),m=new CKEDITOR.dom.text(this.$.splitText(a),h);f.childNodes.length==c&&(a>=e?(m=h.createText(""),m.insertAfter(this)):(a=h.createText(""),a.insertAfter(m),a.remove()));return m},substring:function(a,f){return"number"!=typeof f?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,
+f)}}),function(){function a(a,e,h){var f=a.serializable,l=e[h?"endContainer":"startContainer"],k=h?"endOffset":"startOffset",b=f?e.document.getById(a.startNode):a.startNode;a=f?e.document.getById(a.endNode):a.endNode;l.equals(b.getPrevious())?(e.startOffset=e.startOffset-l.getLength()-a.getPrevious().getLength(),l=a.getNext()):l.equals(a.getPrevious())&&(e.startOffset-=l.getLength(),l=a.getNext());l.equals(b.getParent())&&e[k]++;l.equals(a.getParent())&&e[k]++;e[h?"endContainer":"startContainer"]=
+l;return e}CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,f)};var f={createIterator:function(){var a=this,e=CKEDITOR.dom.walker.bookmark(),h=[],f;return{getNextRange:function(l){f=void 0===f?0:f+1;var k=a[f];if(k&&1<a.length){if(!f)for(var b=a.length-1;0<=b;b--)h.unshift(a[b].createBookmark(!0));if(l)for(var d=0;a[f+d+1];){var g=k.document;l=0;b=g.getById(h[d].endNode);for(g=g.getById(h[d+
+1].startNode);;){b=b.getNextSourceNode(!1);if(g.equals(b))l=1;else if(e(b)||b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary())continue;break}if(!l)break;d++}for(k.moveToBookmark(h.shift());d--;)b=a[++f],b.moveToBookmark(h.shift()),k.setEnd(b.endContainer,b.endOffset)}return k}}},createBookmarks:function(c){for(var e=[],h,f=0;f<this.length;f++){e.push(h=this[f].createBookmark(c,!0));for(var l=f+1;l<this.length;l++)this[l]=a(h,this[l]),this[l]=a(h,this[l],!0)}return e},createBookmarks2:function(a){for(var e=
+[],h=0;h<this.length;h++)e.push(this[h].createBookmark2(a));return e},moveToBookmarks:function(a){for(var e=0;e<this.length;e++)this[e].moveToBookmark(a[e])}}}(),function(){function a(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function f(b){var c=CKEDITOR.skin["ua_"+b],e=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,b){return a>b?-1:1}),h=0,f;h<c.length;h++)if(f=c[h],e.ie&&(f.replace(/^ie/,"")==e.version||e.quirks&&"iequirks"==
+f)&&(f="ie"),e[f]){b+="_"+c[h];break}return CKEDITOR.getUrl(a()+b+".css")}function c(a,b){m[a]||(CKEDITOR.document.appendStyleSheet(f(a)),m[a]=1);b&&b()}function e(a){var b=a.getById(l);b||(b=a.getHead().append("style"),b.setAttribute("id",l),b.setAttribute("type","text/css"));return b}function h(a,b,c){var e,h,f;if(CKEDITOR.env.webkit)for(b=b.split("}").slice(0,-1),h=0;h<b.length;h++)b[h]=b[h].split("{");for(var k=0;k<a.length;k++)if(CKEDITOR.env.webkit)for(h=0;h<b.length;h++){f=b[h][1];for(e=0;e<
+c.length;e++)f=f.replace(c[e][0],c[e][1]);a[k].$.sheet.addRule(b[h][0],f)}else{f=b;for(e=0;e<c.length;e++)f=f.replace(c[e][0],c[e][1]);CKEDITOR.env.ie&&11>CKEDITOR.env.version?a[k].$.styleSheet.cssText+=f:a[k].$.innerHTML+=f}}var m={};CKEDITOR.skin={path:a,loadPart:function(b,g){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a()+"skin.js"),function(){c(b,g)}):c(b,g)},getPath:function(a){return CKEDITOR.getUrl(f(a))},icons:{},addIcon:function(a,b,c,e){a=
+a.toLowerCase();this.icons[a]||(this.icons[a]={path:b,offset:c||0,bgsize:e||"16px"})},getIconStyle:function(a,b,c,e,h){var f;a&&(a=a.toLowerCase(),b&&(f=this.icons[a+"-rtl"]),f||(f=this.icons[a]));a=c||f&&f.path||"";e=e||f&&f.offset;h=h||f&&f.bgsize||"16px";a&&(a=a.replace(/'/g,"\\'"));return a&&"background-image:url('"+CKEDITOR.getUrl(a)+"');background-position:0 "+e+"px;background-size:"+h+";"}};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(a){var c=
+e(CKEDITOR.document);return(this.setUiColor=function(a){this.uiColor=a;var d=CKEDITOR.skin.chameleon,e="",f="";"function"==typeof d&&(e=d(this,"editor"),f=d(this,"panel"));a=[[b,a]];h([c],e,a);h(k,f,a)}).call(this,a)}});var l="cke_ui_color",k=[],b=/\$color/g;CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var c=a.editor;a=function(a){a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!a.getById("cke_ui_color")){a=e(a);k.push(a);
+var d=c.getUiColor();d&&h([a],CKEDITOR.skin.chameleon(c,"panel"),[[b,d]])}};c.on("panelShow",a);c.on("menuShow",a);c.config.uiColor&&c.setUiColor(c.config.uiColor)}})}(),function(){if(CKEDITOR.env.webkit)CKEDITOR.env.hc=!1;else{var a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"width:0;height:0;position:absolute;left:-10000px;border:1px solid;border-color:red blue"\x3e\x3c/div\x3e',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var f=a.getComputedStyle("border-top-color"),
+c=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!(!f||f!=c)}catch(e){CKEDITOR.env.hc=!1}a.remove()}CKEDITOR.env.hc&&(CKEDITOR.env.cssClass+=" cke_hc");CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending)for(delete CKEDITOR._.pending,f=0;f<a.length;f++)CKEDITOR.editor.prototype.constructor.apply(a[f][0],a[f][1]),CKEDITOR.add(a[f][0])}(),CKEDITOR.skin.name="moono",CKEDITOR.skin.ua_editor="ie,iequirks,ie7,ie8,gecko",
+CKEDITOR.skin.ua_dialog="ie,iequirks,ie7,ie8",CKEDITOR.skin.chameleon=function(){var a=function(){return function(a,c){for(var f=a.match(/[^#]./g),l=0;3>l;l++){var k=l,b;b=parseInt(f[l],16);b=("0"+(0>c?0|b*(1+c):0|b+(255-b)*c).toString(16)).slice(-2);f[k]=b}return"#"+f.join("")}}(),f=function(){var a=new CKEDITOR.template("background:#{to};background-image:linear-gradient(to bottom,{from},{to});filter:progid:DXImageTransform.Microsoft.gradient(gradientType\x3d0,startColorstr\x3d'{from}',endColorstr\x3d'{to}');");
 return function(c,f){return a.output({from:c,to:f})}}(),c={editor:new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ {defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_bottom [{defaultGradient}border-top-color:{defaultBorder};] {id} .cke_resizer [border-right-color:{ckeResizer}] {id} .cke_dialog_title [{defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_dialog_footer [{defaultGradient}outline-color:{defaultBorder};border-top-color:{defaultBorder};] {id} .cke_dialog_tab [{lightGradient}border-color:{defaultBorder};] {id} .cke_dialog_tab:hover [{mediumGradient}] {id} .cke_dialog_contents [border-top-color:{defaultBorder};] {id} .cke_dialog_tab_selected, {id} .cke_dialog_tab_selected:hover [background:{dialogTabSelected};border-bottom-color:{dialogTabSelectedBorder};] {id} .cke_dialog_body [background:{dialogBody};border-color:{defaultBorder};] {id} .cke_toolgroup [{lightGradient}border-color:{defaultBorder};] {id} a.cke_button_off:hover, {id} a.cke_button_off:focus, {id} a.cke_button_off:active [{mediumGradient}] {id} .cke_button_on [{ckeButtonOn}] {id} .cke_toolbar_separator [background-color: {ckeToolbarSeparator};] {id} .cke_combo_button [border-color:{defaultBorder};{lightGradient}] {id} a.cke_combo_button:hover, {id} a.cke_combo_button:focus, {id} .cke_combo_on a.cke_combo_button [border-color:{defaultBorder};{mediumGradient}] {id} .cke_path_item [color:{elementsPathColor};] {id} a.cke_path_item:hover, {id} a.cke_path_item:focus, {id} a.cke_path_item:active [background-color:{elementsPathBg};] {id}.cke_panel [border-color:{defaultBorder};] "),
 panel:new CKEDITOR.template(".cke_panel_grouptitle [{lightGradient}border-color:{defaultBorder};] .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon [background-color:{menubuttonIconHover};] .cke_menuseparator [background-color:{menubuttonIcon};] a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox [border-color:{defaultBorder};] a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore [background-color:{ckeColorauto};border-color:{defaultBorder};] ")};
 return function(e,h){var m=e.uiColor,m={id:"."+e.id,defaultBorder:a(m,-.1),defaultGradient:f(a(m,.9),m),lightGradient:f(a(m,1),a(m,.7)),mediumGradient:f(a(m,.8),a(m,.5)),ckeButtonOn:f(a(m,.6),a(m,.7)),ckeResizer:a(m,-.4),ckeToolbarSeparator:a(m,.5),ckeColorauto:a(m,.8),dialogBody:a(m,.7),dialogTabSelected:f("#FFFFFF","#FFFFFF"),dialogTabSelectedBorder:"#FFF",elementsPathColor:a(m,-.6),elementsPathBg:m,menubuttonIcon:a(m,.5),menubuttonIconHover:a(m,.3)};return c[h].output(m).replace(/\[/g,"{").replace(/\]/g,
@@ -476,8 +475,8 @@ function(a){13==a.data.getKeystroke()&&(l=!0)});f.getInputElement().on("keyup",f
 function(){e.getInputElement().on("keyup",k)},e);CKEDITOR.ui.dialog.labeledElement.call(this,b,d,c,function(){f["aria-labelledby"]=this._.labelId;this._.required&&(f["aria-required"]=this._.required);var a=['\x3cdiv class\x3d"cke_dialog_ui_input_textarea" role\x3d"presentation"\x3e\x3ctextarea id\x3d"',h,'" '],b;for(b in f)a.push(b+'\x3d"'+CKEDITOR.tools.htmlEncode(f[b])+'" ');a.push("\x3e",CKEDITOR.tools.htmlEncode(e._["default"]),"\x3c/textarea\x3e\x3c/div\x3e");return a.join("")})}},checkbox:function(b,
 d,c){if(!(3>arguments.length)){var e=a.call(this,d,{"default":!!d["default"]});d.validate&&(this.validate=d.validate);CKEDITOR.ui.dialog.uiElement.call(this,b,d,c,"span",null,null,function(){var a=CKEDITOR.tools.extend({},d,{id:d.id?d.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},!0),c=[],g=CKEDITOR.tools.getNextId()+"_label",h={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":g};l(a);d["default"]&&(h.checked="checked");"undefined"!=typeof a.inputStyle&&(a.style=a.inputStyle);
 e.checkbox=new CKEDITOR.ui.dialog.uiElement(b,a,c,"input",null,h);c.push(' \x3clabel id\x3d"',g,'" for\x3d"',h.id,'"'+(d.labelStyle?' style\x3d"'+d.labelStyle+'"':"")+"\x3e",CKEDITOR.tools.htmlEncode(d.label),"\x3c/label\x3e");return c.join("")})}},radio:function(b,d,c){if(!(3>arguments.length)){a.call(this,d);this._["default"]||(this._["default"]=this._.initValue=d.items[0][1]);d.validate&&(this.validate=d.validate);var e=[],h=this;d.role="radiogroup";d.includeLabel=!0;CKEDITOR.ui.dialog.labeledElement.call(this,
-b,d,c,function(){for(var a=[],c=[],g=(d.id?d.id:CKEDITOR.tools.getNextId())+"_radio",f=0;f<d.items.length;f++){var k=d.items[f],m=void 0!==k[2]?k[2]:k[0],A=void 0!==k[1]?k[1]:k[0],t=CKEDITOR.tools.getNextId()+"_radio_input",w=t+"_label",t=CKEDITOR.tools.extend({},d,{id:t,title:null,type:null},!0),m=CKEDITOR.tools.extend({},t,{title:m},!0),D={type:"radio","class":"cke_dialog_ui_radio_input",name:g,value:A,"aria-labelledby":w},B=[];h._["default"]==A&&(D.checked="checked");l(t);l(m);"undefined"!=typeof t.inputStyle&&
-(t.style=t.inputStyle);t.keyboardFocusable=!0;e.push(new CKEDITOR.ui.dialog.uiElement(b,t,B,"input",null,D));B.push(" ");new CKEDITOR.ui.dialog.uiElement(b,m,B,"label",null,{id:w,"for":D.id},k[0]);a.push(B.join(""))}new CKEDITOR.ui.dialog.hbox(b,e,a,c);return c.join("")});this._.children=e}},button:function(b,d,c){if(arguments.length){"function"==typeof d&&(d=d(b.getParentEditor()));a.call(this,d,{disabled:d.disabled||!1});CKEDITOR.event.implementOn(this);var e=this;b.on("load",function(){var a=this.getElement();
+b,d,c,function(){for(var a=[],c=[],g=(d.id?d.id:CKEDITOR.tools.getNextId())+"_radio",f=0;f<d.items.length;f++){var k=d.items[f],m=void 0!==k[2]?k[2]:k[0],B=void 0!==k[1]?k[1]:k[0],t=CKEDITOR.tools.getNextId()+"_radio_input",x=t+"_label",t=CKEDITOR.tools.extend({},d,{id:t,title:null,type:null},!0),m=CKEDITOR.tools.extend({},t,{title:m},!0),D={type:"radio","class":"cke_dialog_ui_radio_input",name:g,value:B,"aria-labelledby":x},y=[];h._["default"]==B&&(D.checked="checked");l(t);l(m);"undefined"!=typeof t.inputStyle&&
+(t.style=t.inputStyle);t.keyboardFocusable=!0;e.push(new CKEDITOR.ui.dialog.uiElement(b,t,y,"input",null,D));y.push(" ");new CKEDITOR.ui.dialog.uiElement(b,m,y,"label",null,{id:x,"for":D.id},k[0]);a.push(y.join(""))}new CKEDITOR.ui.dialog.hbox(b,e,a,c);return c.join("")});this._.children=e}},button:function(b,d,c){if(arguments.length){"function"==typeof d&&(d=d(b.getParentEditor()));a.call(this,d,{disabled:d.disabled||!1});CKEDITOR.event.implementOn(this);var e=this;b.on("load",function(){var a=this.getElement();
 (function(){a.on("click",function(a){e.click();a.data.preventDefault()});a.on("keydown",function(a){a.data.getKeystroke()in{32:1}&&(e.click(),a.data.preventDefault())})})();a.unselectable()},this);var h=CKEDITOR.tools.extend({},d);delete h.style;var f=CKEDITOR.tools.getNextId()+"_label";CKEDITOR.ui.dialog.uiElement.call(this,b,h,c,"a",null,{style:d.style,href:"javascript:void(0)",title:d.label,hidefocus:"true","class":d["class"],role:"button","aria-labelledby":f},'\x3cspan id\x3d"'+f+'" class\x3d"cke_dialog_ui_button"\x3e'+
 CKEDITOR.tools.htmlEncode(d.label)+"\x3c/span\x3e")}},select:function(b,d,c){if(!(3>arguments.length)){var e=a.call(this,d);d.validate&&(this.validate=d.validate);e.inputId=CKEDITOR.tools.getNextId()+"_select";CKEDITOR.ui.dialog.labeledElement.call(this,b,d,c,function(){var a=CKEDITOR.tools.extend({},d,{id:d.id?d.id+"_select":CKEDITOR.tools.getNextId()+"_select"},!0),c=[],g=[],h={id:e.inputId,"class":"cke_dialog_ui_input_select","aria-labelledby":this._.labelId};c.push('\x3cdiv class\x3d"cke_dialog_ui_input_',
 d.type,'" role\x3d"presentation"');d.width&&c.push('style\x3d"width:'+d.width+'" ');c.push("\x3e");void 0!==d.size&&(h.size=d.size);void 0!==d.multiple&&(h.multiple=d.multiple);l(a);for(var f=0,k;f<d.items.length&&(k=d.items[f]);f++)g.push('\x3coption value\x3d"',CKEDITOR.tools.htmlEncode(void 0!==k[1]?k[1]:k[0]).replace(/"/g,"\x26quot;"),'" /\x3e ',CKEDITOR.tools.htmlEncode(k[0]));"undefined"!=typeof a.inputStyle&&(a.style=a.inputStyle);e.select=new CKEDITOR.ui.dialog.uiElement(b,a,c,"select",null,
@@ -496,9 +495,9 @@ d){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return h.onChange.apply(this,argu
 e.getValue()==a;!d&&this.fire("change",{value:a})},getValue:function(){for(var a=this._.children,d=0;d<a.length;d++)if(a[d].getElement().$.checked)return a[d].getValue();return null},accessKeyUp:function(){var a=this._.children,d;for(d=0;d<a.length;d++)if(a[d].getElement().$.checked){a[d].getElement().focus();return}a[0].getElement().focus()},eventProcessors:{onChange:function(a,d){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return h.onChange.apply(this,arguments);a.on("load",function(){for(var a=
 this._.children,b=this,d=0;d<a.length;d++)a[d].getElement().on("propertychange",function(a){a=a.data.$;"checked"==a.propertyName&&this.$.checked&&b.fire("change",{value:this.getAttribute("value")})})},this);this.on("change",d);return null}}},e,!0);CKEDITOR.ui.dialog.file.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,e,{getInputElement:function(){var a=CKEDITOR.document.getById(this._.frameId).getFrameDocument();return 0<a.$.forms.length?new CKEDITOR.dom.element(a.$.forms[0].elements[0]):
 this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(a){var d=/^on([A-Z]\w+)/,c,e=function(a,b,d,c){a.on("formLoaded",function(){a.getInputElement().on(d,c,a)})},h;for(h in a)if(c=h.match(d))this.eventProcessors[h]?this.eventProcessors[h].call(this,this._.dialog,a[h]):e(this,this._.dialog,c[1].toLowerCase(),a[h]);return this},reset:function(){function a(){c.$.open();
-var b="";e.size&&(b=e.size-(CKEDITOR.env.ie?7:0));var z=d.frameId+"_input";c.$.write(['\x3chtml dir\x3d"'+l+'" lang\x3d"'+m+'"\x3e\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e\x3cbody style\x3d"margin: 0; overflow: hidden; background: transparent;"\x3e','\x3cform enctype\x3d"multipart/form-data" method\x3d"POST" dir\x3d"'+l+'" lang\x3d"'+m+'" action\x3d"',CKEDITOR.tools.htmlEncode(e.action),'"\x3e\x3clabel id\x3d"',d.labelId,'" for\x3d"',z,'" style\x3d"display:none"\x3e',CKEDITOR.tools.htmlEncode(e.label),
-'\x3c/label\x3e\x3cinput style\x3d"width:100%" id\x3d"',z,'" aria-labelledby\x3d"',d.labelId,'" type\x3d"file" name\x3d"',CKEDITOR.tools.htmlEncode(e.id||"cke_upload"),'" size\x3d"',CKEDITOR.tools.htmlEncode(0<b?b:""),'" /\x3e\x3c/form\x3e\x3c/body\x3e\x3c/html\x3e\x3cscript\x3e',CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"","window.parent.CKEDITOR.tools.callFunction("+f+");","window.onbeforeunload \x3d function() {window.parent.CKEDITOR.tools.callFunction("+k+")}","\x3c/script\x3e"].join(""));
-c.$.close();for(b=0;b<h.length;b++)h[b].enable()}var d=this._,c=CKEDITOR.document.getById(d.frameId).getFrameDocument(),e=d.definition,h=d.buttons,f=this.formLoadedNumber,k=this.formUnloadNumber,l=d.dialog._.editor.lang.dir,m=d.dialog._.editor.langCode;f||(f=this.formLoadedNumber=CKEDITOR.tools.addFunction(function(){this.fire("formLoaded")},this),k=this.formUnloadNumber=CKEDITOR.tools.addFunction(function(){this.getInputElement().clearCustomData()},this),this.getDialog()._.editor.on("destroy",function(){CKEDITOR.tools.removeFunction(f);
+var b="";e.size&&(b=e.size-(CKEDITOR.env.ie?7:0));var m=d.frameId+"_input";c.$.write(['\x3chtml dir\x3d"'+n+'" lang\x3d"'+l+'"\x3e\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e\x3cbody style\x3d"margin: 0; overflow: hidden; background: transparent;"\x3e','\x3cform enctype\x3d"multipart/form-data" method\x3d"POST" dir\x3d"'+n+'" lang\x3d"'+l+'" action\x3d"',CKEDITOR.tools.htmlEncode(e.action),'"\x3e\x3clabel id\x3d"',d.labelId,'" for\x3d"',m,'" style\x3d"display:none"\x3e',CKEDITOR.tools.htmlEncode(e.label),
+'\x3c/label\x3e\x3cinput style\x3d"width:100%" id\x3d"',m,'" aria-labelledby\x3d"',d.labelId,'" type\x3d"file" name\x3d"',CKEDITOR.tools.htmlEncode(e.id||"cke_upload"),'" size\x3d"',CKEDITOR.tools.htmlEncode(0<b?b:""),'" /\x3e\x3c/form\x3e\x3c/body\x3e\x3c/html\x3e\x3cscript\x3e',CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"","window.parent.CKEDITOR.tools.callFunction("+f+");","window.onbeforeunload \x3d function() {window.parent.CKEDITOR.tools.callFunction("+k+")}","\x3c/script\x3e"].join(""));
+c.$.close();for(b=0;b<h.length;b++)h[b].enable()}var d=this._,c=CKEDITOR.document.getById(d.frameId).getFrameDocument(),e=d.definition,h=d.buttons,f=this.formLoadedNumber,k=this.formUnloadNumber,n=d.dialog._.editor.lang.dir,l=d.dialog._.editor.langCode;f||(f=this.formLoadedNumber=CKEDITOR.tools.addFunction(function(){this.fire("formLoaded")},this),k=this.formUnloadNumber=CKEDITOR.tools.addFunction(function(){this.getInputElement().clearCustomData()},this),this.getDialog()._.editor.on("destroy",function(){CKEDITOR.tools.removeFunction(f);
 CKEDITOR.tools.removeFunction(k)}));CKEDITOR.env.gecko?setTimeout(a,500):a()},getValue:function(){return this.getInputElement().$.value||""},setInitValue:function(){this._.initValue=""},eventProcessors:{onChange:function(a,d){this._.domOnChangeRegistered||(this.on("formLoaded",function(){this.getInputElement().on("change",function(){this.fire("change",{value:this.getValue()})},this)},this),this._.domOnChangeRegistered=!0);this.on("change",d)}},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.fileButton.prototype=
 new CKEDITOR.ui.dialog.button;CKEDITOR.ui.dialog.fieldset.prototype=CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);CKEDITOR.dialog.addUIElement("text",f);CKEDITOR.dialog.addUIElement("password",f);CKEDITOR.dialog.addUIElement("textarea",c);CKEDITOR.dialog.addUIElement("checkbox",c);CKEDITOR.dialog.addUIElement("radio",c);CKEDITOR.dialog.addUIElement("button",c);CKEDITOR.dialog.addUIElement("select",c);CKEDITOR.dialog.addUIElement("file",c);CKEDITOR.dialog.addUIElement("fileButton",c);CKEDITOR.dialog.addUIElement("html",
 c);CKEDITOR.dialog.addUIElement("fieldset",{build:function(a,d,c){for(var e=d.children,h,f=[],k=[],l=0;l<e.length&&(h=e[l]);l++){var m=[];f.push(m);k.push(CKEDITOR.dialog._.uiElementBuilders[h.type].build(a,h,m))}return new CKEDITOR.ui.dialog[d.type](a,k,f,c,d)}})}}),CKEDITOR.DIALOG_RESIZE_NONE=0,CKEDITOR.DIALOG_RESIZE_WIDTH=1,CKEDITOR.DIALOG_RESIZE_HEIGHT=2,CKEDITOR.DIALOG_RESIZE_BOTH=3,CKEDITOR.DIALOG_STATE_IDLE=1,CKEDITOR.DIALOG_STATE_BUSY=2,function(){function a(){for(var a=this._.tabIdList.length,
@@ -508,39 +507,39 @@ function m(a){var b=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("di
 CKEDITOR.env.edge||(a="javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())",CKEDITOR.dom.element.createFromHtml('\x3ciframe frameBorder\x3d"0" class\x3d"cke_iframe_shim" src\x3d"'+a+'" tabIndex\x3d"-1"\x3e\x3c/iframe\x3e').appendTo(d.getParent()));c.unselectable();g.unselectable();return{element:b,parts:{dialog:b.getChild(0),title:c,close:g,tabs:d.getChild(2),contents:d.getChild([3,0,0,0]),footer:d.getChild([3,0,1,0])}}}function l(a,
 b,d){this.element=b;this.focusIndex=d;this.tabIndex=0;this.isFocusable=function(){return!b.getAttribute("disabled")&&b.isVisible()};this.focus=function(){a._.currentFocusIndex=this.focusIndex;this.element.focus()};b.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")});b.on("focus",function(){this.fire("mouseover")});b.on("blur",function(){this.fire("mouseout")})}function k(a){function b(){a.layout()}var d=CKEDITOR.document.getWindow();d.on("resize",b);a.on("hide",function(){d.removeListener("resize",
 b)})}function b(a,b){this._={dialog:a};CKEDITOR.tools.extend(this,b)}function d(a){function b(d){var k=a.getSize(),p=CKEDITOR.document.getWindow().getViewPaneSize(),l=d.data.$.screenX,n=d.data.$.screenY,m=l-c.x,q=n-c.y;c={x:l,y:n};g.x+=m;g.y+=q;a.move(g.x+f[3]<h?-f[3]:g.x-f[1]>p.width-k.width-h?p.width-k.width+("rtl"==e.lang.dir?0:f[1]):g.x,g.y+f[0]<h?-f[0]:g.y-f[2]>p.height-k.height-h?p.height-k.height+f[2]:g.y,1);d.data.preventDefault()}function d(){CKEDITOR.document.removeListener("mousemove",
-b);CKEDITOR.document.removeListener("mouseup",d);if(CKEDITOR.env.ie6Compat){var a=B.getChild(0).getFrameDocument();a.removeListener("mousemove",b);a.removeListener("mouseup",d)}}var c=null,g=null,e=a.getParentEditor(),h=e.config.dialog_magnetDistance,f=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof h&&(h=20);a.parts.title.on("mousedown",function(e){c={x:e.data.$.screenX,y:e.data.$.screenY};CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",d);g=a.getPosition();if(CKEDITOR.env.ie6Compat){var h=
-B.getChild(0).getFrameDocument();h.on("mousemove",b);h.on("mouseup",d)}e.data.preventDefault()},a)}function g(a){function b(d){var n="rtl"==e.lang.dir,m=l.width,q=l.height,u=m+(d.data.$.screenX-p.x)*(n?-1:1)*(a._.moved?1:2),x=q+(d.data.$.screenY-p.y)*(a._.moved?1:2),t=a._.element.getFirst(),t=n&&t.getComputedStyle("right"),v=a.getPosition();v.y+x>k.height&&(x=k.height-v.y);(n?t:v.x)+u>k.width&&(u=k.width-(n?t:v.x));if(g==CKEDITOR.DIALOG_RESIZE_WIDTH||g==CKEDITOR.DIALOG_RESIZE_BOTH)m=Math.max(c.minWidth||
-0,u-h);if(g==CKEDITOR.DIALOG_RESIZE_HEIGHT||g==CKEDITOR.DIALOG_RESIZE_BOTH)q=Math.max(c.minHeight||0,x-f);a.resize(m,q);a._.moved||a.layout();d.data.preventDefault()}function d(){CKEDITOR.document.removeListener("mouseup",d);CKEDITOR.document.removeListener("mousemove",b);n&&(n.remove(),n=null);if(CKEDITOR.env.ie6Compat){var a=B.getChild(0).getFrameDocument();a.removeListener("mouseup",d);a.removeListener("mousemove",b)}}var c=a.definition,g=c.resizable;if(g!=CKEDITOR.DIALOG_RESIZE_NONE){var e=a.getParentEditor(),
+b);CKEDITOR.document.removeListener("mouseup",d);if(CKEDITOR.env.ie6Compat){var a=y.getChild(0).getFrameDocument();a.removeListener("mousemove",b);a.removeListener("mouseup",d)}}var c=null,g=null,e=a.getParentEditor(),h=e.config.dialog_magnetDistance,f=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof h&&(h=20);a.parts.title.on("mousedown",function(e){c={x:e.data.$.screenX,y:e.data.$.screenY};CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",d);g=a.getPosition();if(CKEDITOR.env.ie6Compat){var h=
+y.getChild(0).getFrameDocument();h.on("mousemove",b);h.on("mouseup",d)}e.data.preventDefault()},a)}function g(a){function b(d){var n="rtl"==e.lang.dir,m=l.width,q=l.height,r=m+(d.data.$.screenX-p.x)*(n?-1:1)*(a._.moved?1:2),w=q+(d.data.$.screenY-p.y)*(a._.moved?1:2),t=a._.element.getFirst(),t=n&&t.getComputedStyle("right"),v=a.getPosition();v.y+w>k.height&&(w=k.height-v.y);(n?t:v.x)+r>k.width&&(r=k.width-(n?t:v.x));if(g==CKEDITOR.DIALOG_RESIZE_WIDTH||g==CKEDITOR.DIALOG_RESIZE_BOTH)m=Math.max(c.minWidth||
+0,r-h);if(g==CKEDITOR.DIALOG_RESIZE_HEIGHT||g==CKEDITOR.DIALOG_RESIZE_BOTH)q=Math.max(c.minHeight||0,w-f);a.resize(m,q);a._.moved||a.layout();d.data.preventDefault()}function d(){CKEDITOR.document.removeListener("mouseup",d);CKEDITOR.document.removeListener("mousemove",b);n&&(n.remove(),n=null);if(CKEDITOR.env.ie6Compat){var a=y.getChild(0).getFrameDocument();a.removeListener("mouseup",d);a.removeListener("mousemove",b)}}var c=a.definition,g=c.resizable;if(g!=CKEDITOR.DIALOG_RESIZE_NONE){var e=a.getParentEditor(),
 h,f,k,p,l,n,m=CKEDITOR.tools.addFunction(function(c){l=a.getSize();var g=a.parts.contents;g.$.getElementsByTagName("iframe").length&&(n=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_dialog_resize_cover" style\x3d"height: 100%; position: absolute; width: 100%;"\x3e\x3c/div\x3e'),g.append(n));f=l.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.quirks));h=l.width-a.parts.contents.getSize("width",1);p={x:c.screenX,y:c.screenY};k=CKEDITOR.document.getWindow().getViewPaneSize();
-CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",d);CKEDITOR.env.ie6Compat&&(g=B.getChild(0).getFrameDocument(),g.on("mousemove",b),g.on("mouseup",d));c.preventDefault&&c.preventDefault()});a.on("load",function(){var b="";g==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":g==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical");b=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer'+b+" cke_resizer_"+e.lang.dir+'" title\x3d"'+CKEDITOR.tools.htmlEncode(e.lang.common.resize)+
-'" onmousedown\x3d"CKEDITOR.tools.callFunction('+m+', event )"\x3e'+("ltr"==e.lang.dir?"◢":"◣")+"\x3c/div\x3e");a.parts.footer.append(b,1)});e.on("destroy",function(){CKEDITOR.tools.removeFunction(m)})}}function p(a){a.data.preventDefault(1)}function r(a){var b=CKEDITOR.document.getWindow(),d=a.config,c=d.dialog_backgroundCoverColor||"white",g=d.dialog_backgroundCoverOpacity,e=d.baseFloatZIndex,d=CKEDITOR.tools.genKey(c,g,e),h=D[d];h?h.show():(e=['\x3cdiv tabIndex\x3d"-1" style\x3d"position: ',CKEDITOR.env.ie6Compat?
+CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",d);CKEDITOR.env.ie6Compat&&(g=y.getChild(0).getFrameDocument(),g.on("mousemove",b),g.on("mouseup",d));c.preventDefault&&c.preventDefault()});a.on("load",function(){var b="";g==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":g==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical");b=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer'+b+" cke_resizer_"+e.lang.dir+'" title\x3d"'+CKEDITOR.tools.htmlEncode(e.lang.common.resize)+
+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+m+', event )"\x3e'+("ltr"==e.lang.dir?"◢":"◣")+"\x3c/div\x3e");a.parts.footer.append(b,1)});e.on("destroy",function(){CKEDITOR.tools.removeFunction(m)})}}function p(a){a.data.preventDefault(1)}function u(a){var b=CKEDITOR.document.getWindow(),d=a.config,c=d.dialog_backgroundCoverColor||"white",g=d.dialog_backgroundCoverOpacity,e=d.baseFloatZIndex,d=CKEDITOR.tools.genKey(c,g,e),h=D[d];h?h.show():(e=['\x3cdiv tabIndex\x3d"-1" style\x3d"position: ',CKEDITOR.env.ie6Compat?
 "absolute":"fixed","; z-index: ",e,"; top: 0px; left: 0px; ",CKEDITOR.env.ie6Compat?"":"background-color: "+c,'" class\x3d"cke_dialog_background_cover"\x3e'],CKEDITOR.env.ie6Compat&&(c="\x3chtml\x3e\x3cbody style\x3d\\'background-color:"+c+";\\'\x3e\x3c/body\x3e\x3c/html\x3e",e.push('\x3ciframe hidefocus\x3d"true" frameborder\x3d"0" id\x3d"cke_dialog_background_iframe" src\x3d"javascript:'),e.push("void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.write( '"+
-c+"' );document.close();")+"})())"),e.push('" style\x3d"position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity\x3d0)"\x3e\x3c/iframe\x3e')),e.push("\x3c/div\x3e"),h=CKEDITOR.dom.element.createFromHtml(e.join("")),h.setOpacity(void 0!==g?g:.5),h.on("keydown",p),h.on("keypress",p),h.on("keyup",p),h.appendTo(CKEDITOR.document.getBody()),D[d]=h);a.focusManager.add(h);B=h;a=function(){var a=b.getViewPaneSize();h.setStyles({width:a.width+"px",height:a.height+
-"px"})};var f=function(){var a=b.getScrollPosition(),d=CKEDITOR.dialog._.currentTop;h.setStyles({left:a.x+"px",top:a.y+"px"});if(d){do a=d.getPosition(),d.move(a.x,a.y);while(d=d._.parentDialog)}};w=a;b.on("resize",a);a();CKEDITOR.env.mac&&CKEDITOR.env.webkit||h.focus();if(CKEDITOR.env.ie6Compat){var k=function(){f();arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){k.prevScrollHandler=window.onscroll||function(){};window.onscroll=k},0);f()}}function v(a){B&&(a.focusManager.remove(B),
-a=CKEDITOR.document.getWindow(),B.hide(),a.removeListener("resize",w),CKEDITOR.env.ie6Compat&&a.$.setTimeout(function(){window.onscroll=window.onscroll&&window.onscroll.prevScrollHandler||null},0),w=null)}var u=CKEDITOR.tools.cssLength,n='\x3cdiv class\x3d"cke_reset_all {editorId} {editorDialogClass} {hidpi}" dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"dialog" aria-labelledby\x3d"cke_dialog_title_{id}"\x3e\x3ctable class\x3d"cke_dialog '+CKEDITOR.env.cssClass+' cke_{langDir}" style\x3d"position:absolute" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd role\x3d"presentation"\x3e\x3cdiv class\x3d"cke_dialog_body" role\x3d"presentation"\x3e\x3cdiv id\x3d"cke_dialog_title_{id}" class\x3d"cke_dialog_title" role\x3d"presentation"\x3e\x3c/div\x3e\x3ca id\x3d"cke_dialog_close_button_{id}" class\x3d"cke_dialog_close_button" href\x3d"javascript:void(0)" title\x3d"{closeTitle}" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e\x3cdiv id\x3d"cke_dialog_tabs_{id}" class\x3d"cke_dialog_tabs" role\x3d"tablist"\x3e\x3c/div\x3e\x3ctable class\x3d"cke_dialog_contents" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_contents_{id}" class\x3d"cke_dialog_contents_body" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_footer_{id}" class\x3d"cke_dialog_footer" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e';
+c+"' );document.close();")+"})())"),e.push('" style\x3d"position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity\x3d0)"\x3e\x3c/iframe\x3e')),e.push("\x3c/div\x3e"),h=CKEDITOR.dom.element.createFromHtml(e.join("")),h.setOpacity(void 0!==g?g:.5),h.on("keydown",p),h.on("keypress",p),h.on("keyup",p),h.appendTo(CKEDITOR.document.getBody()),D[d]=h);a.focusManager.add(h);y=h;a=function(){var a=b.getViewPaneSize();h.setStyles({width:a.width+"px",height:a.height+
+"px"})};var f=function(){var a=b.getScrollPosition(),d=CKEDITOR.dialog._.currentTop;h.setStyles({left:a.x+"px",top:a.y+"px"});if(d){do a=d.getPosition(),d.move(a.x,a.y);while(d=d._.parentDialog)}};x=a;b.on("resize",a);a();CKEDITOR.env.mac&&CKEDITOR.env.webkit||h.focus();if(CKEDITOR.env.ie6Compat){var k=function(){f();arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){k.prevScrollHandler=window.onscroll||function(){};window.onscroll=k},0);f()}}function v(a){y&&(a.focusManager.remove(y),
+a=CKEDITOR.document.getWindow(),y.hide(),a.removeListener("resize",x),CKEDITOR.env.ie6Compat&&a.$.setTimeout(function(){window.onscroll=window.onscroll&&window.onscroll.prevScrollHandler||null},0),x=null)}var r=CKEDITOR.tools.cssLength,n='\x3cdiv class\x3d"cke_reset_all {editorId} {editorDialogClass} {hidpi}" dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"dialog" aria-labelledby\x3d"cke_dialog_title_{id}"\x3e\x3ctable class\x3d"cke_dialog '+CKEDITOR.env.cssClass+' cke_{langDir}" style\x3d"position:absolute" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd role\x3d"presentation"\x3e\x3cdiv class\x3d"cke_dialog_body" role\x3d"presentation"\x3e\x3cdiv id\x3d"cke_dialog_title_{id}" class\x3d"cke_dialog_title" role\x3d"presentation"\x3e\x3c/div\x3e\x3ca id\x3d"cke_dialog_close_button_{id}" class\x3d"cke_dialog_close_button" href\x3d"javascript:void(0)" title\x3d"{closeTitle}" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e\x3cdiv id\x3d"cke_dialog_tabs_{id}" class\x3d"cke_dialog_tabs" role\x3d"tablist"\x3e\x3c/div\x3e\x3ctable class\x3d"cke_dialog_contents" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_contents_{id}" class\x3d"cke_dialog_contents_body" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_footer_{id}" class\x3d"cke_dialog_footer" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e';
 CKEDITOR.dialog=function(b,c){function k(){var a=D._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,d=0;d<b;d++)a[d].focusIndex=d}function p(a){var b=D._.focusList;a=a||0;if(!(1>b.length)){var d=D._.currentFocusIndex;D._.tabBarMode&&0>a&&(d=0);try{b[d].getInputElement().$.blur()}catch(c){}var g=d,e=1<D._.pageCount;do{g+=a;if(e&&!D._.tabBarMode&&(g==b.length||-1==g)){D._.tabBarMode=!0;D._.tabs[D._.currentTabId][0].focus();
-D._.currentFocusIndex=-1;return}g=(g+b.length)%b.length;if(g==d)break}while(a&&!b[g].isFocusable());b[g].focus();"text"==b[g].type&&b[g].select()}}function l(d){if(D==CKEDITOR.dialog._.currentTop){var c=d.data.getKeystroke(),g="rtl"==b.lang.dir,e=[37,38,39,40];H=A=0;if(9==c||c==CKEDITOR.SHIFT+9)p(c==CKEDITOR.SHIFT+9?-1:1),H=1;else if(c==CKEDITOR.ALT+121&&!D._.tabBarMode&&1<D.getPageCount())D._.tabBarMode=!0,D._.tabs[D._.currentTabId][0].focus(),D._.currentFocusIndex=-1,H=1;else if(-1!=CKEDITOR.tools.indexOf(e,
-c)&&D._.tabBarMode)c=-1!=CKEDITOR.tools.indexOf([g?39:37,38],c)?a.call(D):f.call(D),D.selectPage(c),D._.tabs[c][0].focus(),H=1;else if(13!=c&&32!=c||!D._.tabBarMode)if(13==c)c=d.data.getTarget(),c.is("a","button","select","textarea")||c.is("input")&&"button"==c.$.type||((c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),H=1),A=1;else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),A=1;else return;else this.selectPage(this._.currentTabId),
-this._.tabBarMode=!1,this._.currentFocusIndex=-1,p(1),H=1;n(d)}}function n(a){H?a.data.preventDefault(1):A&&a.data.stopPropagation()}var u=CKEDITOR.dialog._.dialogDefinitions[c],x=CKEDITOR.tools.clone(q),v=b.config.dialog_buttonsOrder||"OS",r=b.lang.dir,z={},H,A;("OS"==v&&CKEDITOR.env.mac||"rtl"==v&&"ltr"==r||"ltr"==v&&"rtl"==r)&&x.buttons.reverse();u=CKEDITOR.tools.extend(u(b),x);u=CKEDITOR.tools.clone(u);u=new t(this,u);x=m(b);this._={editor:b,element:x.element,name:c,contentSize:{width:0,height:0},
-size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:!1,focusList:[],currentFocusIndex:0,hasFocus:!1};this.parts=x.parts;CKEDITOR.tools.setTimeout(function(){b.fire("ariaWidget",this.parts.contents)},0,this);x={position:CKEDITOR.env.ie6Compat?"absolute":"fixed",top:0,visibility:"hidden"};x["rtl"==r?"right":"left"]=0;this.parts.dialog.setStyles(x);CKEDITOR.event.call(this);this.definition=u=CKEDITOR.fire("dialogDefinition",
-{name:c,definition:u},b).definition;if(!("removeDialogTabs"in b._)&&b.config.removeDialogTabs){x=b.config.removeDialogTabs.split(";");for(r=0;r<x.length;r++)if(v=x[r].split(":"),2==v.length){var w=v[0];z[w]||(z[w]=[]);z[w].push(v[1])}b._.removeDialogTabs=z}if(b._.removeDialogTabs&&(z=b._.removeDialogTabs[c]))for(r=0;r<z.length;r++)u.removeContents(z[r]);if(u.onLoad)this.on("load",u.onLoad);if(u.onShow)this.on("show",u.onShow);if(u.onHide)this.on("hide",u.onHide);if(u.onOk)this.on("ok",function(a){b.fire("saveSnapshot");
-setTimeout(function(){b.fire("saveSnapshot")},0);!1===u.onOk.call(this,a)&&(a.data.hide=!1)});this.state=CKEDITOR.DIALOG_STATE_IDLE;if(u.onCancel)this.on("cancel",function(a){!1===u.onCancel.call(this,a)&&(a.data.hide=!1)});var D=this,y=function(a){var b=D._.contents,d=!1,c;for(c in b)for(var g in b[c])if(d=a.call(this,b[c][g]))return};this.on("ok",function(a){y(function(b){if(b.validate){var d=b.validate(this),c="string"==typeof d||!1===d;c&&(a.data.hide=!1,a.stop());e.call(b,!c,"string"==typeof d?
-d:void 0);return c}})},this,null,0);this.on("cancel",function(a){y(function(d){if(d.isChanged())return b.config.dialog_noConfirmCancel||confirm(b.lang.common.confirmCancel)||(a.data.hide=!1),!0})},this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=p;var B=this._.element;b.focusManager.add(B,1);this.on("show",function(){B.on("keydown",l,this);if(CKEDITOR.env.gecko)B.on("keypress",n,this)});this.on("hide",
-function(){B.removeListener("keydown",l);CKEDITOR.env.gecko&&B.removeListener("keypress",n);y(function(a){h.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",l,this,null,0)});this.on("show",function(){k();var a=1<D._.pageCount;b.config.dialog_startupFocusTab&&a?(D._.tabBarMode=!0,D._.tabs[D._.currentTabId][0].focus(),D._.currentFocusIndex=-1):this._.hasFocus||(this._.currentFocusIndex=a?-1:this._.focusList.length-1,u.onFocus?
-(a=u.onFocus.call(this))&&a.focus():p(1))},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),b=a.getFirst();b.remove();b.appendTo(a)},this);d(this);g(this);(new CKEDITOR.dom.text(u.title,CKEDITOR.document)).appendTo(this.parts.title);for(r=0;r<u.contents.length;r++)(z=u.contents[r])&&this.addPage(z);this.parts.tabs.on("click",function(a){var b=a.data.getTarget();b.hasClass("cke_dialog_tab")&&(b=b.$.id,this.selectPage(b.substring(4,b.lastIndexOf("_"))),
-this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,p(1)),a.data.preventDefault())},this);r=[];z=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:u.buttons},r).getChild();this.parts.footer.setHtml(r.join(""));for(r=0;r<z.length;r++)this._.buttons[z[r].id]=z[r]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(){return function(a,b){this._.contentSize&&this._.contentSize.width==
+D._.currentFocusIndex=-1;return}g=(g+b.length)%b.length;if(g==d)break}while(a&&!b[g].isFocusable());b[g].focus();"text"==b[g].type&&b[g].select()}}function l(d){if(D==CKEDITOR.dialog._.currentTop){var c=d.data.getKeystroke(),g="rtl"==b.lang.dir,e=[37,38,39,40];A=B=0;if(9==c||c==CKEDITOR.SHIFT+9)p(c==CKEDITOR.SHIFT+9?-1:1),A=1;else if(c==CKEDITOR.ALT+121&&!D._.tabBarMode&&1<D.getPageCount())D._.tabBarMode=!0,D._.tabs[D._.currentTabId][0].focus(),D._.currentFocusIndex=-1,A=1;else if(-1!=CKEDITOR.tools.indexOf(e,
+c)&&D._.tabBarMode)c=-1!=CKEDITOR.tools.indexOf([g?39:37,38],c)?a.call(D):f.call(D),D.selectPage(c),D._.tabs[c][0].focus(),A=1;else if(13!=c&&32!=c||!D._.tabBarMode)if(13==c)c=d.data.getTarget(),c.is("a","button","select","textarea")||c.is("input")&&"button"==c.$.type||((c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),A=1),B=1;else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),B=1;else return;else this.selectPage(this._.currentTabId),
+this._.tabBarMode=!1,this._.currentFocusIndex=-1,p(1),A=1;n(d)}}function n(a){A?a.data.preventDefault(1):B&&a.data.stopPropagation()}var r=CKEDITOR.dialog._.dialogDefinitions[c],w=CKEDITOR.tools.clone(q),v=b.config.dialog_buttonsOrder||"OS",u=b.lang.dir,H={},A,B;("OS"==v&&CKEDITOR.env.mac||"rtl"==v&&"ltr"==u||"ltr"==v&&"rtl"==u)&&w.buttons.reverse();r=CKEDITOR.tools.extend(r(b),w);r=CKEDITOR.tools.clone(r);r=new t(this,r);w=m(b);this._={editor:b,element:w.element,name:c,contentSize:{width:0,height:0},
+size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:!1,focusList:[],currentFocusIndex:0,hasFocus:!1};this.parts=w.parts;CKEDITOR.tools.setTimeout(function(){b.fire("ariaWidget",this.parts.contents)},0,this);w={position:CKEDITOR.env.ie6Compat?"absolute":"fixed",top:0,visibility:"hidden"};w["rtl"==u?"right":"left"]=0;this.parts.dialog.setStyles(w);CKEDITOR.event.call(this);this.definition=r=CKEDITOR.fire("dialogDefinition",
+{name:c,definition:r},b).definition;if(!("removeDialogTabs"in b._)&&b.config.removeDialogTabs){w=b.config.removeDialogTabs.split(";");for(u=0;u<w.length;u++)if(v=w[u].split(":"),2==v.length){var x=v[0];H[x]||(H[x]=[]);H[x].push(v[1])}b._.removeDialogTabs=H}if(b._.removeDialogTabs&&(H=b._.removeDialogTabs[c]))for(u=0;u<H.length;u++)r.removeContents(H[u]);if(r.onLoad)this.on("load",r.onLoad);if(r.onShow)this.on("show",r.onShow);if(r.onHide)this.on("hide",r.onHide);if(r.onOk)this.on("ok",function(a){b.fire("saveSnapshot");
+setTimeout(function(){b.fire("saveSnapshot")},0);!1===r.onOk.call(this,a)&&(a.data.hide=!1)});this.state=CKEDITOR.DIALOG_STATE_IDLE;if(r.onCancel)this.on("cancel",function(a){!1===r.onCancel.call(this,a)&&(a.data.hide=!1)});var D=this,z=function(a){var b=D._.contents,d=!1,c;for(c in b)for(var g in b[c])if(d=a.call(this,b[c][g]))return};this.on("ok",function(a){z(function(b){if(b.validate){var d=b.validate(this),c="string"==typeof d||!1===d;c&&(a.data.hide=!1,a.stop());e.call(b,!c,"string"==typeof d?
+d:void 0);return c}})},this,null,0);this.on("cancel",function(a){z(function(d){if(d.isChanged())return b.config.dialog_noConfirmCancel||confirm(b.lang.common.confirmCancel)||(a.data.hide=!1),!0})},this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=p;var y=this._.element;b.focusManager.add(y,1);this.on("show",function(){y.on("keydown",l,this);if(CKEDITOR.env.gecko)y.on("keypress",n,this)});this.on("hide",
+function(){y.removeListener("keydown",l);CKEDITOR.env.gecko&&y.removeListener("keypress",n);z(function(a){h.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",l,this,null,0)});this.on("show",function(){k();var a=1<D._.pageCount;b.config.dialog_startupFocusTab&&a?(D._.tabBarMode=!0,D._.tabs[D._.currentTabId][0].focus(),D._.currentFocusIndex=-1):this._.hasFocus||(this._.currentFocusIndex=a?-1:this._.focusList.length-1,r.onFocus?
+(a=r.onFocus.call(this))&&a.focus():p(1))},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),b=a.getFirst();b.remove();b.appendTo(a)},this);d(this);g(this);(new CKEDITOR.dom.text(r.title,CKEDITOR.document)).appendTo(this.parts.title);for(u=0;u<r.contents.length;u++)(H=r.contents[u])&&this.addPage(H);this.parts.tabs.on("click",function(a){var b=a.data.getTarget();b.hasClass("cke_dialog_tab")&&(b=b.$.id,this.selectPage(b.substring(4,b.lastIndexOf("_"))),
+this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,p(1)),a.data.preventDefault())},this);u=[];H=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:r.buttons},u).getChild();this.parts.footer.setHtml(u.join(""));for(u=0;u<H.length;u++)this._.buttons[H[u].id]=H[u]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(){return function(a,b){this._.contentSize&&this._.contentSize.width==
 a&&this._.contentSize.height==b||(CKEDITOR.dialog.fire("resize",{dialog:this,width:a,height:b},this._.editor),this.fire("resize",{width:a,height:b},this._.editor),this.parts.contents.setStyles({width:a+"px",height:b+"px"}),"rtl"==this._.editor.lang.dir&&this._.position&&(this._.position.x=CKEDITOR.document.getWindow().getViewPaneSize().width-this._.contentSize.width-parseInt(this._.element.getFirst().getStyle("right"),10)),this._.contentSize={width:a,height:b})}}(),getSize:function(){var a=this._.element.getFirst();
 return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||0}},move:function(a,b,d){var c=this._.element.getFirst(),g="rtl"==this._.editor.lang.dir,e="fixed"==c.getComputedStyle("position");CKEDITOR.env.ie&&c.setStyle("zoom","100%");e&&this._.position&&this._.position.x==a&&this._.position.y==b||(this._.position={x:a,y:b},e||(e=CKEDITOR.document.getWindow().getScrollPosition(),a+=e.x,b+=e.y),g&&(e=this.getSize(),a=CKEDITOR.document.getWindow().getViewPaneSize().width-e.width-a),b={top:(0<b?b:0)+"px"},
 b[g?"right":"left"]=(0<a?a:0)+"px",c.setStyles(b),d&&(this._.moved=1))},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;a.getParent()&&a.getParent().equals(CKEDITOR.document.getBody())?a.setStyle("display","block"):a.appendTo(CKEDITOR.document.getBody());this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight);this.reset();this.selectPage(this.definition.contents[0].id);
-null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,r(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2),CKEDITOR.dialog._.currentTop=this);
-a.on("keydown",C);a.on("keyup",F);this._.hasFocus=!1;for(var d in b.contents)if(b.contents[d]){var a=b.contents[d],c=this._.tabs[a.id],g=a.requiredContent,e=0;if(c){for(var h in this._.contents[a.id]){var f=this._.contents[a.id][h];"hbox"!=f.type&&"vbox"!=f.type&&f.getInputElement()&&(f.requiredContent&&!this._.editor.activeFilter.check(f.requiredContent)?f.disable():(f.enable(),e++))}!e||g&&!this._.editor.activeFilter.check(g)?c[0].addClass("cke_dialog_tab_disabled"):c[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();
+null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,u(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2),CKEDITOR.dialog._.currentTop=this);
+a.on("keydown",C);a.on("keyup",G);this._.hasFocus=!1;for(var d in b.contents)if(b.contents[d]){var a=b.contents[d],c=this._.tabs[a.id],g=a.requiredContent,e=0;if(c){for(var h in this._.contents[a.id]){var f=this._.contents[a.id][h];"hbox"!=f.type&&"vbox"!=f.type&&f.getInputElement()&&(f.requiredContent&&!this._.editor.activeFilter.check(f.requiredContent)?f.disable():(f.enable(),e++))}!e||g&&!this._.editor.activeFilter.check(g)?c[0].addClass("cke_dialog_tab_disabled"):c[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();
 k(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),d=CKEDITOR.document.getWindow().getViewPaneSize(),c=(d.width-b.width)/2,g=(d.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(0<g?g:0)>d.height||
 b.width+(0<c?c:0)>d.width?a.setStyle("position","absolute"):a.setStyle("position","fixed"));this.move(this._.moved?this._.position.x:c,this._.moved?this._.position.y:g)},foreach:function(a){for(var b in this._.contents)for(var d in this._.contents[b])a.call(this,this._.contents[b][d]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},
-commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(L(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();
-if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else v(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",C);a.removeListener("keyup",F);var d=this._.editor;d.focus();setTimeout(function(){d.focusManager.unlock();CKEDITOR.env.iOS&&d.window.focus()},0)}delete this._.parentDialog;
+commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(J(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();
+if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else v(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",C);a.removeListener("keyup",G);var d=this._.editor;d.focus();setTimeout(function(){d.focusManager.unlock();CKEDITOR.env.iOS&&d.window.focus()},0)}delete this._.parentDialog;
 this.foreach(function(a){a.resetInitValue&&a.resetInitValue()});this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],d=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",c=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),g=this._.contents[a.id]={},e=c.getChild(),
 h=0;c=e.shift();)c.notAllowed||"hbox"==c.type||"vbox"==c.type||h++,g[c.id]=c,"function"==typeof c.getChild&&e.push.apply(e,c.getChild());h||(a.hidden=!0);b=CKEDITOR.dom.element.createFromHtml(b.join(""));b.setAttribute("role","tabpanel");c=CKEDITOR.env;g="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();d=CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"',0<this._.pageCount?" cke_last":"cke_first",d,a.hidden?' style\x3d"display:none"':"",' id\x3d"',g,'"',c.gecko&&!c.hc?"":' href\x3d"javascript:void(0)"',
-' tabIndex\x3d"-1" hidefocus\x3d"true" role\x3d"tab"\x3e',a.label,"\x3c/a\x3e"].join(""));b.setAttribute("aria-labelledby",g);this._.tabs[a.id]=[d,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;this._.lastTab=d;this.updateStyle();b.setAttribute("name",a.id);b.appendTo(this.parts.contents);d.unselectable();this.parts.tabs.append(d);a.accessKey&&(E(this,this,"CTRL+"+a.accessKey,N,G),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&
+' tabIndex\x3d"-1" hidefocus\x3d"true" role\x3d"tab"\x3e',a.label,"\x3c/a\x3e"].join(""));b.setAttribute("aria-labelledby",g);this._.tabs[a.id]=[d,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;this._.lastTab=d;this.updateStyle();b.setAttribute("name",a.id);b.appendTo(this.parts.contents);d.unselectable();this.parts.tabs.append(d);a.accessKey&&(E(this,this,"CTRL+"+a.accessKey,N,I),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&
 !1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var d=this._.tabs[b][0],g=this._.tabs[b][1];b!=a&&(d.removeClass("cke_dialog_tab_selected"),g.hide());g.setAttribute("aria-hidden",b!=a)}var e=this._.tabs[a];e[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(c(e[1]),e[1].show(),setTimeout(function(){c(e[1],1)},0)):e[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},
 updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(b){var d=this._.tabs[b]&&this._.tabs[b][0];d&&1!=this._.pageCount&&d.isVisible()&&(b==this._.currentTabId&&this.selectPage(a.call(this)),d.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a=this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},
 getContentElement:function(a,b){var d=this._.contents[a];return d&&d[b]},getValueOf:function(a,b){return this.getContentElement(a,b).getValue()},setValueOf:function(a,b,d){return this.getContentElement(a,b).setValue(d)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},
@@ -548,19 +547,19 @@ getSelectedElement:function(){return this.getParentEditor().getSelection().getSe
 styles:{"float":"rtl"==b?"right":"left"}};d.styles["margin-"+("rtl"==b?"left":"right")]="8px";this.parts.spinner=CKEDITOR.document.createElement("div",d);this.parts.spinner.setHtml("\x26#8987;");this.parts.spinner.appendTo(this.parts.title,1)}this.parts.spinner.show();this.getButton("ok").disable()}else a==CKEDITOR.DIALOG_STATE_IDLE&&(this.parts.spinner&&this.parts.spinner.hide(),this.getButton("ok").enable());this.fire("state",a)}}};CKEDITOR.tools.extend(CKEDITOR.dialog,{add:function(a,b){this._.dialogDefinitions[a]&&
 "function"!=typeof b||(this._.dialogDefinitions[a]=b)},exists:function(a){return!!this._.dialogDefinitions[a]},getCurrent:function(){return CKEDITOR.dialog._.currentTop},isTabEnabled:function(a,b,d){a=a.config.removeDialogTabs;return!(a&&a.match(new RegExp("(?:^|;)"+b+":"+d+"(?:$|;)","i")))},okButton:function(){var a=function(a,b){b=b||{};return CKEDITOR.tools.extend({id:"ok",type:"button",label:a.lang.common.ok,"class":"cke_dialog_ui_button_ok",onClick:function(a){a=a.data.dialog;!1!==a.fire("ok",
 {hide:!0}).hide&&a.hide()}},b,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(d){return a(d,b)},{type:"button"},!0)};return a}(),cancelButton:function(){var a=function(a,b){b=b||{};return CKEDITOR.tools.extend({id:"cancel",type:"button",label:a.lang.common.cancel,"class":"cke_dialog_ui_button_cancel",onClick:function(a){a=a.data.dialog;!1!==a.fire("cancel",{hide:!0}).hide&&a.hide()}},b,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(d){return a(d,
-b)},{type:"button"},!0)};return a}(),addUIElement:function(a,b){this._.uiElementBuilders[a]=b}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);var q={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},x=function(a,b,d){for(var c=0,g;g=a[c];c++)if(g.id==b||d&&g[d]&&(g=x(g[d],
-b,d)))return g;return null},z=function(a,b,d,c,g){if(d){for(var e=0,h;h=a[e];e++){if(h.id==d)return a.splice(e,0,b),b;if(c&&h[c]&&(h=z(h[c],b,d,c,!0)))return h}if(g)return null}a.push(b);return b},A=function(a,b,d){for(var c=0,g;g=a[c];c++){if(g.id==b)return a.splice(c,1);if(d&&g[d]&&(g=A(g[d],b,d)))return g}return null},t=function(a,d){this.dialog=a;for(var c=d.contents,g=0,e;e=c[g];g++)c[g]=e&&new b(a,e);CKEDITOR.tools.extend(this,d)};t.prototype={getContents:function(a){return x(this.contents,
-a)},getButton:function(a){return x(this.buttons,a)},addContents:function(a,b){return z(this.contents,a,b)},addButton:function(a,b){return z(this.buttons,a,b)},removeContents:function(a){A(this.contents,a)},removeButton:function(a){A(this.buttons,a)}};b.prototype={get:function(a){return x(this.elements,a,"children")},add:function(a,b){return z(this.elements,a,b,"children")},remove:function(a){A(this.elements,a,"children")}};var w,D={},B,y={},C=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,d=
-a.data.$.altKey,c=a.data.$.shiftKey,g=String.fromCharCode(a.data.$.keyCode);(b=y[(b?"CTRL+":"")+(d?"ALT+":"")+(c?"SHIFT+":"")+g])&&b.length&&(b=b[b.length-1],b.keydown&&b.keydown.call(b.uiElement,b.dialog,b.key),a.data.preventDefault())},F=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,d=a.data.$.altKey,c=a.data.$.shiftKey,g=String.fromCharCode(a.data.$.keyCode);(b=y[(b?"CTRL+":"")+(d?"ALT+":"")+(c?"SHIFT+":"")+g])&&b.length&&(b=b[b.length-1],b.keyup&&(b.keyup.call(b.uiElement,b.dialog,b.key),
-a.data.preventDefault()))},E=function(a,b,d,c,g){(y[d]||(y[d]=[])).push({uiElement:a,dialog:b,key:d,keyup:g||a.accessKeyUp,keydown:c||a.accessKeyDown})},L=function(a){for(var b in y){for(var d=y[b],c=d.length-1;0<=c;c--)d[c].dialog!=a&&d[c].uiElement!=a||d.splice(c,1);0===d.length&&delete y[b]}},G=function(a,b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},N=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,b,d,c,g,e,h){if(!(4>arguments.length)){var f=(c.call?c(b):c)||"div",
-k=["\x3c",f," "],p=(g&&g.call?g(b):g)||{},l=(e&&e.call?e(b):e)||{},n=(h&&h.call?h.call(this,a,b):h)||"",m=this.domId=l.id||CKEDITOR.tools.getNextId()+"_uiElement";b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&(p.display="none",this.notAllowed=!0);l.id=m;var q={};b.type&&(q["cke_dialog_ui_"+b.type]=1);b.className&&(q[b.className]=1);b.disabled&&(q.cke_disabled=1);for(var u=l["class"]&&l["class"].split?l["class"].split(" "):[],m=0;m<u.length;m++)u[m]&&(q[u[m]]=1);u=[];for(m in q)u.push(m);
-l["class"]=u.join(" ");b.title&&(l.title=b.title);q=(b.style||"").split(";");b.align&&(u=b.align,p["margin-left"]="left"==u?0:"auto",p["margin-right"]="right"==u?0:"auto");for(m in p)q.push(m+":"+p[m]);b.hidden&&q.push("display:none");for(m=q.length-1;0<=m;m--)""===q[m]&&q.splice(m,1);0<q.length&&(l.style=(l.style?l.style+"; ":"")+q.join("; "));for(m in l)k.push(m+'\x3d"'+CKEDITOR.tools.htmlEncode(l[m])+'" ');k.push("\x3e",n,"\x3c/",f,"\x3e");d.push(k.join(""));(this._||(this._={})).dialog=a;"boolean"==
+b)},{type:"button"},!0)};return a}(),addUIElement:function(a,b){this._.uiElementBuilders[a]=b}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);var q={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},w=function(a,b,d){for(var c=0,g;g=a[c];c++)if(g.id==b||d&&g[d]&&(g=w(g[d],
+b,d)))return g;return null},A=function(a,b,d,c,g){if(d){for(var e=0,h;h=a[e];e++){if(h.id==d)return a.splice(e,0,b),b;if(c&&h[c]&&(h=A(h[c],b,d,c,!0)))return h}if(g)return null}a.push(b);return b},B=function(a,b,d){for(var c=0,g;g=a[c];c++){if(g.id==b)return a.splice(c,1);if(d&&g[d]&&(g=B(g[d],b,d)))return g}return null},t=function(a,d){this.dialog=a;for(var c=d.contents,g=0,e;e=c[g];g++)c[g]=e&&new b(a,e);CKEDITOR.tools.extend(this,d)};t.prototype={getContents:function(a){return w(this.contents,
+a)},getButton:function(a){return w(this.buttons,a)},addContents:function(a,b){return A(this.contents,a,b)},addButton:function(a,b){return A(this.buttons,a,b)},removeContents:function(a){B(this.contents,a)},removeButton:function(a){B(this.buttons,a)}};b.prototype={get:function(a){return w(this.elements,a,"children")},add:function(a,b){return A(this.elements,a,b,"children")},remove:function(a){B(this.elements,a,"children")}};var x,D={},y,z={},C=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,d=
+a.data.$.altKey,c=a.data.$.shiftKey,g=String.fromCharCode(a.data.$.keyCode);(b=z[(b?"CTRL+":"")+(d?"ALT+":"")+(c?"SHIFT+":"")+g])&&b.length&&(b=b[b.length-1],b.keydown&&b.keydown.call(b.uiElement,b.dialog,b.key),a.data.preventDefault())},G=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,d=a.data.$.altKey,c=a.data.$.shiftKey,g=String.fromCharCode(a.data.$.keyCode);(b=z[(b?"CTRL+":"")+(d?"ALT+":"")+(c?"SHIFT+":"")+g])&&b.length&&(b=b[b.length-1],b.keyup&&(b.keyup.call(b.uiElement,b.dialog,b.key),
+a.data.preventDefault()))},E=function(a,b,d,c,g){(z[d]||(z[d]=[])).push({uiElement:a,dialog:b,key:d,keyup:g||a.accessKeyUp,keydown:c||a.accessKeyDown})},J=function(a){for(var b in z){for(var d=z[b],c=d.length-1;0<=c;c--)d[c].dialog!=a&&d[c].uiElement!=a||d.splice(c,1);0===d.length&&delete z[b]}},I=function(a,b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},N=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,b,d,c,g,e,h){if(!(4>arguments.length)){var f=(c.call?c(b):c)||"div",
+k=["\x3c",f," "],p=(g&&g.call?g(b):g)||{},l=(e&&e.call?e(b):e)||{},n=(h&&h.call?h.call(this,a,b):h)||"",m=this.domId=l.id||CKEDITOR.tools.getNextId()+"_uiElement";b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&(p.display="none",this.notAllowed=!0);l.id=m;var q={};b.type&&(q["cke_dialog_ui_"+b.type]=1);b.className&&(q[b.className]=1);b.disabled&&(q.cke_disabled=1);for(var r=l["class"]&&l["class"].split?l["class"].split(" "):[],m=0;m<r.length;m++)r[m]&&(q[r[m]]=1);r=[];for(m in q)r.push(m);
+l["class"]=r.join(" ");b.title&&(l.title=b.title);q=(b.style||"").split(";");b.align&&(r=b.align,p["margin-left"]="left"==r?0:"auto",p["margin-right"]="right"==r?0:"auto");for(m in p)q.push(m+":"+p[m]);b.hidden&&q.push("display:none");for(m=q.length-1;0<=m;m--)""===q[m]&&q.splice(m,1);0<q.length&&(l.style=(l.style?l.style+"; ":"")+q.join("; "));for(m in l)k.push(m+'\x3d"'+CKEDITOR.tools.htmlEncode(l[m])+'" ');k.push("\x3e",n,"\x3c/",f,"\x3e");d.push(k.join(""));(this._||(this._={})).dialog=a;"boolean"==
 typeof b.isChanged&&(this.isChanged=function(){return b.isChanged});"function"==typeof b.isChanged&&(this.isChanged=b.isChanged);"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(d){a.call(this,b.setValue.call(this,d))}}));"function"==typeof b.getValue&&(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);this.registerEvents(b);
-this.accessKeyUp&&this.accessKeyDown&&b.accessKey&&E(this,a,"CTRL+"+b.accessKey);var x=this;a.on("load",function(){var b=x.getInputElement();if(b){var d=x.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";b.on("focus",function(){a._.tabBarMode=!1;a._.hasFocus=!0;x.fire("focus");d&&this.addClass(d)});b.on("blur",function(){x.fire("blur");d&&this.removeClass(d)})}});CKEDITOR.tools.extend(this,b);this.keyboardFocusable&&(this.tabIndex=b.tabIndex||0,this.focusIndex=
-a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=x.focusIndex}))}},hbox:function(a,b,d,c,g){if(!(4>arguments.length)){this._||(this._={});var e=this._.children=b,h=g&&g.widths||null,f=g&&g.height||null,k,p={role:"presentation"};g&&g.align&&(p.align=g.align);CKEDITOR.ui.dialog.uiElement.call(this,a,g||{type:"hbox"},c,"table",{},p,function(){var a=['\x3ctbody\x3e\x3ctr class\x3d"cke_dialog_ui_hbox"\x3e'];for(k=0;k<d.length;k++){var b="cke_dialog_ui_hbox_child",c=[];0===k&&
-(b="cke_dialog_ui_hbox_first");k==d.length-1&&(b="cke_dialog_ui_hbox_last");a.push('\x3ctd class\x3d"',b,'" role\x3d"presentation" ');h?h[k]&&c.push("width:"+u(h[k])):c.push("width:"+Math.floor(100/d.length)+"%");f&&c.push("height:"+u(f));g&&void 0!==g.padding&&c.push("padding:"+u(g.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&e[k].align&&c.push("text-align:"+e[k].align);0<c.length&&a.push('style\x3d"'+c.join("; ")+'" ');a.push("\x3e",d[k],"\x3c/td\x3e")}a.push("\x3c/tr\x3e\x3c/tbody\x3e");return a.join("")})}},
-vbox:function(a,b,d,c,g){if(!(3>arguments.length)){this._||(this._={});var e=this._.children=b,h=g&&g.width||null,f=g&&g.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,g||{type:"vbox"},c,"div",null,{role:"presentation"},function(){var b=['\x3ctable role\x3d"presentation" cellspacing\x3d"0" border\x3d"0" '];b.push('style\x3d"');g&&g.expand&&b.push("height:100%;");b.push("width:"+u(h||"100%"),";");CKEDITOR.env.webkit&&b.push("float:none;");b.push('"');b.push('align\x3d"',CKEDITOR.tools.htmlEncode(g&&
-g.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');b.push("\x3e\x3ctbody\x3e");for(var c=0;c<d.length;c++){var k=[];b.push('\x3ctr\x3e\x3ctd role\x3d"presentation" ');h&&k.push("width:"+u(h||"100%"));f?k.push("height:"+u(f[c])):g&&g.expand&&k.push("height:"+Math.floor(100/d.length)+"%");g&&void 0!==g.padding&&k.push("padding:"+u(g.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&e[c].align&&k.push("text-align:"+e[c].align);0<k.length&&b.push('style\x3d"',k.join("; "),'" ');b.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e',
+this.accessKeyUp&&this.accessKeyDown&&b.accessKey&&E(this,a,"CTRL+"+b.accessKey);var w=this;a.on("load",function(){var b=w.getInputElement();if(b){var d=w.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";b.on("focus",function(){a._.tabBarMode=!1;a._.hasFocus=!0;w.fire("focus");d&&this.addClass(d)});b.on("blur",function(){w.fire("blur");d&&this.removeClass(d)})}});CKEDITOR.tools.extend(this,b);this.keyboardFocusable&&(this.tabIndex=b.tabIndex||0,this.focusIndex=
+a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=w.focusIndex}))}},hbox:function(a,b,d,c,g){if(!(4>arguments.length)){this._||(this._={});var e=this._.children=b,h=g&&g.widths||null,f=g&&g.height||null,k,p={role:"presentation"};g&&g.align&&(p.align=g.align);CKEDITOR.ui.dialog.uiElement.call(this,a,g||{type:"hbox"},c,"table",{},p,function(){var a=['\x3ctbody\x3e\x3ctr class\x3d"cke_dialog_ui_hbox"\x3e'];for(k=0;k<d.length;k++){var b="cke_dialog_ui_hbox_child",c=[];0===k&&
+(b="cke_dialog_ui_hbox_first");k==d.length-1&&(b="cke_dialog_ui_hbox_last");a.push('\x3ctd class\x3d"',b,'" role\x3d"presentation" ');h?h[k]&&c.push("width:"+r(h[k])):c.push("width:"+Math.floor(100/d.length)+"%");f&&c.push("height:"+r(f));g&&void 0!==g.padding&&c.push("padding:"+r(g.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&e[k].align&&c.push("text-align:"+e[k].align);0<c.length&&a.push('style\x3d"'+c.join("; ")+'" ');a.push("\x3e",d[k],"\x3c/td\x3e")}a.push("\x3c/tr\x3e\x3c/tbody\x3e");return a.join("")})}},
+vbox:function(a,b,d,c,g){if(!(3>arguments.length)){this._||(this._={});var e=this._.children=b,h=g&&g.width||null,f=g&&g.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,g||{type:"vbox"},c,"div",null,{role:"presentation"},function(){var b=['\x3ctable role\x3d"presentation" cellspacing\x3d"0" border\x3d"0" '];b.push('style\x3d"');g&&g.expand&&b.push("height:100%;");b.push("width:"+r(h||"100%"),";");CKEDITOR.env.webkit&&b.push("float:none;");b.push('"');b.push('align\x3d"',CKEDITOR.tools.htmlEncode(g&&
+g.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');b.push("\x3e\x3ctbody\x3e");for(var c=0;c<d.length;c++){var k=[];b.push('\x3ctr\x3e\x3ctd role\x3d"presentation" ');h&&k.push("width:"+r(h||"100%"));f?k.push("height:"+r(f[c])):g&&g.expand&&k.push("height:"+Math.floor(100/d.length)+"%");g&&void 0!==g.padding&&k.push("padding:"+r(g.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&e[c].align&&k.push("text-align:"+e[c].align);0<k.length&&b.push('style\x3d"',k.join("; "),'" ');b.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e',
 d[c],"\x3c/td\x3e\x3c/tr\x3e")}b.push("\x3c/tbody\x3e\x3c/table\x3e");return b.join("")})}}}})();CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},setValue:function(a,b){this.getInputElement().setValue(a);!b&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=
 this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus();return this},registerEvents:function(a){var b=/^on([A-Z]\w+)/,d,c=function(a,b,d,c){b.on("load",function(){a.getInputElement().on(d,c,a)})},g;for(g in a)if(d=g.match(b))this.eventProcessors[g]?this.eventProcessors[g].call(this,
 this._.dialog,a[g]):c(this,this._.dialog,d[1].toLowerCase(),a[g]);return this},eventProcessors:{onLoad:function(a,b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},disable:function(){var a=this.getElement();this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled");
@@ -569,7 +568,7 @@ this._.children[a[0]].getChild(a.slice(1,a.length)):null}},!0);CKEDITOR.ui.dialo
 CKEDITOR.tools.extend(this,b,!0)};CKEDITOR.dialogCommand.prototype={exec:function(a){a.openDialog(this.dialogName)},canUndo:!1,editorFocus:1};(function(){var a=/^([a]|[^a])+$/,b=/^\d*$/,d=/^\d*(?:\.\d+)?$/,c=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,g=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,e=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;CKEDITOR.VALIDATE_OR=1;CKEDITOR.VALIDATE_AND=2;CKEDITOR.dialog.validate={functions:function(){var a=arguments;return function(){var b=this&&this.getValue?this.getValue():
 a[0],d,c=CKEDITOR.VALIDATE_AND,g=[],e;for(e=0;e<a.length;e++)if("function"==typeof a[e])g.push(a[e]);else break;e<a.length&&"string"==typeof a[e]&&(d=a[e],e++);e<a.length&&"number"==typeof a[e]&&(c=a[e]);var h=c==CKEDITOR.VALIDATE_AND?!0:!1;for(e=0;e<g.length;e++)h=c==CKEDITOR.VALIDATE_AND?h&&g[e](b):h||g[e](b);return h?!0:d}},regex:function(a,b){return function(d){d=this&&this.getValue?this.getValue():d;return a.test(d)?!0:b}},notEmpty:function(b){return this.regex(a,b)},integer:function(a){return this.regex(b,
 a)},number:function(a){return this.regex(d,a)},cssLength:function(a){return this.functions(function(a){return g.test(CKEDITOR.tools.trim(a))},a)},htmlLength:function(a){return this.functions(function(a){return c.test(CKEDITOR.tools.trim(a))},a)},inlineStyle:function(a){return this.functions(function(a){return e.test(CKEDITOR.tools.trim(a))},a)},equals:function(a,b){return this.functions(function(b){return b==a},b)},notEqual:function(a,b){return this.functions(function(b){return b!=a},b)}};CKEDITOR.on("instanceDestroyed",
-function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var b;b=CKEDITOR.dialog._.currentTop;)b.hide();for(var d in D)D[d].remove();D={}}a=a.editor._.storedDialogs;for(var c in a)a[c].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,b){var d=null,c=CKEDITOR.dialog._.dialogDefinitions[a];null===CKEDITOR.dialog._.currentTop&&r(this);if("function"==typeof c)d=this._.storedDialogs||(this._.storedDialogs={}),d=d[a]||(d[a]=new CKEDITOR.dialog(this,a)),b&&b.call(d,
+function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var b;b=CKEDITOR.dialog._.currentTop;)b.hide();for(var d in D)D[d].remove();D={}}a=a.editor._.storedDialogs;for(var c in a)a[c].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,b){var d=null,c=CKEDITOR.dialog._.dialogDefinitions[a];null===CKEDITOR.dialog._.currentTop&&u(this);if("function"==typeof c)d=this._.storedDialogs||(this._.storedDialogs={}),d=d[a]||(d[a]=new CKEDITOR.dialog(this,a)),b&&b.call(d,
 d),d.show();else{if("failed"==c)throw v(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof c&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");this.openDialog(a,b)},this,0,1)}CKEDITOR.skin.loadPart("dialog");return d}})}(),CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(a){a.on("doubleclick",function(f){f.data.dialog&&
 a.openDialog(f.data.dialog)},null,null,999)}}),CKEDITOR.plugins.add("about",{requires:"dialog",init:function(a){var f=a.addCommand("about",new CKEDITOR.dialogCommand("about"));f.modes={wysiwyg:1,source:1};f.canUndo=!1;f.readOnly=1;a.ui.addButton&&a.ui.addButton("About",{label:a.lang.about.title,command:"about",toolbar:"about"});CKEDITOR.dialog.add("about",this.path+"dialogs/about.js")}}),function(){CKEDITOR.plugins.add("a11yhelp",{requires:"dialog",availableLangs:{af:1,ar:1,bg:1,ca:1,cs:1,cy:1,da:1,
 de:1,"de-ch":1,el:1,en:1,"en-gb":1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,"fr-ca":1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,"sr-latn":1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,"zh-cn":1},init:function(a){var f=this;a.addCommand("a11yHelp",{exec:function(){var c=a.langCode,c=f.availableLangs[c]?c:f.availableLangs[c.replace(/-.*/,"")]?c.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(f.path+
@@ -584,25 +583,25 @@ c.getParent()}h&&l&&!l.getCustomData("blockquote_moveout")&&(k.push(l),CKEDITOR.
 for(k=l.length-1;0<=k;k--){h=l[k];a:{b=h;for(var d=0,g=b.getChildCount(),p=void 0;d<g&&(p=b.getChild(d));d++)if(p.type==CKEDITOR.NODE_ELEMENT&&p.isBlockBoundary()){b=!1;break a}b=!0}b&&h.remove()}if(a.config.enterMode==CKEDITOR.ENTER_BR)for(h=!0;c.length;)if(d=c.shift(),"div"==d.getName()){k=new CKEDITOR.dom.documentFragment(a.document);!h||!d.getPrevious()||d.getPrevious().type==CKEDITOR.NODE_ELEMENT&&d.getPrevious().isBlockBoundary()||k.append(a.document.createElement("br"));for(h=d.getNext()&&
 !(d.getNext().type==CKEDITOR.NODE_ELEMENT&&d.getNext().isBlockBoundary());d.getFirst();)d.getFirst().remove().appendTo(k);h&&k.append(a.document.createElement("br"));k.replace(d);h=!1}}e.selectBookmarks(m);a.focus()}},refresh:function(a,c){this.setState(a.elementPath(c.block||c.blockLimit).contains("blockquote",1)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)},context:"blockquote",allowedContent:"blockquote",requiredContent:"blockquote"};CKEDITOR.plugins.add("blockquote",{init:function(f){f.blockless||
 (f.addCommand("blockquote",a),f.ui.addButton&&f.ui.addButton("Blockquote",{label:f.lang.blockquote.toolbar,command:"blockquote",toolbar:"blocks,10"}))}})}(),"use strict",function(){function a(a,b,d){b.type||(b.type="auto");if(d&&!1===a.fire("beforePaste",b)||!b.dataValue&&b.dataTransfer.isEmpty())return!1;b.dataValue||(b.dataValue="");if(CKEDITOR.env.gecko&&"drop"==b.method&&a.toolbox)a.once("afterPaste",function(){a.toolbox.focus()});return a.fire("paste",b)}function f(b){function d(){var a=b.editable();
-if(CKEDITOR.plugins.clipboard.isCustomCopyCutSupported){var c=function(a){b.readOnly&&"cut"==a.name||y.initPasteDataTransfer(a,b);a.data.preventDefault()};a.on("copy",c);a.on("cut",c);a.on("cut",function(){b.readOnly||b.extractSelectedHtml()},null,null,999)}a.on(y.mainPasteEvent,function(a){"beforepaste"==y.mainPasteEvent&&C||w(a)});"beforepaste"==y.mainPasteEvent&&(a.on("paste",function(a){F||(h(),a.data.preventDefault(),w(a),k("paste")||b.openDialog("paste"))}),a.on("contextmenu",f,null,null,0),
+if(CKEDITOR.plugins.clipboard.isCustomCopyCutSupported){var c=function(a){b.readOnly&&"cut"==a.name||z.initPasteDataTransfer(a,b);a.data.preventDefault()};a.on("copy",c);a.on("cut",c);a.on("cut",function(){b.readOnly||b.extractSelectedHtml()},null,null,999)}a.on(z.mainPasteEvent,function(a){"beforepaste"==z.mainPasteEvent&&C||x(a)});"beforepaste"==z.mainPasteEvent&&(a.on("paste",function(a){G||(h(),a.data.preventDefault(),x(a),k("paste")||b.openDialog("paste"))}),a.on("contextmenu",f,null,null,0),
 a.on("beforepaste",function(a){!a.data||a.data.$.ctrlKey||a.data.$.shiftKey||f()},null,null,0));a.on("beforecut",function(){!C&&l(b)});var e;a.attachListener(CKEDITOR.env.ie?a:b.document.getDocumentElement(),"mouseup",function(){e=setTimeout(function(){D()},0)});b.on("destroy",function(){clearTimeout(e)});a.on("keyup",D)}function c(a){return{type:a,canUndo:"cut"==a,startDisabled:!0,exec:function(){"cut"==this.type&&l();var a;var d=this.type;if(CKEDITOR.env.ie)a=k(d);else try{a=b.document.$.execCommand(d,
-!1,null)}catch(c){a=!1}a||b.showNotification(b.lang.clipboard[this.type+"Error"]);return a}}}function e(){return{canUndo:!1,async:!0,exec:function(b,d){var c=this,g=function(d,g){d&&a(b,d,!!g);b.fire("afterCommandExec",{name:"paste",command:c,returnValue:!!d})};"string"==typeof d?g({dataValue:d,method:"paste",dataTransfer:y.initPasteDataTransfer()},1):b.getClipboardData(g)}}}function h(){F=1;setTimeout(function(){F=0},100)}function f(){C=1;setTimeout(function(){C=0},10)}function k(a){var d=b.document,
+!1,null)}catch(c){a=!1}a||b.showNotification(b.lang.clipboard[this.type+"Error"]);return a}}}function e(){return{canUndo:!1,async:!0,exec:function(b,d){var c=function(d,c){d&&a(b,d,!!c);b.fire("afterCommandExec",{name:"paste",command:g,returnValue:!!d})},g=this;"string"==typeof d?c({dataValue:d,method:"paste",dataTransfer:z.initPasteDataTransfer()},1):b.getClipboardData(c)}}}function h(){G=1;setTimeout(function(){G=0},100)}function f(){C=1;setTimeout(function(){C=0},10)}function k(a){var d=b.document,
 c=d.getBody(),e=!1,h=function(){e=!0};c.on(a,h);7<CKEDITOR.env.version?d.$.execCommand(a):d.$.selection.createRange().execCommand(a);c.removeListener(a,h);return e}function l(){if(CKEDITOR.env.ie&&!CKEDITOR.env.quirks){var a=b.getSelection(),d,c,e;a.getType()==CKEDITOR.SELECTION_ELEMENT&&(d=a.getSelectedElement())&&(c=a.getRanges()[0],e=b.document.createText(""),e.insertBefore(d),c.setStartBefore(e),c.setEndAfter(d),a.selectRanges([c]),setTimeout(function(){d.getParent()&&(e.remove(),a.selectElement(d))},
 0))}}function m(a,d){var c=b.document,e=b.editable(),h=function(a){a.cancel()},f;if(!c.getById("cke_pastebin")){var k=b.getSelection(),p=k.createBookmarks();CKEDITOR.env.ie&&k.root.fire("selectionchange");var l=new CKEDITOR.dom.element(!CKEDITOR.env.webkit&&!e.is("body")||CKEDITOR.env.ie?"div":"body",c);l.setAttributes({id:"cke_pastebin","data-cke-temp":"1"});var n=0,c=c.getWindow();CKEDITOR.env.webkit?(e.append(l),l.addClass("cke_editable"),e.is("body")||(n="static"!=e.getComputedStyle("position")?
 e:CKEDITOR.dom.element.get(e.$.offsetParent),n=n.getDocumentPosition().y)):e.getAscendant(CKEDITOR.env.ie?"body":"html",1).append(l);l.setStyles({position:"absolute",top:c.getScrollPosition().y-n+10+"px",width:"1px",height:Math.max(1,c.getViewPaneSize().height-20)+"px",overflow:"hidden",margin:0,padding:0});CKEDITOR.env.safari&&l.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","text"));(n=l.getParent().isReadOnly())?(l.setOpacity(0),l.setAttribute("contenteditable",!0)):l.setStyle("ltr"==b.config.contentsLangDirection?
-"left":"right","-10000px");b.on("selectionChange",h,null,null,0);if(CKEDITOR.env.webkit||CKEDITOR.env.gecko)f=e.once("blur",h,null,null,-100);n&&l.focus();n=new CKEDITOR.dom.range(l);n.selectNodeContents(l);var q=n.select();CKEDITOR.env.ie&&(f=e.once("blur",function(){b.lockSelection(q)}));var u=CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=u);f&&f.removeListener();CKEDITOR.env.ie&&e.focus();k.selectBookmarks(p);
-l.remove();var a;CKEDITOR.env.webkit&&(a=l.getFirst())&&a.is&&a.hasClass("Apple-style-span")&&(l=a);b.removeListener("selectionChange",h);d(l.getHtml())},0)}}function A(){if("paste"==y.mainPasteEvent)return b.fire("beforePaste",{type:"auto",method:"paste"}),!1;b.focus();h();var a=b.focusManager;a.lock();if(b.editable().fire(y.mainPasteEvent)&&!k("paste"))return a.unlock(),!1;a.unlock();return!0}function t(a){if("wysiwyg"==b.mode)switch(a.data.keyCode){case CKEDITOR.CTRL+86:case CKEDITOR.SHIFT+45:a=
-b.editable();h();"paste"==y.mainPasteEvent&&a.fire("beforepaste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:b.fire("saveSnapshot"),setTimeout(function(){b.fire("saveSnapshot")},50)}}function w(d){var c={type:"auto",method:"paste",dataTransfer:y.initPasteDataTransfer(d)};c.dataTransfer.cacheData();var e=!1!==b.fire("beforePaste",c);e&&y.canClipboardApiBeTrusted(c.dataTransfer,b)?(d.data.preventDefault(),setTimeout(function(){a(b,c)},0)):m(d,function(d){c.dataValue=d.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,
-"");e&&a(b,c)})}function D(){if("wysiwyg"==b.mode){var a=B("paste");b.getCommand("cut").setState(B("cut"));b.getCommand("copy").setState(B("copy"));b.getCommand("paste").setState(a);b.fire("pasteState",a)}}function B(a){if(E&&a in{paste:1,cut:1})return CKEDITOR.TRISTATE_DISABLED;if("paste"==a)return CKEDITOR.TRISTATE_OFF;a=b.getSelection();var d=a.getRanges();return a.getType()==CKEDITOR.SELECTION_NONE||1==d.length&&d[0].collapsed?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF}var y=CKEDITOR.plugins.clipboard,
-C=0,F=0,E=0;(function(){b.on("key",t);b.on("contentDom",d);b.on("selectionChange",function(a){E=a.data.selection.getRanges()[0].checkReadOnly();D()});b.contextMenu&&b.contextMenu.addListener(function(a,b){E=b.getRanges()[0].checkReadOnly();return{cut:B("cut"),copy:B("copy"),paste:B("paste")}})})();(function(){function a(d,c,e,h,f){var k=b.lang.clipboard[c];b.addCommand(c,e);b.ui.addButton&&b.ui.addButton(d,{label:k,command:c,toolbar:"clipboard,"+h});b.addMenuItems&&b.addMenuItem(c,{label:k,command:c,
+"left":"right","-1000px");b.on("selectionChange",h,null,null,0);if(CKEDITOR.env.webkit||CKEDITOR.env.gecko)f=e.once("blur",h,null,null,-100);n&&l.focus();n=new CKEDITOR.dom.range(l);n.selectNodeContents(l);var q=n.select();CKEDITOR.env.ie&&(f=e.once("blur",function(){b.lockSelection(q)}));var r=CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=r);f&&f.removeListener();CKEDITOR.env.ie&&e.focus();k.selectBookmarks(p);
+l.remove();var a;CKEDITOR.env.webkit&&(a=l.getFirst())&&a.is&&a.hasClass("Apple-style-span")&&(l=a);b.removeListener("selectionChange",h);d(l.getHtml())},0)}}function B(){if("paste"==z.mainPasteEvent)return b.fire("beforePaste",{type:"auto",method:"paste"}),!1;b.focus();h();var a=b.focusManager;a.lock();if(b.editable().fire(z.mainPasteEvent)&&!k("paste"))return a.unlock(),!1;a.unlock();return!0}function t(a){if("wysiwyg"==b.mode)switch(a.data.keyCode){case CKEDITOR.CTRL+86:case CKEDITOR.SHIFT+45:a=
+b.editable();h();"paste"==z.mainPasteEvent&&a.fire("beforepaste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:b.fire("saveSnapshot"),setTimeout(function(){b.fire("saveSnapshot")},50)}}function x(d){var c={type:"auto",method:"paste",dataTransfer:z.initPasteDataTransfer(d)};c.dataTransfer.cacheData();var e=!1!==b.fire("beforePaste",c);e&&z.canClipboardApiBeTrusted(c.dataTransfer,b)?(d.data.preventDefault(),setTimeout(function(){a(b,c)},0)):m(d,function(d){c.dataValue=d.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,
+"");e&&a(b,c)})}function D(){if("wysiwyg"==b.mode){var a=y("paste");b.getCommand("cut").setState(y("cut"));b.getCommand("copy").setState(y("copy"));b.getCommand("paste").setState(a);b.fire("pasteState",a)}}function y(a){if(E&&a in{paste:1,cut:1})return CKEDITOR.TRISTATE_DISABLED;if("paste"==a)return CKEDITOR.TRISTATE_OFF;a=b.getSelection();var d=a.getRanges();return a.getType()==CKEDITOR.SELECTION_NONE||1==d.length&&d[0].collapsed?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF}var z=CKEDITOR.plugins.clipboard,
+C=0,G=0,E=0;(function(){b.on("key",t);b.on("contentDom",d);b.on("selectionChange",function(a){E=a.data.selection.getRanges()[0].checkReadOnly();D()});b.contextMenu&&b.contextMenu.addListener(function(a,b){E=b.getRanges()[0].checkReadOnly();return{cut:y("cut"),copy:y("copy"),paste:y("paste")}})})();(function(){function a(d,c,e,h,f){var k=b.lang.clipboard[c];b.addCommand(c,e);b.ui.addButton&&b.ui.addButton(d,{label:k,command:c,toolbar:"clipboard,"+h});b.addMenuItems&&b.addMenuItem(c,{label:k,command:c,
 group:"clipboard",order:f})}a("Cut","cut",c("cut"),10,1);a("Copy","copy",c("copy"),20,4);a("Paste","paste",e(),30,8)})();b.getClipboardData=function(a,d){function c(a){a.removeListener();a.cancel();d(a.data)}function e(a){a.removeListener();a.cancel();l=!0;d({type:k,dataValue:a.data.dataValue,dataTransfer:a.data.dataTransfer,method:"paste"})}function h(){this.customTitle=a&&a.title}var f=!1,k="auto",l=!1;d||(d=a,a=null);b.on("paste",c,null,null,0);b.on("beforePaste",function(a){a.removeListener();
-f=!0;k=a.data.type},null,null,1E3);!1===A()&&(b.removeListener("paste",c),f&&b.fire("pasteDialog",h)?(b.on("pasteDialogCommit",e),b.on("dialogHide",function(a){a.removeListener();a.data.removeListener("pasteDialogCommit",e);setTimeout(function(){l||d(null)},10)})):d(null))}}function c(a){if(CKEDITOR.env.webkit){if(!a.match(/^[^<]*$/g)&&!a.match(/^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!a.match(/^([^<]|<br( ?\/)?>)*$/gi)&&!a.match(/^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi))return"html"}else if(CKEDITOR.env.gecko){if(!a.match(/^([^<]|<br( ?\/)?>)*$/gi))return"html"}else return"html";
+f=!0;k=a.data.type},null,null,1E3);!1===B()&&(b.removeListener("paste",c),f&&b.fire("pasteDialog",h)?(b.on("pasteDialogCommit",e),b.on("dialogHide",function(a){a.removeListener();a.data.removeListener("pasteDialogCommit",e);setTimeout(function(){l||d(null)},10)})):d(null))}}function c(a){if(CKEDITOR.env.webkit){if(!a.match(/^[^<]*$/g)&&!a.match(/^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!a.match(/^([^<]|<br( ?\/)?>)*$/gi)&&!a.match(/^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi))return"html"}else if(CKEDITOR.env.gecko){if(!a.match(/^([^<]|<br( ?\/)?>)*$/gi))return"html"}else return"html";
 return"htmlifiedtext"}function e(a,b){function d(a){return CKEDITOR.tools.repeat("\x3c/p\x3e\x3cp\x3e",~~(a/2))+(1==a%2?"\x3cbr\x3e":"")}b=b.replace(/\s+/g," ").replace(/> +</g,"\x3e\x3c").replace(/<br ?\/>/gi,"\x3cbr\x3e");b=b.replace(/<\/?[A-Z]+>/g,function(a){return a.toLowerCase()});if(b.match(/^[^<]$/))return b;CKEDITOR.env.webkit&&-1<b.indexOf("\x3cdiv\x3e")&&(b=b.replace(/^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g,"\x3cbr\x3e").replace(/^(<div>(<br>|)<\/div>){2}(?!$)/g,"\x3cdiv\x3e\x3c/div\x3e"),
 b.match(/<div>(<br>|)<\/div>/)&&(b="\x3cp\x3e"+b.replace(/(<div>(<br>|)<\/div>)+/g,function(a){return d(a.split("\x3c/div\x3e\x3cdiv\x3e").length+1)})+"\x3c/p\x3e"),b=b.replace(/<\/div><div>/g,"\x3cbr\x3e"),b=b.replace(/<\/?div>/g,""));CKEDITOR.env.gecko&&a.enterMode!=CKEDITOR.ENTER_BR&&(CKEDITOR.env.gecko&&(b=b.replace(/^<br><br>$/,"\x3cbr\x3e")),-1<b.indexOf("\x3cbr\x3e\x3cbr\x3e")&&(b="\x3cp\x3e"+b.replace(/(<br>){2,}/g,function(a){return d(a.length/4)})+"\x3c/p\x3e"));return l(a,b)}function h(){function a(){var b=
 {},d;for(d in CKEDITOR.dtd)"$"!=d.charAt(0)&&"div"!=d&&"span"!=d&&(b[d]=1);return b}var b={};return{get:function(d){return"plain-text"==d?b.plainText||(b.plainText=new CKEDITOR.filter("br")):"semantic-content"==d?((d=b.semanticContent)||(d=new CKEDITOR.filter,d.allow({$1:{elements:a(),attributes:!0,styles:!1,classes:!1}}),d=b.semanticContent=d),d):d?new CKEDITOR.filter(d):null}}}function m(a,b,d){b=CKEDITOR.htmlParser.fragment.fromHtml(b);var c=new CKEDITOR.htmlParser.basicWriter;d.applyTo(b,!0,!1,
 a.activeEnterMode);b.writeHtml(c);return c.getHtml()}function l(a,b){a.enterMode==CKEDITOR.ENTER_BR?b=b.replace(/(<\/p><p>)+/g,function(a){return CKEDITOR.tools.repeat("\x3cbr\x3e",a.length/7*2)}).replace(/<\/?p>/g,""):a.enterMode==CKEDITOR.ENTER_DIV&&(b=b.replace(/<(\/)?p>/g,"\x3c$1div\x3e"));return b}function k(a){a.data.preventDefault();a.data.$.dataTransfer.dropEffect="none"}function b(b){var d=CKEDITOR.plugins.clipboard;b.on("contentDom",function(){function c(d,e,h){e.select();a(b,{dataTransfer:h,
 method:"drop"},1);h.sourceEditor.fire("saveSnapshot");h.sourceEditor.editable().extractHtmlFromRange(d);h.sourceEditor.getSelection().selectRanges([d]);h.sourceEditor.fire("saveSnapshot")}function e(c,h){c.select();a(b,{dataTransfer:h,method:"drop"},1);d.resetDragDataTransfer()}function h(a,d,c){var e={$:a.data.$,target:a.data.getTarget()};d&&(e.dragRange=d);c&&(e.dropRange=c);!1===b.fire(a.name,e)&&a.data.preventDefault()}function f(a){a.type!=CKEDITOR.NODE_ELEMENT&&(a=a.getParent());return a.getChildCount()}
-var k=b.editable(),l=CKEDITOR.plugins.clipboard.getDropTarget(b),m=b.ui.space("top"),A=b.ui.space("bottom");d.preventDefaultDropOnElement(m);d.preventDefaultDropOnElement(A);k.attachListener(l,"dragstart",h);k.attachListener(b,"dragstart",d.resetDragDataTransfer,d,null,1);k.attachListener(b,"dragstart",function(a){d.initDragDataTransfer(a,b)},null,null,2);k.attachListener(b,"dragstart",function(){var a=d.dragRange=b.getSelection().getRanges()[0];CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(d.dragStartContainerChildCount=
+var k=b.editable(),l=CKEDITOR.plugins.clipboard.getDropTarget(b),m=b.ui.space("top"),B=b.ui.space("bottom");d.preventDefaultDropOnElement(m);d.preventDefaultDropOnElement(B);k.attachListener(l,"dragstart",h);k.attachListener(b,"dragstart",d.resetDragDataTransfer,d,null,1);k.attachListener(b,"dragstart",function(a){d.initDragDataTransfer(a,b)},null,null,2);k.attachListener(b,"dragstart",function(){var a=d.dragRange=b.getSelection().getRanges()[0];CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(d.dragStartContainerChildCount=
 a?f(a.startContainer):null,d.dragEndContainerChildCount=a?f(a.endContainer):null)},null,null,100);k.attachListener(l,"dragend",h);k.attachListener(b,"dragend",d.initDragDataTransfer,d,null,1);k.attachListener(b,"dragend",d.resetDragDataTransfer,d,null,100);k.attachListener(l,"dragover",function(a){var b=a.data.getTarget();b&&b.is&&b.is("html")?a.data.preventDefault():CKEDITOR.env.ie&&CKEDITOR.plugins.clipboard.isFileApiSupported&&a.data.$.dataTransfer.types.contains("Files")&&a.data.preventDefault()});
 k.attachListener(l,"drop",function(a){if(!a.data.$.defaultPrevented){a.data.preventDefault();var c=a.data.getTarget();if(!c.isReadOnly()||c.type==CKEDITOR.NODE_ELEMENT&&c.is("html")){var c=d.getRangeAtDropPosition(a,b),e=d.dragRange;c&&h(a,e,c)}}},null,null,9999);k.attachListener(b,"drop",d.initDragDataTransfer,d,null,1);k.attachListener(b,"drop",function(a){if(a=a.data){var h=a.dropRange,f=a.dragRange,k=a.dataTransfer;k.getTransferType(b)==CKEDITOR.DATA_TRANSFER_INTERNAL?setTimeout(function(){d.internalDrop(f,
 h,k,b)},0):k.getTransferType(b)==CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?c(f,h,k):e(h,k)}},null,null,9999)})}CKEDITOR.plugins.add("clipboard",{requires:"dialog",init:function(a){var d,k=h();a.config.forcePasteAsPlainText?d="plain-text":a.config.pasteFilter?d=a.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in a.config||(d="semantic-content");a.pasteFilter=k.get(d);f(a);b(a);CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js"));a.on("paste",function(b){b.data.dataTransfer||
@@ -616,8 +615,8 @@ b.startContainer.getChild(b.startOffset-1),d=b.startContainer.getChild(b.startOf
 a.endOffset<=c||a.startContainer.getParent().equals(d)&&a.startContainer.getIndex()<c||a.endContainer.getParent().equals(d)&&a.endContainer.getIndex()<c?!0:!1},internalDrop:function(b,d,c,e){var h=CKEDITOR.plugins.clipboard,f=e.editable(),k,l;e.fire("saveSnapshot");e.fire("lockSnapshot",{dontUpdate:1});CKEDITOR.env.ie&&10>CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(b,d,h.dragStartContainerChildCount,h.dragEndContainerChildCount);(l=this.isDropRangeAffectedByDragRange(b,d))||(k=b.createBookmark(!1));
 h=d.clone().createBookmark(!1);l&&(k=b.createBookmark(!1));b=k.startNode;d=k.endNode;l=h.startNode;d&&b.getPosition(l)&CKEDITOR.POSITION_PRECEDING&&d.getPosition(l)&CKEDITOR.POSITION_FOLLOWING&&l.insertBefore(b);b=e.createRange();b.moveToBookmark(k);f.extractHtmlFromRange(b,1);d=e.createRange();d.moveToBookmark(h);a(e,{dataTransfer:c,method:"drop",range:d},1);e.fire("unlockSnapshot")},getRangeAtDropPosition:function(a,b){var d=a.data.$,c=d.clientX,e=d.clientY,h=b.getSelection(!0).getRanges()[0],f=
 b.createRange();if(a.data.testRange)return a.data.testRange;if(document.caretRangeFromPoint)d=b.document.$.caretRangeFromPoint(c,e),f.setStart(CKEDITOR.dom.node(d.startContainer),d.startOffset),f.collapse(!0);else if(d.rangeParent)f.setStart(CKEDITOR.dom.node(d.rangeParent),d.rangeOffset),f.collapse(!0);else{if(CKEDITOR.env.ie&&8<CKEDITOR.env.version&&h&&b.editable().hasFocus)return h;if(document.body.createTextRange){b.focus();d=b.document.getBody().$.createTextRange();try{for(var k=!1,l=0;20>l&&
-!k;l++){if(!k)try{d.moveToPoint(c,e-l),k=!0}catch(m){}if(!k)try{d.moveToPoint(c,e+l),k=!0}catch(t){}}if(k){var w="cke-temp-"+(new Date).getTime();d.pasteHTML('\x3cspan id\x3d"'+w+'"\x3e​\x3c/span\x3e');var D=b.document.getById(w);f.moveToPosition(D,CKEDITOR.POSITION_BEFORE_START);D.remove()}else{var B=b.document.$.elementFromPoint(c,e),y=new CKEDITOR.dom.element(B),C;if(y.equals(b.editable())||"html"==y.getName())return h&&h.startContainer&&!h.startContainer.equals(b.editable())?h:null;C=y.getClientRect();
-c<C.left?f.setStartAt(y,CKEDITOR.POSITION_AFTER_START):f.setStartAt(y,CKEDITOR.POSITION_BEFORE_END);f.collapse(!0)}}catch(F){return null}}else return null}return f},initDragDataTransfer:function(a,b){var d=a.data.$?a.data.$.dataTransfer:null,c=new this.dataTransfer(d,b);d?this.dragData&&c.id==this.dragData.id?c=this.dragData:this.dragData=c:this.dragData?c=this.dragData:this.dragData=c;a.data.dataTransfer=c},resetDragDataTransfer:function(){this.dragData=null},initPasteDataTransfer:function(a,b){if(this.isCustomCopyCutSupported&&
+!k;l++){if(!k)try{d.moveToPoint(c,e-l),k=!0}catch(m){}if(!k)try{d.moveToPoint(c,e+l),k=!0}catch(t){}}if(k){var x="cke-temp-"+(new Date).getTime();d.pasteHTML('\x3cspan id\x3d"'+x+'"\x3e​\x3c/span\x3e');var D=b.document.getById(x);f.moveToPosition(D,CKEDITOR.POSITION_BEFORE_START);D.remove()}else{var y=b.document.$.elementFromPoint(c,e),z=new CKEDITOR.dom.element(y),C;if(z.equals(b.editable())||"html"==z.getName())return h&&h.startContainer&&!h.startContainer.equals(b.editable())?h:null;C=z.getClientRect();
+c<C.left?f.setStartAt(z,CKEDITOR.POSITION_AFTER_START):f.setStartAt(z,CKEDITOR.POSITION_BEFORE_END);f.collapse(!0)}}catch(G){return null}}else return null}return f},initDragDataTransfer:function(a,b){var d=a.data.$?a.data.$.dataTransfer:null,c=new this.dataTransfer(d,b);d?this.dragData&&c.id==this.dragData.id?c=this.dragData:this.dragData=c:this.dragData?c=this.dragData:this.dragData=c;a.data.dataTransfer=c},resetDragDataTransfer:function(){this.dragData=null},initPasteDataTransfer:function(a,b){if(this.isCustomCopyCutSupported&&
 a&&a.data&&a.data.$){var d=new this.dataTransfer(a.data.$.clipboardData,b);this.copyCutData&&d.id==this.copyCutData.id?(d=this.copyCutData,d.$=a.data.$.clipboardData):this.copyCutData=d;return d}return new this.dataTransfer(null,b)},preventDefaultDropOnElement:function(a){a&&a.on("dragover",k)}};var d=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported?"cke/id":"Text";CKEDITOR.plugins.clipboard.dataTransfer=function(a,b){a&&(this.$=a);this._={metaRegExp:/^<meta.*?>/i,bodyRegExp:/<body(?:[\s\S]*?)>([\s\S]*)<\/body>/i,
 fragmentRegExp:/\x3c!--(?:Start|End)Fragment--\x3e/g,data:{},files:[],normalizeType:function(a){a=a.toLowerCase();return"text"==a||"text/plain"==a?"Text":"url"==a?"URL":a}};this.id=this.getData(d);this.id||(this.id="Text"==d?"":"cke-"+CKEDITOR.tools.getUniqueId());if("Text"!=d)try{this.$.setData(d,this.id)}catch(c){}b&&(this.sourceEditor=b,this.setData("text/html",b.getSelectedHtml(1)),"Text"==d||this.getData("text/plain")||this.setData("text/plain",b.getSelection().getSelectedText()))};CKEDITOR.DATA_TRANSFER_INTERNAL=
 1;CKEDITOR.DATA_TRANSFER_CROSS_EDITORS=2;CKEDITOR.DATA_TRANSFER_EXTERNAL=3;CKEDITOR.plugins.clipboard.dataTransfer.prototype={getData:function(a){a=this._.normalizeType(a);var b=this._.data[a];if(void 0===b||null===b||""===b)try{b=this.$.getData(a)}catch(d){}if(void 0===b||null===b||""===b)b="";"text/html"==a?(b=b.replace(this._.metaRegExp,""),(a=this._.bodyRegExp.exec(b))&&a.length&&(b=a[1],b=b.replace(this._.fragmentRegExp,""))):"Text"==a&&CKEDITOR.env.gecko&&this.getFilesCount()&&"file://"==b.substring(0,
@@ -636,12 +635,12 @@ styles:{display:"none"}}));c&&CKEDITOR.tools.extend(this,c);this.element.setAttr
 k.$.offsetWidth){this._.focusIndex=l;k.focus();break}k=null}return k||c?!1:(this._.focusIndex=f.count(),this.onKeyDown(a,1));case "click":case "mouseup":return l=this._.focusIndex,(k=0<=l&&this.element.getElementsByTag("a").getItem(l))&&(k.$[f]?k.$[f]():k.$["on"+f]()),!1}return!0}}})}(),CKEDITOR.plugins.add("floatpanel",{requires:"panel"}),function(){function a(a,e,h,m,l){l=CKEDITOR.tools.genKey(e.getUniqueId(),h.getUniqueId(),a.lang.dir,a.uiColor||"",m.css||"",l||"");var k=f[l];k||(k=f[l]=new CKEDITOR.ui.panel(e,
 m),k.element=h.append(CKEDITOR.dom.element.createFromHtml(k.render(a),e)),k.element.setStyles({display:"none",position:"absolute"}));return k}var f={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(c,e,h,f){function l(){g.hide()}h.forceIFrame=1;h.toolbarRelated&&c.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(e=CKEDITOR.document.getById("cke_"+c.name));var k=e.getDocument();f=a(c,k,e,h,f||0);var b=f.element,d=b.getFirst(),g=this;b.disableContextMenu();this.element=b;this._={editor:c,
 panel:f,parentElement:e,definition:h,document:k,iframe:d,children:[],dir:c.lang.dir,showBlockParams:null};c.on("mode",l);c.on("resize",l);k.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(a,e){return this._.panel.addBlock(a,e)},addListBlock:function(a,e){return this._.panel.addListBlock(a,e)},getBlock:function(a){return this._.panel.getBlock(a)},showBlock:function(a,e,h,f,l,k){var b=this._.panel,d=b.showBlock(a);this._.showBlockParams=[].slice.call(arguments);
-this.allowBlur(!1);var g=this._.editor.editable();this._.returnFocus=g.hasFocus?g:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);this._.hideTimeout=0;var p=this.element,g=this._.iframe,g=CKEDITOR.env.ie&&!CKEDITOR.env.edge?g:new CKEDITOR.dom.window(g.$.contentWindow),r=p.getDocument(),v=this._.parentElement.getPositionedAncestor(),u=e.getDocumentPosition(r),r=v?v.getDocumentPosition(r):{x:0,y:0},n="rtl"==this._.dir,q=u.x+(f||0)-r.x,x=u.y+(l||0)-r.y;!n||1!=h&&4!=h?n||2!=h&&3!=h||(q+=e.$.offsetWidth-
-1):q+=e.$.offsetWidth;if(3==h||4==h)x+=e.$.offsetHeight-1;this._.panel._.offsetParentId=e.getId();p.setStyles({top:x+"px",left:0,display:""});p.setOpacity(0);p.getFirst().removeStyle("width");this._.editor.focusManager.add(g);this._.blurSet||(CKEDITOR.event.useCapture=!0,g.on("blur",function(a){function b(){delete this._.returnFocus;this.hide()}this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&this.visible&&!this._.activeChild&&(CKEDITOR.env.iOS?this._.hideTimeout||(this._.hideTimeout=
+this.allowBlur(!1);var g=this._.editor.editable();this._.returnFocus=g.hasFocus?g:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);this._.hideTimeout=0;var p=this.element,g=this._.iframe,g=CKEDITOR.env.ie&&!CKEDITOR.env.edge?g:new CKEDITOR.dom.window(g.$.contentWindow),u=p.getDocument(),v=this._.parentElement.getPositionedAncestor(),r=e.getDocumentPosition(u),u=v?v.getDocumentPosition(u):{x:0,y:0},n="rtl"==this._.dir,q=r.x+(f||0)-u.x,w=r.y+(l||0)-u.y;!n||1!=h&&4!=h?n||2!=h&&3!=h||(q+=e.$.offsetWidth-
+1):q+=e.$.offsetWidth;if(3==h||4==h)w+=e.$.offsetHeight-1;this._.panel._.offsetParentId=e.getId();p.setStyles({top:w+"px",left:0,display:""});p.setOpacity(0);p.getFirst().removeStyle("width");this._.editor.focusManager.add(g);this._.blurSet||(CKEDITOR.event.useCapture=!0,g.on("blur",function(a){function b(){delete this._.returnFocus;this.hide()}this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&this.visible&&!this._.activeChild&&(CKEDITOR.env.iOS?this._.hideTimeout||(this._.hideTimeout=
 CKEDITOR.tools.setTimeout(b,0,this)):b.call(this))},this),g.on("focus",function(){this._.focused=!0;this.hideChild();this.allowBlur(!0)},this),CKEDITOR.env.iOS&&(g.on("touchstart",function(){clearTimeout(this._.hideTimeout)},this),g.on("touchend",function(){this._.hideTimeout=0;this.focus()},this)),CKEDITOR.event.useCapture=!1,this._.blurSet=1);b.onEscape=CKEDITOR.tools.bind(function(a){if(this.onEscape&&!1===this.onEscape(a))return!1},this);CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){var a=
 p;a.removeStyle("width");if(d.autoSize){var c=d.element.getDocument(),c=(CKEDITOR.env.webkit||CKEDITOR.env.edge?d.element:c.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<c&&(c+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3);a.setStyle("width",c+10+"px");c=d.element.$.scrollHeight;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<c&&(c+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3);a.setStyle("height",c+"px");b._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");
-n&&(q-=p.$.offsetWidth);p.setStyle("left",q+"px");var c=b.element.getWindow(),a=p.$.getBoundingClientRect(),c=c.getViewPaneSize(),e=a.width||a.right-a.left,g=a.height||a.bottom-a.top,h=n?a.right:c.width-a.left,f=n?c.width-a.right:a.left;n?h<e&&(q=f>e?q+e:c.width>e?q-a.left:q-a.right+c.width):h<e&&(q=f>e?q-e:c.width>e?q-a.right+c.width:q-a.left);e=a.top;c.height-a.top<g&&(x=e>g?x-g:c.height>g?x-a.bottom+c.height:x-a.top);CKEDITOR.env.ie&&(c=a=new CKEDITOR.dom.element(p.$.offsetParent),"html"==c.getName()&&
-(c=c.getDocument().getBody()),"rtl"==c.getComputedStyle("direction")&&(q=CKEDITOR.env.ie8Compat?q-2*p.getDocument().getDocumentElement().$.scrollLeft:q-(a.$.scrollWidth-a.$.clientWidth)));var a=p.getFirst(),l;(l=a.getCustomData("activePanel"))&&l.onHide&&l.onHide.call(this,1);a.setCustomData("activePanel",this);p.setStyles({top:x+"px",left:q+"px"});p.setOpacity(1);k&&k()},this);b.isLoaded?a():b.onLoad=a;CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;
+n&&(q-=p.$.offsetWidth);p.setStyle("left",q+"px");var c=b.element.getWindow(),a=p.$.getBoundingClientRect(),c=c.getViewPaneSize(),e=a.width||a.right-a.left,g=a.height||a.bottom-a.top,h=n?a.right:c.width-a.left,f=n?c.width-a.right:a.left;n?h<e&&(q=f>e?q+e:c.width>e?q-a.left:q-a.right+c.width):h<e&&(q=f>e?q-e:c.width>e?q-a.right+c.width:q-a.left);e=a.top;c.height-a.top<g&&(w=e>g?w-g:c.height>g?w-a.bottom+c.height:w-a.top);CKEDITOR.env.ie&&(c=a=new CKEDITOR.dom.element(p.$.offsetParent),"html"==c.getName()&&
+(c=c.getDocument().getBody()),"rtl"==c.getComputedStyle("direction")&&(q=CKEDITOR.env.ie8Compat?q-2*p.getDocument().getDocumentElement().$.scrollLeft:q-(a.$.scrollWidth-a.$.clientWidth)));var a=p.getFirst(),l;(l=a.getCustomData("activePanel"))&&l.onHide&&l.onHide.call(this,1);a.setCustomData("activePanel",this);p.setStyles({top:w+"px",left:q+"px"});p.setOpacity(1);k&&k()},this);b.isLoaded?a():b.onLoad=a;CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;
 this.focus();d.element.focus();CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=a);this.allowBlur(!0);this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this);this.visible=1;this.onShow&&this.onShow.call(this)},reposition:function(){var a=this._.showBlockParams;this.visible&&this._.showBlockParams&&(this.hide(),this.showBlock.apply(this,a))},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();a&&!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||
 this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=this._.iframe.getFrameDocument().getActive();a&&a.is("a")&&(this._.lastFocused=a)},hide:function(a){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(a=a&&this._.returnFocus)CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),
 a.focus();delete this._.lastFocused;this._.showBlockParams=null;this._.editor.fire("panelHide",this)}},allowBlur:function(a){var e=this._.panel;void 0!==a&&(e.allowBlur=a);return e.allowBlur},showAsChild:function(a,e,h,f,l,k){if(this._.activeChild!=a||a._.panel._.offsetParentId!=h.getId())this.hideChild(),a.onHide=CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(e,h,f,l,k),this.blur(),
@@ -652,12 +651,12 @@ e=CKEDITOR.addTemplate("menuArrow",'\x3cspan class\x3d"cke_menuarrow"\x3e\x3cspa
 e},_:{onShow:function(){var a=this.editor.getSelection(),c=a&&a.getStartElement(),e=this.editor.elementPath(),f=this._.listeners;this.removeAll();for(var b=0;b<f.length;b++){var d=f[b](c,a,e);if(d)for(var g in d){var p=this.editor.getMenuItem(g);!p||p.command&&!this.editor.getCommand(p.command).state||(p.state=d[g],this.add(p))}}},onClick:function(a){this.hide();if(a.onClick)a.onClick();else a.command&&this.editor.execCommand(a.command)},onEscape:function(a){var c=this.parent;c?c._.panel.hideChild(1):
 27==a&&this.hide(1);return!1},onHide:function(){this.onHide&&this.onHide()},showSubMenu:function(a){var c=this._.subMenu,e=this.items[a];if(e=e.getItems&&e.getItems()){c?c.removeAll():(c=this._.subMenu=new CKEDITOR.menu(this.editor,CKEDITOR.tools.extend({},this._.definition,{level:this._.level+1},!0)),c.parent=this,c._.onClick=CKEDITOR.tools.bind(this._.onClick,this));for(var f in e){var b=this.editor.getMenuItem(f);b&&(b.state=e[f],c.add(b))}var d=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+
 String(a));setTimeout(function(){c.show(d,2)},0)}else this._.panel.hideChild(1)}},proto:{add:function(a){a.order||(a.order=this.items.length);this.items.push(a)},removeAll:function(){this.items=[]},show:function(c,e,f,k){if(!this.parent&&(this._.onShow(),!this.items.length))return;e=e||("rtl"==this.editor.lang.dir?2:1);var b=this.items,d=this.editor,g=this._.panel,p=this._.element;if(!g){g=this._.panel=new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level);
-g.onEscape=CKEDITOR.tools.bind(function(a){if(!1===this._.onEscape(a))return!1},this);g.onShow=function(){g._.panel.getHolderElement().getParent().addClass("cke").addClass("cke_reset_all")};g.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);p=g.addBlock(this.id,this._.panelDefinition.block);p.autoSize=!0;var r=p.keys;r[40]="next";r[9]="next";r[38]="prev";r[CKEDITOR.SHIFT+9]="prev";r["rtl"==d.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";r[32]=CKEDITOR.env.ie?"mouseup":
-"click";CKEDITOR.env.ie&&(r[13]="mouseup");p=this._.element=p.element;r=p.getDocument();r.getBody().setStyle("overflow","hidden");r.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,d.config.menu_subMenuDelay||400,this,[a])},this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);
-this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var b=this.items[a];if(b.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(b.getItems)this._.showSubMenu(a);else this._.onClick(b)},this)}a(b);for(var r=d.elementPath(),r=['\x3cdiv class\x3d"cke_menu'+(r&&r.direction()!=d.lang.dir?" cke_mixed_dir_content":"")+'" role\x3d"presentation"\x3e'],v=b.length,u=v&&b[0].group,n=0;n<v;n++){var q=b[n];u!=q.group&&(r.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'),
-u=q.group);q.render(this,n,r)}r.push("\x3c/div\x3e");p.setHtml(r.join(""));CKEDITOR.ui.fire("ready",this);this.parent?this.parent._.panel.showAsChild(g,this.id,c,e,f,k):g.showBlock(this.id,c,e,f,k);d.fire("menuShow",[g])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,c,e){CKEDITOR.tools.extend(this,e,{order:0,className:"cke_menubutton__"+c});this.group=
-a._.menuGroups[this.group];this.editor=a;this.name=c},proto:{render:function(a,f,l){var k=a.id+String(f),b="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,d="",g=b==CKEDITOR.TRISTATE_ON?"on":b==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(d=' aria-checked\x3d"'+(b==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var p=this.getItems,r="\x26#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",v=this.name;this.icon&&!/\./.test(this.icon)&&(v=
-this.icon);a={id:k,name:this.name,iconName:v,label:this.label,cls:this.className||"",state:g,hasPopup:p?"true":"false",disabled:b==CKEDITOR.TRISTATE_DISABLED,title:this.label,href:"javascript:void('"+(this.label||"").replace("'")+"')",hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,clickFn:a._.itemClickFn,index:f,iconStyle:CKEDITOR.skin.getIconStyle(v,"rtl"==this.editor.lang.dir,v==this.icon?null:this.icon,this.iconOffset),arrowHtml:p?e.output({label:r}):"",role:this.role?this.role:"menuitem",ariaChecked:d};
+g.onEscape=CKEDITOR.tools.bind(function(a){if(!1===this._.onEscape(a))return!1},this);g.onShow=function(){g._.panel.getHolderElement().getParent().addClass("cke").addClass("cke_reset_all")};g.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);p=g.addBlock(this.id,this._.panelDefinition.block);p.autoSize=!0;var u=p.keys;u[40]="next";u[9]="next";u[38]="prev";u[CKEDITOR.SHIFT+9]="prev";u["rtl"==d.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";u[32]=CKEDITOR.env.ie?"mouseup":
+"click";CKEDITOR.env.ie&&(u[13]="mouseup");p=this._.element=p.element;u=p.getDocument();u.getBody().setStyle("overflow","hidden");u.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,d.config.menu_subMenuDelay||400,this,[a])},this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);
+this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var b=this.items[a];if(b.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(b.getItems)this._.showSubMenu(a);else this._.onClick(b)},this)}a(b);for(var u=d.elementPath(),u=['\x3cdiv class\x3d"cke_menu'+(u&&u.direction()!=d.lang.dir?" cke_mixed_dir_content":"")+'" role\x3d"presentation"\x3e'],v=b.length,r=v&&b[0].group,n=0;n<v;n++){var q=b[n];r!=q.group&&(u.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'),
+r=q.group);q.render(this,n,u)}u.push("\x3c/div\x3e");p.setHtml(u.join(""));CKEDITOR.ui.fire("ready",this);this.parent?this.parent._.panel.showAsChild(g,this.id,c,e,f,k):g.showBlock(this.id,c,e,f,k);d.fire("menuShow",[g])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,c,e){CKEDITOR.tools.extend(this,e,{order:0,className:"cke_menubutton__"+c});this.group=
+a._.menuGroups[this.group];this.editor=a;this.name=c},proto:{render:function(a,f,l){var k=a.id+String(f),b="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,d="",g=b==CKEDITOR.TRISTATE_ON?"on":b==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(d=' aria-checked\x3d"'+(b==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var p=this.getItems,u="\x26#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",v=this.name;this.icon&&!/\./.test(this.icon)&&(v=
+this.icon);a={id:k,name:this.name,iconName:v,label:this.label,cls:this.className||"",state:g,hasPopup:p?"true":"false",disabled:b==CKEDITOR.TRISTATE_DISABLED,title:this.label,href:"javascript:void('"+(this.label||"").replace("'")+"')",hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,clickFn:a._.itemClickFn,index:f,iconStyle:CKEDITOR.skin.getIconStyle(v,"rtl"==this.editor.lang.dir,v==this.icon?null:this.icon,this.iconOffset),arrowHtml:p?e.output({label:u}):"",role:this.role?this.role:"menuitem",ariaChecked:d};
 c.output(a,l)}}})}(),CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div",CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(a){this.base.call(this,a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.contextmenu.options}}})},proto:{addTarget:function(a,
 f){a.on("contextmenu",function(a){a=a.data;var e=CKEDITOR.env.webkit?c:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey;if(!f||!e){a.preventDefault();if(CKEDITOR.env.mac&&CKEDITOR.env.webkit){var e=this.editor,l=(new CKEDITOR.dom.elementPath(a.getTarget(),e.editable())).contains(function(a){return a.hasAttribute("contenteditable")},!0);l&&"false"==l.getAttribute("contenteditable")&&e.getSelection().fake(l)}var l=a.getTarget().getDocument(),k=a.getTarget().getDocument().getDocumentElement(),e=!l.equals(CKEDITOR.document),
 l=l.getWindow().getScrollPosition(),b=e?a.$.clientX:a.$.pageX||l.x+a.$.clientX,d=e?a.$.clientY:a.$.pageY||l.y+a.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(k,null,b,d)},CKEDITOR.env.ie?200:0,this)}},this);if(CKEDITOR.env.webkit){var c,e=function(){c=0};a.on("keydown",function(a){c=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey});a.on("keyup",e);a.on("contextmenu",e)}},open:function(a,f,c,e){this.editor.focus();a=a||CKEDITOR.document.getDocumentElement();this.editor.selectionChange(1);
@@ -670,40 +669,40 @@ k.x)*("rtl"==m?-1:1);c=f+(c.data.$.screenY-k.y);d&&(h=Math.max(e.resize_minWidth
 var a=a+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{style}"'),a=a+'\x3e\x26nbsp;\x3c/span\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_button_label cke_button__{name}_label" aria-hidden\x3d"false"\x3e{label}\x3c/span\x3e{arrowHtml}\x3c/a\x3e',
 f=CKEDITOR.addTemplate("buttonArrow",'\x3cspan class\x3d"cke_button_arrow"\x3e'+(CKEDITOR.env.hc?"\x26#9660;":"")+"\x3c/span\x3e"),c=CKEDITOR.addTemplate("button",a);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(c){c.execCommand(a.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}};
 CKEDITOR.ui.button.prototype={render:function(a,h){function m(){var b=a.mode;b&&(b=this.modes[b]?void 0!==n[b]?n[b]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,b=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:b,this.setState(b),this.refresh&&this.refresh())}var l=CKEDITOR.env,k=this._.id=CKEDITOR.tools.getNextId(),b="",d=this.command,g;this._.editor=a;var p={id:k,button:this,editor:a,focus:function(){CKEDITOR.document.getById(k).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},
-r=CKEDITOR.tools.addFunction(function(a){if(p.onkey)return a=new CKEDITOR.dom.event(a),!1!==p.onkey(p,a.getKeystroke())}),v=CKEDITOR.tools.addFunction(function(a){var b;p.onfocus&&(b=!1!==p.onfocus(p,new CKEDITOR.dom.event(a)));return b}),u=0;p.clickFn=g=CKEDITOR.tools.addFunction(function(){u&&(a.unlockSelection(1),u=0);p.execute();l.iOS&&a.focus()});if(this.modes){var n={};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(n[a.mode]=this._.state)},this);a.on("activeFilterChange",
-m,this);a.on("mode",m,this);!this.readOnly&&a.on("readOnly",m,this)}else d&&(d=a.getCommand(d))&&(d.on("state",function(){this.setState(d.state)},this),b+=d.state==CKEDITOR.TRISTATE_ON?"on":d.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");if(this.directional)a.on("contentDirChanged",function(b){var d=CKEDITOR.document.getById(this._.id),c=d.getFirst();b=b.data;b!=a.lang.dir?d.addClass("cke_"+b):d.removeClass("cke_ltr").removeClass("cke_rtl");c.setAttribute("style",CKEDITOR.skin.getIconStyle(x,
-"rtl"==b,this.icon,this.iconOffset))},this);d||(b+="off");var q=this.name||this.command,x=q;this.icon&&!/\./.test(this.icon)&&(x=this.icon,this.icon=null);b={id:k,name:q,iconName:x,label:this.label,cls:this.className||"",state:b,ariaDisabled:"disabled"==b?"true":"false",title:this.title,titleJs:l.gecko&&!l.hc?"":(this.title||"").replace("'",""),hasArrow:this.hasArrow?"true":"false",keydownFn:r,focusFn:v,clickFn:g,style:CKEDITOR.skin.getIconStyle(x,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?
+u=CKEDITOR.tools.addFunction(function(a){if(p.onkey)return a=new CKEDITOR.dom.event(a),!1!==p.onkey(p,a.getKeystroke())}),v=CKEDITOR.tools.addFunction(function(a){var b;p.onfocus&&(b=!1!==p.onfocus(p,new CKEDITOR.dom.event(a)));return b}),r=0;p.clickFn=g=CKEDITOR.tools.addFunction(function(){r&&(a.unlockSelection(1),r=0);p.execute();l.iOS&&a.focus()});if(this.modes){var n={};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(n[a.mode]=this._.state)},this);a.on("activeFilterChange",
+m,this);a.on("mode",m,this);!this.readOnly&&a.on("readOnly",m,this)}else d&&(d=a.getCommand(d))&&(d.on("state",function(){this.setState(d.state)},this),b+=d.state==CKEDITOR.TRISTATE_ON?"on":d.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");if(this.directional)a.on("contentDirChanged",function(b){var d=CKEDITOR.document.getById(this._.id),c=d.getFirst();b=b.data;b!=a.lang.dir?d.addClass("cke_"+b):d.removeClass("cke_ltr").removeClass("cke_rtl");c.setAttribute("style",CKEDITOR.skin.getIconStyle(w,
+"rtl"==b,this.icon,this.iconOffset))},this);d||(b+="off");var q=this.name||this.command,w=q;this.icon&&!/\./.test(this.icon)&&(w=this.icon,this.icon=null);b={id:k,name:q,iconName:w,label:this.label,cls:this.className||"",state:b,ariaDisabled:"disabled"==b?"true":"false",title:this.title,titleJs:l.gecko&&!l.hc?"":(this.title||"").replace("'",""),hasArrow:this.hasArrow?"true":"false",keydownFn:u,focusFn:v,clickFn:g,style:CKEDITOR.skin.getIconStyle(w,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?
 f.output():""};c.output(b,h);if(this.onRender)this.onRender();return p},setState:function(a){if(this._.state==a)return!1;this._.state=a;var c=CKEDITOR.document.getById(this._.id);return c?(c.setState(a,"cke_button"),a==CKEDITOR.TRISTATE_DISABLED?c.setAttribute("aria-disabled",!0):c.removeAttribute("aria-disabled"),this.hasArrow?(a=a==CKEDITOR.TRISTATE_ON?this._.editor.lang.button.selectedLabel.replace(/%1/g,this.label):this.label,CKEDITOR.document.getById(this._.id+"_label").setText(a)):a==CKEDITOR.TRISTATE_ON?
 c.setAttribute("aria-pressed",!0):c.removeAttribute("aria-pressed"),!0):!1},getState:function(){return this._.state},toFeature:function(a){if(this._.feature)return this._.feature;var c=this;this.allowedContent||this.requiredContent||!this.command||(c=a.getCommand(this.command)||c);return this._.feature=c}};CKEDITOR.ui.prototype.addButton=function(a,c){this.add(a,CKEDITOR.UI_BUTTON,c)}}(),function(){function a(a){function c(){for(var b=e(),d=CKEDITOR.tools.clone(a.config.toolbarGroups)||f(a),g=0;g<
-d.length;g++){var m=d[g];if("/"!=m){"string"==typeof m&&(m=d[g]={name:m});var n,q=m.groups;if(q)for(var x=0;x<q.length;x++)n=q[x],(n=b[n])&&k(m,n);(n=b[m.name])&&k(m,n)}}return d}function e(){var b={},d,c,g;for(d in a.ui.items)c=a.ui.items[d],g=c.toolbar||"others",g=g.split(","),c=g[0],g=parseInt(g[1]||-1,10),b[c]||(b[c]=[]),b[c].push({name:d,order:g});for(c in b)b[c]=b[c].sort(function(a,b){return a.order==b.order?0:0>b.order?-1:0>a.order?1:a.order<b.order?-1:1});return b}function k(b,c){if(c.length){b.items?
+d.length;g++){var m=d[g];if("/"!=m){"string"==typeof m&&(m=d[g]={name:m});var n,q=m.groups;if(q)for(var w=0;w<q.length;w++)n=q[w],(n=b[n])&&k(m,n);(n=b[m.name])&&k(m,n)}}return d}function e(){var b={},d,c,g;for(d in a.ui.items)c=a.ui.items[d],g=c.toolbar||"others",g=g.split(","),c=g[0],g=parseInt(g[1]||-1,10),b[c]||(b[c]=[]),b[c].push({name:d,order:g});for(c in b)b[c]=b[c].sort(function(a,b){return a.order==b.order?0:0>b.order?-1:0>a.order?1:a.order<b.order?-1:1});return b}function k(b,c){if(c.length){b.items?
 b.items.push(a.ui.create("-")):b.items=[];for(var e;e=c.shift();)e="string"==typeof e?e:e.name,d&&-1!=CKEDITOR.tools.indexOf(d,e)||(e=a.ui.create(e))&&a.addFeature(e)&&b.items.push(e)}}function b(a){var b=[],d,c,e;for(d=0;d<a.length;++d)c=a[d],e={},"/"==c?b.push(c):CKEDITOR.tools.isArray(c)?(k(e,CKEDITOR.tools.clone(c)),b.push(e)):c.items&&(k(e,CKEDITOR.tools.clone(c.items)),e.name=c.name,b.push(e));return b}var d=a.config.removeButtons,d=d&&d.split(","),g=a.config.toolbar;"string"==typeof g&&(g=
 a.config["toolbar_"+g]);return a.toolbar=g?b(g):c()}function f(a){return a._.toolbarGroups||(a._.toolbarGroups=[{name:"document",groups:["mode","document","doctools"]},{name:"clipboard",groups:["clipboard","undo"]},{name:"editing",groups:["find","selection","spellchecker"]},{name:"forms"},"/",{name:"basicstyles",groups:["basicstyles","cleanup"]},{name:"paragraph",groups:["list","indent","blocks","align","bidi"]},{name:"links"},{name:"insert"},"/",{name:"styles"},{name:"colors"},{name:"tools"},{name:"others"},
 {name:"about"}])}var c=function(){this.toolbars=[];this.focusCommandExecuted=!1};c.prototype.focus=function(){for(var a=0,c;c=this.toolbars[a++];)for(var e=0,f;f=c.items[e++];)if(f.focus){f.focus();return}};var e={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){a.toolbox&&(a.toolbox.focusCommandExecuted=!0,CKEDITOR.env.ie||CKEDITOR.env.air?setTimeout(function(){a.toolbox.focus()},100):a.toolbox.focus())}};CKEDITOR.plugins.add("toolbar",{requires:"button",init:function(f){var m,l=function(a,
-b){var d,c="rtl"==f.lang.dir,e=f.config.toolbarGroupCycling,r=c?37:39,c=c?39:37,e=void 0===e||e;switch(b){case 9:case CKEDITOR.SHIFT+9:for(;!d||!d.items.length;)if(d=9==b?(d?d.next:a.toolbar.next)||f.toolbox.toolbars[0]:(d?d.previous:a.toolbar.previous)||f.toolbox.toolbars[f.toolbox.toolbars.length-1],d.items.length)for(a=d.items[m?d.items.length-1:0];a&&!a.focus;)(a=m?a.previous:a.next)||(d=0);a&&a.focus();return!1;case r:d=a;do d=d.next,!d&&e&&(d=a.toolbar.items[0]);while(d&&!d.focus);d?d.focus():
-l(a,9);return!1;case 40:return a.button&&a.button.hasArrow?(f.once("panelShow",function(a){a.data._.panel._.currentBlock.onKeyDown(40)}),a.execute()):l(a,40==b?r:c),!1;case c:case 38:d=a;do d=d.previous,!d&&e&&(d=a.toolbar.items[a.toolbar.items.length-1]);while(d&&!d.focus);d?d.focus():(m=1,l(a,CKEDITOR.SHIFT+9),m=0);return!1;case 27:return f.focus(),!1;case 13:case 32:return a.execute(),!1}return!0};f.on("uiSpace",function(e){if(e.data.space==f.config.toolbarLocation){e.removeListener();f.toolbox=
-new c;var b=CKEDITOR.tools.getNextId(),d=['\x3cspan id\x3d"',b,'" class\x3d"cke_voice_label"\x3e',f.lang.toolbar.toolbars,"\x3c/span\x3e",'\x3cspan id\x3d"'+f.ui.spaceId("toolbox")+'" class\x3d"cke_toolbox" role\x3d"group" aria-labelledby\x3d"',b,'" onmousedown\x3d"return false;"\x3e'],b=!1!==f.config.toolbarStartupExpanded,g,m;f.config.toolbarCanCollapse&&f.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&d.push('\x3cspan class\x3d"cke_toolbox_main"'+(b?"\x3e":' style\x3d"display:none"\x3e'));for(var r=
-f.toolbox.toolbars,v=a(f),u=0;u<v.length;u++){var n,q=0,x,z=v[u],A;if(z)if(g&&(d.push("\x3c/span\x3e"),m=g=0),"/"===z)d.push('\x3cspan class\x3d"cke_toolbar_break"\x3e\x3c/span\x3e');else{A=z.items||z;for(var t=0;t<A.length;t++){var w=A[t],D;if(w){var B=function(a){a=a.render(f,d);y=q.items.push(a)-1;0<y&&(a.previous=q.items[y-1],a.previous.next=a);a.toolbar=q;a.onkey=l;a.onfocus=function(){f.toolbox.focusCommandExecuted||f.focus()}};if(w.type==CKEDITOR.UI_SEPARATOR)m=g&&w;else{D=!1!==w.canGroup;
-if(!q){n=CKEDITOR.tools.getNextId();q={id:n,items:[]};x=z.name&&(f.lang.toolbar.toolbarGroups[z.name]||z.name);d.push('\x3cspan id\x3d"',n,'" class\x3d"cke_toolbar"',x?' aria-labelledby\x3d"'+n+'_label"':"",' role\x3d"toolbar"\x3e');x&&d.push('\x3cspan id\x3d"',n,'_label" class\x3d"cke_voice_label"\x3e',x,"\x3c/span\x3e");d.push('\x3cspan class\x3d"cke_toolbar_start"\x3e\x3c/span\x3e');var y=r.push(q)-1;0<y&&(q.previous=r[y-1],q.previous.next=q)}D?g||(d.push('\x3cspan class\x3d"cke_toolgroup" role\x3d"presentation"\x3e'),
-g=1):g&&(d.push("\x3c/span\x3e"),g=0);m&&(B(m),m=0);B(w)}}}g&&(d.push("\x3c/span\x3e"),m=g=0);q&&d.push('\x3cspan class\x3d"cke_toolbar_end"\x3e\x3c/span\x3e\x3c/span\x3e')}}f.config.toolbarCanCollapse&&d.push("\x3c/span\x3e");if(f.config.toolbarCanCollapse&&f.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var C=CKEDITOR.tools.addFunction(function(){f.execCommand("toolbarCollapse")});f.on("destroy",function(){CKEDITOR.tools.removeFunction(C)});f.addCommand("toolbarCollapse",{readOnly:1,exec:function(a){var b=
+b){var d,c="rtl"==f.lang.dir,e=f.config.toolbarGroupCycling,u=c?37:39,c=c?39:37,e=void 0===e||e;switch(b){case 9:case CKEDITOR.SHIFT+9:for(;!d||!d.items.length;)if(d=9==b?(d?d.next:a.toolbar.next)||f.toolbox.toolbars[0]:(d?d.previous:a.toolbar.previous)||f.toolbox.toolbars[f.toolbox.toolbars.length-1],d.items.length)for(a=d.items[m?d.items.length-1:0];a&&!a.focus;)(a=m?a.previous:a.next)||(d=0);a&&a.focus();return!1;case u:d=a;do d=d.next,!d&&e&&(d=a.toolbar.items[0]);while(d&&!d.focus);d?d.focus():
+l(a,9);return!1;case 40:return a.button&&a.button.hasArrow?(f.once("panelShow",function(a){a.data._.panel._.currentBlock.onKeyDown(40)}),a.execute()):l(a,40==b?u:c),!1;case c:case 38:d=a;do d=d.previous,!d&&e&&(d=a.toolbar.items[a.toolbar.items.length-1]);while(d&&!d.focus);d?d.focus():(m=1,l(a,CKEDITOR.SHIFT+9),m=0);return!1;case 27:return f.focus(),!1;case 13:case 32:return a.execute(),!1}return!0};f.on("uiSpace",function(e){if(e.data.space==f.config.toolbarLocation){e.removeListener();f.toolbox=
+new c;var b=CKEDITOR.tools.getNextId(),d=['\x3cspan id\x3d"',b,'" class\x3d"cke_voice_label"\x3e',f.lang.toolbar.toolbars,"\x3c/span\x3e",'\x3cspan id\x3d"'+f.ui.spaceId("toolbox")+'" class\x3d"cke_toolbox" role\x3d"group" aria-labelledby\x3d"',b,'" onmousedown\x3d"return false;"\x3e'],b=!1!==f.config.toolbarStartupExpanded,g,m;f.config.toolbarCanCollapse&&f.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&d.push('\x3cspan class\x3d"cke_toolbox_main"'+(b?"\x3e":' style\x3d"display:none"\x3e'));for(var u=
+f.toolbox.toolbars,v=a(f),r=0;r<v.length;r++){var n,q=0,w,A=v[r],B;if(A)if(g&&(d.push("\x3c/span\x3e"),m=g=0),"/"===A)d.push('\x3cspan class\x3d"cke_toolbar_break"\x3e\x3c/span\x3e');else{B=A.items||A;for(var t=0;t<B.length;t++){var x=B[t],D;if(x){var y=function(a){a=a.render(f,d);z=q.items.push(a)-1;0<z&&(a.previous=q.items[z-1],a.previous.next=a);a.toolbar=q;a.onkey=l;a.onfocus=function(){f.toolbox.focusCommandExecuted||f.focus()}};if(x.type==CKEDITOR.UI_SEPARATOR)m=g&&x;else{D=!1!==x.canGroup;
+if(!q){n=CKEDITOR.tools.getNextId();q={id:n,items:[]};w=A.name&&(f.lang.toolbar.toolbarGroups[A.name]||A.name);d.push('\x3cspan id\x3d"',n,'" class\x3d"cke_toolbar"',w?' aria-labelledby\x3d"'+n+'_label"':"",' role\x3d"toolbar"\x3e');w&&d.push('\x3cspan id\x3d"',n,'_label" class\x3d"cke_voice_label"\x3e',w,"\x3c/span\x3e");d.push('\x3cspan class\x3d"cke_toolbar_start"\x3e\x3c/span\x3e');var z=u.push(q)-1;0<z&&(q.previous=u[z-1],q.previous.next=q)}D?g||(d.push('\x3cspan class\x3d"cke_toolgroup" role\x3d"presentation"\x3e'),
+g=1):g&&(d.push("\x3c/span\x3e"),g=0);m&&(y(m),m=0);y(x)}}}g&&(d.push("\x3c/span\x3e"),m=g=0);q&&d.push('\x3cspan class\x3d"cke_toolbar_end"\x3e\x3c/span\x3e\x3c/span\x3e')}}f.config.toolbarCanCollapse&&d.push("\x3c/span\x3e");if(f.config.toolbarCanCollapse&&f.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var C=CKEDITOR.tools.addFunction(function(){f.execCommand("toolbarCollapse")});f.on("destroy",function(){CKEDITOR.tools.removeFunction(C)});f.addCommand("toolbarCollapse",{readOnly:1,exec:function(a){var b=
 a.ui.space("toolbar_collapser"),d=b.getPrevious(),c=a.ui.space("contents"),e=d.getParent(),g=parseInt(c.$.style.height,10),f=e.$.offsetHeight,h=b.hasClass("cke_toolbox_collapser_min");h?(d.show(),b.removeClass("cke_toolbox_collapser_min"),b.setAttribute("title",a.lang.toolbar.toolbarCollapse)):(d.hide(),b.addClass("cke_toolbox_collapser_min"),b.setAttribute("title",a.lang.toolbar.toolbarExpand));b.getFirst().setText(h?"▲":"◀");c.setStyle("height",g-(e.$.offsetHeight-f)+"px");a.fire("resize",{outerHeight:a.container.$.offsetHeight,
 contentsHeight:c.$.offsetHeight,outerWidth:a.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}});f.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");d.push('\x3ca title\x3d"'+(b?f.lang.toolbar.toolbarCollapse:f.lang.toolbar.toolbarExpand)+'" id\x3d"'+f.ui.spaceId("toolbar_collapser")+'" tabIndex\x3d"-1" class\x3d"cke_toolbox_collapser');b||d.push(" cke_toolbox_collapser_min");d.push('" onclick\x3d"CKEDITOR.tools.callFunction('+C+')"\x3e','\x3cspan class\x3d"cke_arrow"\x3e\x26#9650;\x3c/span\x3e',
 "\x3c/a\x3e")}d.push("\x3c/span\x3e");e.data.html+=d.join("")}});f.on("destroy",function(){if(this.toolbox){var a,b=0,d,c,e;for(a=this.toolbox.toolbars;b<a.length;b++)for(c=a[b].items,d=0;d<c.length;d++)e=c[d],e.clickFn&&CKEDITOR.tools.removeFunction(e.clickFn),e.keyDownFn&&CKEDITOR.tools.removeFunction(e.keyDownFn)}});f.on("uiReady",function(){var a=f.ui.space("toolbox");a&&f.focusManager.add(a,1)});f.addCommand("toolbarFocus",e);f.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");f.ui.add("-",CKEDITOR.UI_SEPARATOR,
 {});f.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,b){b.push('\x3cspan class\x3d"cke_toolbar_separator" role\x3d"separator"\x3e\x3c/span\x3e');return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,c,e){var k=f(this.editor),b=0===c,d={name:a};if(e){if(e=CKEDITOR.tools.search(k,function(a){return a.name==e})){!e.groups&&(e.groups=[]);if(c&&(c=CKEDITOR.tools.indexOf(e.groups,c),0<=c)){e.groups.splice(c+1,0,a);return}b?e.groups.splice(0,0,a):e.groups.push(a);
 return}c=null}c&&(c=CKEDITOR.tools.indexOf(k,function(a){return a.name==c}));b?k.splice(0,0,a):"number"==typeof c?k.splice(c+1,0,d):k.push(a)}}(),CKEDITOR.UI_SEPARATOR="separator",CKEDITOR.config.toolbarLocation="top",function(){function a(a,c){function l(b){b=g.list[b];if(b.equals(a.editable())||"true"==b.getAttribute("contenteditable")){var d=a.createRange();d.selectNodeContents(b);d.select()}else a.getSelection().selectElement(b);a.focus()}function k(){d&&d.setHtml('\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');
-delete g.list}var b=a.ui.spaceId("path"),d,g=a._.elementsPath,p=g.idBase;c.html+='\x3cspan id\x3d"'+b+'_label" class\x3d"cke_voice_label"\x3e'+a.lang.elementspath.eleLabel+'\x3c/span\x3e\x3cspan id\x3d"'+b+'" class\x3d"cke_path" role\x3d"group" aria-labelledby\x3d"'+b+'_label"\x3e\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e';a.on("uiReady",function(){var b=a.ui.space("path");b&&a.focusManager.add(b,1)});g.onClick=l;var r=CKEDITOR.tools.addFunction(l),v=CKEDITOR.tools.addFunction(function(b,
+delete g.list}var b=a.ui.spaceId("path"),d,g=a._.elementsPath,p=g.idBase;c.html+='\x3cspan id\x3d"'+b+'_label" class\x3d"cke_voice_label"\x3e'+a.lang.elementspath.eleLabel+'\x3c/span\x3e\x3cspan id\x3d"'+b+'" class\x3d"cke_path" role\x3d"group" aria-labelledby\x3d"'+b+'_label"\x3e\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e';a.on("uiReady",function(){var b=a.ui.space("path");b&&a.focusManager.add(b,1)});g.onClick=l;var u=CKEDITOR.tools.addFunction(l),v=CKEDITOR.tools.addFunction(function(b,
 d){var c=g.idBase,e;d=new CKEDITOR.dom.event(d);e="rtl"==a.lang.dir;switch(d.getKeystroke()){case e?39:37:case 9:return(e=CKEDITOR.document.getById(c+(b+1)))||(e=CKEDITOR.document.getById(c+"0")),e.focus(),!1;case e?37:39:case CKEDITOR.SHIFT+9:return(e=CKEDITOR.document.getById(c+(b-1)))||(e=CKEDITOR.document.getById(c+(g.list.length-1))),e.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return l(b),!1}return!0});a.on("selectionChange",function(){for(var c=[],f=g.list=[],k=[],l=g.filters,m=
-!0,A=a.elementPath().elements,t,w=A.length;w--;){var D=A[w],B=0;t=D.data("cke-display-name")?D.data("cke-display-name"):D.data("cke-real-element-type")?D.data("cke-real-element-type"):D.getName();(m=D.hasAttribute("contenteditable")?"true"==D.getAttribute("contenteditable"):m)||D.hasAttribute("contenteditable")||(B=1);for(var y=0;y<l.length;y++){var C=l[y](D,t);if(!1===C){B=1;break}t=C||t}B||(f.unshift(D),k.unshift(t))}f=f.length;for(l=0;l<f;l++)t=k[l],m=a.lang.elementspath.eleTitle.replace(/%1/,
-t),t=e.output({id:p+l,label:m,text:t,jsTitle:"javascript:void('"+t+"')",index:l,keyDownFn:v,clickFn:r}),c.unshift(t);d||(d=CKEDITOR.document.getById(b));k=d;k.setHtml(c.join("")+'\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');a.fire("elementsPathUpdate",{space:k})});a.on("readOnly",k);a.on("contentDomUnload",k);a.addCommand("elementsPathFocus",f.toolbarFocus);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var f={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+
+!0,B=a.elementPath().elements,t,x=B.length;x--;){var D=B[x],y=0;t=D.data("cke-display-name")?D.data("cke-display-name"):D.data("cke-real-element-type")?D.data("cke-real-element-type"):D.getName();(m=D.hasAttribute("contenteditable")?"true"==D.getAttribute("contenteditable"):m)||D.hasAttribute("contenteditable")||(y=1);for(var z=0;z<l.length;z++){var C=l[z](D,t);if(!1===C){y=1;break}t=C||t}y||(f.unshift(D),k.unshift(t))}f=f.length;for(l=0;l<f;l++)t=k[l],m=a.lang.elementspath.eleTitle.replace(/%1/,
+t),t=e.output({id:p+l,label:m,text:t,jsTitle:"javascript:void('"+t+"')",index:l,keyDownFn:v,clickFn:u}),c.unshift(t);d||(d=CKEDITOR.document.getById(b));k=d;k.setHtml(c.join("")+'\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');a.fire("elementsPathUpdate",{space:k})});a.on("readOnly",k);a.on("contentDomUnload",k);a.addCommand("elementsPathFocus",f.toolbarFocus);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var f={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+
 "0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}}},c="";CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(c+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var e=CKEDITOR.addTemplate("pathItem",'\x3ca id\x3d"{id}" href\x3d"{jsTitle}" tabindex\x3d"-1" class\x3d"cke_path_item" title\x3d"{label}"'+c+' hidefocus\x3d"true"  onkeydown\x3d"return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role\x3d"button" aria-label\x3d"{label}"\x3e{text}\x3c/a\x3e');
 CKEDITOR.plugins.add("elementspath",{init:function(c){c._.elementsPath={idBase:"cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_",filters:[]};c.on("uiSpace",function(e){"bottom"==e.data.space&&a(c,e.data)})}})}(),function(){function a(a,b,c){c=a.config.forceEnterMode||c;"wysiwyg"==a.mode&&(b||(b=a.activeEnterMode),a.elementPath().isContextFor("p")||(b=CKEDITOR.ENTER_BR,c=1),a.fire("saveSnapshot"),b==CKEDITOR.ENTER_BR?l(a,b,null,c):k(a,b,null,c),a.fire("saveSnapshot"))}function f(a){a=a.getSelection().getRanges(!0);
 for(var b=a.length-1;0<b;b--)a[b].deleteContents();return a[0]}function c(a){var b=a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")},!0);if(a.root.equals(b))return a;b=new CKEDITOR.dom.range(b);b.moveToRange(a);return b}CKEDITOR.plugins.add("enterkey",{init:function(b){b.addCommand("enter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){a(b)}});b.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){a(b,
-b.activeShiftEnterMode,1)}});b.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var e=CKEDITOR.dom.walker.whitespaces(),h=CKEDITOR.dom.walker.bookmark();CKEDITOR.plugins.enterkey={enterBlock:function(a,g,k,m){if(k=k||f(a)){k=c(k);var v=k.document,u=k.checkStartOfBlock(),n=k.checkEndOfBlock(),q=a.elementPath(k.startContainer),x=q.block,z=g==CKEDITOR.ENTER_DIV?"div":"p",A;if(u&&n){if(x&&(x.is("li")||x.getParent().is("li"))){x.is("li")||(x=x.getParent());k=x.getParent();A=k.getParent();
-m=!x.hasPrevious();var t=!x.hasNext(),z=a.getSelection(),w=z.createBookmarks(),u=x.getDirection(1),n=x.getAttribute("class"),D=x.getAttribute("style"),B=A.getDirection(1)!=u;a=a.enterMode!=CKEDITOR.ENTER_BR||B||D||n;if(A.is("li"))m||t?(m&&t&&k.remove(),x[t?"insertAfter":"insertBefore"](A)):x.breakParent(A);else{if(a)if(q.block.is("li")?(A=v.createElement(g==CKEDITOR.ENTER_P?"p":"div"),B&&A.setAttribute("dir",u),D&&A.setAttribute("style",D),n&&A.setAttribute("class",n),x.moveChildren(A)):A=q.block,
-m||t)A[m?"insertBefore":"insertAfter"](k);else x.breakParent(k),A.insertAfter(k);else if(x.appendBogus(!0),m||t)for(;v=x[m?"getFirst":"getLast"]();)v[m?"insertBefore":"insertAfter"](k);else for(x.breakParent(k);v=x.getLast();)v.insertAfter(k);x.remove()}z.selectBookmarks(w);return}if(x&&x.getParent().is("blockquote")){x.breakParent(x.getParent());x.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1))||x.getPrevious().remove();x.getNext().getFirst(CKEDITOR.dom.walker.invisible(1))||x.getNext().remove();
-k.moveToElementEditStart(x);k.select();return}}else if(x&&x.is("pre")&&!n){l(a,g,k,m);return}if(u=k.splitBlock(z)){g=u.previousBlock;x=u.nextBlock;q=u.wasStartOfBlock;a=u.wasEndOfBlock;x?(w=x.getParent(),w.is("li")&&(x.breakParent(w),x.move(x.getNext(),1))):g&&(w=g.getParent())&&w.is("li")&&(g.breakParent(w),w=g.getNext(),k.moveToElementEditStart(w),g.move(g.getPrevious()));if(q||a){if(g){if(g.is("li")||!b.test(g.getName())&&!g.is("pre"))A=g.clone()}else x&&(A=x.clone());A?m&&!A.is("li")&&A.renameNode(z):
-w&&w.is("li")?A=w:(A=v.createElement(z),g&&(t=g.getDirection())&&A.setAttribute("dir",t));if(v=u.elementPath)for(m=0,z=v.elements.length;m<z;m++){w=v.elements[m];if(w.equals(v.block)||w.equals(v.blockLimit))break;CKEDITOR.dtd.$removeEmpty[w.getName()]&&(w=w.clone(),A.moveChildren(w),A.append(w))}A.appendBogus();A.getParent()||k.insertNode(A);A.is("li")&&A.removeAttribute("value");!CKEDITOR.env.ie||!q||a&&g.getChildCount()||(k.moveToElementEditStart(a?g:A),k.select());k.moveToElementEditStart(q&&!a?
-x:A)}else x.is("li")&&(A=k.clone(),A.selectNodeContents(x),A=new CKEDITOR.dom.walker(A),A.evaluator=function(a){return!(h(a)||e(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty))},(w=A.next())&&w.type==CKEDITOR.NODE_ELEMENT&&w.is("ul","ol")&&(CKEDITOR.env.needsBrFiller?v.createElement("br"):v.createText(" ")).insertBefore(w)),x&&k.moveToElementEditStart(x);k.select();k.scrollIntoView()}}},enterBr:function(a,c,e,h){if(e=e||f(a)){var l=e.document,
-m=e.checkEndOfBlock(),n=new CKEDITOR.dom.elementPath(a.getSelection().getStartElement()),q=n.block,x=q&&n.block.getName();h||"li"!=x?(!h&&m&&b.test(x)?(m=q.getDirection())?(l=l.createElement("div"),l.setAttribute("dir",m),l.insertAfter(q),e.setStart(l,0)):(l.createElement("br").insertAfter(q),CKEDITOR.env.gecko&&l.createText("").insertAfter(q),e.setStartAt(q.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(a="pre"==x&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?
+b.activeShiftEnterMode,1)}});b.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var e=CKEDITOR.dom.walker.whitespaces(),h=CKEDITOR.dom.walker.bookmark();CKEDITOR.plugins.enterkey={enterBlock:function(a,g,k,m){if(k=k||f(a)){k=c(k);var v=k.document,r=k.checkStartOfBlock(),n=k.checkEndOfBlock(),q=a.elementPath(k.startContainer),w=q.block,A=g==CKEDITOR.ENTER_DIV?"div":"p",B;if(r&&n){if(w&&(w.is("li")||w.getParent().is("li"))){w.is("li")||(w=w.getParent());k=w.getParent();B=k.getParent();
+m=!w.hasPrevious();var t=!w.hasNext(),A=a.getSelection(),x=A.createBookmarks(),r=w.getDirection(1),n=w.getAttribute("class"),D=w.getAttribute("style"),y=B.getDirection(1)!=r;a=a.enterMode!=CKEDITOR.ENTER_BR||y||D||n;if(B.is("li"))m||t?(m&&t&&k.remove(),w[t?"insertAfter":"insertBefore"](B)):w.breakParent(B);else{if(a)if(q.block.is("li")?(B=v.createElement(g==CKEDITOR.ENTER_P?"p":"div"),y&&B.setAttribute("dir",r),D&&B.setAttribute("style",D),n&&B.setAttribute("class",n),w.moveChildren(B)):B=q.block,
+m||t)B[m?"insertBefore":"insertAfter"](k);else w.breakParent(k),B.insertAfter(k);else if(w.appendBogus(!0),m||t)for(;v=w[m?"getFirst":"getLast"]();)v[m?"insertBefore":"insertAfter"](k);else for(w.breakParent(k);v=w.getLast();)v.insertAfter(k);w.remove()}A.selectBookmarks(x);return}if(w&&w.getParent().is("blockquote")){w.breakParent(w.getParent());w.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1))||w.getPrevious().remove();w.getNext().getFirst(CKEDITOR.dom.walker.invisible(1))||w.getNext().remove();
+k.moveToElementEditStart(w);k.select();return}}else if(w&&w.is("pre")&&!n){l(a,g,k,m);return}if(r=k.splitBlock(A)){g=r.previousBlock;w=r.nextBlock;q=r.wasStartOfBlock;a=r.wasEndOfBlock;w?(x=w.getParent(),x.is("li")&&(w.breakParent(x),w.move(w.getNext(),1))):g&&(x=g.getParent())&&x.is("li")&&(g.breakParent(x),x=g.getNext(),k.moveToElementEditStart(x),g.move(g.getPrevious()));if(q||a){if(g){if(g.is("li")||!b.test(g.getName())&&!g.is("pre"))B=g.clone()}else w&&(B=w.clone());B?m&&!B.is("li")&&B.renameNode(A):
+x&&x.is("li")?B=x:(B=v.createElement(A),g&&(t=g.getDirection())&&B.setAttribute("dir",t));if(v=r.elementPath)for(m=0,A=v.elements.length;m<A;m++){x=v.elements[m];if(x.equals(v.block)||x.equals(v.blockLimit))break;CKEDITOR.dtd.$removeEmpty[x.getName()]&&(x=x.clone(),B.moveChildren(x),B.append(x))}B.appendBogus();B.getParent()||k.insertNode(B);B.is("li")&&B.removeAttribute("value");!CKEDITOR.env.ie||!q||a&&g.getChildCount()||(k.moveToElementEditStart(a?g:B),k.select());k.moveToElementEditStart(q&&!a?
+w:B)}else w.is("li")&&(B=k.clone(),B.selectNodeContents(w),B=new CKEDITOR.dom.walker(B),B.evaluator=function(a){return!(h(a)||e(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty))},(x=B.next())&&x.type==CKEDITOR.NODE_ELEMENT&&x.is("ul","ol")&&(CKEDITOR.env.needsBrFiller?v.createElement("br"):v.createText(" ")).insertBefore(x)),w&&k.moveToElementEditStart(w);k.select();k.scrollIntoView()}}},enterBr:function(a,c,e,h){if(e=e||f(a)){var l=e.document,
+m=e.checkEndOfBlock(),n=new CKEDITOR.dom.elementPath(a.getSelection().getStartElement()),q=n.block,w=q&&n.block.getName();h||"li"!=w?(!h&&m&&b.test(w)?(m=q.getDirection())?(l=l.createElement("div"),l.setAttribute("dir",m),l.insertAfter(q),e.setStart(l,0)):(l.createElement("br").insertAfter(q),CKEDITOR.env.gecko&&l.createText("").insertAfter(q),e.setStartAt(q.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(a="pre"==w&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?
 l.createText("\r"):l.createElement("br"),e.deleteContents(),e.insertNode(a),CKEDITOR.env.needsBrFiller?(l.createText("﻿").insertAfter(a),m&&(q||n.blockLimit).appendBogus(),a.getNext().$.nodeValue="",e.setStartAt(a.getNext(),CKEDITOR.POSITION_AFTER_START)):e.setStartAt(a,CKEDITOR.POSITION_AFTER_END)),e.collapse(!0),e.select(),e.scrollIntoView()):k(a,c,e,h)}}};var m=CKEDITOR.plugins.enterkey,l=m.enterBr,k=m.enterBlock,b=/^h[1-6]$/}(),function(){function a(a,c){var e={},h=[],m={nbsp:" ",shy:"­",gt:"\x3e",
 lt:"\x3c",amp:"\x26",apos:"'",quot:'"'};a=a.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(a,b){var f=c?"\x26"+b+";":m[b];e[f]=c?m[b]:"\x26"+b+";";h.push(f);return""});if(!c&&a){a=a.split(",");var l=document.createElement("div"),k;l.innerHTML="\x26"+a.join(";\x26")+";";k=l.innerHTML;l=null;for(l=0;l<k.length;l++){var b=k.charAt(l);e[b]="\x26"+a[l]+";";h.push(b)}}e.regex=h.join(c?"|":"");return e}CKEDITOR.plugins.add("entities",{afterInit:function(f){function c(a){return b[a]}function e(a){return"force"!=
 h.entities_processNumerical&&l[a]?l[a]:"\x26#"+a.charCodeAt(0)+";"}var h=f.config;if(f=(f=f.dataProcessor)&&f.htmlFilter){var m=[];!1!==h.basicEntities&&m.push("nbsp,gt,lt,amp");h.entities&&(m.length&&m.push("quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro"),
@@ -713,14 +712,14 @@ CKEDITOR.config.entities_additional="#39",CKEDITOR.plugins.add("popup"),CKEDITOR
 f)/2,10);e=(e||"location\x3dno,menubar\x3dno,toolbar\x3dno,dependent\x3dyes,minimizable\x3dno,modal\x3dyes,alwaysRaised\x3dyes,resizable\x3dyes,scrollbars\x3dyes")+",width\x3d"+f+",height\x3d"+c+",top\x3d"+h+",left\x3d"+m;var l=window.open("",null,e,!0);if(!l)return!1;try{-1==navigator.userAgent.toLowerCase().indexOf(" chrome/")&&(l.moveTo(m,h),l.resizeTo(f,c)),l.focus(),l.location.href=a}catch(k){window.open(a,null,e,!0)}return!0}}),function(){function a(a,d){var c=[];if(d)for(var e in d)c.push(e+
 "\x3d"+encodeURIComponent(d[e]));else return a;return a+(-1!=a.indexOf("?")?"\x26":"?")+c.join("\x26")}function f(a){a+="";return a.charAt(0).toUpperCase()+a.substr(1)}function c(){var b=this.getDialog(),d=b.getParentEditor();d._.filebrowserSe=this;var c=d.config["filebrowser"+f(b.getName())+"WindowWidth"]||d.config.filebrowserWindowWidth||"80%",b=d.config["filebrowser"+f(b.getName())+"WindowHeight"]||d.config.filebrowserWindowHeight||"70%",e=this.filebrowser.params||{};e.CKEditor=d.name;e.CKEditorFuncNum=
 d._.filebrowserFn;e.langCode||(e.langCode=d.langCode);e=a(this.filebrowser.url,e);d.popup(e,c,b,d.config.filebrowserWindowFeatures||d.config.fileBrowserWindowFeatures)}function e(){var a=this.getDialog();a.getParentEditor()._.filebrowserSe=this;return a.getContentElement(this["for"][0],this["for"][1]).getInputElement().$.value&&a.getContentElement(this["for"][0],this["for"][1]).getAction()?!0:!1}function h(b,d,c){var e=c.params||{};e.CKEditor=b.name;e.CKEditorFuncNum=b._.filebrowserFn;e.langCode||
-(e.langCode=b.langCode);d.action=a(c.url,e);d.filebrowser=c}function m(a,d,g,k){if(k&&k.length)for(var l,v=k.length;v--;)if(l=k[v],"hbox"!=l.type&&"vbox"!=l.type&&"fieldset"!=l.type||m(a,d,g,l.children),l.filebrowser)if("string"==typeof l.filebrowser&&(l.filebrowser={action:"fileButton"==l.type?"QuickUpload":"Browse",target:l.filebrowser}),"Browse"==l.filebrowser.action){var u=l.filebrowser.url;void 0===u&&(u=a.config["filebrowser"+f(d)+"BrowseUrl"],void 0===u&&(u=a.config.filebrowserBrowseUrl));
-u&&(l.onClick=c,l.filebrowser.url=u,l.hidden=!1)}else if("QuickUpload"==l.filebrowser.action&&l["for"]&&(u=l.filebrowser.url,void 0===u&&(u=a.config["filebrowser"+f(d)+"UploadUrl"],void 0===u&&(u=a.config.filebrowserUploadUrl)),u)){var n=l.onClick;l.onClick=function(a){var b=a.sender;if(n&&!1===n.call(b,a))return!1;if(e.call(b,a)){a=b.getDialog().getContentElement(this["for"][0],this["for"][1]).getInputElement();if(b=new CKEDITOR.dom.element(a.$.form))(a=b.$.elements.ckCsrfToken)?a=new CKEDITOR.dom.element(a):
-(a=new CKEDITOR.dom.element("input"),a.setAttributes({name:"ckCsrfToken",type:"hidden"}),b.append(a)),a.setAttribute("value",CKEDITOR.tools.getCsrfToken());return!0}return!1};l.filebrowser.url=u;l.hidden=!1;h(a,g.getContents(l["for"][0]).get(l["for"][1]),l.filebrowser)}}function l(a,d,c){if(-1!==c.indexOf(";")){c=c.split(";");for(var e=0;e<c.length;e++)if(l(a,d,c[e]))return!0;return!1}return(a=a.getContents(d).get(c).filebrowser)&&a.url}function k(a,d){var c=this._.filebrowserSe.getDialog(),e=this._.filebrowserSe["for"],
+(e.langCode=b.langCode);d.action=a(c.url,e);d.filebrowser=c}function m(a,d,g,k){if(k&&k.length)for(var l,v=k.length;v--;)if(l=k[v],"hbox"!=l.type&&"vbox"!=l.type&&"fieldset"!=l.type||m(a,d,g,l.children),l.filebrowser)if("string"==typeof l.filebrowser&&(l.filebrowser={action:"fileButton"==l.type?"QuickUpload":"Browse",target:l.filebrowser}),"Browse"==l.filebrowser.action){var r=l.filebrowser.url;void 0===r&&(r=a.config["filebrowser"+f(d)+"BrowseUrl"],void 0===r&&(r=a.config.filebrowserBrowseUrl));
+r&&(l.onClick=c,l.filebrowser.url=r,l.hidden=!1)}else if("QuickUpload"==l.filebrowser.action&&l["for"]&&(r=l.filebrowser.url,void 0===r&&(r=a.config["filebrowser"+f(d)+"UploadUrl"],void 0===r&&(r=a.config.filebrowserUploadUrl)),r)){var n=l.onClick;l.onClick=function(a){var b=a.sender;if(n&&!1===n.call(b,a))return!1;if(e.call(b,a)){a=b.getDialog().getContentElement(this["for"][0],this["for"][1]).getInputElement();if(b=new CKEDITOR.dom.element(a.$.form))(a=b.$.elements.ckCsrfToken)?a=new CKEDITOR.dom.element(a):
+(a=new CKEDITOR.dom.element("input"),a.setAttributes({name:"ckCsrfToken",type:"hidden"}),b.append(a)),a.setAttribute("value",CKEDITOR.tools.getCsrfToken());return!0}return!1};l.filebrowser.url=r;l.hidden=!1;h(a,g.getContents(l["for"][0]).get(l["for"][1]),l.filebrowser)}}function l(a,d,c){if(-1!==c.indexOf(";")){c=c.split(";");for(var e=0;e<c.length;e++)if(l(a,d,c[e]))return!0;return!1}return(a=a.getContents(d).get(c).filebrowser)&&a.url}function k(a,d){var c=this._.filebrowserSe.getDialog(),e=this._.filebrowserSe["for"],
 f=this._.filebrowserSe.filebrowser.onSelect;e&&c.getContentElement(e[0],e[1]).reset();if("function"!=typeof d||!1!==d.call(this._.filebrowserSe))if(!f||!1!==f.call(this._.filebrowserSe,a,d))if("string"==typeof d&&d&&alert(d),a&&(e=this._.filebrowserSe,c=e.getDialog(),e=e.filebrowser.target||null))if(e=e.split(":"),f=c.getContentElement(e[0],e[1]))f.setValue(a),c.selectPage(e[0])}CKEDITOR.plugins.add("filebrowser",{requires:"popup",init:function(a){a._.filebrowserFn=CKEDITOR.tools.addFunction(k,a);
 a.on("destroy",function(){CKEDITOR.tools.removeFunction(this._.filebrowserFn)})}});CKEDITOR.on("dialogDefinition",function(a){if(a.editor.plugins.filebrowser)for(var d=a.data.definition,c,e=0;e<d.contents.length;++e)if(c=d.contents[e])m(a.editor,a.data.name,d,c.elements),c.hidden&&c.filebrowser&&(c.hidden=!l(d,c.id,c.filebrowser))})}(),function(){function a(a){var h=a.config,m=a.fire("uiSpace",{space:"top",html:""}).html,l=function(){function d(a,e,g){b.setStyle(e,c(g));b.setStyle("position",a)}function g(a){var b=
-m.getDocumentPosition();switch(a){case "top":d("absolute","top",b.y-z-w);break;case "pin":d("fixed","top",B);break;case "bottom":d("absolute","top",b.y+(q.height||q.bottom-q.top)+w)}k=a}var k,m,n,q,x,z,A,t=h.floatSpaceDockedOffsetX||0,w=h.floatSpaceDockedOffsetY||0,D=h.floatSpacePinnedOffsetX||0,B=h.floatSpacePinnedOffsetY||0;return function(d){if(m=a.editable()){var p=d&&"focus"==d.name;p&&b.show();a.fire("floatingSpaceLayout",{show:p});b.removeStyle("left");b.removeStyle("right");n=b.getClientRect();
-q=m.getClientRect();x=f.getViewPaneSize();z=n.height;A="pageXOffset"in f.$?f.$.pageXOffset:CKEDITOR.document.$.documentElement.scrollLeft;k?(z+w<=q.top?g("top"):z+w>x.height-q.bottom?g("pin"):g("bottom"),d=x.width/2,d=h.floatSpacePreferRight?"right":0<q.left&&q.right<x.width&&q.width>n.width?"rtl"==h.contentsLangDirection?"right":"left":d-q.left>q.right-d?"left":"right",n.width>x.width?(d="left",p=0):(p="left"==d?0<q.left?q.left:0:q.right<x.width?x.width-q.right:0,p+n.width>x.width&&(d="left"==d?
-"right":"left",p=0)),b.setStyle(d,c(("pin"==k?D:t)+p+("pin"==k?0:"left"==d?A:-A)))):(k="pin",g("pin"),l(d))}}}();if(m){var k=new CKEDITOR.template('\x3cdiv id\x3d"cke_{name}" class\x3d"cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_float cke_{langDir} '+CKEDITOR.env.cssClass+'" dir\x3d"{langDir}" title\x3d"'+(CKEDITOR.env.gecko?" ":"")+'" lang\x3d"{langCode}" role\x3d"application" style\x3d"{style}"'+(a.title?' aria-labelledby\x3d"cke_{name}_arialbl"':" ")+"\x3e"+(a.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':
+m.getDocumentPosition();switch(a){case "top":d("absolute","top",b.y-A-x);break;case "pin":d("fixed","top",y);break;case "bottom":d("absolute","top",b.y+(q.height||q.bottom-q.top)+x)}k=a}var k,m,n,q,w,A,B,t=h.floatSpaceDockedOffsetX||0,x=h.floatSpaceDockedOffsetY||0,D=h.floatSpacePinnedOffsetX||0,y=h.floatSpacePinnedOffsetY||0;return function(d){if(m=a.editable()){var p=d&&"focus"==d.name;p&&b.show();a.fire("floatingSpaceLayout",{show:p});b.removeStyle("left");b.removeStyle("right");n=b.getClientRect();
+q=m.getClientRect();w=f.getViewPaneSize();A=n.height;B="pageXOffset"in f.$?f.$.pageXOffset:CKEDITOR.document.$.documentElement.scrollLeft;k?(A+x<=q.top?g("top"):A+x>w.height-q.bottom?g("pin"):g("bottom"),d=w.width/2,d=h.floatSpacePreferRight?"right":0<q.left&&q.right<w.width&&q.width>n.width?"rtl"==h.contentsLangDirection?"right":"left":d-q.left>q.right-d?"left":"right",n.width>w.width?(d="left",p=0):(p="left"==d?0<q.left?q.left:0:q.right<w.width?w.width-q.right:0,p+n.width>w.width&&(d="left"==d?
+"right":"left",p=0)),b.setStyle(d,c(("pin"==k?D:t)+p+("pin"==k?0:"left"==d?B:-B)))):(k="pin",g("pin"),l(d))}}}();if(m){var k=new CKEDITOR.template('\x3cdiv id\x3d"cke_{name}" class\x3d"cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_float cke_{langDir} '+CKEDITOR.env.cssClass+'" dir\x3d"{langDir}" title\x3d"'+(CKEDITOR.env.gecko?" ":"")+'" lang\x3d"{langCode}" role\x3d"application" style\x3d"{style}"'+(a.title?' aria-labelledby\x3d"cke_{name}_arialbl"':" ")+"\x3e"+(a.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':
 " ")+'\x3cdiv class\x3d"cke_inner"\x3e\x3cdiv id\x3d"{topId}" class\x3d"cke_top" role\x3d"presentation"\x3e{content}\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e'),b=CKEDITOR.document.getBody().append(CKEDITOR.dom.element.createFromHtml(k.output({content:m,id:a.id,langDir:a.lang.dir,langCode:a.langCode,name:a.name,style:"display:none;z-index:"+(h.baseFloatZIndex-1),topId:a.ui.spaceId("top"),voiceLabel:a.title}))),d=CKEDITOR.tools.eventsBuffer(500,l),g=CKEDITOR.tools.eventsBuffer(100,l);b.unselectable();b.on("mousedown",
 function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()});a.on("focus",function(b){l(b);a.on("change",d.input);f.on("scroll",g.input);f.on("resize",g.input)});a.on("blur",function(){b.hide();a.removeListener("change",d.input);f.removeListener("scroll",g.input);f.removeListener("resize",g.input)});a.on("destroy",function(){f.removeListener("scroll",g.input);f.removeListener("resize",g.input);b.clearCustomData();b.remove()});a.focusManager.hasFocus&&b.show();a.focusManager.add(b,
 1)}}var f=CKEDITOR.document.getWindow(),c=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("floatingspace",{init:function(c){c.on("loaded",function(){a(this)},null,null,20)}})}(),CKEDITOR.plugins.add("listblock",{requires:"panel",onLoad:function(){var a=CKEDITOR.addTemplate("panel-list",'\x3cul role\x3d"presentation" class\x3d"cke_panel_list"\x3e{items}\x3c/ul\x3e'),f=CKEDITOR.addTemplate("panel-list-item",'\x3cli id\x3d"{id}" class\x3d"cke_panel_listItem" role\x3dpresentation\x3e\x3ca id\x3d"{id}_option" _cke_focus\x3d1 hidefocus\x3dtrue title\x3d"{title}" href\x3d"javascript:void(\'{val}\')"  {onclick}\x3d"CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;" role\x3d"option"\x3e{text}\x3c/a\x3e\x3c/li\x3e'),
@@ -735,8 +734,8 @@ CKEDITOR.ui.richCombo.handler)}}),function(){var a='\x3cspan id\x3d"{id}" class\
 (a+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(a+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var a=a+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event,this);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan id\x3d"{id}_text" class\x3d"cke_combo_text cke_combo_inlinelabel"\x3e{label}\x3c/span\x3e\x3cspan class\x3d"cke_combo_open"\x3e\x3cspan class\x3d"cke_combo_arrow"\x3e'+
 (CKEDITOR.env.hc?"\x26#9660;":CKEDITOR.env.air?"\x26nbsp;":"")+"\x3c/span\x3e\x3c/span\x3e\x3c/a\x3e\x3c/span\x3e"),f=CKEDITOR.addTemplate("combo",a);CKEDITOR.UI_RICHCOMBO="richcombo";CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1});a=this.panel||{};delete this.panel;this.id=CKEDITOR.tools.getNextNumber();this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.className="cke_combopanel";
 a.block={multiSelect:a.multiSelect,attributes:a.attributes};a.toolbarRelated=!0;this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var e=[];this.render(a,e);return e.join("")},render:function(a,e){function h(){if(this.getState()!=CKEDITOR.TRISTATE_ON){var b=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;a.readOnly&&!this.readOnly&&(b=CKEDITOR.TRISTATE_DISABLED);this.setState(b);this.setValue("");b!=CKEDITOR.TRISTATE_DISABLED&&this.refresh&&this.refresh()}}var m=
-CKEDITOR.env,l="cke_"+this.id,k=CKEDITOR.tools.addFunction(function(b){r&&(a.unlockSelection(1),r=0);d.execute(b)},this),b=this,d={id:l,combo:this,focus:function(){CKEDITOR.document.getById(l).getChild(1).focus()},execute:function(d){var e=b._;if(e.state!=CKEDITOR.TRISTATE_DISABLED)if(b.createPanel(a),e.on)e.panel.hide();else{b.commit();var g=b.getValue();g?e.list.mark(g):e.list.unmarkAll();e.panel.showBlock(b.id,new CKEDITOR.dom.element(d),4)}},clickFn:k};a.on("activeFilterChange",h,this);a.on("mode",
-h,this);a.on("selectionChange",h,this);!this.readOnly&&a.on("readOnly",h,this);var g=CKEDITOR.tools.addFunction(function(b,e){b=new CKEDITOR.dom.event(b);var g=b.getKeystroke();if(40==g)a.once("panelShow",function(a){a.data._.panel._.currentBlock.onKeyDown(40)});switch(g){case 13:case 32:case 40:CKEDITOR.tools.callFunction(k,e);break;default:d.onkey(d,g)}b.preventDefault()}),p=CKEDITOR.tools.addFunction(function(){d.onfocus&&d.onfocus()}),r=0;d.keyDownFn=g;m={id:l,name:this.name||this.command,label:this.label,
+CKEDITOR.env,l="cke_"+this.id,k=CKEDITOR.tools.addFunction(function(b){u&&(a.unlockSelection(1),u=0);d.execute(b)},this),b=this,d={id:l,combo:this,focus:function(){CKEDITOR.document.getById(l).getChild(1).focus()},execute:function(d){var e=b._;if(e.state!=CKEDITOR.TRISTATE_DISABLED)if(b.createPanel(a),e.on)e.panel.hide();else{b.commit();var g=b.getValue();g?e.list.mark(g):e.list.unmarkAll();e.panel.showBlock(b.id,new CKEDITOR.dom.element(d),4)}},clickFn:k};a.on("activeFilterChange",h,this);a.on("mode",
+h,this);a.on("selectionChange",h,this);!this.readOnly&&a.on("readOnly",h,this);var g=CKEDITOR.tools.addFunction(function(b,e){b=new CKEDITOR.dom.event(b);var g=b.getKeystroke();if(40==g)a.once("panelShow",function(a){a.data._.panel._.currentBlock.onKeyDown(40)});switch(g){case 13:case 32:case 40:CKEDITOR.tools.callFunction(k,e);break;default:d.onkey(d,g)}b.preventDefault()}),p=CKEDITOR.tools.addFunction(function(){d.onfocus&&d.onfocus()}),u=0;d.keyDownFn=g;m={id:l,name:this.name||this.command,label:this.label,
 title:this.title,cls:this.className||"",titleJs:m.gecko&&!m.hc?"":(this.title||"").replace("'",""),keydownFn:g,focusFn:p,clickFn:k};f.output(m,e);if(this.onRender)this.onRender();return d},createPanel:function(a){if(!this._.panel){var e=this._.panelDefinition,f=this._.panelDefinition.block,m=e.parent||CKEDITOR.document.getBody(),l="cke_combopanel__"+this.name,k=new CKEDITOR.ui.floatPanel(a,m,e),b=k.addListBlock(this.id,f),d=this;k.onShow=function(){this.element.addClass(l);d.setState(CKEDITOR.TRISTATE_ON);
 d._.on=1;d.editorFocus&&!a.focusManager.hasFocus&&a.focus();if(d.onOpen)d.onOpen();a.once("panelShow",function(){b.focus(!b.multiSelect&&d.getValue())})};k.onHide=function(b){this.element.removeClass(l);d.setState(d.modes&&d.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);d._.on=0;if(!b&&d.onClose)d.onClose()};k.onEscape=function(){k.hide(1)};b.onClick=function(a,b){d.onClick&&d.onClick.call(d,a,b);k.hide()};this._.panel=k;this._.list=b;k.getBlock(this.id).onHide=function(){d._.on=
 0;d.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(a,e){this._.value=a;var f=this.document.getById("cke_"+this.id+"_text");f&&(a||e?f.removeClass("cke_combo_inlinelabel"):(e=this.label,f.addClass("cke_combo_inlinelabel")),f.setText("undefined"!=typeof e?e:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},
@@ -750,110 +749,110 @@ $:function(){this.base();this.indentationChars="\t";this.selfClosingEnd=" /\x3e"
 {indent:0,breakAfterOpen:0});this.setRules("style",{indent:0,breakBeforeClose:1});this.setRules("pre",{breakAfterOpen:1,indent:0})},proto:{openTag:function(a){var f=this._.rules[a];this._.afterCloser&&f&&f.needsSpace&&this._.needsSpace&&this._.output.push("\n");this._.indent?this.indentation():f&&f.breakBeforeOpen&&(this.lineBreak(),this.indentation());this._.output.push("\x3c",a);this._.afterCloser=0},openTagClose:function(a,f){var c=this._.rules[a];f?(this._.output.push(this.selfClosingEnd),c&&
 c.breakAfterClose&&(this._.needsSpace=c.needsSpace)):(this._.output.push("\x3e"),c&&c.indent&&(this._.indentation+=this.indentationChars));c&&c.breakAfterOpen&&this.lineBreak();"pre"==a&&(this._.inPre=1)},attribute:function(a,f){"string"==typeof f&&(this.forceSimpleAmpersand&&(f=f.replace(/&amp;/g,"\x26")),f=CKEDITOR.tools.htmlEncodeAttr(f));this._.output.push(" ",a,'\x3d"',f,'"')},closeTag:function(a){var f=this._.rules[a];f&&f.indent&&(this._.indentation=this._.indentation.substr(this.indentationChars.length));
 this._.indent?this.indentation():f&&f.breakBeforeClose&&(this.lineBreak(),this.indentation());this._.output.push("\x3c/",a,"\x3e");"pre"==a&&(this._.inPre=0);f&&f.breakAfterClose&&(this.lineBreak(),this._.needsSpace=f.needsSpace);this._.afterCloser=1},text:function(a){this._.indent&&(this.indentation(),!this._.inPre&&(a=CKEDITOR.tools.ltrim(a)));this._.output.push(a)},comment:function(a){this._.indent&&this.indentation();this._.output.push("\x3c!--",a,"--\x3e")},lineBreak:function(){!this._.inPre&&
-0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0;this._.needsSpace=0},setRules:function(a,f){var c=this._.rules[a];c?CKEDITOR.tools.extend(c,f,!0):this._.rules[a]=f}}}),function(){var a={canUndo:!1,exec:function(a){var c=a.document.createElement("hr");
-a.insertElement(c)},allowedContent:"hr",requiredContent:"hr"};CKEDITOR.plugins.add("horizontalrule",{init:function(f){f.blockless||(f.addCommand("horizontalrule",a),f.ui.addButton&&f.ui.addButton("HorizontalRule",{label:f.lang.horizontalrule.toolbar,command:"horizontalrule",toolbar:"insert,40"}))}})}(),function(){function a(a){function c(a){var b=!1;g.attachListener(g,"keydown",function(){var d=k.getBody().getElementsByTag(a);if(!b){for(var c=0;c<d.count();c++)d.getItem(c).setCustomData("retain",
-!0);b=!0}},null,null,1);g.attachListener(g,"keyup",function(){var d=k.getElementsByTag(a);b&&(1!=d.count()||d.getItem(0).getCustomData("retain")||d.getItem(0).remove(1),b=!1)})}var e=this.editor,k=a.document,b=k.body,d=k.getElementById("cke_actscrpt");d&&d.parentNode.removeChild(d);(d=k.getElementById("cke_shimscrpt"))&&d.parentNode.removeChild(d);(d=k.getElementById("cke_basetagscrpt"))&&d.parentNode.removeChild(d);b.contentEditable=!0;CKEDITOR.env.ie&&(b.hideFocus=!0,b.disabled=!0,b.removeAttribute("disabled"));
-delete this._.isLoadingData;this.$=b;k=new CKEDITOR.dom.document(k);this.setup();this.fixInitialSelection();var g=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&k.getDocumentElement().addClass(k.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&e.enterMode!=CKEDITOR.ENTER_P?c("p"):CKEDITOR.env.edge&&e.enterMode!=CKEDITOR.ENTER_DIV&&c("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&10<CKEDITOR.env.version)k.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){e.editable().focus()})});
+0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0},setRules:function(a,f){var c=this._.rules[a];c?CKEDITOR.tools.extend(c,f,!0):this._.rules[a]=f}}}),function(){var a={canUndo:!1,exec:function(a){var c=a.document.createElement("hr");a.insertElement(c)},
+allowedContent:"hr",requiredContent:"hr"};CKEDITOR.plugins.add("horizontalrule",{init:function(f){f.blockless||(f.addCommand("horizontalrule",a),f.ui.addButton&&f.ui.addButton("HorizontalRule",{label:f.lang.horizontalrule.toolbar,command:"horizontalrule",toolbar:"insert,40"}))}})}(),function(){function a(a){function c(a){var b=!1;g.attachListener(g,"keydown",function(){var d=k.getBody().getElementsByTag(a);if(!b){for(var c=0;c<d.count();c++)d.getItem(c).setCustomData("retain",!0);b=!0}},null,null,
+1);g.attachListener(g,"keyup",function(){var d=k.getElementsByTag(a);b&&(1!=d.count()||d.getItem(0).getCustomData("retain")||d.getItem(0).remove(1),b=!1)})}var e=this.editor,k=a.document,b=k.body,d=k.getElementById("cke_actscrpt");d&&d.parentNode.removeChild(d);(d=k.getElementById("cke_shimscrpt"))&&d.parentNode.removeChild(d);(d=k.getElementById("cke_basetagscrpt"))&&d.parentNode.removeChild(d);b.contentEditable=!0;CKEDITOR.env.ie&&(b.hideFocus=!0,b.disabled=!0,b.removeAttribute("disabled"));delete this._.isLoadingData;
+this.$=b;k=new CKEDITOR.dom.document(k);this.setup();this.fixInitialSelection();var g=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&k.getDocumentElement().addClass(k.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&e.enterMode!=CKEDITOR.ENTER_P?c("p"):CKEDITOR.env.edge&&e.enterMode!=CKEDITOR.ENTER_DIV&&c("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&10<CKEDITOR.env.version)k.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){e.editable().focus()})});
 f(e);try{e.document.$.execCommand("2D-position",!1,!0)}catch(p){}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==e.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var b=a.data.getKeystroke();if(33==b||34==b)if(CKEDITOR.env.ie)setTimeout(function(){e.getSelection().scrollIntoView()},0);else if(e.window.$.innerHeight>this.$.offsetHeight){var d=e.createRange();d[33==b?"moveToElementEditStart":"moveToElementEditEnd"](this);d.select();a.data.preventDefault()}});CKEDITOR.env.ie&&
 this.attachListener(k,"blur",function(){try{k.$.selection.empty()}catch(a){}});CKEDITOR.env.iOS&&this.attachListener(k,"touchend",function(){a.focus()});b=e.document.getElementsByTag("title").getItem(0);b.data("cke-title",b.getText());CKEDITOR.env.ie&&(e.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){"unloaded"==this.status&&(this.status="ready");e.fire("contentDom");this._.isPendingFocus&&(e.focus(),this._.isPendingFocus=!1);setTimeout(function(){e.fire("dataReady")},0)},
 0,this)}function f(a){function c(){var b;a.editable().attachListener(a,"selectionChange",function(){var c=a.getSelection().getSelectedElement();c&&(b&&(b.detachEvent("onresizestart",e),b=null),c.$.attachEvent("onresizestart",e),b=c.$)})}function e(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var f=a.document.$;f.execCommand("enableObjectResizing",!1,!a.config.disableObjectResizing);f.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(b){}else CKEDITOR.env.ie&&11>
 CKEDITOR.env.version&&a.config.disableObjectResizing&&c(a)}function c(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable\x3dfalse]{min-height:0 !important}");var c=[],e;for(e in CKEDITOR.dtd.$removeEmpty)c.push("html.CSS1Compat "+e+"[contenteditable\x3dfalse]");a.push(c.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));
 a.push("html{cursor:text;*cursor:auto}");a.push("img,input,textarea{cursor:default}");return a.join("\n")}CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",requiredContent:"body"});a.addMode("wysiwyg",function(c){function f(d){d&&d.removeListener();a.editable(new e(a,b.$.contentWindow.document.body));a.setData(a.getData(1),c)}var k="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+
 ")();":"")+"document.close();",k=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(k)+"}())":"",b=CKEDITOR.dom.element.createFromHtml('\x3ciframe src\x3d"'+k+'" frameBorder\x3d"0"\x3e\x3c/iframe\x3e');b.setStyles({width:"100%",height:"100%"});b.addClass("cke_wysiwyg_frame").addClass("cke_reset");k=a.ui.space("contents");k.append(b);var d=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;if(d)b.on("load",f);var g=a.title,
-p=a.fire("ariaEditorHelpLabel",{}).label;g&&(CKEDITOR.env.ie&&p&&(g+=", "+p),b.setAttribute("title",g));if(p){var g=CKEDITOR.tools.getNextId(),r=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+g+'" class\x3d"cke_voice_label"\x3e'+p+"\x3c/span\x3e");k.append(r,1);b.setAttribute("aria-describedby",g)}a.on("beforeModeUnload",function(a){a.removeListener();r&&r.remove()});b.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"});!d&&f();a.fire("ariaWidget",b)})}});CKEDITOR.editor.prototype.addContentsCss=
+p=a.fire("ariaEditorHelpLabel",{}).label;g&&(CKEDITOR.env.ie&&p&&(g+=", "+p),b.setAttribute("title",g));if(p){var g=CKEDITOR.tools.getNextId(),u=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+g+'" class\x3d"cke_voice_label"\x3e'+p+"\x3c/span\x3e");k.append(u,1);b.setAttribute("aria-describedby",g)}a.on("beforeModeUnload",function(a){a.removeListener();u&&u.remove()});b.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"});!d&&f();a.fire("ariaWidget",b)})}});CKEDITOR.editor.prototype.addContentsCss=
 function(a){var c=this.config,e=c.contentsCss;CKEDITOR.tools.isArray(e)||(c.contentsCss=e?[e]:[]);c.contentsCss.push(a)};var e=CKEDITOR.tools.createClass({$:function(){this.base.apply(this,arguments);this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(c){CKEDITOR.tools.setTimeout(a,0,this,c)},this);this._.docTitle=this.getWindow().getFrame().getAttribute("title")},base:CKEDITOR.editable,proto:{setData:function(a,e){var f=this.editor;if(e)this.setHtml(a),this.fixInitialSelection(),f.fire("dataReady");
 else{this._.isLoadingData=!0;f._.dataStore={id:1};var k=f.config,b=k.fullPage,d=k.docType,g=CKEDITOR.tools.buildStyleHtml(c()).replace(/<style>/,'\x3cstyle data-cke-temp\x3d"1"\x3e');b||(g+=CKEDITOR.tools.buildStyleHtml(f.config.contentsCss));var p=k.baseHref?'\x3cbase href\x3d"'+k.baseHref+'" data-cke-temp\x3d"1" /\x3e':"";b&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){f.docType=d=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){f.xmlDeclaration=a;return""}));a=f.dataProcessor.toHtml(a);b?(/<body[\s|>]/.test(a)||
 (a="\x3cbody\x3e"+a),/<html[\s|>]/.test(a)||(a="\x3chtml\x3e"+a+"\x3c/html\x3e"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$\x26\x3ctitle\x3e\x3c/title\x3e")):a=a.replace(/<html[^>]*>/,"$\x26\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e"),p&&(a=a.replace(/<head[^>]*?>/,"$\x26"+p)),a=a.replace(/<\/head\s*>/,g+"$\x26"),a=d+a):a=k.docType+'\x3chtml dir\x3d"'+k.contentsLangDirection+'" lang\x3d"'+(k.contentsLanguage||f.langCode)+'"\x3e\x3chead\x3e\x3ctitle\x3e'+
 this._.docTitle+"\x3c/title\x3e"+p+g+"\x3c/head\x3e\x3cbody"+(k.bodyId?' id\x3d"'+k.bodyId+'"':"")+(k.bodyClass?' class\x3d"'+k.bodyClass+'"':"")+"\x3e"+a+"\x3c/body\x3e\x3c/html\x3e";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'\x3cbody contenteditable\x3d"true" '),2E4>CKEDITOR.env.version&&(a=a.replace(/<body[^>]*>/,"$\x26\x3c!-- cke-content-start --\x3e")));k='\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"'+(CKEDITOR.env.ie?' defer\x3d"defer" ':"")+"\x3evar wasLoaded\x3d0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+
 this._.frameLoadedHandler+",window);wasLoaded\x3d1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"\x3c/script\x3e";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(k+='\x3cscript id\x3d"cke_shimscrpt"\x3ewindow.parent.CKEDITOR.tools.enableHtml5Elements(document)\x3c/script\x3e');p&&CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(k+='\x3cscript id\x3d"cke_basetagscrpt"\x3evar baseTag \x3d document.querySelector( "base" );baseTag.href \x3d baseTag.href;\x3c/script\x3e');
-a=a.replace(/(?=\s*<\/(:?head)>)/,k);this.clearCustomData();this.clearListeners();f.fire("contentDomUnload");var r=this.getDocument();try{r.write(a)}catch(v){setTimeout(function(){r.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();a=this.editor;var c=a.config,e=c.fullPage,f=e&&a.docType,b=e&&a.xmlDeclaration,d=this.getDocument(),e=e?d.getDocumentElement().getOuterHtml():d.getBody().getHtml();CKEDITOR.env.gecko&&c.enterMode!=CKEDITOR.ENTER_BR&&(e=e.replace(/<br>(?=\s*(:?$|<\/body>))/,
+a=a.replace(/(?=\s*<\/(:?head)>)/,k);this.clearCustomData();this.clearListeners();f.fire("contentDomUnload");var u=this.getDocument();try{u.write(a)}catch(v){setTimeout(function(){u.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();a=this.editor;var c=a.config,e=c.fullPage,f=e&&a.docType,b=e&&a.xmlDeclaration,d=this.getDocument(),e=e?d.getDocumentElement().getOuterHtml():d.getBody().getHtml();CKEDITOR.env.gecko&&c.enterMode!=CKEDITOR.ENTER_BR&&(e=e.replace(/<br>(?=\s*(:?$|<\/body>))/,
 ""));e=a.dataProcessor.toDataFormat(e);b&&(e=b+"\n"+e);f&&(e=f+"\n"+e);return e},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:e.baseProto.focus.call(this)},detach:function(){var a=this.editor,c=a.document,f;try{f=a.window.getFrame()}catch(k){}e.baseProto.detach.call(this);this.clearCustomData();c.getDocumentElement().clearCustomData();CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);f&&f.getParent()?(f.clearCustomData(),(a=f.removeCustomData("onResize"))&&a.removeListener(),
 f.remove()):CKEDITOR.warn("editor-destroy-iframe")}}})}(),CKEDITOR.config.disableObjectResizing=!1,CKEDITOR.config.disableNativeTableHandles=!0,CKEDITOR.config.disableNativeSpellChecker=!0,function(){function a(a,h){var m,l;h.on("refresh",function(a){var b=[f],d;for(d in a.data.states)b.push(a.data.states[d]);this.setState(CKEDITOR.tools.search(b,c)?c:f)},h,null,100);h.on("exec",function(c){m=a.getSelection();l=m.createBookmarks(1);c.data||(c.data={});c.data.done=!1},h,null,0);h.on("exec",function(){a.forceNextSelectionCheck();
 m.selectBookmarks(l)},h,null,100)}var f=CKEDITOR.TRISTATE_DISABLED,c=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indent",{init:function(c){var f=CKEDITOR.plugins.indent.genericDefinition;a(c,c.addCommand("indent",new f(!0)));a(c,c.addCommand("outdent",new f));c.ui.addButton&&(c.ui.addButton("Indent",{label:c.lang.indent.indent,command:"indent",directional:!0,toolbar:"indent,20"}),c.ui.addButton("Outdent",{label:c.lang.indent.outdent,command:"outdent",directional:!0,toolbar:"indent,10"}));c.on("dirChanged",
-function(a){var f=c.createRange(),h=a.data.node;f.setStartBefore(h);f.setEndAfter(h);for(var b=new CKEDITOR.dom.walker(f),d;d=b.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(h)&&d.getDirection())f.setStartAfter(d),b=new CKEDITOR.dom.walker(f);else{var g=c.config.indentClasses;if(g)for(var p="ltr"==a.data.dir?["_rtl",""]:["","_rtl"],r=0;r<g.length;r++)d.hasClass(g[r]+p[0])&&(d.removeClass(g[r]+p[0]),d.addClass(g[r]+p[1]));g=d.getStyle("margin-right");p=d.getStyle("margin-left");g?d.setStyle("margin-left",
+function(a){var f=c.createRange(),h=a.data.node;f.setStartBefore(h);f.setEndAfter(h);for(var b=new CKEDITOR.dom.walker(f),d;d=b.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(h)&&d.getDirection())f.setStartAfter(d),b=new CKEDITOR.dom.walker(f);else{var g=c.config.indentClasses;if(g)for(var p="ltr"==a.data.dir?["_rtl",""]:["","_rtl"],u=0;u<g.length;u++)d.hasClass(g[u]+p[0])&&(d.removeClass(g[u]+p[0]),d.addClass(g[u]+p[1]));g=d.getStyle("margin-right");p=d.getStyle("margin-left");g?d.setStyle("margin-left",
 g):d.removeStyle("margin-left");p?d.setStyle("margin-right",p):d.removeStyle("margin-right")}})}});CKEDITOR.plugins.indent={genericDefinition:function(a){this.isIndent=!!a;this.startDisabled=!this.isIndent},specificDefinition:function(a,c,f){this.name=c;this.editor=a;this.jobs={};this.enterBr=a.config.enterMode==CKEDITOR.ENTER_BR;this.isIndent=!!f;this.relatedGlobal=f?"indent":"outdent";this.indentKey=f?9:CKEDITOR.SHIFT+9;this.database={}},registerCommands:function(a,c){a.on("pluginsLoaded",function(){for(var a in c)(function(a,
 c){var b=a.getCommand(c.relatedGlobal),d;for(d in c.jobs)b.on("exec",function(b){b.data.done||(a.fire("lockSnapshot"),c.execJob(a,d)&&(b.data.done=!0),a.fire("unlockSnapshot"),CKEDITOR.dom.element.clearAllMarkers(c.database))},this,null,d),b.on("refresh",function(b){b.data.states||(b.data.states={});b.data.states[c.name+"@"+d]=c.refreshJob(a,d,b.data.path)},this,null,d);a.addFeature(c)})(this,c[a])})}};CKEDITOR.plugins.indent.genericDefinition.prototype={context:"p",exec:function(){}};CKEDITOR.plugins.indent.specificDefinition.prototype=
-{execJob:function(a,c){var m=this.jobs[c];if(m.state!=f)return m.exec.call(this,a)},refreshJob:function(a,c,m){c=this.jobs[c];a.activeFilter.checkFeature(this)?c.state=c.refresh.call(this,a,m):c.state=f;return c.state},getContext:function(a){return a.contains(this.context)}}}(),function(){function a(a){function b(b){for(var f=m.startContainer,l=m.endContainer;f&&!f.getParent().equals(b);)f=f.getParent();for(;l&&!l.getParent().equals(b);)l=l.getParent();if(!f||!l)return!1;for(var n=f,f=[],u=!1;!u;)n.equals(l)&&
-(u=!0),f.push(n),n=n.getNext();if(1>f.length)return!1;n=b.getParents(!0);for(l=0;l<n.length;l++)if(n[l].getName&&h[n[l].getName()]){b=n[l];break}for(var n=d.isIndent?1:-1,l=f[0],f=f[f.length-1],u=CKEDITOR.plugins.list.listToArray(b,e),w=u[f.getCustomData("listarray_index")].indent,l=l.getCustomData("listarray_index");l<=f.getCustomData("listarray_index");l++)if(u[l].indent+=n,0<n){var r=u[l].parent;u[l].parent=new CKEDITOR.dom.element(r.getName(),r.getDocument())}for(l=f.getCustomData("listarray_index")+
-1;l<u.length&&u[l].indent>w;l++)u[l].indent+=n;f=CKEDITOR.plugins.list.arrayToList(u,e,null,a.config.enterMode,b.getDirection());if(!d.isIndent){var B;if((B=b.getParent())&&B.is("li"))for(var n=f.listNode.getChildren(),y=[],C,l=n.count()-1;0<=l;l--)(C=n.getItem(l))&&C.is&&C.is("li")&&y.push(C)}f&&f.listNode.replace(b);if(y&&y.length)for(l=0;l<y.length;l++){for(C=b=y[l];(C=C.getNext())&&C.is&&C.getName()in h;)CKEDITOR.env.needsNbspFiller&&!b.getFirst(c)&&b.append(m.document.createText(" ")),b.append(C);
-b.insertAfter(B)}f&&a.fire("contentDomInvalidated");return!0}for(var d=this,e=this.database,h=this.context,l=a.getSelection(),l=(l&&l.getRanges()).createIterator(),m;m=l.getNextRange();){for(var u=m.getCommonAncestor();u&&(u.type!=CKEDITOR.NODE_ELEMENT||!h[u.getName()]);){if(a.editable().equals(u)){u=!1;break}u=u.getParent()}u||(u=m.startPath().contains(h))&&m.setEndAt(u,CKEDITOR.POSITION_BEFORE_END);if(!u){var n=m.getEnclosedNode();n&&n.type==CKEDITOR.NODE_ELEMENT&&n.getName()in h&&(m.setStartAt(n,
-CKEDITOR.POSITION_AFTER_START),m.setEndAt(n,CKEDITOR.POSITION_BEFORE_END),u=n)}u&&m.startContainer.type==CKEDITOR.NODE_ELEMENT&&m.startContainer.getName()in h&&(n=new CKEDITOR.dom.walker(m),n.evaluator=f,m.startContainer=n.next());u&&m.endContainer.type==CKEDITOR.NODE_ELEMENT&&m.endContainer.getName()in h&&(n=new CKEDITOR.dom.walker(m),n.evaluator=f,m.endContainer=n.previous());if(u)return b(u)}return 0}function f(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.is("li")}function c(a){return e(a)&&h(a)}
-var e=CKEDITOR.dom.walker.whitespaces(!0),h=CKEDITOR.dom.walker.bookmark(!1,!0),m=CKEDITOR.TRISTATE_DISABLED,l=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(c){function b(b){d.specificDefinition.apply(this,arguments);this.requiredContent=["ul","ol"];b.on("key",function(a){if("wysiwyg"==b.mode&&a.data.keyCode==this.indentKey){var d=this.getContext(b.elementPath());!d||this.isIndent&&CKEDITOR.plugins.indentList.firstItemInPath(this.context,b.elementPath(),
-d)||(b.execCommand(this.relatedGlobal),a.cancel())}},this);this.jobs[this.isIndent?10:30]={refresh:this.isIndent?function(a,b){var d=this.getContext(b),c=CKEDITOR.plugins.indentList.firstItemInPath(this.context,b,d);return d&&this.isIndent&&!c?l:m}:function(a,b){return!this.getContext(b)||this.isIndent?m:l},exec:CKEDITOR.tools.bind(a,this)}}var d=CKEDITOR.plugins.indent;d.registerCommands(c,{indentlist:new b(c,"indentlist",!0),outdentlist:new b(c,"outdentlist")});CKEDITOR.tools.extend(b.prototype,
-d.specificDefinition.prototype,{context:{ol:1,ul:1}})}});CKEDITOR.plugins.indentList={};CKEDITOR.plugins.indentList.firstItemInPath=function(a,b,d){var c=b.contains(f);d||(d=b.contains(a));return d&&c&&c.equals(d.getFirst(f))}}(),CKEDITOR.plugins.add("menubutton",{requires:"button,menu",onLoad:function(){var a=function(a){var c=this._,e=c.menu;c.state!==CKEDITOR.TRISTATE_DISABLED&&(c.on&&e?e.hide():(c.previousState=c.state,e||(e=c.menu=new CKEDITOR.menu(a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.common.options}}}),
+{execJob:function(a,c){var m=this.jobs[c];if(m.state!=f)return m.exec.call(this,a)},refreshJob:function(a,c,m){c=this.jobs[c];a.activeFilter.checkFeature(this)?c.state=c.refresh.call(this,a,m):c.state=f;return c.state},getContext:function(a){return a.contains(this.context)}}}(),function(){function a(a){function b(b){for(var f=m.startContainer,l=m.endContainer;f&&!f.getParent().equals(b);)f=f.getParent();for(;l&&!l.getParent().equals(b);)l=l.getParent();if(!f||!l)return!1;for(var n=f,f=[],r=!1;!r;)n.equals(l)&&
+(r=!0),f.push(n),n=n.getNext();if(1>f.length)return!1;n=b.getParents(!0);for(l=0;l<n.length;l++)if(n[l].getName&&h[n[l].getName()]){b=n[l];break}for(var n=d.isIndent?1:-1,l=f[0],f=f[f.length-1],r=CKEDITOR.plugins.list.listToArray(b,e),x=r[f.getCustomData("listarray_index")].indent,l=l.getCustomData("listarray_index");l<=f.getCustomData("listarray_index");l++)if(r[l].indent+=n,0<n){var u=r[l].parent;r[l].parent=new CKEDITOR.dom.element(u.getName(),u.getDocument())}for(l=f.getCustomData("listarray_index")+
+1;l<r.length&&r[l].indent>x;l++)r[l].indent+=n;f=CKEDITOR.plugins.list.arrayToList(r,e,null,a.config.enterMode,b.getDirection());if(!d.isIndent){var y;if((y=b.getParent())&&y.is("li"))for(var n=f.listNode.getChildren(),z=[],C,l=n.count()-1;0<=l;l--)(C=n.getItem(l))&&C.is&&C.is("li")&&z.push(C)}f&&f.listNode.replace(b);if(z&&z.length)for(l=0;l<z.length;l++){for(C=b=z[l];(C=C.getNext())&&C.is&&C.getName()in h;)CKEDITOR.env.needsNbspFiller&&!b.getFirst(c)&&b.append(m.document.createText(" ")),b.append(C);
+b.insertAfter(y)}f&&a.fire("contentDomInvalidated");return!0}for(var d=this,e=this.database,h=this.context,l=a.getSelection(),l=(l&&l.getRanges()).createIterator(),m;m=l.getNextRange();){for(var r=m.getCommonAncestor();r&&(r.type!=CKEDITOR.NODE_ELEMENT||!h[r.getName()]);){if(a.editable().equals(r)){r=!1;break}r=r.getParent()}r||(r=m.startPath().contains(h))&&m.setEndAt(r,CKEDITOR.POSITION_BEFORE_END);if(!r){var n=m.getEnclosedNode();n&&n.type==CKEDITOR.NODE_ELEMENT&&n.getName()in h&&(m.setStartAt(n,
+CKEDITOR.POSITION_AFTER_START),m.setEndAt(n,CKEDITOR.POSITION_BEFORE_END),r=n)}r&&m.startContainer.type==CKEDITOR.NODE_ELEMENT&&m.startContainer.getName()in h&&(n=new CKEDITOR.dom.walker(m),n.evaluator=f,m.startContainer=n.next());r&&m.endContainer.type==CKEDITOR.NODE_ELEMENT&&m.endContainer.getName()in h&&(n=new CKEDITOR.dom.walker(m),n.evaluator=f,m.endContainer=n.previous());if(r)return b(r)}return 0}function f(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.is("li")}function c(a){return e(a)&&h(a)}
+var e=CKEDITOR.dom.walker.whitespaces(!0),h=CKEDITOR.dom.walker.bookmark(!1,!0),m=CKEDITOR.TRISTATE_DISABLED,l=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(c){function b(b){d.specificDefinition.apply(this,arguments);this.requiredContent=["ul","ol"];b.on("key",function(a){if("wysiwyg"==b.mode&&a.data.keyCode==this.indentKey){var c=this.getContext(b.elementPath());!c||this.isIndent&&CKEDITOR.plugins.indentList.firstItemInPath(this.context,b.elementPath(),
+c)||(b.execCommand(this.relatedGlobal),a.cancel())}},this);this.jobs[this.isIndent?10:30]={refresh:this.isIndent?function(a,b){var c=this.getContext(b),d=CKEDITOR.plugins.indentList.firstItemInPath(this.context,b,c);return c&&this.isIndent&&!d?l:m}:function(a,b){return!this.getContext(b)||this.isIndent?m:l},exec:CKEDITOR.tools.bind(a,this)}}var d=CKEDITOR.plugins.indent;d.registerCommands(c,{indentlist:new b(c,"indentlist",!0),outdentlist:new b(c,"outdentlist")});CKEDITOR.tools.extend(b.prototype,
+d.specificDefinition.prototype,{context:{ol:1,ul:1}})}});CKEDITOR.plugins.indentList={};CKEDITOR.plugins.indentList.firstItemInPath=function(a,b,c){var e=b.contains(f);c||(c=b.contains(a));return c&&e&&e.equals(c.getFirst(f))}}(),CKEDITOR.plugins.add("menubutton",{requires:"button,menu",onLoad:function(){var a=function(a){var c=this._,e=c.menu;c.state!==CKEDITOR.TRISTATE_DISABLED&&(c.on&&e?e.hide():(c.previousState=c.state,e||(e=c.menu=new CKEDITOR.menu(a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.common.options}}}),
 e.onHide=CKEDITOR.tools.bind(function(){var e=this.command?a.getCommand(this.command).modes:this.modes;this.setState(!e||e[a.mode]?c.previousState:CKEDITOR.TRISTATE_DISABLED);c.on=0},this),this.onMenu&&e.addListener(this.onMenu)),this.setState(CKEDITOR.TRISTATE_ON),c.on=1,setTimeout(function(){e.show(CKEDITOR.document.getById(c.id),4)},0)))};CKEDITOR.ui.menuButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(f){delete f.panel;this.base(f);this.hasArrow=!0;this.click=a},statics:{handler:{create:function(a){return new CKEDITOR.ui.menuButton(a)}}}})},
 beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_MENUBUTTON,CKEDITOR.ui.menuButton.handler)}}),CKEDITOR.UI_MENUBUTTON="menubutton","use strict",function(){CKEDITOR.plugins.add("language",{requires:"menubutton",init:function(a){var f=a.config.language_list||["ar:Arabic:rtl","fr:French","es:Spanish"],c=this,e=a.lang.language,h={},m,l,k,b;a.addCommand("language",{allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",contextSensitive:!0,exec:function(a,b){var c=h["language_"+b];if(c)a[c.style.checkActive(a.elementPath(),
 a)?"removeStyle":"applyStyle"](c.style)},refresh:function(a){this.setState(c.getCurrentLangElement(a)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}});for(b=0;b<f.length;b++)m=f[b].split(":"),l=m[0],k="language_"+l,h[k]={label:m[1],langId:l,group:"language",order:b,ltr:"rtl"!=(""+m[2]).toLowerCase(),onClick:function(){a.execCommand("language",this.langId)},role:"menuitemcheckbox"},h[k].style=new CKEDITOR.style({element:"span",attributes:{lang:l,dir:h[k].ltr?"ltr":"rtl"}});h.language_remove={label:e.remove,
 group:"language_remove",state:CKEDITOR.TRISTATE_DISABLED,order:h.length,onClick:function(){var b=c.getCurrentLangElement(a);b&&a.execCommand("language",b.getAttribute("lang"))}};a.addMenuGroup("language",1);a.addMenuGroup("language_remove");a.addMenuItems(h);a.ui.add("Language",CKEDITOR.UI_MENUBUTTON,{label:e.button,allowedContent:"span[!lang,!dir]",requiredContent:"span[lang,dir]",toolbar:"bidi,30",command:"language",onMenu:function(){var b={},e=c.getCurrentLangElement(a),f;for(f in h)b[f]=CKEDITOR.TRISTATE_OFF;
-b.language_remove=e?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;e&&(b["language_"+e.getAttribute("lang")]=CKEDITOR.TRISTATE_ON);return b}})},getCurrentLangElement:function(a){var f=a.elementPath();a=f&&f.elements;var c;if(f)for(var e=0;e<a.length;e++)f=a[e],!c&&"span"==f.getName()&&f.hasAttribute("dir")&&f.hasAttribute("lang")&&(c=f);return c}})}(),function(){function a(a,b,d){function c(d){if(!(!(l=k[d?"getFirst":"getLast"]())||l.is&&l.isBlockBoundary()||!(m=b.root[d?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))||
-m.is&&m.isBlockBoundary({br:1})))a.document.createElement("br")[d?"insertBefore":"insertAfter"](l)}for(var e=CKEDITOR.plugins.list.listToArray(b.root,d),f=[],g=0;g<b.contents.length;g++){var h=b.contents[g];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(f.push(h),CKEDITOR.dom.element.setMarker(d,h,"list_item_processed",!0))}h=null;for(g=0;g<f.length;g++)h=f[g].getCustomData("listarray_index"),e[h].indent=-1;for(g=h+1;g<e.length;g++)if(e[g].indent>e[g-1].indent+1){f=e[g-1].indent+
-1-e[g].indent;for(h=e[g].indent;e[g]&&e[g].indent>=h;)e[g].indent+=f,g++;g--}var k=CKEDITOR.plugins.list.arrayToList(e,d,null,a.config.enterMode,b.root.getAttribute("dir")).listNode,l,m;c(!0);c();k.replace(b.root);a.fire("contentDomInvalidated")}function f(a,b){this.name=a;this.context=this.type=b;this.allowedContent=b+" li";this.requiredContent=b}function c(a,b,d,c){for(var e,f;e=a[c?"getLast":"getFirst"](v);)(f=e.getDirection(1))!==b.getDirection(1)&&e.setAttribute("dir",f),e.remove(),d?e[c?"insertBefore":
-"insertAfter"](d):b.append(e,c)}function e(a){function b(d){var e=a[d?"getPrevious":"getNext"](g);e&&e.type==CKEDITOR.NODE_ELEMENT&&e.is(a.getName())&&(c(a,e,null,!d),a.remove(),a=e)}b();b(1)}function h(a){return a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in CKEDITOR.dtd.$block||a.getName()in CKEDITOR.dtd.$listItem)&&CKEDITOR.dtd[a.getName()]["#"]}function m(a,b,d){a.fire("saveSnapshot");d.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var f=d.extractContents();b.trim(!1,!0);var h=b.createBookmark(),
-k=new CKEDITOR.dom.elementPath(b.startContainer),m=k.block,k=k.lastElement.getAscendant("li",1)||m,w=new CKEDITOR.dom.elementPath(d.startContainer),r=w.contains(CKEDITOR.dtd.$listItem),w=w.contains(CKEDITOR.dtd.$list);m?(m=m.getBogus())&&m.remove():w&&(m=w.getPrevious(g))&&p(m)&&m.remove();(m=f.getLast())&&m.type==CKEDITOR.NODE_ELEMENT&&m.is("br")&&m.remove();(m=b.startContainer.getChild(b.startOffset))?f.insertBefore(m):b.startContainer.append(f);r&&(f=l(r))&&(k.contains(r)?(c(f,r.getParent(),r),
-f.remove()):k.append(f));for(;d.checkStartOfBlock()&&d.checkEndOfBlock();){w=d.startPath();f=w.block;if(!f)break;f.is("li")&&(k=f.getParent(),f.equals(k.getLast(g))&&f.equals(k.getFirst(g))&&(f=k));d.moveToPosition(f,CKEDITOR.POSITION_BEFORE_START);f.remove()}d=d.clone();f=a.editable();d.setEndAt(f,CKEDITOR.POSITION_BEFORE_END);d=new CKEDITOR.dom.walker(d);d.evaluator=function(a){return g(a)&&!p(a)};(d=d.next())&&d.type==CKEDITOR.NODE_ELEMENT&&d.getName()in CKEDITOR.dtd.$list&&e(d);b.moveToBookmark(h);
-b.select();a.fire("saveSnapshot")}function l(a){return(a=a.getLast(g))&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in k?a:null}var k={ol:1,ul:1},b=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark(),g=function(a){return!(b(a)||d(a))},p=CKEDITOR.dom.walker.bogus();CKEDITOR.plugins.list={listToArray:function(a,b,d,c,e){if(!k[a.getName()])return[];c||(c=0);d||(d=[]);for(var f=0,g=a.getChildCount();f<g;f++){var h=a.getChild(f);h.type==CKEDITOR.NODE_ELEMENT&&h.getName()in CKEDITOR.dtd.$list&&
-CKEDITOR.plugins.list.listToArray(h,b,d,c+1);if("li"==h.$.nodeName.toLowerCase()){var l={parent:a,indent:c,element:h,contents:[]};e?l.grandparent=e:(l.grandparent=a.getParent(),l.grandparent&&"li"==l.grandparent.$.nodeName.toLowerCase()&&(l.grandparent=l.grandparent.getParent()));b&&CKEDITOR.dom.element.setMarker(b,h,"listarray_index",d.length);d.push(l);for(var m=0,p=h.getChildCount(),r;m<p;m++)r=h.getChild(m),r.type==CKEDITOR.NODE_ELEMENT&&k[r.getName()]?CKEDITOR.plugins.list.listToArray(r,b,d,
-c+1,l.grandparent):l.contents.push(r)}}return d},arrayToList:function(a,b,c,e,f){c||(c=0);if(!a||a.length<c+1)return null;for(var h,l=a[c].parent.getDocument(),m=new CKEDITOR.dom.documentFragment(l),p=null,r=c,v=Math.max(a[c].indent,0),C=null,F,E,L=e==CKEDITOR.ENTER_P?"p":"div";;){var G=a[r];h=G.grandparent;F=G.element.getDirection(1);if(G.indent==v){p&&a[r].parent.getName()==p.getName()||(p=a[r].parent.clone(!1,1),f&&p.setAttribute("dir",f),m.append(p));C=p.append(G.element.clone(0,1));F!=p.getDirection(1)&&
-C.setAttribute("dir",F);for(h=0;h<G.contents.length;h++)C.append(G.contents[h].clone(1,1));r++}else if(G.indent==Math.max(v,0)+1)G=a[r-1].element.getDirection(1),r=CKEDITOR.plugins.list.arrayToList(a,null,r,e,G!=F?F:null),!C.getChildCount()&&CKEDITOR.env.needsNbspFiller&&7>=l.$.documentMode&&C.append(l.createText(" ")),C.append(r.listNode),r=r.nextIndex;else if(-1==G.indent&&!c&&h){k[h.getName()]?(C=G.element.clone(!1,!0),F!=h.getDirection(1)&&C.setAttribute("dir",F)):C=new CKEDITOR.dom.documentFragment(l);
-var p=h.getDirection(1)!=F,N=G.element,O=N.getAttribute("class"),I=N.getAttribute("style"),R=C.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(e!=CKEDITOR.ENTER_BR||p||I||O),M,Q=G.contents.length,P;for(h=0;h<Q;h++)if(M=G.contents[h],d(M)&&1<Q)R?P=M.clone(1,1):C.append(M.clone(1,1));else if(M.type==CKEDITOR.NODE_ELEMENT&&M.isBlockBoundary()){p&&!M.getDirection()&&M.setAttribute("dir",F);E=M;var K=N.getAttribute("style");K&&E.setAttribute("style",K.replace(/([^;])$/,"$1;")+(E.getAttribute("style")||""));O&&
-M.addClass(O);E=null;P&&(C.append(P),P=null);C.append(M.clone(1,1))}else R?(E||(E=l.createElement(L),C.append(E),p&&E.setAttribute("dir",F)),I&&E.setAttribute("style",I),O&&E.setAttribute("class",O),P&&(E.append(P),P=null),E.append(M.clone(1,1))):C.append(M.clone(1,1));P&&((E||C).append(P),P=null);C.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&r!=a.length-1&&(CKEDITOR.env.needsBrFiller&&(F=C.getLast())&&F.type==CKEDITOR.NODE_ELEMENT&&F.is("br")&&F.remove(),(F=C.getLast(g))&&F.type==CKEDITOR.NODE_ELEMENT&&
-F.is(CKEDITOR.dtd.$block)||C.append(l.createElement("br")));F=C.$.nodeName.toLowerCase();"div"!=F&&"p"!=F||C.appendBogus();m.append(C);p=null;r++}else return null;E=null;if(a.length<=r||Math.max(a[r].indent,0)<v)break}if(b)for(a=m.getFirst();a;){if(a.type==CKEDITOR.NODE_ELEMENT&&(CKEDITOR.dom.element.clearMarkers(b,a),a.getName()in CKEDITOR.dtd.$listItem&&(c=a,l=f=e=void 0,e=c.getDirection()))){for(f=c.getParent();f&&!(l=f.getDirection());)f=f.getParent();e==l&&c.removeAttribute("dir")}a=a.getNextSourceNode()}return{listNode:m,
-nextIndex:r}}};var r=/^h[1-6]$/,v=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT);f.prototype={exec:function(b){this.refresh(b,b.elementPath());var d=b.config,c=b.getSelection(),f=c&&c.getRanges();if(this.state==CKEDITOR.TRISTATE_OFF){var h=b.editable();if(h.getFirst(g)){var l=1==f.length&&f[0];(d=l&&l.getEnclosedNode())&&d.is&&this.type==d.getName()&&this.setState(CKEDITOR.TRISTATE_ON)}else d.enterMode==CKEDITOR.ENTER_BR?h.appendBogus():f[0].fixBlock(1,d.enterMode==CKEDITOR.ENTER_P?"p":"div"),
-c.selectRanges(f)}for(var d=c.createBookmarks(!0),h=[],m={},f=f.createIterator(),p=0;(l=f.getNextRange())&&++p;){var v=l.getBoundaryNodes(),B=v.startNode,y=v.endNode;B.type==CKEDITOR.NODE_ELEMENT&&"td"==B.getName()&&l.setStartAt(v.startNode,CKEDITOR.POSITION_AFTER_START);y.type==CKEDITOR.NODE_ELEMENT&&"td"==y.getName()&&l.setEndAt(v.endNode,CKEDITOR.POSITION_BEFORE_END);l=l.createIterator();for(l.forceBrBreak=this.state==CKEDITOR.TRISTATE_OFF;v=l.getNextParagraph();)if(!v.getCustomData("list_block")){CKEDITOR.dom.element.setMarker(m,
-v,"list_block",1);for(var C=b.elementPath(v),B=C.elements,y=0,C=C.blockLimit,F,E=B.length-1;0<=E&&(F=B[E]);E--)if(k[F.getName()]&&C.contains(F)){C.removeCustomData("list_group_object_"+p);(B=F.getCustomData("list_group_object"))?B.contents.push(v):(B={root:F,contents:[v]},h.push(B),CKEDITOR.dom.element.setMarker(m,F,"list_group_object",B));y=1;break}y||(y=C,y.getCustomData("list_group_object_"+p)?y.getCustomData("list_group_object_"+p).contents.push(v):(B={root:y,contents:[v]},CKEDITOR.dom.element.setMarker(m,
-y,"list_group_object_"+p,B),h.push(B)))}}for(F=[];0<h.length;)if(B=h.shift(),this.state==CKEDITOR.TRISTATE_OFF)if(k[B.root.getName()]){f=b;p=B;B=m;l=F;y=CKEDITOR.plugins.list.listToArray(p.root,B);C=[];for(v=0;v<p.contents.length;v++)E=p.contents[v],(E=E.getAscendant("li",!0))&&!E.getCustomData("list_item_processed")&&(C.push(E),CKEDITOR.dom.element.setMarker(B,E,"list_item_processed",!0));for(var E=p.root.getDocument(),L=void 0,G=void 0,v=0;v<C.length;v++){var N=C[v].getCustomData("listarray_index"),
-L=y[N].parent;L.is(this.type)||(G=E.createElement(this.type),L.copyAttributes(G,{start:1,type:1}),G.removeStyle("list-style-type"),y[N].parent=G)}B=CKEDITOR.plugins.list.arrayToList(y,B,null,f.config.enterMode);y=void 0;C=B.listNode.getChildCount();for(v=0;v<C&&(y=B.listNode.getChild(v));v++)y.getName()==this.type&&l.push(y);B.listNode.replace(p.root);f.fire("contentDomInvalidated")}else{y=b;l=B;v=F;C=l.contents;f=l.root.getDocument();p=[];1==C.length&&C[0].equals(l.root)&&(B=f.createElement("div"),
-C[0].moveChildren&&C[0].moveChildren(B),C[0].append(B),C[0]=B);l=l.contents[0].getParent();for(E=0;E<C.length;E++)l=l.getCommonAncestor(C[E].getParent());L=y.config.useComputedState;y=B=void 0;L=void 0===L||L;for(E=0;E<C.length;E++)for(G=C[E];N=G.getParent();){if(N.equals(l)){p.push(G);!y&&G.getDirection()&&(y=1);G=G.getDirection(L);null!==B&&(B=B&&B!=G?null:G);break}G=N}if(!(1>p.length)){C=p[p.length-1].getNext();E=f.createElement(this.type);v.push(E);for(L=v=void 0;p.length;)v=p.shift(),L=f.createElement("li"),
-G=v,G.is("pre")||r.test(G.getName())||"false"==G.getAttribute("contenteditable")?v.appendTo(L):(v.copyAttributes(L),B&&v.getDirection()&&(L.removeStyle("direction"),L.removeAttribute("dir")),v.moveChildren(L),v.remove()),L.appendTo(E);B&&y&&E.setAttribute("dir",B);C?E.insertBefore(C):E.appendTo(l)}}else this.state==CKEDITOR.TRISTATE_ON&&k[B.root.getName()]&&a.call(this,b,B,m);for(E=0;E<F.length;E++)e(F[E]);CKEDITOR.dom.element.clearAllMarkers(m);c.selectBookmarks(d);b.focus()},refresh:function(a,
-b){var d=b.contains(k,1),c=b.blockLimit||b.root;d&&c.contains(d)?this.setState(d.is(this.type)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("list",{requires:"indentlist",init:function(a){a.blockless||(a.addCommand("numberedlist",new f("numberedlist","ol")),a.addCommand("bulletedlist",new f("bulletedlist","ul")),a.ui.addButton&&(a.ui.addButton("NumberedList",{label:a.lang.list.numberedlist,command:"numberedlist",directional:!0,toolbar:"list,10"}),
-a.ui.addButton("BulletedList",{label:a.lang.list.bulletedlist,command:"bulletedlist",directional:!0,toolbar:"list,20"})),a.on("key",function(b){var d=b.data.domEvent.getKey(),c;if("wysiwyg"==a.mode&&d in{8:1,46:1}){var e=a.getSelection().getRanges()[0],f=e&&e.startPath();if(e&&e.collapsed){var t=8==d,w=a.editable(),v=new CKEDITOR.dom.walker(e.clone());v.evaluator=function(a){return g(a)&&!p(a)};v.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};d=e.clone();if(t){var r;
-(r=f.contains(k))&&e.checkBoundaryOfElement(r,CKEDITOR.START)&&(r=r.getParent())&&r.is("li")&&(r=l(r))?(c=r,r=r.getPrevious(g),d.moveToPosition(r&&p(r)?r:c,CKEDITOR.POSITION_BEFORE_START)):(v.range.setStartAt(w,CKEDITOR.POSITION_AFTER_START),v.range.setEnd(e.startContainer,e.startOffset),(r=v.previous())&&r.type==CKEDITOR.NODE_ELEMENT&&(r.getName()in k||r.is("li"))&&(r.is("li")||(v.range.selectNodeContents(r),v.reset(),v.evaluator=h,r=v.previous()),c=r,d.moveToElementEditEnd(c),d.moveToPosition(d.endPath().block,
-CKEDITOR.POSITION_BEFORE_END)));if(c)m(a,d,e),b.cancel();else{var y=f.contains(k);y&&e.checkBoundaryOfElement(y,CKEDITOR.START)&&(c=y.getFirst(g),e.checkBoundaryOfElement(c,CKEDITOR.START)&&(r=y.getPrevious(g),l(c)?r&&(e.moveToElementEditEnd(r),e.select()):a.execCommand("outdent"),b.cancel()))}}else if(c=f.contains("li")){if(v.range.setEndAt(w,CKEDITOR.POSITION_BEFORE_END),t=(w=c.getLast(g))&&h(w)?w:c,f=0,(r=v.next())&&r.type==CKEDITOR.NODE_ELEMENT&&r.getName()in k&&r.equals(w)?(f=1,r=v.next()):e.checkBoundaryOfElement(t,
-CKEDITOR.END)&&(f=2),f&&r){e=e.clone();e.moveToElementEditStart(r);if(1==f&&(d.optimize(),!d.startContainer.equals(c))){for(c=d.startContainer;c.is(CKEDITOR.dtd.$inline);)y=c,c=c.getParent();y&&d.moveToPosition(y,CKEDITOR.POSITION_AFTER_END)}2==f&&(d.moveToPosition(d.endPath().block,CKEDITOR.POSITION_BEFORE_END),e.endPath().block&&e.moveToPosition(e.endPath().block,CKEDITOR.POSITION_AFTER_START));m(a,d,e);b.cancel()}}else v.range.setEndAt(w,CKEDITOR.POSITION_BEFORE_END),(r=v.next())&&r.type==CKEDITOR.NODE_ELEMENT&&
-r.is(k)&&(r=r.getFirst(g),f.block&&e.checkStartOfBlock()&&e.checkEndOfBlock()?(f.block.remove(),e.moveToElementEditStart(r),e.select()):l(r)?(e.moveToElementEditStart(r),e.select()):(e=e.clone(),e.moveToElementEditStart(r),m(a,d,e)),b.cancel());setTimeout(function(){a.selectionChange(1)})}}}))}})}(),"use strict",function(){function a(a,b,d){return p(b)&&p(d)&&d.equals(b.getNext(function(a){return!(aa(a)||Y(a)||r(a))}))}function f(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}
-function c(a){var b=a.element;if(b&&p(b)&&(b=b.getAscendant(a.triggers,!0))&&a.editable.contains(b)){var d=l(b);if("true"==d.getAttribute("contenteditable"))return b;if(d.is(a.triggers))return d}return null}function e(a,b,d){t(a,b);t(a,d);a=b.size.bottom;d=d.size.top;return a&&d?0|(a+d)/2:a||d}function h(a,b,d){return b=b[d?"getPrevious":"getNext"](function(b){return b&&b.type==CKEDITOR.NODE_TEXT&&!aa(b)||p(b)&&!r(b)&&!g(a,b)})}function m(a,b,d){return a>b&&a<d}function l(a,b){if(a.data("cke-editable"))return null;
-for(b||(a=a.getParent());a&&!a.data("cke-editable");){if(a.hasAttribute("contenteditable"))return a;a=a.getParent()}return null}function k(a){var d=a.doc,c=F('\x3cspan contenteditable\x3d"false" style\x3d"'+T+"position:absolute;border-top:1px dashed "+a.boxColor+'"\x3e\x3c/span\x3e',d),e=CKEDITOR.getUrl(this.path+"images/"+(E.hidpi?"hidpi/":"")+"icon"+(a.rtl?"-rtl":"")+".png");y(c,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},lineChildren:[y(F('\x3cspan title\x3d"'+
-a.editor.lang.magicline.title+'" contenteditable\x3d"false"\x3e\x26#8629;\x3c/span\x3e',d),{base:T+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+e+") center no-repeat "+a.boxColor+";cursor:pointer;"+(E.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":"")+(E.hidpi?"background-size: 9px 10px;":""),looks:["top:-8px; border-radius: 2px;","top:-17px; border-radius: 2px 2px 0px 0px;","top:-1px; border-radius: 0px 0px 2px 2px;"]}),y(F(X,d),{base:Z+
-"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),y(F(X,d),{base:Z+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px","border-width:0 8px 8px 0;top:0px"]})],detach:function(){this.wrap.getParent()&&this.wrap.remove();return this},mouseNear:function(){t(a,this);var b=a.holdDistance,d=this.size;return d&&m(a.mouse.y,
-d.top-b,d.bottom+b)&&m(a.mouse.x,d.left-b,d.right+b)?!0:!1},place:function(){var b=a.view,d=a.editable,c=a.trigger,e=c.upper,f=c.lower,g=e||f,h=g.getParent(),k={};this.trigger=c;e&&t(a,e,!0);f&&t(a,f,!0);t(a,h,!0);a.inInlineMode&&w(a,!0);h.equals(d)?(k.left=b.scroll.x,k.right=-b.scroll.x,k.width=""):(k.left=g.size.left-g.size.margin.left+b.scroll.x-(a.inInlineMode?b.editable.left+b.editable.border.left:0),k.width=g.size.outerWidth+g.size.margin.left+g.size.margin.right+b.scroll.x,k.right="");e&&f?
-k.top=e.size.margin.bottom===f.size.margin.top?0|e.size.bottom+e.size.margin.bottom/2:e.size.margin.bottom<f.size.margin.top?e.size.bottom+e.size.margin.bottom:e.size.bottom+e.size.margin.bottom-f.size.margin.top:e?f||(k.top=e.size.bottom+e.size.margin.bottom):k.top=f.size.top-f.size.margin.top;c.is(Q)||m(k.top,b.scroll.y-15,b.scroll.y+5)?(k.top=a.inInlineMode?0:b.scroll.y,this.look(Q)):c.is(P)||m(k.top,b.pane.bottom-5,b.pane.bottom+15)?(k.top=a.inInlineMode?b.editable.height+b.editable.padding.top+
-b.editable.padding.bottom:b.pane.bottom-1,this.look(P)):(a.inInlineMode&&(k.top-=b.editable.top+b.editable.border.top),this.look(K));a.inInlineMode&&(k.top--,k.top+=b.editable.scroll.top,k.left+=b.editable.scroll.left);for(var l in k)k[l]=CKEDITOR.tools.cssLength(k[l]);this.setStyles(k)},look:function(a){if(this.oldLook!=a){for(var b=this.lineChildren.length,d;b--;)(d=this.lineChildren[b]).setAttribute("style",d.base+d.looks[0|a/2]);this.oldLook=a}},wrap:new C("span",a.doc)});for(d=c.lineChildren.length;d--;)c.lineChildren[d].appendTo(c);
-c.look(K);c.appendTo(c.wrap);c.unselectable();c.lineChildren[0].on("mouseup",function(d){c.detach();b(a,function(b){var d=a.line.trigger;b[d.is(O)?"insertBefore":"insertAfter"](d.is(O)?d.lower:d.upper)},!0);a.editor.focus();E.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView();d.data.preventDefault(!0)});c.on("mousedown",function(a){a.data.preventDefault(!0)});a.line=c}function b(a,b,d){var c=new CKEDITOR.dom.range(a.doc),e=a.editor,f;E.ie&&a.enterMode==CKEDITOR.ENTER_BR?f=a.doc.createText(W):
-(f=(f=l(a.element,!0))&&f.data("cke-enter-mode")||a.enterMode,f=new C(N[f],a.doc),f.is("br")||a.doc.createText(W).appendTo(f));d&&e.fire("saveSnapshot");b(f);c.moveToPosition(f,CKEDITOR.POSITION_AFTER_START);e.getSelection().selectRanges([c]);a.hotNode=f;d&&e.fire("saveSnapshot")}function d(a,d){return{canUndo:!0,modes:{wysiwyg:1},exec:function(){function e(c){var f=E.ie&&9>E.version?" ":W,g=a.hotNode&&a.hotNode.getText()==f&&a.element.equals(a.hotNode)&&a.lastCmdDirection===!!d;b(a,function(b){g&&
-a.hotNode&&a.hotNode.remove();b[d?"insertAfter":"insertBefore"](c);b.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!d});a.lastCmdDirection=!!d});E.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView();a.line.detach()}return function(b){b=b.getSelection().getStartElement();var f;b=b.getAscendant(H,1);if(!n(a,b)&&b&&!b.equals(a.editable)&&!b.contains(a.editable)){(f=l(b))&&"false"==f.getAttribute("contenteditable")&&(b=f);a.element=b;f=h(a,b,!d);var g;p(f)&&f.is(a.triggers)&&
-f.is(J)&&(!h(a,f,!d)||(g=h(a,f,!d))&&p(g)&&g.is(a.triggers))?e(f):(g=c(a,b),p(g)&&(h(a,g,!d)?(b=h(a,g,!d))&&p(b)&&b.is(a.triggers)&&e(g):e(g)))}}}()}}function g(a,b){if(!b||b.type!=CKEDITOR.NODE_ELEMENT||!b.$)return!1;var d=a.line;return d.wrap.equals(b)||d.wrap.contains(b)}function p(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.$}function r(a){if(!p(a))return!1;var b;(b=v(a))||(p(a)?(b={left:1,right:1,center:1},b=!(!b[a.getComputedStyle("float")]&&!b[a.getAttribute("align")])):b=!1);return b}function v(a){return!!{absolute:1,
-fixed:1}[a.getComputedStyle("position")]}function u(a,b){return p(b)?b.is(a.triggers):null}function n(a,b){if(!b)return!1;for(var d=b.getParents(1),c=d.length;c--;)for(var e=a.tabuList.length;e--;)if(d[c].hasAttribute(a.tabuList[e]))return!0;return!1}function q(a,b,d){b=b[d?"getLast":"getFirst"](function(b){return a.isRelevant(b)&&!b.is(S)});if(!b)return!1;t(a,b);return d?b.size.top>a.mouse.y:b.size.bottom<a.mouse.y}function x(a){var b=a.editable,d=a.mouse,c=a.view,e=a.triggerOffset;w(a);var h=d.y>
-(a.inInlineMode?c.editable.top+c.editable.height/2:Math.min(c.editable.height,c.pane.height)/2),b=b[h?"getLast":"getFirst"](function(a){return!(aa(a)||Y(a))});if(!b)return null;g(a,b)&&(b=a.line.wrap[h?"getPrevious":"getNext"](function(a){return!(aa(a)||Y(a))}));if(!p(b)||r(b)||!u(a,b))return null;t(a,b);return!h&&0<=b.size.top&&m(d.y,0,b.size.top+e)?(a=a.inInlineMode||0===c.scroll.y?Q:K,new f([null,b,O,M,a])):h&&b.size.bottom<=c.pane.height&&m(d.y,b.size.bottom-e,c.pane.height)?(a=a.inInlineMode||
-m(b.size.bottom,c.pane.height-e,c.pane.height)?P:K,new f([b,null,I,M,a])):null}function z(a){var b=a.mouse,d=a.view,e=a.triggerOffset,g=c(a);if(!g)return null;t(a,g);var e=Math.min(e,0|g.size.outerHeight/2),k=[],l,n;if(m(b.y,g.size.top-1,g.size.top+e))n=!1;else if(m(b.y,g.size.bottom-e,g.size.bottom+1))n=!0;else return null;if(r(g)||q(a,g,n)||g.getParent().is(U))return null;var H=h(a,g,!n);if(H){if(H&&H.type==CKEDITOR.NODE_TEXT)return null;if(p(H)){if(r(H)||!u(a,H)||H.getParent().is(U))return null;
-k=[H,g][n?"reverse":"concat"]().concat([R,M])}}else g.equals(a.editable[n?"getLast":"getFirst"](a.isRelevant))?(w(a),n&&m(b.y,g.size.bottom-e,d.pane.height)&&m(g.size.bottom,d.pane.height-e,d.pane.height)?l=P:m(b.y,0,g.size.top+e)&&(l=Q)):l=K,k=[null,g][n?"reverse":"concat"]().concat([n?I:O,M,l,g.equals(a.editable[n?"getLast":"getFirst"](a.isRelevant))?n?P:Q:K]);return 0 in k?new f(k):null}function A(a,b,d,c){for(var e=b.getDocumentPosition(),f={},g={},h={},k={},l=ca.length;l--;)f[ca[l]]=parseInt(b.getComputedStyle.call(b,
-"border-"+ca[l]+"-width"),10)||0,h[ca[l]]=parseInt(b.getComputedStyle.call(b,"padding-"+ca[l]),10)||0,g[ca[l]]=parseInt(b.getComputedStyle.call(b,"margin-"+ca[l]),10)||0;d&&!c||D(a,c);k.top=e.y-(d?0:a.view.scroll.y);k.left=e.x-(d?0:a.view.scroll.x);k.outerWidth=b.$.offsetWidth;k.outerHeight=b.$.offsetHeight;k.height=k.outerHeight-(h.top+h.bottom+f.top+f.bottom);k.width=k.outerWidth-(h.left+h.right+f.left+f.right);k.bottom=k.top+k.outerHeight;k.right=k.left+k.outerWidth;a.inInlineMode&&(k.scroll={top:b.$.scrollTop,
-left:b.$.scrollLeft});return y({border:f,padding:h,margin:g,ignoreScroll:d},k,!0)}function t(a,b,d){if(!p(b))return b.size=null;if(!b.size)b.size={};else if(b.size.ignoreScroll==d&&b.size.date>new Date-V)return null;return y(b.size,A(a,b,d),{date:+new Date},!0)}function w(a,b){a.view.editable=A(a,a.editable,b,!0)}function D(a,b){a.view||(a.view={});var d=a.view;if(!(!b&&d&&d.date>new Date-V)){var c=a.win,d=c.getScrollPosition(),c=c.getViewPaneSize();y(a.view,{scroll:{x:d.x,y:d.y,width:a.doc.$.documentElement.scrollWidth-
-c.width,height:a.doc.$.documentElement.scrollHeight-c.height},pane:{width:c.width,height:c.height,bottom:c.height+d.y},date:+new Date},!0)}}function B(a,b,d,c){for(var e=c,g=c,h=0,k=!1,l=!1,n=a.view.pane.height,m=a.mouse;m.y+h<n&&0<m.y-h;){k||(k=b(e,c));l||(l=b(g,c));!k&&0<m.y-h&&(e=d(a,{x:m.x,y:m.y-h}));!l&&m.y+h<n&&(g=d(a,{x:m.x,y:m.y+h}));if(k&&l)break;h+=2}return new f([e,g,null,null])}CKEDITOR.plugins.add("magicline",{init:function(a){var e=a.config,l=e.magicline_triggerOffset||30,m={editor:a,
-enterMode:e.enterMode,triggerOffset:l,holdDistance:0|l*(e.magicline_holdDistance||.5),boxColor:e.magicline_color||"#ff0000",rtl:"rtl"==e.contentsLangDirection,tabuList:["data-cke-hidden-sel"].concat(e.magicline_tabuList||[]),triggers:e.magicline_everywhere?H:{table:1,hr:1,div:1,ul:1,ol:1,dl:1,form:1,blockquote:1}},q,u,t;m.isRelevant=function(a){return p(a)&&!g(m,a)&&!r(a)};a.on("contentDom",function(){var l=a.editable(),p=a.document,H=a.window;y(m,{editable:l,inInlineMode:l.isInline(),doc:p,win:H,
-hotNode:null},!0);m.boundary=m.inInlineMode?m.editable:m.doc.getDocumentElement();l.is(G.$inline)||(m.inInlineMode&&!v(l)&&l.setStyles({position:"relative",top:null,left:null}),k.call(this,m),D(m),l.attachListener(a,"beforeUndoImage",function(){m.line.detach()}),l.attachListener(a,"beforeGetData",function(){m.line.wrap.getParent()&&(m.line.detach(),a.once("getData",function(){m.line.attach()},null,null,1E3))},null,null,0),l.attachListener(m.inInlineMode?p:p.getWindow().getFrame(),"mouseout",function(b){if("wysiwyg"==
-a.mode)if(m.inInlineMode){var d=b.data.$.clientX;b=b.data.$.clientY;D(m);w(m,!0);var c=m.view.editable,e=m.view.scroll;d>c.left-e.x&&d<c.right-e.x&&b>c.top-e.y&&b<c.bottom-e.y||(clearTimeout(t),t=null,m.line.detach())}else clearTimeout(t),t=null,m.line.detach()}),l.attachListener(l,"keyup",function(){m.hiddenMode=0}),l.attachListener(l,"keydown",function(b){if("wysiwyg"==a.mode)switch(b.data.getKeystroke()){case 2228240:case 16:m.hiddenMode=1,m.line.detach()}}),l.attachListener(m.inInlineMode?l:p,
-"mousemove",function(b){u=!0;if("wysiwyg"==a.mode&&!a.readOnly&&!t){var d={x:b.data.$.clientX,y:b.data.$.clientY};t=setTimeout(function(){m.mouse=d;t=m.trigger=null;D(m);u&&!m.hiddenMode&&a.focusManager.hasFocus&&!m.line.mouseNear()&&(m.element=da(m,!0))&&((m.trigger=x(m)||z(m)||fa(m))&&!n(m,m.trigger.upper||m.trigger.lower)?m.line.attach().place():(m.trigger=null,m.line.detach()),u=!1)},30)}}),l.attachListener(H,"scroll",function(){"wysiwyg"==a.mode&&(m.line.detach(),E.webkit&&(m.hiddenMode=1,clearTimeout(q),
-q=setTimeout(function(){m.mouseDown||(m.hiddenMode=0)},50)))}),l.attachListener(L?p:H,"mousedown",function(){"wysiwyg"==a.mode&&(m.line.detach(),m.hiddenMode=1,m.mouseDown=1)}),l.attachListener(L?p:H,"mouseup",function(){m.hiddenMode=0;m.mouseDown=0}),a.addCommand("accessPreviousSpace",d(m)),a.addCommand("accessNextSpace",d(m,!0)),a.setKeystroke([[e.magicline_keystrokePrevious,"accessPreviousSpace"],[e.magicline_keystrokeNext,"accessNextSpace"]]),a.on("loadSnapshot",function(){var b,d,c,e;for(e in{p:1,
-br:1,div:1})for(b=a.document.getElementsByTag(e),c=b.count();c--;)if((d=b.getItem(c)).data("cke-magicline-hot")){m.hotNode=d;m.lastCmdDirection="true"===d.data("cke-magicline-dir")?!0:!1;return}}),this.backdoor={accessFocusSpace:b,boxTrigger:f,isLine:g,getAscendantTrigger:c,getNonEmptyNeighbour:h,getSize:A,that:m,triggerEdge:z,triggerEditable:x,triggerExpand:fa})},this)}});var y=CKEDITOR.tools.extend,C=CKEDITOR.dom.element,F=C.createFromHtml,E=CKEDITOR.env,L=CKEDITOR.env.ie&&9>CKEDITOR.env.version,
-G=CKEDITOR.dtd,N={},O=128,I=64,R=32,M=16,Q=4,P=2,K=1,W=" ",U=G.$listItem,S=G.$tableContent,J=y({},G.$nonEditable,G.$empty),H=G.$block,V=100,T="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;",Z=T+"border-color:transparent;display:block;border-style:solid;",X="\x3cspan\x3e"+W+"\x3c/span\x3e";N[CKEDITOR.ENTER_BR]="br";N[CKEDITOR.ENTER_P]="p";N[CKEDITOR.ENTER_DIV]="div";f.prototype={set:function(a,b,d){this.properties=
-a+b+(d||K);return this},is:function(a){return(this.properties&a)==a}};var da=function(){function a(b,d){var c=b.$.elementFromPoint(d.x,d.y);return c&&c.nodeType?new CKEDITOR.dom.element(c):null}return function(b,d,c){if(!b.mouse)return null;var e=b.doc,f=b.line.wrap;c=c||b.mouse;var h=a(e,c);d&&g(b,h)&&(f.hide(),h=a(e,c),f.show());return!h||h.type!=CKEDITOR.NODE_ELEMENT||!h.$||E.ie&&9>E.version&&!b.boundary.equals(h)&&!b.boundary.contains(h)?null:h}}(),aa=CKEDITOR.dom.walker.whitespaces(),Y=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),
-fa=function(){function b(c){var f=c.element,g,h,k;if(!p(f)||f.contains(c.editable)||f.isReadOnly())return null;k=B(c,function(a,b){return!b.equals(a)},function(a,b){return da(a,!0,b)},f);g=k.upper;h=k.lower;if(a(c,g,h))return k.set(R,8);if(g&&f.contains(g))for(;!g.getParent().equals(f);)g=g.getParent();else g=f.getFirst(function(a){return d(c,a)});if(h&&f.contains(h))for(;!h.getParent().equals(f);)h=h.getParent();else h=f.getLast(function(a){return d(c,a)});if(!g||!h)return null;t(c,g);t(c,h);if(!m(c.mouse.y,
-g.size.top,h.size.bottom))return null;for(var f=Number.MAX_VALUE,l,n,q,H;h&&!h.equals(g)&&(n=g.getNext(c.isRelevant));)l=Math.abs(e(c,g,n)-c.mouse.y),l<f&&(f=l,q=g,H=n),g=n,t(c,g);if(!q||!H||!m(c.mouse.y,q.size.top,H.size.bottom))return null;k.upper=q;k.lower=H;return k.set(R,8)}function d(a,b){return!(b&&b.type==CKEDITOR.NODE_TEXT||Y(b)||r(b)||g(a,b)||b.type==CKEDITOR.NODE_ELEMENT&&b.$&&b.is("br"))}return function(d){var c=b(d),e;if(e=c){e=c.upper;var f=c.lower;e=!e||!f||r(f)||r(e)||f.equals(e)||
-e.equals(f)||f.contains(e)||e.contains(f)?!1:u(d,e)&&u(d,f)&&a(d,e,f)?!0:!1}return e?c:null}}(),ca=["top","left","right","bottom"]}(),CKEDITOR.config.magicline_keystrokePrevious=CKEDITOR.CTRL+CKEDITOR.SHIFT+51,CKEDITOR.config.magicline_keystrokeNext=CKEDITOR.CTRL+CKEDITOR.SHIFT+52,function(){function a(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var c=[],e=["style","className"],b=0;b<e.length;b++){var d=a.$.elements.namedItem(e[b]);d&&(d=new CKEDITOR.dom.element(d),c.push([d,
+b.language_remove=e?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;e&&(b["language_"+e.getAttribute("lang")]=CKEDITOR.TRISTATE_ON);return b}})},getCurrentLangElement:function(a){var f=a.elementPath();a=f&&f.elements;var c;if(f)for(var e=0;e<a.length;e++)f=a[e],!c&&"span"==f.getName()&&f.hasAttribute("dir")&&f.hasAttribute("lang")&&(c=f);return c}})}(),function(){function a(a,b,c){function d(c){if(!(!(l=k[c?"getFirst":"getLast"]())||l.is&&l.isBlockBoundary()||!(m=b.root[c?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))||
+m.is&&m.isBlockBoundary({br:1})))a.document.createElement("br")[c?"insertBefore":"insertAfter"](l)}for(var e=CKEDITOR.plugins.list.listToArray(b.root,c),f=[],g=0;g<b.contents.length;g++){var h=b.contents[g];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(f.push(h),CKEDITOR.dom.element.setMarker(c,h,"list_item_processed",!0))}h=null;for(g=0;g<f.length;g++)h=f[g].getCustomData("listarray_index"),e[h].indent=-1;for(g=h+1;g<e.length;g++)if(e[g].indent>e[g-1].indent+1){f=e[g-1].indent+
+1-e[g].indent;for(h=e[g].indent;e[g]&&e[g].indent>=h;)e[g].indent+=f,g++;g--}var k=CKEDITOR.plugins.list.arrayToList(e,c,null,a.config.enterMode,b.root.getAttribute("dir")).listNode,l,m;d(!0);d();k.replace(b.root);a.fire("contentDomInvalidated")}function f(a,b){this.name=a;this.context=this.type=b;this.allowedContent=b+" li";this.requiredContent=b}function c(a,b,c,d){for(var e,f;e=a[d?"getLast":"getFirst"](v);)(f=e.getDirection(1))!==b.getDirection(1)&&e.setAttribute("dir",f),e.remove(),c?e[d?"insertBefore":
+"insertAfter"](c):b.append(e,d)}function e(a){function b(d){var e=a[d?"getPrevious":"getNext"](g);e&&e.type==CKEDITOR.NODE_ELEMENT&&e.is(a.getName())&&(c(a,e,null,!d),a.remove(),a=e)}b();b(1)}function h(a){return a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in CKEDITOR.dtd.$block||a.getName()in CKEDITOR.dtd.$listItem)&&CKEDITOR.dtd[a.getName()]["#"]}function m(a,b,d){a.fire("saveSnapshot");d.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var f=d.extractContents();b.trim(!1,!0);var h=b.createBookmark(),
+k=new CKEDITOR.dom.elementPath(b.startContainer),m=k.block,k=k.lastElement.getAscendant("li",1)||m,x=new CKEDITOR.dom.elementPath(d.startContainer),u=x.contains(CKEDITOR.dtd.$listItem),x=x.contains(CKEDITOR.dtd.$list);m?(m=m.getBogus())&&m.remove():x&&(m=x.getPrevious(g))&&p(m)&&m.remove();(m=f.getLast())&&m.type==CKEDITOR.NODE_ELEMENT&&m.is("br")&&m.remove();(m=b.startContainer.getChild(b.startOffset))?f.insertBefore(m):b.startContainer.append(f);u&&(f=l(u))&&(k.contains(u)?(c(f,u.getParent(),u),
+f.remove()):k.append(f));for(;d.checkStartOfBlock()&&d.checkEndOfBlock();){x=d.startPath();f=x.block;if(!f)break;f.is("li")&&(k=f.getParent(),f.equals(k.getLast(g))&&f.equals(k.getFirst(g))&&(f=k));d.moveToPosition(f,CKEDITOR.POSITION_BEFORE_START);f.remove()}d=d.clone();f=a.editable();d.setEndAt(f,CKEDITOR.POSITION_BEFORE_END);d=new CKEDITOR.dom.walker(d);d.evaluator=function(a){return g(a)&&!p(a)};(d=d.next())&&d.type==CKEDITOR.NODE_ELEMENT&&d.getName()in CKEDITOR.dtd.$list&&e(d);b.moveToBookmark(h);
+b.select();a.fire("saveSnapshot")}function l(a){return(a=a.getLast(g))&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in k?a:null}var k={ol:1,ul:1},b=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark(),g=function(a){return!(b(a)||d(a))},p=CKEDITOR.dom.walker.bogus();CKEDITOR.plugins.list={listToArray:function(a,b,c,d,e){if(!k[a.getName()])return[];d||(d=0);c||(c=[]);for(var f=0,g=a.getChildCount();f<g;f++){var h=a.getChild(f);h.type==CKEDITOR.NODE_ELEMENT&&h.getName()in CKEDITOR.dtd.$list&&
+CKEDITOR.plugins.list.listToArray(h,b,c,d+1);if("li"==h.$.nodeName.toLowerCase()){var l={parent:a,indent:d,element:h,contents:[]};e?l.grandparent=e:(l.grandparent=a.getParent(),l.grandparent&&"li"==l.grandparent.$.nodeName.toLowerCase()&&(l.grandparent=l.grandparent.getParent()));b&&CKEDITOR.dom.element.setMarker(b,h,"listarray_index",c.length);c.push(l);for(var m=0,p=h.getChildCount(),u;m<p;m++)u=h.getChild(m),u.type==CKEDITOR.NODE_ELEMENT&&k[u.getName()]?CKEDITOR.plugins.list.listToArray(u,b,c,
+d+1,l.grandparent):l.contents.push(u)}}return c},arrayToList:function(a,b,c,e,f){c||(c=0);if(!a||a.length<c+1)return null;for(var h,l=a[c].parent.getDocument(),m=new CKEDITOR.dom.documentFragment(l),p=null,u=c,v=Math.max(a[c].indent,0),C=null,G,E,J=e==CKEDITOR.ENTER_P?"p":"div";;){var I=a[u];h=I.grandparent;G=I.element.getDirection(1);if(I.indent==v){p&&a[u].parent.getName()==p.getName()||(p=a[u].parent.clone(!1,1),f&&p.setAttribute("dir",f),m.append(p));C=p.append(I.element.clone(0,1));G!=p.getDirection(1)&&
+C.setAttribute("dir",G);for(h=0;h<I.contents.length;h++)C.append(I.contents[h].clone(1,1));u++}else if(I.indent==Math.max(v,0)+1)I=a[u-1].element.getDirection(1),u=CKEDITOR.plugins.list.arrayToList(a,null,u,e,I!=G?G:null),!C.getChildCount()&&CKEDITOR.env.needsNbspFiller&&7>=l.$.documentMode&&C.append(l.createText(" ")),C.append(u.listNode),u=u.nextIndex;else if(-1==I.indent&&!c&&h){k[h.getName()]?(C=I.element.clone(!1,!0),G!=h.getDirection(1)&&C.setAttribute("dir",G)):C=new CKEDITOR.dom.documentFragment(l);
+var p=h.getDirection(1)!=G,N=I.element,F=N.getAttribute("class"),P=N.getAttribute("style"),R=C.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(e!=CKEDITOR.ENTER_BR||p||P||F),L,Q=I.contents.length,O;for(h=0;h<Q;h++)if(L=I.contents[h],d(L)&&1<Q)R?O=L.clone(1,1):C.append(L.clone(1,1));else if(L.type==CKEDITOR.NODE_ELEMENT&&L.isBlockBoundary()){p&&!L.getDirection()&&L.setAttribute("dir",G);E=L;var U=N.getAttribute("style");U&&E.setAttribute("style",U.replace(/([^;])$/,"$1;")+(E.getAttribute("style")||""));F&&
+L.addClass(F);E=null;O&&(C.append(O),O=null);C.append(L.clone(1,1))}else R?(E||(E=l.createElement(J),C.append(E),p&&E.setAttribute("dir",G)),P&&E.setAttribute("style",P),F&&E.setAttribute("class",F),O&&(E.append(O),O=null),E.append(L.clone(1,1))):C.append(L.clone(1,1));O&&((E||C).append(O),O=null);C.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&u!=a.length-1&&(CKEDITOR.env.needsBrFiller&&(G=C.getLast())&&G.type==CKEDITOR.NODE_ELEMENT&&G.is("br")&&G.remove(),(G=C.getLast(g))&&G.type==CKEDITOR.NODE_ELEMENT&&
+G.is(CKEDITOR.dtd.$block)||C.append(l.createElement("br")));G=C.$.nodeName.toLowerCase();"div"!=G&&"p"!=G||C.appendBogus();m.append(C);p=null;u++}else return null;E=null;if(a.length<=u||Math.max(a[u].indent,0)<v)break}if(b)for(a=m.getFirst();a;){if(a.type==CKEDITOR.NODE_ELEMENT&&(CKEDITOR.dom.element.clearMarkers(b,a),a.getName()in CKEDITOR.dtd.$listItem&&(c=a,l=f=e=void 0,e=c.getDirection()))){for(f=c.getParent();f&&!(l=f.getDirection());)f=f.getParent();e==l&&c.removeAttribute("dir")}a=a.getNextSourceNode()}return{listNode:m,
+nextIndex:u}}};var u=/^h[1-6]$/,v=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT);f.prototype={exec:function(b){this.refresh(b,b.elementPath());var c=b.config,d=b.getSelection(),f=d&&d.getRanges();if(this.state==CKEDITOR.TRISTATE_OFF){var h=b.editable();if(h.getFirst(g)){var l=1==f.length&&f[0];(c=l&&l.getEnclosedNode())&&c.is&&this.type==c.getName()&&this.setState(CKEDITOR.TRISTATE_ON)}else c.enterMode==CKEDITOR.ENTER_BR?h.appendBogus():f[0].fixBlock(1,c.enterMode==CKEDITOR.ENTER_P?"p":"div"),
+d.selectRanges(f)}for(var c=d.createBookmarks(!0),h=[],m={},f=f.createIterator(),p=0;(l=f.getNextRange())&&++p;){var v=l.getBoundaryNodes(),y=v.startNode,z=v.endNode;y.type==CKEDITOR.NODE_ELEMENT&&"td"==y.getName()&&l.setStartAt(v.startNode,CKEDITOR.POSITION_AFTER_START);z.type==CKEDITOR.NODE_ELEMENT&&"td"==z.getName()&&l.setEndAt(v.endNode,CKEDITOR.POSITION_BEFORE_END);l=l.createIterator();for(l.forceBrBreak=this.state==CKEDITOR.TRISTATE_OFF;v=l.getNextParagraph();)if(!v.getCustomData("list_block")){CKEDITOR.dom.element.setMarker(m,
+v,"list_block",1);for(var C=b.elementPath(v),y=C.elements,z=0,C=C.blockLimit,G,E=y.length-1;0<=E&&(G=y[E]);E--)if(k[G.getName()]&&C.contains(G)){C.removeCustomData("list_group_object_"+p);(y=G.getCustomData("list_group_object"))?y.contents.push(v):(y={root:G,contents:[v]},h.push(y),CKEDITOR.dom.element.setMarker(m,G,"list_group_object",y));z=1;break}z||(z=C,z.getCustomData("list_group_object_"+p)?z.getCustomData("list_group_object_"+p).contents.push(v):(y={root:z,contents:[v]},CKEDITOR.dom.element.setMarker(m,
+z,"list_group_object_"+p,y),h.push(y)))}}for(G=[];0<h.length;)if(y=h.shift(),this.state==CKEDITOR.TRISTATE_OFF)if(k[y.root.getName()]){f=b;p=y;y=m;l=G;z=CKEDITOR.plugins.list.listToArray(p.root,y);C=[];for(v=0;v<p.contents.length;v++)E=p.contents[v],(E=E.getAscendant("li",!0))&&!E.getCustomData("list_item_processed")&&(C.push(E),CKEDITOR.dom.element.setMarker(y,E,"list_item_processed",!0));for(var E=p.root.getDocument(),J=void 0,I=void 0,v=0;v<C.length;v++){var N=C[v].getCustomData("listarray_index"),
+J=z[N].parent;J.is(this.type)||(I=E.createElement(this.type),J.copyAttributes(I,{start:1,type:1}),I.removeStyle("list-style-type"),z[N].parent=I)}y=CKEDITOR.plugins.list.arrayToList(z,y,null,f.config.enterMode);z=void 0;C=y.listNode.getChildCount();for(v=0;v<C&&(z=y.listNode.getChild(v));v++)z.getName()==this.type&&l.push(z);y.listNode.replace(p.root);f.fire("contentDomInvalidated")}else{z=b;l=y;v=G;C=l.contents;f=l.root.getDocument();p=[];1==C.length&&C[0].equals(l.root)&&(y=f.createElement("div"),
+C[0].moveChildren&&C[0].moveChildren(y),C[0].append(y),C[0]=y);l=l.contents[0].getParent();for(E=0;E<C.length;E++)l=l.getCommonAncestor(C[E].getParent());J=z.config.useComputedState;z=y=void 0;J=void 0===J||J;for(E=0;E<C.length;E++)for(I=C[E];N=I.getParent();){if(N.equals(l)){p.push(I);!z&&I.getDirection()&&(z=1);I=I.getDirection(J);null!==y&&(y=y&&y!=I?null:I);break}I=N}if(!(1>p.length)){C=p[p.length-1].getNext();E=f.createElement(this.type);v.push(E);for(J=v=void 0;p.length;)v=p.shift(),J=f.createElement("li"),
+I=v,I.is("pre")||u.test(I.getName())||"false"==I.getAttribute("contenteditable")?v.appendTo(J):(v.copyAttributes(J),y&&v.getDirection()&&(J.removeStyle("direction"),J.removeAttribute("dir")),v.moveChildren(J),v.remove()),J.appendTo(E);y&&z&&E.setAttribute("dir",y);C?E.insertBefore(C):E.appendTo(l)}}else this.state==CKEDITOR.TRISTATE_ON&&k[y.root.getName()]&&a.call(this,b,y,m);for(E=0;E<G.length;E++)e(G[E]);CKEDITOR.dom.element.clearAllMarkers(m);d.selectBookmarks(c);b.focus()},refresh:function(a,
+b){var c=b.contains(k,1),d=b.blockLimit||b.root;c&&d.contains(c)?this.setState(c.is(this.type)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("list",{requires:"indentlist",init:function(a){a.blockless||(a.addCommand("numberedlist",new f("numberedlist","ol")),a.addCommand("bulletedlist",new f("bulletedlist","ul")),a.ui.addButton&&(a.ui.addButton("NumberedList",{label:a.lang.list.numberedlist,command:"numberedlist",directional:!0,toolbar:"list,10"}),
+a.ui.addButton("BulletedList",{label:a.lang.list.bulletedlist,command:"bulletedlist",directional:!0,toolbar:"list,20"})),a.on("key",function(b){var c=b.data.domEvent.getKey(),d;if("wysiwyg"==a.mode&&c in{8:1,46:1}){var e=a.getSelection().getRanges()[0],f=e&&e.startPath();if(e&&e.collapsed){var t=8==c,v=a.editable(),u=new CKEDITOR.dom.walker(e.clone());u.evaluator=function(a){return g(a)&&!p(a)};u.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};c=e.clone();if(t){var y;
+(y=f.contains(k))&&e.checkBoundaryOfElement(y,CKEDITOR.START)&&(y=y.getParent())&&y.is("li")&&(y=l(y))?(d=y,y=y.getPrevious(g),c.moveToPosition(y&&p(y)?y:d,CKEDITOR.POSITION_BEFORE_START)):(u.range.setStartAt(v,CKEDITOR.POSITION_AFTER_START),u.range.setEnd(e.startContainer,e.startOffset),(y=u.previous())&&y.type==CKEDITOR.NODE_ELEMENT&&(y.getName()in k||y.is("li"))&&(y.is("li")||(u.range.selectNodeContents(y),u.reset(),u.evaluator=h,y=u.previous()),d=y,c.moveToElementEditEnd(d),c.moveToPosition(c.endPath().block,
+CKEDITOR.POSITION_BEFORE_END)));if(d)m(a,c,e),b.cancel();else{var z=f.contains(k);z&&e.checkBoundaryOfElement(z,CKEDITOR.START)&&(d=z.getFirst(g),e.checkBoundaryOfElement(d,CKEDITOR.START)&&(y=z.getPrevious(g),l(d)?y&&(e.moveToElementEditEnd(y),e.select()):a.execCommand("outdent"),b.cancel()))}}else if(d=f.contains("li")){if(u.range.setEndAt(v,CKEDITOR.POSITION_BEFORE_END),t=(v=d.getLast(g))&&h(v)?v:d,f=0,(y=u.next())&&y.type==CKEDITOR.NODE_ELEMENT&&y.getName()in k&&y.equals(v)?(f=1,y=u.next()):e.checkBoundaryOfElement(t,
+CKEDITOR.END)&&(f=2),f&&y){e=e.clone();e.moveToElementEditStart(y);if(1==f&&(c.optimize(),!c.startContainer.equals(d))){for(d=c.startContainer;d.is(CKEDITOR.dtd.$inline);)z=d,d=d.getParent();z&&c.moveToPosition(z,CKEDITOR.POSITION_AFTER_END)}2==f&&(c.moveToPosition(c.endPath().block,CKEDITOR.POSITION_BEFORE_END),e.endPath().block&&e.moveToPosition(e.endPath().block,CKEDITOR.POSITION_AFTER_START));m(a,c,e);b.cancel()}}else u.range.setEndAt(v,CKEDITOR.POSITION_BEFORE_END),(y=u.next())&&y.type==CKEDITOR.NODE_ELEMENT&&
+y.is(k)&&(y=y.getFirst(g),f.block&&e.checkStartOfBlock()&&e.checkEndOfBlock()?(f.block.remove(),e.moveToElementEditStart(y),e.select()):l(y)?(e.moveToElementEditStart(y),e.select()):(e=e.clone(),e.moveToElementEditStart(y),m(a,c,e)),b.cancel());setTimeout(function(){a.selectionChange(1)})}}}))}})}(),"use strict",function(){function a(a,b,c){return p(b)&&p(c)&&c.equals(b.getNext(function(a){return!(ba(a)||Y(a)||u(a))}))}function f(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}
+function c(a){var b=a.element;if(b&&p(b)&&(b=b.getAscendant(a.triggers,!0))&&a.editable.contains(b)){var c=l(b);if("true"==c.getAttribute("contenteditable"))return b;if(c.is(a.triggers))return c}return null}function e(a,b,c){t(a,b);t(a,c);a=b.size.bottom;c=c.size.top;return a&&c?0|(a+c)/2:a||c}function h(a,b,c){return b=b[c?"getPrevious":"getNext"](function(b){return b&&b.type==CKEDITOR.NODE_TEXT&&!ba(b)||p(b)&&!u(b)&&!g(a,b)})}function m(a,b,c){return a>b&&a<c}function l(a,b){if(a.data("cke-editable"))return null;
+for(b||(a=a.getParent());a&&!a.data("cke-editable");){if(a.hasAttribute("contenteditable"))return a;a=a.getParent()}return null}function k(a){var c=a.doc,d=G('\x3cspan contenteditable\x3d"false" style\x3d"'+T+"position:absolute;border-top:1px dashed "+a.boxColor+'"\x3e\x3c/span\x3e',c),e=CKEDITOR.getUrl(this.path+"images/"+(E.hidpi?"hidpi/":"")+"icon"+(a.rtl?"-rtl":"")+".png");z(d,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},lineChildren:[z(G('\x3cspan title\x3d"'+
+a.editor.lang.magicline.title+'" contenteditable\x3d"false"\x3e\x26#8629;\x3c/span\x3e',c),{base:T+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+e+") center no-repeat "+a.boxColor+";cursor:pointer;"+(E.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":"")+(E.hidpi?"background-size: 9px 10px;":""),looks:["top:-8px; border-radius: 2px;","top:-17px; border-radius: 2px 2px 0px 0px;","top:-1px; border-radius: 0px 0px 2px 2px;"]}),z(G(X,c),{base:aa+
+"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),z(G(X,c),{base:aa+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px","border-width:0 8px 8px 0;top:0px"]})],detach:function(){this.wrap.getParent()&&this.wrap.remove();return this},mouseNear:function(){t(a,this);var b=a.holdDistance,c=this.size;return c&&m(a.mouse.y,
+c.top-b,c.bottom+b)&&m(a.mouse.x,c.left-b,c.right+b)?!0:!1},place:function(){var b=a.view,c=a.editable,d=a.trigger,e=d.upper,f=d.lower,g=e||f,h=g.getParent(),k={};this.trigger=d;e&&t(a,e,!0);f&&t(a,f,!0);t(a,h,!0);a.inInlineMode&&x(a,!0);h.equals(c)?(k.left=b.scroll.x,k.right=-b.scroll.x,k.width=""):(k.left=g.size.left-g.size.margin.left+b.scroll.x-(a.inInlineMode?b.editable.left+b.editable.border.left:0),k.width=g.size.outerWidth+g.size.margin.left+g.size.margin.right+b.scroll.x,k.right="");e&&f?
+k.top=e.size.margin.bottom===f.size.margin.top?0|e.size.bottom+e.size.margin.bottom/2:e.size.margin.bottom<f.size.margin.top?e.size.bottom+e.size.margin.bottom:e.size.bottom+e.size.margin.bottom-f.size.margin.top:e?f||(k.top=e.size.bottom+e.size.margin.bottom):k.top=f.size.top-f.size.margin.top;d.is(Q)||m(k.top,b.scroll.y-15,b.scroll.y+5)?(k.top=a.inInlineMode?0:b.scroll.y,this.look(Q)):d.is(O)||m(k.top,b.pane.bottom-5,b.pane.bottom+15)?(k.top=a.inInlineMode?b.editable.height+b.editable.padding.top+
+b.editable.padding.bottom:b.pane.bottom-1,this.look(O)):(a.inInlineMode&&(k.top-=b.editable.top+b.editable.border.top),this.look(U));a.inInlineMode&&(k.top--,k.top+=b.editable.scroll.top,k.left+=b.editable.scroll.left);for(var l in k)k[l]=CKEDITOR.tools.cssLength(k[l]);this.setStyles(k)},look:function(a){if(this.oldLook!=a){for(var b=this.lineChildren.length,c;b--;)(c=this.lineChildren[b]).setAttribute("style",c.base+c.looks[0|a/2]);this.oldLook=a}},wrap:new C("span",a.doc)});for(c=d.lineChildren.length;c--;)d.lineChildren[c].appendTo(d);
+d.look(U);d.appendTo(d.wrap);d.unselectable();d.lineChildren[0].on("mouseup",function(c){d.detach();b(a,function(b){var c=a.line.trigger;b[c.is(F)?"insertBefore":"insertAfter"](c.is(F)?c.lower:c.upper)},!0);a.editor.focus();E.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView();c.data.preventDefault(!0)});d.on("mousedown",function(a){a.data.preventDefault(!0)});a.line=d}function b(a,b,c){var d=new CKEDITOR.dom.range(a.doc),e=a.editor,f;E.ie&&a.enterMode==CKEDITOR.ENTER_BR?f=a.doc.createText(K):
+(f=(f=l(a.element,!0))&&f.data("cke-enter-mode")||a.enterMode,f=new C(N[f],a.doc),f.is("br")||a.doc.createText(K).appendTo(f));c&&e.fire("saveSnapshot");b(f);d.moveToPosition(f,CKEDITOR.POSITION_AFTER_START);e.getSelection().selectRanges([d]);a.hotNode=f;c&&e.fire("saveSnapshot")}function d(a,d){return{canUndo:!0,modes:{wysiwyg:1},exec:function(){function e(c){var f=E.ie&&9>E.version?" ":K,g=a.hotNode&&a.hotNode.getText()==f&&a.element.equals(a.hotNode)&&a.lastCmdDirection===!!d;b(a,function(b){g&&
+a.hotNode&&a.hotNode.remove();b[d?"insertAfter":"insertBefore"](c);b.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!d});a.lastCmdDirection=!!d});E.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView();a.line.detach()}return function(b){b=b.getSelection().getStartElement();var f;b=b.getAscendant(M,1);if(!n(a,b)&&b&&!b.equals(a.editable)&&!b.contains(a.editable)){(f=l(b))&&"false"==f.getAttribute("contenteditable")&&(b=f);a.element=b;f=h(a,b,!d);var g;p(f)&&f.is(a.triggers)&&
+f.is(H)&&(!h(a,f,!d)||(g=h(a,f,!d))&&p(g)&&g.is(a.triggers))?e(f):(g=c(a,b),p(g)&&(h(a,g,!d)?(b=h(a,g,!d))&&p(b)&&b.is(a.triggers)&&e(g):e(g)))}}}()}}function g(a,b){if(!b||b.type!=CKEDITOR.NODE_ELEMENT||!b.$)return!1;var c=a.line;return c.wrap.equals(b)||c.wrap.contains(b)}function p(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.$}function u(a){if(!p(a))return!1;var b;(b=v(a))||(p(a)?(b={left:1,right:1,center:1},b=!(!b[a.getComputedStyle("float")]&&!b[a.getAttribute("align")])):b=!1);return b}function v(a){return!!{absolute:1,
+fixed:1}[a.getComputedStyle("position")]}function r(a,b){return p(b)?b.is(a.triggers):null}function n(a,b){if(!b)return!1;for(var c=b.getParents(1),d=c.length;d--;)for(var e=a.tabuList.length;e--;)if(c[d].hasAttribute(a.tabuList[e]))return!0;return!1}function q(a,b,c){b=b[c?"getLast":"getFirst"](function(b){return a.isRelevant(b)&&!b.is(S)});if(!b)return!1;t(a,b);return c?b.size.top>a.mouse.y:b.size.bottom<a.mouse.y}function w(a){var b=a.editable,c=a.mouse,d=a.view,e=a.triggerOffset;x(a);var h=c.y>
+(a.inInlineMode?d.editable.top+d.editable.height/2:Math.min(d.editable.height,d.pane.height)/2),b=b[h?"getLast":"getFirst"](function(a){return!(ba(a)||Y(a))});if(!b)return null;g(a,b)&&(b=a.line.wrap[h?"getPrevious":"getNext"](function(a){return!(ba(a)||Y(a))}));if(!p(b)||u(b)||!r(a,b))return null;t(a,b);return!h&&0<=b.size.top&&m(c.y,0,b.size.top+e)?(a=a.inInlineMode||0===d.scroll.y?Q:U,new f([null,b,F,L,a])):h&&b.size.bottom<=d.pane.height&&m(c.y,b.size.bottom-e,d.pane.height)?(a=a.inInlineMode||
+m(b.size.bottom,d.pane.height-e,d.pane.height)?O:U,new f([b,null,P,L,a])):null}function A(a){var b=a.mouse,d=a.view,e=a.triggerOffset,g=c(a);if(!g)return null;t(a,g);var e=Math.min(e,0|g.size.outerHeight/2),k=[],l,n;if(m(b.y,g.size.top-1,g.size.top+e))n=!1;else if(m(b.y,g.size.bottom-e,g.size.bottom+1))n=!0;else return null;if(u(g)||q(a,g,n)||g.getParent().is(V))return null;var H=h(a,g,!n);if(H){if(H&&H.type==CKEDITOR.NODE_TEXT)return null;if(p(H)){if(u(H)||!r(a,H)||H.getParent().is(V))return null;
+k=[H,g][n?"reverse":"concat"]().concat([R,L])}}else g.equals(a.editable[n?"getLast":"getFirst"](a.isRelevant))?(x(a),n&&m(b.y,g.size.bottom-e,d.pane.height)&&m(g.size.bottom,d.pane.height-e,d.pane.height)?l=O:m(b.y,0,g.size.top+e)&&(l=Q)):l=U,k=[null,g][n?"reverse":"concat"]().concat([n?P:F,L,l,g.equals(a.editable[n?"getLast":"getFirst"](a.isRelevant))?n?O:Q:U]);return 0 in k?new f(k):null}function B(a,b,c,d){for(var e=b.getDocumentPosition(),f={},g={},h={},k={},l=ca.length;l--;)f[ca[l]]=parseInt(b.getComputedStyle.call(b,
+"border-"+ca[l]+"-width"),10)||0,h[ca[l]]=parseInt(b.getComputedStyle.call(b,"padding-"+ca[l]),10)||0,g[ca[l]]=parseInt(b.getComputedStyle.call(b,"margin-"+ca[l]),10)||0;c&&!d||D(a,d);k.top=e.y-(c?0:a.view.scroll.y);k.left=e.x-(c?0:a.view.scroll.x);k.outerWidth=b.$.offsetWidth;k.outerHeight=b.$.offsetHeight;k.height=k.outerHeight-(h.top+h.bottom+f.top+f.bottom);k.width=k.outerWidth-(h.left+h.right+f.left+f.right);k.bottom=k.top+k.outerHeight;k.right=k.left+k.outerWidth;a.inInlineMode&&(k.scroll={top:b.$.scrollTop,
+left:b.$.scrollLeft});return z({border:f,padding:h,margin:g,ignoreScroll:c},k,!0)}function t(a,b,c){if(!p(b))return b.size=null;if(!b.size)b.size={};else if(b.size.ignoreScroll==c&&b.size.date>new Date-W)return null;return z(b.size,B(a,b,c),{date:+new Date},!0)}function x(a,b){a.view.editable=B(a,a.editable,b,!0)}function D(a,b){a.view||(a.view={});var c=a.view;if(!(!b&&c&&c.date>new Date-W)){var d=a.win,c=d.getScrollPosition(),d=d.getViewPaneSize();z(a.view,{scroll:{x:c.x,y:c.y,width:a.doc.$.documentElement.scrollWidth-
+d.width,height:a.doc.$.documentElement.scrollHeight-d.height},pane:{width:d.width,height:d.height,bottom:d.height+c.y},date:+new Date},!0)}}function y(a,b,c,d){for(var e=d,g=d,h=0,k=!1,l=!1,n=a.view.pane.height,m=a.mouse;m.y+h<n&&0<m.y-h;){k||(k=b(e,d));l||(l=b(g,d));!k&&0<m.y-h&&(e=c(a,{x:m.x,y:m.y-h}));!l&&m.y+h<n&&(g=c(a,{x:m.x,y:m.y+h}));if(k&&l)break;h+=2}return new f([e,g,null,null])}CKEDITOR.plugins.add("magicline",{init:function(a){var e=a.config,l=e.magicline_triggerOffset||30,m={editor:a,
+enterMode:e.enterMode,triggerOffset:l,holdDistance:0|l*(e.magicline_holdDistance||.5),boxColor:e.magicline_color||"#ff0000",rtl:"rtl"==e.contentsLangDirection,tabuList:["data-cke-hidden-sel"].concat(e.magicline_tabuList||[]),triggers:e.magicline_everywhere?M:{table:1,hr:1,div:1,ul:1,ol:1,dl:1,form:1,blockquote:1}},H,q,r;m.isRelevant=function(a){return p(a)&&!g(m,a)&&!u(a)};a.on("contentDom",function(){var l=a.editable(),p=a.document,t=a.window;z(m,{editable:l,inInlineMode:l.isInline(),doc:p,win:t,
+hotNode:null},!0);m.boundary=m.inInlineMode?m.editable:m.doc.getDocumentElement();l.is(I.$inline)||(m.inInlineMode&&!v(l)&&l.setStyles({position:"relative",top:null,left:null}),k.call(this,m),D(m),l.attachListener(a,"beforeUndoImage",function(){m.line.detach()}),l.attachListener(a,"beforeGetData",function(){m.line.wrap.getParent()&&(m.line.detach(),a.once("getData",function(){m.line.attach()},null,null,1E3))},null,null,0),l.attachListener(m.inInlineMode?p:p.getWindow().getFrame(),"mouseout",function(b){if("wysiwyg"==
+a.mode)if(m.inInlineMode){var c=b.data.$.clientX;b=b.data.$.clientY;D(m);x(m,!0);var d=m.view.editable,e=m.view.scroll;c>d.left-e.x&&c<d.right-e.x&&b>d.top-e.y&&b<d.bottom-e.y||(clearTimeout(r),r=null,m.line.detach())}else clearTimeout(r),r=null,m.line.detach()}),l.attachListener(l,"keyup",function(){m.hiddenMode=0}),l.attachListener(l,"keydown",function(b){if("wysiwyg"==a.mode)switch(b.data.getKeystroke()){case 2228240:case 16:m.hiddenMode=1,m.line.detach()}}),l.attachListener(m.inInlineMode?l:p,
+"mousemove",function(b){q=!0;if("wysiwyg"==a.mode&&!a.readOnly&&!r){var c={x:b.data.$.clientX,y:b.data.$.clientY};r=setTimeout(function(){m.mouse=c;r=m.trigger=null;D(m);q&&!m.hiddenMode&&a.focusManager.hasFocus&&!m.line.mouseNear()&&(m.element=da(m,!0))&&((m.trigger=w(m)||A(m)||ea(m))&&!n(m,m.trigger.upper||m.trigger.lower)?m.line.attach().place():(m.trigger=null,m.line.detach()),q=!1)},30)}}),l.attachListener(t,"scroll",function(){"wysiwyg"==a.mode&&(m.line.detach(),E.webkit&&(m.hiddenMode=1,clearTimeout(H),
+H=setTimeout(function(){m.mouseDown||(m.hiddenMode=0)},50)))}),l.attachListener(J?p:t,"mousedown",function(){"wysiwyg"==a.mode&&(m.line.detach(),m.hiddenMode=1,m.mouseDown=1)}),l.attachListener(J?p:t,"mouseup",function(){m.hiddenMode=0;m.mouseDown=0}),a.addCommand("accessPreviousSpace",d(m)),a.addCommand("accessNextSpace",d(m,!0)),a.setKeystroke([[e.magicline_keystrokePrevious,"accessPreviousSpace"],[e.magicline_keystrokeNext,"accessNextSpace"]]),a.on("loadSnapshot",function(){var b,c,d,e;for(e in{p:1,
+br:1,div:1})for(b=a.document.getElementsByTag(e),d=b.count();d--;)if((c=b.getItem(d)).data("cke-magicline-hot")){m.hotNode=c;m.lastCmdDirection="true"===c.data("cke-magicline-dir")?!0:!1;return}}),this.backdoor={accessFocusSpace:b,boxTrigger:f,isLine:g,getAscendantTrigger:c,getNonEmptyNeighbour:h,getSize:B,that:m,triggerEdge:A,triggerEditable:w,triggerExpand:ea})},this)}});var z=CKEDITOR.tools.extend,C=CKEDITOR.dom.element,G=C.createFromHtml,E=CKEDITOR.env,J=CKEDITOR.env.ie&&9>CKEDITOR.env.version,
+I=CKEDITOR.dtd,N={},F=128,P=64,R=32,L=16,Q=4,O=2,U=1,K=" ",V=I.$listItem,S=I.$tableContent,H=z({},I.$nonEditable,I.$empty),M=I.$block,W=100,T="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;",aa=T+"border-color:transparent;display:block;border-style:solid;",X="\x3cspan\x3e"+K+"\x3c/span\x3e";N[CKEDITOR.ENTER_BR]="br";N[CKEDITOR.ENTER_P]="p";N[CKEDITOR.ENTER_DIV]="div";f.prototype={set:function(a,b,c){this.properties=
+a+b+(c||U);return this},is:function(a){return(this.properties&a)==a}};var da=function(){function a(b,c){var d=b.$.elementFromPoint(c.x,c.y);return d&&d.nodeType?new CKEDITOR.dom.element(d):null}return function(b,c,d){if(!b.mouse)return null;var e=b.doc,f=b.line.wrap;d=d||b.mouse;var h=a(e,d);c&&g(b,h)&&(f.hide(),h=a(e,d),f.show());return!h||h.type!=CKEDITOR.NODE_ELEMENT||!h.$||E.ie&&9>E.version&&!b.boundary.equals(h)&&!b.boundary.contains(h)?null:h}}(),ba=CKEDITOR.dom.walker.whitespaces(),Y=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),
+ea=function(){function b(d){var f=d.element,g,h,k;if(!p(f)||f.contains(d.editable)||f.isReadOnly())return null;k=y(d,function(a,b){return!b.equals(a)},function(a,b){return da(a,!0,b)},f);g=k.upper;h=k.lower;if(a(d,g,h))return k.set(R,8);if(g&&f.contains(g))for(;!g.getParent().equals(f);)g=g.getParent();else g=f.getFirst(function(a){return c(d,a)});if(h&&f.contains(h))for(;!h.getParent().equals(f);)h=h.getParent();else h=f.getLast(function(a){return c(d,a)});if(!g||!h)return null;t(d,g);t(d,h);if(!m(d.mouse.y,
+g.size.top,h.size.bottom))return null;for(var f=Number.MAX_VALUE,l,n,H,q;h&&!h.equals(g)&&(n=g.getNext(d.isRelevant));)l=Math.abs(e(d,g,n)-d.mouse.y),l<f&&(f=l,H=g,q=n),g=n,t(d,g);if(!H||!q||!m(d.mouse.y,H.size.top,q.size.bottom))return null;k.upper=H;k.lower=q;return k.set(R,8)}function c(a,b){return!(b&&b.type==CKEDITOR.NODE_TEXT||Y(b)||u(b)||g(a,b)||b.type==CKEDITOR.NODE_ELEMENT&&b.$&&b.is("br"))}return function(c){var d=b(c),e;if(e=d){e=d.upper;var f=d.lower;e=!e||!f||u(f)||u(e)||f.equals(e)||
+e.equals(f)||f.contains(e)||e.contains(f)?!1:r(c,e)&&r(c,f)&&a(c,e,f)?!0:!1}return e?d:null}}(),ca=["top","left","right","bottom"]}(),CKEDITOR.config.magicline_keystrokePrevious=CKEDITOR.CTRL+CKEDITOR.SHIFT+51,CKEDITOR.config.magicline_keystrokeNext=CKEDITOR.CTRL+CKEDITOR.SHIFT+52,function(){function a(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var c=[],e=["style","className"],b=0;b<e.length;b++){var d=a.$.elements.namedItem(e[b]);d&&(d=new CKEDITOR.dom.element(d),c.push([d,
 d.nextSibling]),d.remove())}return c}function f(a,c){if(a&&a.type==CKEDITOR.NODE_ELEMENT&&"form"==a.getName()&&0<c.length)for(var e=c.length-1;0<=e;e--){var b=c[e][0],d=c[e][1];d?b.insertBefore(d):b.appendTo(a)}}function c(c,e){var h=a(c),b={},d=c.$;e||(b["class"]=d.className||"",d.className="");b.inline=d.style.cssText||"";e||(d.style.cssText="position: static; overflow: visible");f(h);return b}function e(c,e){var h=a(c),b=c.$;"class"in e&&(b.className=e["class"]);"inline"in e&&(b.style.cssText=
 e.inline);f(h)}function h(a){if(!a.editable().isInline()){var c=CKEDITOR.instances,e;for(e in c){var b=c[e];"wysiwyg"!=b.mode||b.readOnly||(b=b.document.getBody(),b.setAttribute("contentEditable",!1),b.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(),a.focus())}}CKEDITOR.plugins.add("maximize",{init:function(a){function f(){var b=d.getViewPaneSize();a.resize(b.width,b.height,null,!0)}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var k=a.lang,b=CKEDITOR.document,d=b.getWindow(),
-g,p,r,v=CKEDITOR.TRISTATE_OFF;a.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var u=a.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}),n=a.ui.space("contents");if("wysiwyg"==a.mode){var q=a.getSelection();g=q&&q.getRanges();p=d.getScrollPosition()}else{var x=a.editable().$;g=!CKEDITOR.env.ie&&[x.selectionStart,x.selectionEnd];p=[x.scrollLeft,x.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){d.on("resize",
-f);r=d.getScrollPosition();for(q=a.container;q=q.getParent();)q.setCustomData("maximize_saved_styles",c(q)),q.setStyle("z-index",a.config.baseFloatZIndex-5);n.setCustomData("maximize_saved_styles",c(n,!0));u.setCustomData("maximize_saved_styles",c(u,!0));n={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0};b.getDocumentElement().setStyles(n);!CKEDITOR.env.gecko&&b.getDocumentElement().setStyle("position","fixed");CKEDITOR.env.gecko&&CKEDITOR.env.quirks||b.getBody().setStyles(n);CKEDITOR.env.ie?
-setTimeout(function(){d.$.scrollTo(0,0)},0):d.$.scrollTo(0,0);u.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute");u.$.offsetLeft;u.setStyles({"z-index":a.config.baseFloatZIndex-5,left:"0px",top:"0px"});u.addClass("cke_maximized");f();n=u.getDocumentPosition();u.setStyles({left:-1*n.x+"px",top:-1*n.y+"px"});CKEDITOR.env.gecko&&h(a)}else if(this.state==CKEDITOR.TRISTATE_ON){d.removeListener("resize",f);for(var q=[n,u],z=0;z<q.length;z++)e(q[z],q[z].getCustomData("maximize_saved_styles")),
-q[z].removeCustomData("maximize_saved_styles");for(q=a.container;q=q.getParent();)e(q,q.getCustomData("maximize_saved_styles")),q.removeCustomData("maximize_saved_styles");CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(r.x,r.y)},0):d.$.scrollTo(r.x,r.y);u.removeClass("cke_maximized");CKEDITOR.env.webkit&&(u.setStyle("display","inline"),setTimeout(function(){u.setStyle("display","block")},0));a.fire("resize",{outerHeight:a.container.$.offsetHeight,contentsHeight:n.$.offsetHeight,outerWidth:a.container.$.offsetWidth})}this.toggleState();
-if(q=this.uiItems[0])n=this.state==CKEDITOR.TRISTATE_OFF?k.maximize.maximize:k.maximize.minimize,q=CKEDITOR.document.getById(q._.id),q.getChild(1).setHtml(n),q.setAttribute("title",n),q.setAttribute("href",'javascript:void("'+n+'");');"wysiwyg"==a.mode?g?(CKEDITOR.env.gecko&&h(a),a.getSelection().selectRanges(g),(x=a.getSelection().getStartElement())&&x.scrollIntoView(!0)):d.$.scrollTo(p.x,p.y):(g&&(x.selectionStart=g[0],x.selectionEnd=g[1]),x.scrollLeft=p[0],x.scrollTop=p[1]);g=p=null;v=this.state;
+g,p,u,v=CKEDITOR.TRISTATE_OFF;a.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var r=a.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}),n=a.ui.space("contents");if("wysiwyg"==a.mode){var q=a.getSelection();g=q&&q.getRanges();p=d.getScrollPosition()}else{var w=a.editable().$;g=!CKEDITOR.env.ie&&[w.selectionStart,w.selectionEnd];p=[w.scrollLeft,w.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){d.on("resize",
+f);u=d.getScrollPosition();for(q=a.container;q=q.getParent();)q.setCustomData("maximize_saved_styles",c(q)),q.setStyle("z-index",a.config.baseFloatZIndex-5);n.setCustomData("maximize_saved_styles",c(n,!0));r.setCustomData("maximize_saved_styles",c(r,!0));n={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0};b.getDocumentElement().setStyles(n);!CKEDITOR.env.gecko&&b.getDocumentElement().setStyle("position","fixed");CKEDITOR.env.gecko&&CKEDITOR.env.quirks||b.getBody().setStyles(n);CKEDITOR.env.ie?
+setTimeout(function(){d.$.scrollTo(0,0)},0):d.$.scrollTo(0,0);r.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute");r.$.offsetLeft;r.setStyles({"z-index":a.config.baseFloatZIndex-5,left:"0px",top:"0px"});r.addClass("cke_maximized");f();n=r.getDocumentPosition();r.setStyles({left:-1*n.x+"px",top:-1*n.y+"px"});CKEDITOR.env.gecko&&h(a)}else if(this.state==CKEDITOR.TRISTATE_ON){d.removeListener("resize",f);for(var q=[n,r],A=0;A<q.length;A++)e(q[A],q[A].getCustomData("maximize_saved_styles")),
+q[A].removeCustomData("maximize_saved_styles");for(q=a.container;q=q.getParent();)e(q,q.getCustomData("maximize_saved_styles")),q.removeCustomData("maximize_saved_styles");CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(u.x,u.y)},0):d.$.scrollTo(u.x,u.y);r.removeClass("cke_maximized");CKEDITOR.env.webkit&&(r.setStyle("display","inline"),setTimeout(function(){r.setStyle("display","block")},0));a.fire("resize",{outerHeight:a.container.$.offsetHeight,contentsHeight:n.$.offsetHeight,outerWidth:a.container.$.offsetWidth})}this.toggleState();
+if(q=this.uiItems[0])n=this.state==CKEDITOR.TRISTATE_OFF?k.maximize.maximize:k.maximize.minimize,q=CKEDITOR.document.getById(q._.id),q.getChild(1).setHtml(n),q.setAttribute("title",n),q.setAttribute("href",'javascript:void("'+n+'");');"wysiwyg"==a.mode?g?(CKEDITOR.env.gecko&&h(a),a.getSelection().selectRanges(g),(w=a.getSelection().getStartElement())&&w.scrollIntoView(!0)):d.$.scrollTo(p.x,p.y):(g&&(w.selectionStart=g[0],w.selectionEnd=g[1]),w.scrollLeft=p[0],w.scrollTop=p[1]);g=p=null;v=this.state;
 a.fire("maximize",this.state)},canUndo:!1});a.ui.addButton&&a.ui.addButton("Maximize",{label:k.maximize.maximize,command:"maximize",toolbar:"tools,10"});a.on("mode",function(){var b=a.getCommand("maximize");b.setState(b.state==CKEDITOR.TRISTATE_DISABLED?CKEDITOR.TRISTATE_DISABLED:v)},null,null,100)}}})}(),function(){var a={canUndo:!1,async:!0,exec:function(f){f.getClipboardData({title:f.lang.pastetext.title},function(c){c&&f.fire("paste",{type:"text",dataValue:c.dataValue,method:"paste",dataTransfer:CKEDITOR.plugins.clipboard.initPasteDataTransfer()});
 f.fire("afterCommandExec",{name:"pastetext",command:a,returnValue:!!c})})}};CKEDITOR.plugins.add("pastetext",{requires:"clipboard",init:function(f){f.addCommand("pastetext",a);f.ui.addButton&&f.ui.addButton("PasteText",{label:f.lang.pastetext.button,command:"pastetext",toolbar:"clipboard,40"});if(f.config.forcePasteAsPlainText)f.on("beforePaste",function(a){"html"!=a.data.type&&(a.data.type="text")});f.on("pasteState",function(a){f.getCommand("pastetext").setState(a.data)})}})}(),function(){function a(a,
 e,f){var m=CKEDITOR.cleanWord;m?f():(a=CKEDITOR.getUrl(a.config.pasteFromWordCleanupFile||e+"filter/default.js"),CKEDITOR.scriptLoader.load(a,f,null,!0));return!m}function f(a){a.data.type="html"}CKEDITOR.plugins.add("pastefromword",{requires:"clipboard",init:function(c){var e=0,h=this.path;c.addCommand("pastefromword",{canUndo:!1,async:!0,exec:function(a){var c=this;e=1;a.once("beforePaste",f);a.getClipboardData({title:a.lang.pastefromword.title},function(e){e&&a.fire("paste",{type:"html",dataValue:e.dataValue,
 method:"paste",dataTransfer:CKEDITOR.plugins.clipboard.initPasteDataTransfer()});a.fire("afterCommandExec",{name:"pastefromword",command:c,returnValue:!!e})})}});c.ui.addButton&&c.ui.addButton("PasteFromWord",{label:c.lang.pastefromword.toolbar,command:"pastefromword",toolbar:"clipboard,50"});c.on("pasteState",function(a){c.getCommand("pastefromword").setState(a.data)});c.on("paste",function(f){var l=f.data,k=l.dataValue;if(k&&(e||/(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/.test(k))){l.dontFilter=
 !0;var b=a(c,h,function(){if(b)c.fire("paste",l);else if(!c.config.pasteFromWordPromptCleanup||e||confirm(c.lang.pastefromword.confirmCleanup))l.dataValue=CKEDITOR.cleanWord(k,c);e=0});b&&f.cancel()}},null,null,3)}})}(),CKEDITOR.plugins.add("removeformat",{init:function(a){a.addCommand("removeFormat",CKEDITOR.plugins.removeformat.commands.removeformat);a.ui.addButton&&a.ui.addButton("RemoveFormat",{label:a.lang.removeformat.toolbar,command:"removeFormat",toolbar:"cleanup,10"})}}),CKEDITOR.plugins.removeformat=
 {commands:{removeformat:{exec:function(a){for(var f=a._.removeFormatRegex||(a._.removeFormatRegex=new RegExp("^(?:"+a.config.removeFormatTags.replace(/,/g,"|")+")$","i")),c=a._.removeAttributes||(a._.removeAttributes=a.config.removeFormatAttributes.split(",")),e=CKEDITOR.plugins.removeformat.filter,h=a.getSelection().getRanges(),m=h.createIterator(),l=function(a){return a.type==CKEDITOR.NODE_ELEMENT},k;k=m.getNextRange();){k.collapsed||k.enlarge(CKEDITOR.ENLARGE_ELEMENT);var b=k.createBookmark(),
-d=b.startNode,g=b.endNode,p=function(b){for(var d=a.elementPath(b),c=d.elements,g=1,h;(h=c[g])&&!h.equals(d.block)&&!h.equals(d.blockLimit);g++)f.test(h.getName())&&e(a,h)&&b.breakParent(h)};p(d);if(g)for(p(g),d=d.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);d&&!d.equals(g);)if(d.isReadOnly()){if(d.getPosition(g)&CKEDITOR.POSITION_CONTAINS)break;d=d.getNext(l)}else p=d.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),"img"==d.getName()&&d.data("cke-realelement")||!e(a,d)||(f.test(d.getName())?d.remove(1):
+d=b.startNode,g=b.endNode,p=function(b){for(var c=a.elementPath(b),d=c.elements,g=1,h;(h=d[g])&&!h.equals(c.block)&&!h.equals(c.blockLimit);g++)f.test(h.getName())&&e(a,h)&&b.breakParent(h)};p(d);if(g)for(p(g),d=d.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);d&&!d.equals(g);)if(d.isReadOnly()){if(d.getPosition(g)&CKEDITOR.POSITION_CONTAINS)break;d=d.getNext(l)}else p=d.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),"img"==d.getName()&&d.data("cke-realelement")||!e(a,d)||(f.test(d.getName())?d.remove(1):
 (d.removeAttributes(c),a.fire("removeFormatCleanup",d))),d=p;k.moveToBookmark(b)}a.forceNextSelectionCheck();a.getSelection().selectRanges(h)}}},filter:function(a,f){for(var c=a._.removeFormatFilters||[],e=0;e<c.length;e++)if(!1===c[e](f))return!1;return!0}},CKEDITOR.editor.prototype.addRemoveFormatFilter=function(a){this._.removeFormatFilters||(this._.removeFormatFilters=[]);this._.removeFormatFilters.push(a)},CKEDITOR.config.removeFormatTags="b,big,cite,code,del,dfn,em,font,i,ins,kbd,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var",
 CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign",function(){CKEDITOR.plugins.add("sourcearea",{init:function(f){function c(){var a=h&&this.equals(CKEDITOR.document.getActive());this.hide();this.setStyle("height",this.getParent().$.clientHeight+"px");this.setStyle("width",this.getParent().$.clientWidth+"px");this.show();a&&this.focus()}if(f.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var e=CKEDITOR.plugins.sourcearea;f.addMode("source",function(e){var h=f.ui.space("contents").getDocument().createElement("textarea");
 h.setStyles(CKEDITOR.tools.extend({width:CKEDITOR.env.ie7Compat?"99%":"100%",height:"100%",resize:"none",outline:"none","text-align":"left"},CKEDITOR.tools.cssVendorPrefix("tab-size",f.config.sourceAreaTabSize||4)));h.setAttribute("dir","ltr");h.addClass("cke_source").addClass("cke_reset").addClass("cke_enable_context_menu");f.ui.space("contents").append(h);h=f.editable(new a(f,h));h.setData(f.getData(1));CKEDITOR.env.ie&&(h.attachListener(f,"resize",c,h),h.attachListener(CKEDITOR.document.getWindow(),
@@ -875,22 +874,22 @@ b.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!e)if(!h&&b.equals(this))
 c){this.setState(c.contains("table",1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}if(!a.blockless){var c=a.lang.table;a.addCommand("table",new CKEDITOR.dialogCommand("table",{context:"table",allowedContent:"table{width,height}[align,border,cellpadding,cellspacing,summary];caption tbody thead tfoot;th td tr[scope];"+(a.plugins.dialogadvtab?"table"+a.plugins.dialogadvtab.allowedContent():""),requiredContent:"table",contentTransformations:[["table{width}: sizeToStyle","table[width]: sizeToAttribute"]]}));
 a.addCommand("tableProperties",new CKEDITOR.dialogCommand("tableProperties",f()));a.addCommand("tableDelete",f({exec:function(a){var c=a.elementPath().contains("table",1);if(c){var f=c.getParent(),l=a.editable();1!=f.getChildCount()||f.is("td","th")||f.equals(l)||(c=f);a=a.createRange();a.moveToPosition(c,CKEDITOR.POSITION_BEFORE_START);c.remove();a.select()}}}));a.ui.addButton&&a.ui.addButton("Table",{label:c.toolbar,command:"table",toolbar:"insert,30"});CKEDITOR.dialog.add("table",this.path+"dialogs/table.js");
 CKEDITOR.dialog.add("tableProperties",this.path+"dialogs/table.js");a.addMenuItems&&a.addMenuItems({table:{label:c.menu,command:"tableProperties",group:"table",order:5},tabledelete:{label:c.deleteTable,command:"tableDelete",group:"table",order:1}});a.on("doubleclick",function(a){a.data.element.is("table")&&(a.data.dialog="tableProperties")});a.contextMenu&&a.contextMenu.addListener(function(){return{tabledelete:CKEDITOR.TRISTATE_OFF,table:CKEDITOR.TRISTATE_OFF}})}}}),function(){function a(a){function b(a){0<
-d.length||a.type!=CKEDITOR.NODE_ELEMENT||!r.test(a.getName())||a.getCustomData("selected_cell")||(CKEDITOR.dom.element.setMarker(c,a,"selected_cell",!0),d.push(a))}a=a.getRanges();for(var d=[],c={},e=0;e<a.length;e++){var f=a[e];if(f.collapsed)f=f.getCommonAncestor(),(f=f.getAscendant("td",!0)||f.getAscendant("th",!0))&&d.push(f);else{var f=new CKEDITOR.dom.walker(f),g;for(f.guard=b;g=f.next();)g.type==CKEDITOR.NODE_ELEMENT&&g.is(CKEDITOR.dtd.table)||(g=g.getAscendant("td",!0)||g.getAscendant("th",
-!0))&&!g.getCustomData("selected_cell")&&(CKEDITOR.dom.element.setMarker(c,g,"selected_cell",!0),d.push(g))}}CKEDITOR.dom.element.clearAllMarkers(c);return d}function f(b,d){for(var c=a(b),e=c[0],f=e.getAscendant("table"),e=e.getDocument(),g=c[0].getParent(),h=g.$.rowIndex,c=c[c.length-1],k=c.getParent().$.rowIndex+c.$.rowSpan-1,c=new CKEDITOR.dom.element(f.$.rows[k]),h=d?h:k,g=d?g:c,c=CKEDITOR.tools.buildTableMap(f),f=c[h],h=d?c[h-1]:c[h+1],c=c[0].length,e=e.createElement("tr"),k=0;f[k]&&k<c;k++){var l;
-1<f[k].rowSpan&&h&&f[k]==h[k]?(l=f[k],l.rowSpan+=1):(l=(new CKEDITOR.dom.element(f[k])).clone(),l.removeAttribute("rowSpan"),l.appendBogus(),e.append(l),l=l.$);k+=l.colSpan-1}d?e.insertBefore(g):e.insertAfter(g)}function c(b){if(b instanceof CKEDITOR.dom.selection){var d=a(b),e=d[0].getAscendant("table"),f=CKEDITOR.tools.buildTableMap(e);b=d[0].getParent().$.rowIndex;for(var d=d[d.length-1],g=d.getParent().$.rowIndex+d.$.rowSpan-1,d=[],h=b;h<=g;h++){for(var k=f[h],l=new CKEDITOR.dom.element(e.$.rows[h]),
-m=0;m<k.length;m++){var p=new CKEDITOR.dom.element(k[m]),r=p.getParent().$.rowIndex;1==p.$.rowSpan?p.remove():(--p.$.rowSpan,r==h&&(r=f[h+1],r[m-1]?p.insertAfter(new CKEDITOR.dom.element(r[m-1])):(new CKEDITOR.dom.element(e.$.rows[h+1])).append(p,1)));m+=p.$.colSpan-1}d.push(l)}f=e.$.rows;e=new CKEDITOR.dom.element(f[g+1]||(0<b?f[b-1]:null)||e.$.parentNode);for(h=d.length;0<=h;h--)c(d[h]);return e}b instanceof CKEDITOR.dom.element&&(e=b.getAscendant("table"),1==e.$.rows.length?e.remove():b.remove());
-return null}function e(a,b){for(var d=b?Infinity:0,c=0;c<a.length;c++){var e;e=a[c];for(var f=b,g=e.getParent().$.cells,h=0,k=0;k<g.length;k++){var l=g[k],h=h+(f?1:l.colSpan);if(l==e.$)break}e=h-1;if(b?e<d:e>d)d=e}return d}function h(b,d){for(var c=a(b),f=c[0].getAscendant("table"),g=e(c,1),c=e(c),g=d?g:c,h=CKEDITOR.tools.buildTableMap(f),f=[],c=[],k=h.length,l=0;l<k;l++)f.push(h[l][g]),c.push(d?h[l][g-1]:h[l][g+1]);for(l=0;l<k;l++)f[l]&&(1<f[l].colSpan&&c[l]==f[l]?(g=f[l],g.colSpan+=1):(g=(new CKEDITOR.dom.element(f[l])).clone(),
-g.removeAttribute("colSpan"),g.appendBogus(),g[d?"insertBefore":"insertAfter"].call(g,new CKEDITOR.dom.element(f[l])),g=g.$),l+=g.rowSpan-1)}function m(a,b){var d=a.getStartElement();if(d=d.getAscendant("td",1)||d.getAscendant("th",1)){var c=d.clone();c.appendBogus();b?c.insertBefore(d):c.insertAfter(d)}}function l(b){if(b instanceof CKEDITOR.dom.selection){b=a(b);var d=b[0]&&b[0].getAscendant("table"),c;a:{var e=0;c=b.length-1;for(var f={},g,h;g=b[e++];)CKEDITOR.dom.element.setMarker(f,g,"delete_cell",
-!0);for(e=0;g=b[e++];)if((h=g.getPrevious())&&!h.getCustomData("delete_cell")||(h=g.getNext())&&!h.getCustomData("delete_cell")){CKEDITOR.dom.element.clearAllMarkers(f);c=h;break a}CKEDITOR.dom.element.clearAllMarkers(f);h=b[0].getParent();(h=h.getPrevious())?c=h.getLast():(h=b[c].getParent(),c=(h=h.getNext())?h.getChild(0):null)}for(h=b.length-1;0<=h;h--)l(b[h]);c?k(c,!0):d&&d.remove()}else b instanceof CKEDITOR.dom.element&&(d=b.getParent(),1==d.getChildCount()?d.remove():b.remove())}function k(a,
-b){var d=a.getDocument(),c=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(c.focus(),d.focus());d=new CKEDITOR.dom.range(d);d["moveToElementEdit"+(b?"End":"Start")](a)||(d.selectNodeContents(a),d.collapse(b?!1:!0));d.select(!0)}function b(a,b,d){a=a[b];if("undefined"==typeof d)return a;for(b=0;a&&b<a.length;b++){if(d.is&&a[b]==d.$)return b;if(b==d)return new CKEDITOR.dom.element(a[b])}return d.is?-1:null}function d(d,c,e){var f=a(d),g;if((c?1!=f.length:2>f.length)||(g=d.getCommonAncestor())&&
-g.type==CKEDITOR.NODE_ELEMENT&&g.is("table"))return!1;var h;d=f[0];g=d.getAscendant("table");var k=CKEDITOR.tools.buildTableMap(g),l=k.length,m=k[0].length,p=d.getParent().$.rowIndex,r=b(k,p,d);if(c){var y;try{var C=parseInt(d.getAttribute("rowspan"),10)||1;h=parseInt(d.getAttribute("colspan"),10)||1;y=k["up"==c?p-C:"down"==c?p+C:p]["left"==c?r-h:"right"==c?r+h:r]}catch(F){return!1}if(!y||d.$==y)return!1;f["up"==c||"left"==c?"unshift":"push"](new CKEDITOR.dom.element(y))}c=d.getDocument();var E=p,
-C=y=0,L=!e&&new CKEDITOR.dom.documentFragment(c),G=0;for(c=0;c<f.length;c++){h=f[c];var N=h.getParent(),O=h.getFirst(),I=h.$.colSpan,R=h.$.rowSpan,N=N.$.rowIndex,M=b(k,N,h),G=G+I*R,C=Math.max(C,M-r+I);y=Math.max(y,N-p+R);e||(I=h,(R=I.getBogus())&&R.remove(),I.trim(),h.getChildren().count()&&(N==E||!O||O.isBlockBoundary&&O.isBlockBoundary({br:1})||(E=L.getLast(CKEDITOR.dom.walker.whitespaces(!0)),!E||E.is&&E.is("br")||L.append("br")),h.moveChildren(L)),c?h.remove():h.setHtml(""));E=N}if(e)return y*
-C==G;L.moveChildren(d);d.appendBogus();C>=m?d.removeAttribute("rowSpan"):d.$.rowSpan=y;y>=l?d.removeAttribute("colSpan"):d.$.colSpan=C;e=new CKEDITOR.dom.nodeList(g.$.rows);f=e.count();for(c=f-1;0<=c;c--)g=e.getItem(c),g.$.cells.length||(g.remove(),f++);return d}function g(d,c){var e=a(d);if(1<e.length)return!1;if(c)return!0;var e=e[0],f=e.getParent(),g=f.getAscendant("table"),h=CKEDITOR.tools.buildTableMap(g),k=f.$.rowIndex,l=b(h,k,e),m=e.$.rowSpan,p;if(1<m){p=Math.ceil(m/2);for(var m=Math.floor(m/
-2),f=k+p,g=new CKEDITOR.dom.element(g.$.rows[f]),h=b(h,f),r,f=e.clone(),k=0;k<h.length;k++)if(r=h[k],r.parentNode==g.$&&k>l){f.insertBefore(new CKEDITOR.dom.element(r));break}else r=null;r||g.append(f)}else for(m=p=1,g=f.clone(),g.insertAfter(f),g.append(f=e.clone()),r=b(h,k),l=0;l<r.length;l++)r[l].rowSpan++;f.appendBogus();e.$.rowSpan=p;f.$.rowSpan=m;1==p&&e.removeAttribute("rowSpan");1==m&&f.removeAttribute("rowSpan");return f}function p(d,c){var e=a(d);if(1<e.length)return!1;if(c)return!0;var e=
-e[0],f=e.getParent(),g=f.getAscendant("table"),g=CKEDITOR.tools.buildTableMap(g),h=b(g,f.$.rowIndex,e),k=e.$.colSpan;if(1<k)f=Math.ceil(k/2),k=Math.floor(k/2);else{for(var k=f=1,l=[],m=0;m<g.length;m++){var p=g[m];l.push(p[h]);1<p[h].rowSpan&&(m+=p[h].rowSpan-1)}for(g=0;g<l.length;g++)l[g].colSpan++}g=e.clone();g.insertAfter(e);g.appendBogus();e.$.colSpan=f;g.$.colSpan=k;1==f&&e.removeAttribute("colSpan");1==k&&g.removeAttribute("colSpan");return g}var r=/^(?:td|th)$/;CKEDITOR.plugins.tabletools=
-{requires:"table,dialog,contextmenu",init:function(b){function e(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains({td:1,th:1},1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}function n(a,d){var c=b.addCommand(a,d);b.addFeature(c)}var q=b.lang.table;n("cellProperties",new CKEDITOR.dialogCommand("cellProperties",e({allowedContent:"td th{width,height,border-color,background-color,white-space,vertical-align,text-align}[colspan,rowspan]",
-requiredContent:"table"})));CKEDITOR.dialog.add("cellProperties",this.path+"dialogs/tableCell.js");n("rowDelete",e({requiredContent:"table",exec:function(a){a=a.getSelection();k(c(a))}}));n("rowInsertBefore",e({requiredContent:"table",exec:function(a){a=a.getSelection();f(a,!0)}}));n("rowInsertAfter",e({requiredContent:"table",exec:function(a){a=a.getSelection();f(a)}}));n("columnDelete",e({requiredContent:"table",exec:function(b){b=b.getSelection();b=a(b);var d=b[0],c=b[b.length-1];b=d.getAscendant("table");
-for(var e=CKEDITOR.tools.buildTableMap(b),f,g,h=[],l=0,m=e.length;l<m;l++)for(var n=0,p=e[l].length;n<p;n++)e[l][n]==d.$&&(f=n),e[l][n]==c.$&&(g=n);for(l=f;l<=g;l++)for(n=0;n<e.length;n++)c=e[n],d=new CKEDITOR.dom.element(b.$.rows[n]),c=new CKEDITOR.dom.element(c[l]),c.$&&(1==c.$.colSpan?c.remove():--c.$.colSpan,n+=c.$.rowSpan-1,d.$.cells.length||h.push(d));g=b.$.rows[0]&&b.$.rows[0].cells;f=new CKEDITOR.dom.element(g[f]||(f?g[f-1]:b.$.parentNode));h.length==m&&b.remove();f&&k(f,!0)}}));n("columnInsertBefore",
+c.length||a.type!=CKEDITOR.NODE_ELEMENT||!u.test(a.getName())||a.getCustomData("selected_cell")||(CKEDITOR.dom.element.setMarker(d,a,"selected_cell",!0),c.push(a))}a=a.getRanges();for(var c=[],d={},e=0;e<a.length;e++){var f=a[e];if(f.collapsed)f=f.getCommonAncestor(),(f=f.getAscendant("td",!0)||f.getAscendant("th",!0))&&c.push(f);else{var f=new CKEDITOR.dom.walker(f),g;for(f.guard=b;g=f.next();)g.type==CKEDITOR.NODE_ELEMENT&&g.is(CKEDITOR.dtd.table)||(g=g.getAscendant("td",!0)||g.getAscendant("th",
+!0))&&!g.getCustomData("selected_cell")&&(CKEDITOR.dom.element.setMarker(d,g,"selected_cell",!0),c.push(g))}}CKEDITOR.dom.element.clearAllMarkers(d);return c}function f(b,c){for(var d=a(b),e=d[0],f=e.getAscendant("table"),e=e.getDocument(),g=d[0].getParent(),h=g.$.rowIndex,d=d[d.length-1],k=d.getParent().$.rowIndex+d.$.rowSpan-1,d=new CKEDITOR.dom.element(f.$.rows[k]),h=c?h:k,g=c?g:d,d=CKEDITOR.tools.buildTableMap(f),f=d[h],h=c?d[h-1]:d[h+1],d=d[0].length,e=e.createElement("tr"),k=0;f[k]&&k<d;k++){var l;
+1<f[k].rowSpan&&h&&f[k]==h[k]?(l=f[k],l.rowSpan+=1):(l=(new CKEDITOR.dom.element(f[k])).clone(),l.removeAttribute("rowSpan"),l.appendBogus(),e.append(l),l=l.$);k+=l.colSpan-1}c?e.insertBefore(g):e.insertAfter(g)}function c(b){if(b instanceof CKEDITOR.dom.selection){var d=a(b),e=d[0].getAscendant("table"),f=CKEDITOR.tools.buildTableMap(e);b=d[0].getParent().$.rowIndex;for(var d=d[d.length-1],g=d.getParent().$.rowIndex+d.$.rowSpan-1,d=[],h=b;h<=g;h++){for(var k=f[h],l=new CKEDITOR.dom.element(e.$.rows[h]),
+m=0;m<k.length;m++){var p=new CKEDITOR.dom.element(k[m]),u=p.getParent().$.rowIndex;1==p.$.rowSpan?p.remove():(--p.$.rowSpan,u==h&&(u=f[h+1],u[m-1]?p.insertAfter(new CKEDITOR.dom.element(u[m-1])):(new CKEDITOR.dom.element(e.$.rows[h+1])).append(p,1)));m+=p.$.colSpan-1}d.push(l)}f=e.$.rows;e=new CKEDITOR.dom.element(f[g+1]||(0<b?f[b-1]:null)||e.$.parentNode);for(h=d.length;0<=h;h--)c(d[h]);return e}b instanceof CKEDITOR.dom.element&&(e=b.getAscendant("table"),1==e.$.rows.length?e.remove():b.remove());
+return null}function e(a,b){for(var c=b?Infinity:0,d=0;d<a.length;d++){var e;e=a[d];for(var f=b,g=e.getParent().$.cells,h=0,k=0;k<g.length;k++){var l=g[k],h=h+(f?1:l.colSpan);if(l==e.$)break}e=h-1;if(b?e<c:e>c)c=e}return c}function h(b,c){for(var d=a(b),f=d[0].getAscendant("table"),g=e(d,1),d=e(d),g=c?g:d,h=CKEDITOR.tools.buildTableMap(f),f=[],d=[],k=h.length,l=0;l<k;l++)f.push(h[l][g]),d.push(c?h[l][g-1]:h[l][g+1]);for(l=0;l<k;l++)f[l]&&(1<f[l].colSpan&&d[l]==f[l]?(g=f[l],g.colSpan+=1):(g=(new CKEDITOR.dom.element(f[l])).clone(),
+g.removeAttribute("colSpan"),g.appendBogus(),g[c?"insertBefore":"insertAfter"].call(g,new CKEDITOR.dom.element(f[l])),g=g.$),l+=g.rowSpan-1)}function m(a,b){var c=a.getStartElement();if(c=c.getAscendant("td",1)||c.getAscendant("th",1)){var d=c.clone();d.appendBogus();b?d.insertBefore(c):d.insertAfter(c)}}function l(b){if(b instanceof CKEDITOR.dom.selection){b=a(b);var c=b[0]&&b[0].getAscendant("table"),d;a:{var e=0;d=b.length-1;for(var f={},g,h;g=b[e++];)CKEDITOR.dom.element.setMarker(f,g,"delete_cell",
+!0);for(e=0;g=b[e++];)if((h=g.getPrevious())&&!h.getCustomData("delete_cell")||(h=g.getNext())&&!h.getCustomData("delete_cell")){CKEDITOR.dom.element.clearAllMarkers(f);d=h;break a}CKEDITOR.dom.element.clearAllMarkers(f);h=b[0].getParent();(h=h.getPrevious())?d=h.getLast():(h=b[d].getParent(),d=(h=h.getNext())?h.getChild(0):null)}for(h=b.length-1;0<=h;h--)l(b[h]);d?k(d,!0):c&&c.remove()}else b instanceof CKEDITOR.dom.element&&(c=b.getParent(),1==c.getChildCount()?c.remove():b.remove())}function k(a,
+b){var c=a.getDocument(),d=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(d.focus(),c.focus());c=new CKEDITOR.dom.range(c);c["moveToElementEdit"+(b?"End":"Start")](a)||(c.selectNodeContents(a),c.collapse(b?!1:!0));c.select(!0)}function b(a,b,c){a=a[b];if("undefined"==typeof c)return a;for(b=0;a&&b<a.length;b++){if(c.is&&a[b]==c.$)return b;if(b==c)return new CKEDITOR.dom.element(a[b])}return c.is?-1:null}function d(c,d,e){var f=a(c),g;if((d?1!=f.length:2>f.length)||(g=c.getCommonAncestor())&&
+g.type==CKEDITOR.NODE_ELEMENT&&g.is("table"))return!1;var h;c=f[0];g=c.getAscendant("table");var k=CKEDITOR.tools.buildTableMap(g),l=k.length,m=k[0].length,p=c.getParent().$.rowIndex,u=b(k,p,c);if(d){var z;try{var C=parseInt(c.getAttribute("rowspan"),10)||1;h=parseInt(c.getAttribute("colspan"),10)||1;z=k["up"==d?p-C:"down"==d?p+C:p]["left"==d?u-h:"right"==d?u+h:u]}catch(G){return!1}if(!z||c.$==z)return!1;f["up"==d||"left"==d?"unshift":"push"](new CKEDITOR.dom.element(z))}d=c.getDocument();var E=p,
+C=z=0,J=!e&&new CKEDITOR.dom.documentFragment(d),I=0;for(d=0;d<f.length;d++){h=f[d];var N=h.getParent(),F=h.getFirst(),P=h.$.colSpan,R=h.$.rowSpan,N=N.$.rowIndex,L=b(k,N,h),I=I+P*R,C=Math.max(C,L-u+P);z=Math.max(z,N-p+R);e||(P=h,(R=P.getBogus())&&R.remove(),P.trim(),h.getChildren().count()&&(N==E||!F||F.isBlockBoundary&&F.isBlockBoundary({br:1})||(E=J.getLast(CKEDITOR.dom.walker.whitespaces(!0)),!E||E.is&&E.is("br")||J.append("br")),h.moveChildren(J)),d?h.remove():h.setHtml(""));E=N}if(e)return z*
+C==I;J.moveChildren(c);c.appendBogus();C>=m?c.removeAttribute("rowSpan"):c.$.rowSpan=z;z>=l?c.removeAttribute("colSpan"):c.$.colSpan=C;e=new CKEDITOR.dom.nodeList(g.$.rows);f=e.count();for(d=f-1;0<=d;d--)g=e.getItem(d),g.$.cells.length||(g.remove(),f++);return c}function g(c,d){var e=a(c);if(1<e.length)return!1;if(d)return!0;var e=e[0],f=e.getParent(),g=f.getAscendant("table"),h=CKEDITOR.tools.buildTableMap(g),k=f.$.rowIndex,l=b(h,k,e),m=e.$.rowSpan,p;if(1<m){p=Math.ceil(m/2);for(var m=Math.floor(m/
+2),f=k+p,g=new CKEDITOR.dom.element(g.$.rows[f]),h=b(h,f),u,f=e.clone(),k=0;k<h.length;k++)if(u=h[k],u.parentNode==g.$&&k>l){f.insertBefore(new CKEDITOR.dom.element(u));break}else u=null;u||g.append(f)}else for(m=p=1,g=f.clone(),g.insertAfter(f),g.append(f=e.clone()),u=b(h,k),l=0;l<u.length;l++)u[l].rowSpan++;f.appendBogus();e.$.rowSpan=p;f.$.rowSpan=m;1==p&&e.removeAttribute("rowSpan");1==m&&f.removeAttribute("rowSpan");return f}function p(c,d){var e=a(c);if(1<e.length)return!1;if(d)return!0;var e=
+e[0],f=e.getParent(),g=f.getAscendant("table"),g=CKEDITOR.tools.buildTableMap(g),h=b(g,f.$.rowIndex,e),k=e.$.colSpan;if(1<k)f=Math.ceil(k/2),k=Math.floor(k/2);else{for(var k=f=1,l=[],m=0;m<g.length;m++){var p=g[m];l.push(p[h]);1<p[h].rowSpan&&(m+=p[h].rowSpan-1)}for(g=0;g<l.length;g++)l[g].colSpan++}g=e.clone();g.insertAfter(e);g.appendBogus();e.$.colSpan=f;g.$.colSpan=k;1==f&&e.removeAttribute("colSpan");1==k&&g.removeAttribute("colSpan");return g}var u=/^(?:td|th)$/;CKEDITOR.plugins.tabletools=
+{requires:"table,dialog,contextmenu",init:function(b){function e(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains({td:1,th:1},1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}function n(a,c){var d=b.addCommand(a,c);b.addFeature(d)}var q=b.lang.table;n("cellProperties",new CKEDITOR.dialogCommand("cellProperties",e({allowedContent:"td th{width,height,border-color,background-color,white-space,vertical-align,text-align}[colspan,rowspan]",
+requiredContent:"table"})));CKEDITOR.dialog.add("cellProperties",this.path+"dialogs/tableCell.js");n("rowDelete",e({requiredContent:"table",exec:function(a){a=a.getSelection();k(c(a))}}));n("rowInsertBefore",e({requiredContent:"table",exec:function(a){a=a.getSelection();f(a,!0)}}));n("rowInsertAfter",e({requiredContent:"table",exec:function(a){a=a.getSelection();f(a)}}));n("columnDelete",e({requiredContent:"table",exec:function(b){b=b.getSelection();b=a(b);var c=b[0],d=b[b.length-1];b=c.getAscendant("table");
+for(var e=CKEDITOR.tools.buildTableMap(b),f,g,h=[],l=0,m=e.length;l<m;l++)for(var n=0,p=e[l].length;n<p;n++)e[l][n]==c.$&&(f=n),e[l][n]==d.$&&(g=n);for(l=f;l<=g;l++)for(n=0;n<e.length;n++)d=e[n],c=new CKEDITOR.dom.element(b.$.rows[n]),d=new CKEDITOR.dom.element(d[l]),d.$&&(1==d.$.colSpan?d.remove():--d.$.colSpan,n+=d.$.rowSpan-1,c.$.cells.length||h.push(c));g=b.$.rows[0]&&b.$.rows[0].cells;f=new CKEDITOR.dom.element(g[f]||(f?g[f-1]:b.$.parentNode));h.length==m&&b.remove();f&&k(f,!0)}}));n("columnInsertBefore",
 e({requiredContent:"table",exec:function(a){a=a.getSelection();h(a,!0)}}));n("columnInsertAfter",e({requiredContent:"table",exec:function(a){a=a.getSelection();h(a)}}));n("cellDelete",e({requiredContent:"table",exec:function(a){a=a.getSelection();l(a)}}));n("cellMerge",e({allowedContent:"td[colspan,rowspan]",requiredContent:"td[colspan,rowspan]",exec:function(a){k(d(a.getSelection()),!0)}}));n("cellMergeRight",e({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a){k(d(a.getSelection(),
 "right"),!0)}}));n("cellMergeDown",e({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a){k(d(a.getSelection(),"down"),!0)}}));n("cellVerticalSplit",e({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a){k(p(a.getSelection()))}}));n("cellHorizontalSplit",e({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a){k(g(a.getSelection()))}}));n("cellInsertBefore",e({requiredContent:"table",exec:function(a){a=a.getSelection();m(a,!0)}}));
 n("cellInsertAfter",e({requiredContent:"table",exec:function(a){a=a.getSelection();m(a)}}));b.addMenuItems&&b.addMenuItems({tablecell:{label:q.cell.menu,group:"tablecell",order:1,getItems:function(){var c=b.getSelection(),e=a(c);return{tablecell_insertBefore:CKEDITOR.TRISTATE_OFF,tablecell_insertAfter:CKEDITOR.TRISTATE_OFF,tablecell_delete:CKEDITOR.TRISTATE_OFF,tablecell_merge:d(c,null,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_merge_right:d(c,"right",!0)?CKEDITOR.TRISTATE_OFF:
@@ -898,21 +897,21 @@ CKEDITOR.TRISTATE_DISABLED,tablecell_merge_down:d(c,"down",!0)?CKEDITOR.TRISTATE
 group:"tablecell",command:"cellInsertAfter",order:10},tablecell_delete:{label:q.cell.deleteCell,group:"tablecell",command:"cellDelete",order:15},tablecell_merge:{label:q.cell.merge,group:"tablecell",command:"cellMerge",order:16},tablecell_merge_right:{label:q.cell.mergeRight,group:"tablecell",command:"cellMergeRight",order:17},tablecell_merge_down:{label:q.cell.mergeDown,group:"tablecell",command:"cellMergeDown",order:18},tablecell_split_horizontal:{label:q.cell.splitHorizontal,group:"tablecell",
 command:"cellHorizontalSplit",order:19},tablecell_split_vertical:{label:q.cell.splitVertical,group:"tablecell",command:"cellVerticalSplit",order:20},tablecell_properties:{label:q.cell.title,group:"tablecellproperties",command:"cellProperties",order:21},tablerow:{label:q.row.menu,group:"tablerow",order:1,getItems:function(){return{tablerow_insertBefore:CKEDITOR.TRISTATE_OFF,tablerow_insertAfter:CKEDITOR.TRISTATE_OFF,tablerow_delete:CKEDITOR.TRISTATE_OFF}}},tablerow_insertBefore:{label:q.row.insertBefore,
 group:"tablerow",command:"rowInsertBefore",order:5},tablerow_insertAfter:{label:q.row.insertAfter,group:"tablerow",command:"rowInsertAfter",order:10},tablerow_delete:{label:q.row.deleteRow,group:"tablerow",command:"rowDelete",order:15},tablecolumn:{label:q.column.menu,group:"tablecolumn",order:1,getItems:function(){return{tablecolumn_insertBefore:CKEDITOR.TRISTATE_OFF,tablecolumn_insertAfter:CKEDITOR.TRISTATE_OFF,tablecolumn_delete:CKEDITOR.TRISTATE_OFF}}},tablecolumn_insertBefore:{label:q.column.insertBefore,
-group:"tablecolumn",command:"columnInsertBefore",order:5},tablecolumn_insertAfter:{label:q.column.insertAfter,group:"tablecolumn",command:"columnInsertAfter",order:10},tablecolumn_delete:{label:q.column.deleteColumn,group:"tablecolumn",command:"columnDelete",order:15}});b.contextMenu&&b.contextMenu.addListener(function(a,b,d){return(a=d.contains({td:1,th:1},1))&&!a.isReadOnly()?{tablecell:CKEDITOR.TRISTATE_OFF,tablerow:CKEDITOR.TRISTATE_OFF,tablecolumn:CKEDITOR.TRISTATE_OFF}:null})},getSelectedCells:a};
+group:"tablecolumn",command:"columnInsertBefore",order:5},tablecolumn_insertAfter:{label:q.column.insertAfter,group:"tablecolumn",command:"columnInsertAfter",order:10},tablecolumn_delete:{label:q.column.deleteColumn,group:"tablecolumn",command:"columnDelete",order:15}});b.contextMenu&&b.contextMenu.addListener(function(a,b,c){return(a=c.contains({td:1,th:1},1))&&!a.isReadOnly()?{tablecell:CKEDITOR.TRISTATE_OFF,tablerow:CKEDITOR.TRISTATE_OFF,tablecolumn:CKEDITOR.TRISTATE_OFF}:null})},getSelectedCells:a};
 CKEDITOR.plugins.add("tabletools",CKEDITOR.plugins.tabletools)}(),CKEDITOR.tools.buildTableMap=function(a){a=a.$.rows;for(var f=-1,c=[],e=0;e<a.length;e++){f++;!c[f]&&(c[f]=[]);for(var h=-1,m=0;m<a[e].cells.length;m++){var l=a[e].cells[m];for(h++;c[f][h];)h++;for(var k=isNaN(l.colSpan)?1:l.colSpan,l=isNaN(l.rowSpan)?1:l.rowSpan,b=0;b<l;b++){c[f+b]||(c[f+b]=[]);for(var d=0;d<k;d++)c[f+b][h+d]=a[e].cells[m]}h+=k-1}}return c},"use strict",function(){var a=[CKEDITOR.CTRL+90,CKEDITOR.CTRL+89,CKEDITOR.CTRL+
 CKEDITOR.SHIFT+90],f={8:1,46:1};CKEDITOR.plugins.add("undo",{init:function(e){function b(a){f.enabled&&!1!==a.data.command.canUndo&&f.save()}function d(){f.enabled=e.readOnly?!1:"wysiwyg"==e.mode;f.onChange()}var f=e.undoManager=new c(e),h=f.editingHandler=new m(f),l=e.addCommand("undo",{exec:function(){f.undo()&&(e.selectionChange(),this.fire("afterUndo"))},startDisabled:!0,canUndo:!1}),v=e.addCommand("redo",{exec:function(){f.redo()&&(e.selectionChange(),this.fire("afterRedo"))},startDisabled:!0,
 canUndo:!1});e.setKeystroke([[a[0],"undo"],[a[1],"redo"],[a[2],"redo"]]);f.onChange=function(){l.setState(f.undoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);v.setState(f.redoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)};e.on("beforeCommandExec",b);e.on("afterCommandExec",b);e.on("saveSnapshot",function(a){f.save(a.data&&a.data.contentOnly)});e.on("contentDom",h.attachListeners,h);e.on("instanceReady",function(){e.fire("saveSnapshot")});e.on("beforeModeUnload",function(){"wysiwyg"==
 e.mode&&f.save(!0)});e.on("mode",d);e.on("readOnly",d);e.ui.addButton&&(e.ui.addButton("Undo",{label:e.lang.undo.undo,command:"undo",toolbar:"undo,10"}),e.ui.addButton("Redo",{label:e.lang.undo.redo,command:"redo",toolbar:"undo,20"}));e.resetUndo=function(){f.reset();e.fire("saveSnapshot")};e.on("updateSnapshot",function(){f.currentImage&&f.update()});e.on("lockSnapshot",function(a){a=a.data;f.lock(a&&a.dontUpdate,a&&a.forceUpdate)});e.on("unlockSnapshot",f.unlock,f)}});CKEDITOR.plugins.undo={};var c=
 CKEDITOR.plugins.undo.UndoManager=function(a){this.strokesRecorded=[0,0];this.locked=null;this.previousKeyGroup=-1;this.limit=a.config.undoStackSize||20;this.strokesLimit=25;this.editor=a;this.reset()};c.prototype={type:function(a,b){var d=c.getKeyGroup(a),e=this.strokesRecorded[d]+1;b=b||e>=this.strokesLimit;this.typing||(this.hasUndo=this.typing=!0,this.hasRedo=!1,this.onChange());b?(e=0,this.editor.fire("saveSnapshot")):this.editor.fire("change");this.strokesRecorded[d]=e;this.previousKeyGroup=
-d},keyGroupChanged:function(a){return c.getKeyGroup(a)!=this.previousKeyGroup},reset:function(){this.snapshots=[];this.index=-1;this.currentImage=null;this.hasRedo=this.hasUndo=!1;this.locked=null;this.resetType()},resetType:function(){this.strokesRecorded=[0,0];this.typing=!1;this.previousKeyGroup=-1},refreshState:function(){this.hasUndo=!!this.getNextImage(!0);this.hasRedo=!!this.getNextImage(!1);this.resetType();this.onChange()},save:function(a,b,d){var c=this.editor;if(this.locked||"ready"!=c.status||
-"wysiwyg"!=c.mode)return!1;var f=c.editable();if(!f||"ready"!=f.status)return!1;f=this.snapshots;b||(b=new e(c));if(!1===b.contents)return!1;if(this.currentImage)if(b.equalsContent(this.currentImage)){if(a||b.equalsSelection(this.currentImage))return!1}else!1!==d&&c.fire("change");f.splice(this.index+1,f.length-this.index-1);f.length==this.limit&&f.shift();this.index=f.push(b)-1;this.currentImage=b;!1!==d&&this.refreshState();return!0},restoreImage:function(a){var b=this.editor,d;a.bookmarks&&(b.focus(),
-d=b.getSelection());this.locked={level:999};this.editor.loadSnapshot(a.contents);a.bookmarks?d.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(d=this.editor.document.getBody().$.createTextRange(),d.collapse(!0),d.select());this.locked=null;this.index=a.index;this.currentImage=this.snapshots[this.index];this.update();this.refreshState();b.fire("change")},getNextImage:function(a){var b=this.snapshots,d=this.currentImage,c;if(d)if(a)for(c=this.index-1;0<=c;c--){if(a=b[c],!d.equalsContent(a))return a.index=
-c,a}else for(c=this.index+1;c<b.length;c++)if(a=b[c],!d.equalsContent(a))return a.index=c,a;return null},redoable:function(){return this.enabled&&this.hasRedo},undoable:function(){return this.enabled&&this.hasUndo},undo:function(){if(this.undoable()){this.save(!0);var a=this.getNextImage(!0);if(a)return this.restoreImage(a),!0}return!1},redo:function(){if(this.redoable()&&(this.save(!0),this.redoable())){var a=this.getNextImage(!1);if(a)return this.restoreImage(a),!0}return!1},update:function(a){if(!this.locked){a||
-(a=new e(this.editor));for(var b=this.index,d=this.snapshots;0<b&&this.currentImage.equalsContent(d[b-1]);)--b;d.splice(b,this.index-b+1,a);this.index=b;this.currentImage=a}},updateSelection:function(a){if(!this.snapshots.length)return!1;var b=this.snapshots,d=b[b.length-1];return d.equalsContent(a)&&!d.equalsSelection(a)?(this.currentImage=b[b.length-1]=a,!0):!1},lock:function(a,b){if(this.locked)this.locked.level++;else if(a)this.locked={level:1};else{var d=null;if(b)d=!0;else{var c=new e(this.editor,
-!0);this.currentImage&&this.currentImage.equalsContent(c)&&(d=c)}this.locked={update:d,level:1}}},unlock:function(){if(this.locked&&!--this.locked.level){var a=this.locked.update;this.locked=null;if(!0===a)this.update();else if(a){var b=new e(this.editor,!0);a.equalsContent(b)||this.update()}}}};c.navigationKeyCodes={37:1,38:1,39:1,40:1,36:1,35:1,33:1,34:1};c.keyGroups={PRINTABLE:0,FUNCTIONAL:1};c.isNavigationKey=function(a){return!!c.navigationKeyCodes[a]};c.getKeyGroup=function(a){var b=c.keyGroups;
-return f[a]?b.FUNCTIONAL:b.PRINTABLE};c.getOppositeKeyGroup=function(a){var b=c.keyGroups;return a==b.FUNCTIONAL?b.PRINTABLE:b.FUNCTIONAL};c.ieFunctionalKeysBug=function(a){return CKEDITOR.env.ie&&c.getKeyGroup(a)==c.keyGroups.FUNCTIONAL};var e=CKEDITOR.plugins.undo.Image=function(a,b){this.editor=a;a.fire("beforeUndoImage");var d=a.getSnapshot();CKEDITOR.env.ie&&d&&(d=d.replace(/\s+data-cke-expando=".*?"/g,""));this.contents=d;b||(this.bookmarks=(d=d&&a.getSelection())&&d.createBookmarks2(!0));a.fire("afterUndoImage")},
-h=/\b(?:href|src|name)="[^"]*?"/gi;e.prototype={equalsContent:function(a){var b=this.contents;a=a.contents;CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)&&(b=b.replace(h,""),a=a.replace(h,""));return b!=a?!1:!0},equalsSelection:function(a){var b=this.bookmarks;a=a.bookmarks;if(b||a){if(!b||!a||b.length!=a.length)return!1;for(var d=0;d<b.length;d++){var c=b[d],e=a[d];if(c.startOffset!=e.startOffset||c.endOffset!=e.endOffset||!CKEDITOR.tools.arrayCompare(c.start,e.start)||!CKEDITOR.tools.arrayCompare(c.end,
-e.end))return!1}}return!0}};var m=CKEDITOR.plugins.undo.NativeEditingHandler=function(a){this.undoManager=a;this.ignoreInputEvent=!1;this.keyEventsStack=new l;this.lastKeydownImage=null};m.prototype={onKeydown:function(f){var b=f.data.getKey();if(229!==b)if(-1<CKEDITOR.tools.indexOf(a,f.data.getKeystroke()))f.data.preventDefault();else if(this.keyEventsStack.cleanUp(f),f=this.undoManager,this.keyEventsStack.getLast(b)||this.keyEventsStack.push(b),this.lastKeydownImage=new e(f.editor),c.isNavigationKey(b)||
+d},keyGroupChanged:function(a){return c.getKeyGroup(a)!=this.previousKeyGroup},reset:function(){this.snapshots=[];this.index=-1;this.currentImage=null;this.hasRedo=this.hasUndo=!1;this.locked=null;this.resetType()},resetType:function(){this.strokesRecorded=[0,0];this.typing=!1;this.previousKeyGroup=-1},refreshState:function(){this.hasUndo=!!this.getNextImage(!0);this.hasRedo=!!this.getNextImage(!1);this.resetType();this.onChange()},save:function(a,b,c){var f=this.editor;if(this.locked||"ready"!=f.status||
+"wysiwyg"!=f.mode)return!1;var h=f.editable();if(!h||"ready"!=h.status)return!1;h=this.snapshots;b||(b=new e(f));if(!1===b.contents)return!1;if(this.currentImage)if(b.equalsContent(this.currentImage)){if(a||b.equalsSelection(this.currentImage))return!1}else!1!==c&&f.fire("change");h.splice(this.index+1,h.length-this.index-1);h.length==this.limit&&h.shift();this.index=h.push(b)-1;this.currentImage=b;!1!==c&&this.refreshState();return!0},restoreImage:function(a){var b=this.editor,c;a.bookmarks&&(b.focus(),
+c=b.getSelection());this.locked={level:999};this.editor.loadSnapshot(a.contents);a.bookmarks?c.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(c=this.editor.document.getBody().$.createTextRange(),c.collapse(!0),c.select());this.locked=null;this.index=a.index;this.currentImage=this.snapshots[this.index];this.update();this.refreshState();b.fire("change")},getNextImage:function(a){var b=this.snapshots,c=this.currentImage,e;if(c)if(a)for(e=this.index-1;0<=e;e--){if(a=b[e],!c.equalsContent(a))return a.index=
+e,a}else for(e=this.index+1;e<b.length;e++)if(a=b[e],!c.equalsContent(a))return a.index=e,a;return null},redoable:function(){return this.enabled&&this.hasRedo},undoable:function(){return this.enabled&&this.hasUndo},undo:function(){if(this.undoable()){this.save(!0);var a=this.getNextImage(!0);if(a)return this.restoreImage(a),!0}return!1},redo:function(){if(this.redoable()&&(this.save(!0),this.redoable())){var a=this.getNextImage(!1);if(a)return this.restoreImage(a),!0}return!1},update:function(a){if(!this.locked){a||
+(a=new e(this.editor));for(var b=this.index,c=this.snapshots;0<b&&this.currentImage.equalsContent(c[b-1]);)--b;c.splice(b,this.index-b+1,a);this.index=b;this.currentImage=a}},updateSelection:function(a){if(!this.snapshots.length)return!1;var b=this.snapshots,c=b[b.length-1];return c.equalsContent(a)&&!c.equalsSelection(a)?(this.currentImage=b[b.length-1]=a,!0):!1},lock:function(a,b){if(this.locked)this.locked.level++;else if(a)this.locked={level:1};else{var c=null;if(b)c=!0;else{var f=new e(this.editor,
+!0);this.currentImage&&this.currentImage.equalsContent(f)&&(c=f)}this.locked={update:c,level:1}}},unlock:function(){if(this.locked&&!--this.locked.level){var a=this.locked.update;this.locked=null;if(!0===a)this.update();else if(a){var b=new e(this.editor,!0);a.equalsContent(b)||this.update()}}}};c.navigationKeyCodes={37:1,38:1,39:1,40:1,36:1,35:1,33:1,34:1};c.keyGroups={PRINTABLE:0,FUNCTIONAL:1};c.isNavigationKey=function(a){return!!c.navigationKeyCodes[a]};c.getKeyGroup=function(a){var b=c.keyGroups;
+return f[a]?b.FUNCTIONAL:b.PRINTABLE};c.getOppositeKeyGroup=function(a){var b=c.keyGroups;return a==b.FUNCTIONAL?b.PRINTABLE:b.FUNCTIONAL};c.ieFunctionalKeysBug=function(a){return CKEDITOR.env.ie&&c.getKeyGroup(a)==c.keyGroups.FUNCTIONAL};var e=CKEDITOR.plugins.undo.Image=function(a,b){this.editor=a;a.fire("beforeUndoImage");var c=a.getSnapshot();CKEDITOR.env.ie&&c&&(c=c.replace(/\s+data-cke-expando=".*?"/g,""));this.contents=c;b||(this.bookmarks=(c=c&&a.getSelection())&&c.createBookmarks2(!0));a.fire("afterUndoImage")},
+h=/\b(?:href|src|name)="[^"]*?"/gi;e.prototype={equalsContent:function(a){var b=this.contents;a=a.contents;CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)&&(b=b.replace(h,""),a=a.replace(h,""));return b!=a?!1:!0},equalsSelection:function(a){var b=this.bookmarks;a=a.bookmarks;if(b||a){if(!b||!a||b.length!=a.length)return!1;for(var c=0;c<b.length;c++){var e=b[c],f=a[c];if(e.startOffset!=f.startOffset||e.endOffset!=f.endOffset||!CKEDITOR.tools.arrayCompare(e.start,f.start)||!CKEDITOR.tools.arrayCompare(e.end,
+f.end))return!1}}return!0}};var m=CKEDITOR.plugins.undo.NativeEditingHandler=function(a){this.undoManager=a;this.ignoreInputEvent=!1;this.keyEventsStack=new l;this.lastKeydownImage=null};m.prototype={onKeydown:function(f){var b=f.data.getKey();if(229!==b)if(-1<CKEDITOR.tools.indexOf(a,f.data.getKeystroke()))f.data.preventDefault();else if(this.keyEventsStack.cleanUp(f),f=this.undoManager,this.keyEventsStack.getLast(b)||this.keyEventsStack.push(b),this.lastKeydownImage=new e(f.editor),c.isNavigationKey(b)||
 this.undoManager.keyGroupChanged(b))if(f.strokesRecorded[0]||f.strokesRecorded[1])f.save(!1,this.lastKeydownImage,!1),f.resetType()},onInput:function(){if(this.ignoreInputEvent)this.ignoreInputEvent=!1;else{var a=this.keyEventsStack.getLast();a||(a=this.keyEventsStack.push(0));this.keyEventsStack.increment(a.keyCode);this.keyEventsStack.getTotalInputs()>=this.undoManager.strokesLimit&&(this.undoManager.type(a.keyCode,!0),this.keyEventsStack.resetInputs())}},onKeyup:function(a){var b=this.undoManager;
 a=a.data.getKey();var d=this.keyEventsStack.getTotalInputs();this.keyEventsStack.remove(a);if(!(c.ieFunctionalKeysBug(a)&&this.lastKeydownImage&&this.lastKeydownImage.equalsContent(new e(b.editor,!0))))if(0<d)b.type(a);else if(c.isNavigationKey(a))this.onNavigationKey(!0)},onNavigationKey:function(a){var b=this.undoManager;!a&&b.save(!0,null,!1)||b.updateSelection(new e(b.editor));b.resetType()},ignoreInputEventListener:function(){this.ignoreInputEvent=!0},attachListeners:function(){var a=this.undoManager.editor,
 b=a.editable(),d=this;b.attachListener(b,"keydown",function(a){d.onKeydown(a);if(c.ieFunctionalKeysBug(a.data.getKey()))d.onInput()},null,null,999);b.attachListener(b,CKEDITOR.env.ie?"keypress":"input",d.onInput,d,null,999);b.attachListener(b,"keyup",d.onKeyup,d,null,999);b.attachListener(b,"paste",d.ignoreInputEventListener,d,null,999);b.attachListener(b,"drop",d.ignoreInputEventListener,d,null,999);b.attachListener(b.isInline()?b:a.document.getDocumentElement(),"click",function(){d.onNavigationKey()},
@@ -921,8 +920,8 @@ null},increment:function(a){this.getLast(a).inputs++},remove:function(a){a=this.
 c){c=void 0===c||c;var f;if(c)f=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){f=a.getParent();if(!f)break;a=f}f=a.getStyle("text-align")||a.getAttribute("align")||""}f&&(f=f.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!f&&c&&(f="rtl"==a.getComputedStyle("direction")?"right":"left");return f}function f(a,c,f){this.editor=a;this.name=c;this.value=f;this.context="p";c=a.config.justifyClasses;var l=a.config.enterMode==CKEDITOR.ENTER_P?
 "p":"div";if(c){switch(f){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=new RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?\x3d$|\\s)");this.requiredContent=l+"("+this.cssClassName+")"}else this.requiredContent=l+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",classes:this.cssClassName||
 null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function c(a){var c=a.editor,f=c.createRange();f.setStartBefore(a.data.node);f.setEndAfter(a.data.node);for(var l=new CKEDITOR.dom.walker(f),k;k=l.next();)if(k.type==CKEDITOR.NODE_ELEMENT)if(!k.equals(a.data.node)&&k.getDirection())f.setStartAfter(k),l=new CKEDITOR.dom.walker(f);else{var b=c.config.justifyClasses;b&&(k.hasClass(b[0])?(k.removeClass(b[0]),k.addClass(b[2])):k.hasClass(b[2])&&(k.removeClass(b[2]),k.addClass(b[0])));
-b=k.getStyle("text-align");"left"==b?k.setStyle("text-align","right"):"right"==b&&k.setStyle("text-align","left")}}f.prototype={exec:function(c){var f=c.getSelection(),m=c.config.enterMode;if(f){for(var l=f.createBookmarks(),k=f.getRanges(),b=this.cssClassName,d,g,p=c.config.useComputedState,p=void 0===p||p,r=k.length-1;0<=r;r--)for(d=k[r].createIterator(),d.enlargeBr=m!=CKEDITOR.ENTER_BR;g=d.getNextParagraph(m==CKEDITOR.ENTER_P?"p":"div");)if(!g.isReadOnly()){g.removeAttribute("align");g.removeStyle("text-align");
-var v=b&&(g.$.className=CKEDITOR.tools.ltrim(g.$.className.replace(this.cssClassRegex,""))),u=this.state==CKEDITOR.TRISTATE_OFF&&(!p||a(g,!0)!=this.value);b?u?g.addClass(b):v||g.removeAttribute("class"):u&&g.setStyle("text-align",this.value)}c.focus();c.forceNextSelectionCheck();f.selectBookmarks(l)}},refresh:function(c,f){var m=f.block||f.blockLimit;this.setState("body"!=m.getName()&&a(m,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("justify",
+b=k.getStyle("text-align");"left"==b?k.setStyle("text-align","right"):"right"==b&&k.setStyle("text-align","left")}}f.prototype={exec:function(c){var f=c.getSelection(),m=c.config.enterMode;if(f){for(var l=f.createBookmarks(),k=f.getRanges(),b=this.cssClassName,d,g,p=c.config.useComputedState,p=void 0===p||p,u=k.length-1;0<=u;u--)for(d=k[u].createIterator(),d.enlargeBr=m!=CKEDITOR.ENTER_BR;g=d.getNextParagraph(m==CKEDITOR.ENTER_P?"p":"div");)if(!g.isReadOnly()){g.removeAttribute("align");g.removeStyle("text-align");
+var v=b&&(g.$.className=CKEDITOR.tools.ltrim(g.$.className.replace(this.cssClassRegex,""))),r=this.state==CKEDITOR.TRISTATE_OFF&&(!p||a(g,!0)!=this.value);b?r?g.addClass(b):v||g.removeAttribute("class"):r&&g.setStyle("text-align",this.value)}c.focus();c.forceNextSelectionCheck();f.selectBookmarks(l)}},refresh:function(c,f){var m=f.block||f.blockLimit;this.setState("body"!=m.getName()&&a(m,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("justify",
 {init:function(a){if(!a.blockless){var h=new f(a,"justifyleft","left"),m=new f(a,"justifycenter","center"),l=new f(a,"justifyright","right"),k=new f(a,"justifyblock","justify");a.addCommand("justifyleft",h);a.addCommand("justifycenter",m);a.addCommand("justifyright",l);a.addCommand("justifyblock",k);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,command:"justifycenter",
 toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock",toolbar:"align,40"}));a.on("dirChanged",c)}}})}(),function(){var a={readOnly:1,preserveState:!0,editorFocus:!1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var c=this.state!=CKEDITOR.TRISTATE_ON||a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&!a.focusManager.hasFocus?
 "removeClass":"attachClass";a.editable()[c]("cke_show_blocks")}}};CKEDITOR.plugins.add("showblocks",{onLoad:function(){var a="p div pre address blockquote h1 h2 h3 h4 h5 h6".split(" "),c,e,h,m,l=CKEDITOR.getUrl(this.path),k=!(CKEDITOR.env.ie&&9>CKEDITOR.env.version),b=k?":not([contenteditable\x3dfalse]):not(.cke_show_blocks_off)":"",d,g;for(c=e=h=m="";d=a.pop();)g=a.length?",":"",c+=".cke_show_blocks "+d+b+g,h+=".cke_show_blocks.cke_contents_ltr "+d+b+g,m+=".cke_show_blocks.cke_contents_rtl "+d+b+
@@ -932,13 +931,13 @@ e.refresh(f)})}}})}(),function(){var a={preserveState:!0,editorFocus:!1,readOnly
 "cke_show_border").replace(/%1/g,"cke_show_borders ");CKEDITOR.addCss(a)},init:function(f){var c=f.addCommand("showborders",a);c.canUndo=!1;!1!==f.config.startupShowBorders&&c.setState(CKEDITOR.TRISTATE_ON);f.on("mode",function(){c.state!=CKEDITOR.TRISTATE_DISABLED&&c.refresh(f)},null,null,100);f.on("contentDom",function(){c.state!=CKEDITOR.TRISTATE_DISABLED&&c.refresh(f)});f.on("removeFormatCleanup",function(a){a=a.data;f.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&a.is("table")&&(!a.hasAttribute("border")||
 0>=parseInt(a.getAttribute("border"),10))&&a.addClass("cke_show_border")})},afterInit:function(a){var c=a.dataProcessor;a=c&&c.dataFilter;c=c&&c.htmlFilter;a&&a.addRules({elements:{table:function(a){a=a.attributes;var c=a["class"],f=parseInt(a.border,10);f&&!(0>=f)||c&&-1!=c.indexOf("cke_show_border")||(a["class"]=(c||"")+" cke_show_border")}}});c&&c.addRules({elements:{table:function(a){a=a.attributes;var c=a["class"];c&&(a["class"]=c.replace("cke_show_border","").replace(/\s{2}/," ").replace(/^\s+|\s+$/,
 ""))}}})}});CKEDITOR.on("dialogDefinition",function(a){var c=a.data.name;if("table"==c||"tableProperties"==c)if(a=a.data.definition,c=a.getContents("info").get("txtBorder"),c.commit=CKEDITOR.tools.override(c.commit,function(a){return function(c,f){a.apply(this,arguments);var l=parseInt(this.getValue(),10);f[!l||0>=l?"addClass":"removeClass"]("cke_show_border")}}),a=(a=a.getContents("advanced"))&&a.get("advCSSClasses"))a.setup=CKEDITOR.tools.override(a.setup,function(a){return function(){a.apply(this,
-arguments);this.setValue(this.getValue().replace(/cke_show_border/,""))}}),a.commit=CKEDITOR.tools.override(a.commit,function(a){return function(c,f){a.apply(this,arguments);parseInt(f.getAttribute("border"),10)||f.addClass("cke_show_border")}})})}(),function(){function a(a){return CKEDITOR.env.ie?a.$.clientWidth:parseInt(a.getComputedStyle("width"),10)}function f(a,d){var c=a.getComputedStyle("border-"+d+"-width"),e={thin:"0px",medium:"1px",thick:"2px"};0>c.indexOf("px")&&(c=c in e&&"none"!=a.getComputedStyle("border-style")?
-e[c]:0);return parseInt(c,10)}function c(a){var c=[],e=-1,h="rtl"==a.getComputedStyle("direction"),k;k=a.$.rows;for(var l=0,m,n,q,x=0,z=k.length;x<z;x++)q=k[x],m=q.cells.length,m>l&&(l=m,n=q);k=n;l=new CKEDITOR.dom.element(a.$.tBodies[0]);m=l.getDocumentPosition();n=0;for(q=k.cells.length;n<q;n++){var x=new CKEDITOR.dom.element(k.cells[n]),z=k.cells[n+1]&&new CKEDITOR.dom.element(k.cells[n+1]),e=e+(x.$.colSpan||1),A,t,w=x.getDocumentPosition().x;h?t=w+f(x,"left"):A=w+x.$.offsetWidth-f(x,"right");
-z?(w=z.getDocumentPosition().x,h?A=w+z.$.offsetWidth-f(z,"right"):t=w+f(z,"left")):(w=a.getDocumentPosition().x,h?A=w:t=w+a.$.offsetWidth);x=Math.max(t-A,3);c.push({table:a,index:e,x:A,y:m.y,width:x,height:l.$.offsetHeight,rtl:h})}return c}function e(a){(a.data||a).preventDefault()}function h(b){function c(){x=0;q.setOpacity(0);A&&g();var a=u.table;setTimeout(function(){a.removeCustomData("_cke_table_pillars")},0);n.removeListener("dragstart",e)}function g(){for(var c=u.rtl,d=c?w.length:t.length,
-e=0,g=0;g<d;g++){var h=t[g],k=w[g],m=u.table;CKEDITOR.tools.setTimeout(function(a,f,g,h,k,n){a&&a.setStyle("width",l(Math.max(f+n,1)));g&&g.setStyle("width",l(Math.max(h-n,1)));k&&m.setStyle("width",l(k+n*(c?-1:1)));++e==d&&b.fire("saveSnapshot")},0,this,[h,h&&a(h),k,k&&a(k),(!h||!k)&&a(m)+f(m,"left")+f(m,"right"),A])}}function h(c){e(c);b.fire("saveSnapshot");c=u.index;for(var d=CKEDITOR.tools.buildTableMap(u.table),f=[],g=[],k=Number.MAX_VALUE,l=k,p=u.rtl,y=0,R=d.length;y<R;y++){var M=d[y],Q=M[c+
-(p?1:0)],M=M[c+(p?0:1)],Q=Q&&new CKEDITOR.dom.element(Q),M=M&&new CKEDITOR.dom.element(M);Q&&M&&Q.equals(M)||(Q&&(k=Math.min(k,a(Q))),M&&(l=Math.min(l,a(M))),f.push(Q),g.push(M))}t=f;w=g;D=u.x-k;B=u.x+l;q.setOpacity(.5);z=parseInt(q.getStyle("left"),10);A=0;x=1;q.on("mousemove",v);n.on("dragstart",e);n.on("mouseup",m,this)}function m(a){a.removeListener();c()}function v(a){y(a.data.getPageOffset().x)}var u,n,q,x,z,A,t,w,D,B;n=b.document;q=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-temp\x3d1 contenteditable\x3dfalse unselectable\x3don style\x3d"position:absolute;cursor:col-resize;filter:alpha(opacity\x3d0);opacity:0;padding:0;background-color:#004;background-image:none;border:0px none;z-index:10"\x3e\x3c/div\x3e',
-n);b.on("destroy",function(){q.remove()});k||n.getDocumentElement().append(q);this.attachTo=function(a){x||(k&&(n.getBody().append(q),A=0),u=a,q.setStyles({width:l(a.width),height:l(a.height),left:l(a.x),top:l(a.y)}),k&&q.setOpacity(.25),q.on("mousedown",h,this),n.getBody().setStyle("cursor","col-resize"),q.show())};var y=this.move=function(a){if(!u)return 0;if(!x&&(a<u.x||a>u.x+u.width))return u=null,x=A=0,n.removeListener("mouseup",m),q.removeListener("mousedown",h),q.removeListener("mousemove",
-v),n.getBody().setStyle("cursor","auto"),k?q.remove():q.hide(),0;a-=Math.round(q.$.offsetWidth/2);if(x){if(a==D||a==B)return 1;a=Math.max(a,D);a=Math.min(a,B);A=a-z}q.setStyle("left",l(a));return 1}}function m(a){var c=a.data.getTarget();if("mouseout"==a.name){if(!c.is("table"))return;for(var e=new CKEDITOR.dom.element(a.data.$.relatedTarget||a.data.$.toElement);e&&e.$&&!e.equals(c)&&!e.is("body");)e=e.getParent();if(!e||e.equals(c))return}c.getAscendant("table",1).removeCustomData("_cke_table_pillars");
+arguments);this.setValue(this.getValue().replace(/cke_show_border/,""))}}),a.commit=CKEDITOR.tools.override(a.commit,function(a){return function(c,f){a.apply(this,arguments);parseInt(f.getAttribute("border"),10)||f.addClass("cke_show_border")}})})}(),function(){function a(a){return CKEDITOR.env.ie?a.$.clientWidth:parseInt(a.getComputedStyle("width"),10)}function f(a,c){var e=a.getComputedStyle("border-"+c+"-width"),f={thin:"0px",medium:"1px",thick:"2px"};0>e.indexOf("px")&&(e=e in f&&"none"!=a.getComputedStyle("border-style")?
+f[e]:0);return parseInt(e,10)}function c(a){var c=[],e=-1,h="rtl"==a.getComputedStyle("direction"),k;k=a.$.rows;for(var l=0,m,n,q,w=0,A=k.length;w<A;w++)q=k[w],m=q.cells.length,m>l&&(l=m,n=q);k=n;l=new CKEDITOR.dom.element(a.$.tBodies[0]);m=l.getDocumentPosition();n=0;for(q=k.cells.length;n<q;n++){var w=new CKEDITOR.dom.element(k.cells[n]),A=k.cells[n+1]&&new CKEDITOR.dom.element(k.cells[n+1]),e=e+(w.$.colSpan||1),B,t,x=w.getDocumentPosition().x;h?t=x+f(w,"left"):B=x+w.$.offsetWidth-f(w,"right");
+A?(x=A.getDocumentPosition().x,h?B=x+A.$.offsetWidth-f(A,"right"):t=x+f(A,"left")):(x=a.getDocumentPosition().x,h?B=x:t=x+a.$.offsetWidth);w=Math.max(t-B,3);c.push({table:a,index:e,x:B,y:m.y,width:w,height:l.$.offsetHeight,rtl:h})}return c}function e(a){(a.data||a).preventDefault()}function h(b){function c(){w=0;q.setOpacity(0);B&&g();var a=r.table;setTimeout(function(){a.removeCustomData("_cke_table_pillars")},0);n.removeListener("dragstart",e)}function g(){for(var c=r.rtl,d=c?x.length:t.length,
+e=0,g=0;g<d;g++){var h=t[g],k=x[g],m=r.table;CKEDITOR.tools.setTimeout(function(a,f,g,h,k,n){a&&a.setStyle("width",l(Math.max(f+n,1)));g&&g.setStyle("width",l(Math.max(h-n,1)));k&&m.setStyle("width",l(k+n*(c?-1:1)));++e==d&&b.fire("saveSnapshot")},0,this,[h,h&&a(h),k,k&&a(k),(!h||!k)&&a(m)+f(m,"left")+f(m,"right"),B])}}function h(c){e(c);b.fire("saveSnapshot");c=r.index;for(var d=CKEDITOR.tools.buildTableMap(r.table),f=[],g=[],k=Number.MAX_VALUE,l=k,p=r.rtl,z=0,R=d.length;z<R;z++){var L=d[z],Q=L[c+
+(p?1:0)],L=L[c+(p?0:1)],Q=Q&&new CKEDITOR.dom.element(Q),L=L&&new CKEDITOR.dom.element(L);Q&&L&&Q.equals(L)||(Q&&(k=Math.min(k,a(Q))),L&&(l=Math.min(l,a(L))),f.push(Q),g.push(L))}t=f;x=g;D=r.x-k;y=r.x+l;q.setOpacity(.5);A=parseInt(q.getStyle("left"),10);B=0;w=1;q.on("mousemove",v);n.on("dragstart",e);n.on("mouseup",m,this)}function m(a){a.removeListener();c()}function v(a){z(a.data.getPageOffset().x)}var r,n,q,w,A,B,t,x,D,y;n=b.document;q=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-temp\x3d1 contenteditable\x3dfalse unselectable\x3don style\x3d"position:absolute;cursor:col-resize;filter:alpha(opacity\x3d0);opacity:0;padding:0;background-color:#004;background-image:none;border:0px none;z-index:10"\x3e\x3c/div\x3e',
+n);b.on("destroy",function(){q.remove()});k||n.getDocumentElement().append(q);this.attachTo=function(a){w||(k&&(n.getBody().append(q),B=0),r=a,q.setStyles({width:l(a.width),height:l(a.height),left:l(a.x),top:l(a.y)}),k&&q.setOpacity(.25),q.on("mousedown",h,this),n.getBody().setStyle("cursor","col-resize"),q.show())};var z=this.move=function(a){if(!r)return 0;if(!w&&(a<r.x||a>r.x+r.width))return r=null,w=B=0,n.removeListener("mouseup",m),q.removeListener("mousedown",h),q.removeListener("mousemove",
+v),n.getBody().setStyle("cursor","auto"),k?q.remove():q.hide(),0;a-=Math.round(q.$.offsetWidth/2);if(w){if(a==D||a==y)return 1;a=Math.max(a,D);a=Math.min(a,y);B=a-A}q.setStyle("left",l(a));return 1}}function m(a){var c=a.data.getTarget();if("mouseout"==a.name){if(!c.is("table"))return;for(var e=new CKEDITOR.dom.element(a.data.$.relatedTarget||a.data.$.toElement);e&&e.$&&!e.equals(c)&&!e.is("body");)e=e.getParent();if(!e||e.equals(c))return}c.getAscendant("table",1).removeCustomData("_cke_table_pillars");
 a.removeListener()}var l=CKEDITOR.tools.cssLength,k=CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks);CKEDITOR.plugins.add("tableresize",{requires:"tabletools",init:function(a){a.on("contentDom",function(){var d,f=a.editable();f.attachListener(f.isInline()?f:a.document,"mousemove",function(f){f=f.data;var g=f.getTarget();if(g.type==CKEDITOR.NODE_ELEMENT){var k=f.getPageOffset().x;if(d&&d.move(k))e(f);else if(g.is("table")||g.getAscendant("tbody",1))if(g=g.getAscendant("table",1),a.editable().contains(g)){(f=
 g.getCustomData("_cke_table_pillars"))||(g.setCustomData("_cke_table_pillars",f=c(g)),g.on("mouseout",m),g.on("mousedown",m));a:{for(var g=0,l=f.length;g<l;g++){var n=f[g];if(k>=n.x&&k<=n.x+n.width){k=n;break a}}k=null}k&&(!d&&(d=new h(a)),d.attachTo(k))}}})})}})}(),function(){function a(a,e,h){var m,l;if(h="string"==typeof h?CKEDITOR.document.getById(h):new CKEDITOR.dom.element(h))if(m=a.fire("uiSpace",{space:e,html:""}).html)a.on("uiSpace",function(a){a.data.space==e&&a.cancel()},null,null,1),l=
 h.append(CKEDITOR.dom.element.createFromHtml(f.output({id:a.id,name:a.name,langDir:a.lang.dir,langCode:a.langCode,space:e,spaceId:a.ui.spaceId(e),content:m}))),h.getCustomData("cke_hasshared")?l.hide():h.setCustomData("cke_hasshared",1),l.unselectable(),l.on("mousedown",function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()}),a.focusManager.add(l,1),a.on("focus",function(){for(var a=0,b,c=h.getChildren();b=c.getItem(a);a++)b.type==CKEDITOR.NODE_ELEMENT&&!b.equals(l)&&b.hasClass("cke_shared")&&
@@ -961,61 +960,60 @@ a.hide();this.hidden[c]=a;delete this.visible[c]},showLine:function(a){var c=a.g
 break}f||this.showLine(f=this.addLine());f.setCustomData("hash",this.hash);this.visible[f.getUniqueId()]=f;f.setStyles(e);c&&c(f)}},getStyle:function(a,c){var e=this.relations[a],f=this.locations[a][c],h={};h.width=e.siblingRect?Math.max(e.siblingRect.width,e.elementRect.width):e.elementRect.width;h.top=this.inline?f+this.winTopScroll.y-this.rect.relativeY:this.rect.top+this.winTopScroll.y+f;if(h.top-this.winTopScroll.y<this.rect.top||h.top-this.winTopScroll.y>this.rect.bottom)return!1;this.inline?
 h.left=e.elementRect.left-this.rect.relativeX:(0<e.elementRect.left?h.left=this.rect.left+e.elementRect.left:(h.width+=e.elementRect.left,h.left=this.rect.left),0<(e=h.left+h.width-(this.rect.left+this.winPane.width))&&(h.width-=e));h.left+=this.winTopScroll.x;for(var k in h)h[k]=CKEDITOR.tools.cssLength(h[k]);return h},addLine:function(){var a=CKEDITOR.dom.element.createFromHtml(this.lineTpl);a.appendTo(this.container);return a},prepare:function(a,c){this.relations=a;this.locations=c;this.hash=Math.random()},
 cleanup:function(){var a,c;for(c in this.visible)a=this.visible[c],a.getCustomData("hash")!==this.hash&&this.hideLine(a)},queryViewport:function(){this.winPane=this.win.getViewPaneSize();this.winTopScroll=this.winTop.getScrollPosition();this.winTopPane=this.winTop.getViewPaneSize();this.rect=this.getClientRect(this.inline?this.editable:this.frame)},getClientRect:function(a){a=a.getClientRect();var c=this.container.getDocumentPosition(),e=this.container.getComputedStyle("position");a.relativeX=a.relativeY=
-0;"static"!=e&&(a.relativeY=c.y,a.relativeX=c.x,a.top-=a.relativeY,a.bottom-=a.relativeY,a.left-=a.relativeX,a.right-=a.relativeX);return a}};var l={left:1,right:1,center:1},k={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:a,locator:f,liner:c}}(),"use strict",function(){function a(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};D(this);w(this);this.on("checkWidgets",
-l);this.editor.on("contentDomInvalidated",this.checkWidgets,this);t(this);x(this);z(this);q(this);A(this)}function f(a,b,c,d,e){var g=a.editor;CKEDITOR.tools.extend(this,d,{editor:g,id:b,inline:"span"==c.getParent().getName(),element:c,data:CKEDITOR.tools.extend({},"function"==typeof d.defaults?d.defaults():d.defaults),dataReady:!1,inited:!1,ready:!1,edit:f.prototype.edit,focusedEditable:null,definition:d,repository:a,draggable:!1!==d.draggable,_:{downcastFn:d.downcast&&"string"==typeof d.downcast?
-d.downcasts[d.downcast]:d.downcast}},!0);a.fire("instanceCreated",this);K(this,d);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes",this.getClasses());this.dataReady=!0;U(this);this.fire("data",this.data);this.isInited()&&g.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function c(a,b,c){CKEDITOR.dom.element.call(this,b.$);this.editor=a;
+0;"static"!=e&&(a.relativeY=c.y,a.relativeX=c.x,a.top-=a.relativeY,a.bottom-=a.relativeY,a.left-=a.relativeX,a.right-=a.relativeX);return a}};var l={left:1,right:1,center:1},k={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:a,locator:f,liner:c}}(),"use strict",function(){function a(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};D(this);x(this);this.on("checkWidgets",
+l);this.editor.on("contentDomInvalidated",this.checkWidgets,this);t(this);w(this);A(this);q(this);B(this)}function f(a,b,c,d,e){var g=a.editor;CKEDITOR.tools.extend(this,d,{editor:g,id:b,inline:"span"==c.getParent().getName(),element:c,data:CKEDITOR.tools.extend({},"function"==typeof d.defaults?d.defaults():d.defaults),dataReady:!1,inited:!1,ready:!1,edit:f.prototype.edit,focusedEditable:null,definition:d,repository:a,draggable:!1!==d.draggable,_:{downcastFn:d.downcast&&"string"==typeof d.downcast?
+d.downcasts[d.downcast]:d.downcast}},!0);a.fire("instanceCreated",this);O(this,d);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes",this.getClasses());this.dataReady=!0;K(this);this.fire("data",this.data);this.isInited()&&g.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function c(a,b,c){CKEDITOR.dom.element.call(this,b.$);this.editor=a;
 this._={};b=this.filter=c.filter;CKEDITOR.dtd[this.getName()].p?(this.enterMode=b?b.getAllowedEnterMode(a.enterMode):a.enterMode,this.shiftEnterMode=b?b.getAllowedEnterMode(a.shiftEnterMode,!0):a.shiftEnterMode):this.enterMode=this.shiftEnterMode=CKEDITOR.ENTER_BR}function e(a,b){a.addCommand(b.name,{exec:function(a,c){function d(){a.widgets.finalizeCreation(h)}var e=a.widgets.focused;if(e&&e.name==b.name)e.edit();else if(b.insert)b.insert();else if(b.template){var e="function"==typeof b.defaults?
 b.defaults():b.defaults,e=CKEDITOR.dom.element.createFromHtml(b.template.output(e)),f,g=a.widgets.wrapElement(e,b.name),h=new CKEDITOR.dom.documentFragment(g.getDocument());h.append(g);(f=a.widgets.initOn(e,b,c&&c.startupData))?(e=f.once("edit",function(b){if(b.data.dialog)f.once("dialog",function(b){b=b.data;var c,e;c=b.once("ok",d,null,null,20);e=b.once("cancel",function(b){b.data&&!1===b.data.hide||a.widgets.destroy(f,!0)});b.once("hide",function(){c.removeListener();e.removeListener()})});else d()},
 null,null,999),f.edit(),e.removeListener()):d()}},allowedContent:b.allowedContent,requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}function h(a,b){function c(b,d,e){var f=CKEDITOR.tools.getIndex(a._.upcasts,function(a){return a[2]>e});0>f&&(f=a._.upcasts.length);a._.upcasts.splice(f,0,[b,d,e])}var d=b.upcast,e=b.upcastPriority||10;if(d)if("string"==typeof d)for(d=d.split(",");d.length;)c(b.upcasts[d.pop()],b.name,e);else c(d,b.name,e)}
 function m(a,b){a.focused=null;if(b.isInited()){var c=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!c&&b.editor.resetDirty()}}function l(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),c=this.instances,d,e,g,h;if(b){for(d in c)c[d].isReady()&&!b.contains(c[d].wrapper)&&this.destroy(c[d],!0);if(a&&a.initOnlyNew)c=this.initOnAll();else{var k=b.find(".cke_widget_wrapper"),c=[];d=0;for(e=k.count();d<e;d++){g=k.getItem(d);if(h=!this.getByElement(g,
-!0)){a:{h=r;for(var l=g;l=l.getParent();)if(h(l)){h=!0;break a}h=!1}h=!h}h&&b.contains(g)&&(g.addClass("cke_widget_new"),c.push(this.initOn(g.getFirst(f.isDomWidgetElement))))}}a&&a.focusInited&&1==c.length&&c[0].focus()}}}function k(a,b,c){if(!c.allowedContent)return null;var d=this._.filters[a];d||(this._.filters[a]=d={});(a=d[b])||(d[b]=a=new CKEDITOR.filter(c.allowedContent));return a}function b(a){var b=[],c=a._.upcasts,d=a._.upcastCallbacks;return{toBeWrapped:b,iterator:function(a){var e,g,
+!0)){a:{h=u;for(var l=g;l=l.getParent();)if(h(l)){h=!0;break a}h=!1}h=!h}h&&b.contains(g)&&(g.addClass("cke_widget_new"),c.push(this.initOn(g.getFirst(f.isDomWidgetElement))))}}a&&a.focusInited&&1==c.length&&c[0].focus()}}}function k(a,b,c){if(!c.allowedContent)return null;var d=this._.filters[a];d||(this._.filters[a]=d={});(a=d[b])||(d[b]=a=new CKEDITOR.filter(c.allowedContent));return a}function b(a){var b=[],c=a._.upcasts,d=a._.upcastCallbacks;return{toBeWrapped:b,iterator:function(a){var e,g,
 h,k,l;if("data-cke-widget-wrapper"in a.attributes)return(a=a.getFirst(f.isParserWidgetElement))&&b.push([a]),!1;if("data-widget"in a.attributes)return b.push([a]),!1;if(l=c.length){if(a.attributes["data-cke-widget-upcasted"])return!1;k=0;for(e=d.length;k<e;++k)if(!1===d[k](a))return;for(k=0;k<l;++k)if(e=c[k],h={},g=e[0](a,h))return g instanceof CKEDITOR.htmlParser.element&&(a=g),a.attributes["data-cke-widget-data"]=encodeURIComponent(JSON.stringify(h)),a.attributes["data-cke-widget-upcasted"]=1,b.push([a,
 e[1]]),!1}}}}function d(a){return{tabindex:-1,contenteditable:"false","data-cke-widget-wrapper":1,"data-cke-filter":"off","class":"cke_widget_wrapper cke_widget_new cke_widget_"+(a?"inline":"block")}}function g(a,b,c){if(a.type==CKEDITOR.NODE_ELEMENT){var d=CKEDITOR.dtd[a.name];if(d&&!d[c.name]){var d=a.split(b),e=a.parent;b=d.getIndex();a.children.length||(--b,a.remove());d.children.length||d.remove();return g(e,b,c)}}a.add(c,b)}function p(a,b){return"boolean"==typeof a.inline?a.inline:!!CKEDITOR.dtd.$inline[b]}
-function r(a){return a.hasAttribute("data-cke-temp")}function v(a,b,c,d){var e=a.editor;e.fire("lockSnapshot");c?(d=c.data("cke-widget-editable"),d=b.editables[d],a.widgetHoldingFocusedEditable=b,b.focusedEditable=d,c.addClass("cke_widget_editable_focused"),d.filter&&e.setActiveFilter(d.filter),e.setActiveEnterMode(d.enterMode,d.shiftEnterMode)):(d||b.focusedEditable.removeClass("cke_widget_editable_focused"),b.focusedEditable=null,a.widgetHoldingFocusedEditable=null,e.setActiveFilter(null),e.setActiveEnterMode(null,
-null));e.fire("unlockSnapshot")}function u(a){a.contextMenu&&a.contextMenu.addListener(function(b){if(b=a.widgets.getByElement(b,!0))return b.fire("contextMenu",{})})}function n(a,b){return CKEDITOR.tools.trim(b)}function q(a){var b=a.editor,c=CKEDITOR.plugins.lineutils;b.on("dragstart",function(c){var d=c.data.target;f.isDomDragHandler(d)&&(d=a.getByElement(d),c.data.dataTransfer.setData("cke/widget-id",d.id),b.focus(),d.focus())});b.on("drop",function(c){var d=c.data.dataTransfer,e=d.getData("cke/widget-id"),
+function u(a){return a.hasAttribute("data-cke-temp")}function v(a,b,c,d){var e=a.editor;e.fire("lockSnapshot");c?(d=c.data("cke-widget-editable"),d=b.editables[d],a.widgetHoldingFocusedEditable=b,b.focusedEditable=d,c.addClass("cke_widget_editable_focused"),d.filter&&e.setActiveFilter(d.filter),e.setActiveEnterMode(d.enterMode,d.shiftEnterMode)):(d||b.focusedEditable.removeClass("cke_widget_editable_focused"),b.focusedEditable=null,a.widgetHoldingFocusedEditable=null,e.setActiveFilter(null),e.setActiveEnterMode(null,
+null));e.fire("unlockSnapshot")}function r(a){a.contextMenu&&a.contextMenu.addListener(function(b){if(b=a.widgets.getByElement(b,!0))return b.fire("contextMenu",{})})}function n(a,b){return CKEDITOR.tools.trim(b)}function q(a){var b=a.editor,c=CKEDITOR.plugins.lineutils;b.on("dragstart",function(c){var d=c.data.target;f.isDomDragHandler(d)&&(d=a.getByElement(d),c.data.dataTransfer.setData("cke/widget-id",d.id),b.focus(),d.focus())});b.on("drop",function(c){var d=c.data.dataTransfer,e=d.getData("cke/widget-id"),
 f=d.getTransferType(b),d=b.createRange();""!==e&&f===CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?c.cancel():""!==e&&f==CKEDITOR.DATA_TRANSFER_INTERNAL&&(e=a.instances[e])&&(d.setStartBefore(e.wrapper),d.setEndAfter(e.wrapper),c.data.dragRange=d,delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount,delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount,c.data.dataTransfer.setData("text/html",b.editable().getHtmlFromRange(d).getHtml()),b.widgets.destroy(e,!0))});b.on("contentDom",function(){var d=
 b.editable();CKEDITOR.tools.extend(a,{finder:new c.finder(b,{lookups:{"default":function(b){if(!b.is(CKEDITOR.dtd.$listItem)&&b.is(CKEDITOR.dtd.$block)&&!f.isDomNestedEditable(b)&&!a._.draggedWidget.wrapper.contains(b)){var c=f.getNestedEditable(d,b);if(c){b=a._.draggedWidget;if(a.getByElement(c)==b)return;c=CKEDITOR.filter.instances[c.data("cke-filter")];b=b.requiredContent;if(c&&b&&!c.check(b))return}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new c.locator(b),liner:new c.liner(b,
-{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function x(a){var b=a.editor;b.on("contentDom",function(){var c=b.editable(),d=c.isInline()?c:b.document,e,g;c.attachListener(d,"mousedown",function(c){var d=c.data.getTarget();if(!d.type)return!1;e=a.getByElement(d);g=0;e&&(e.inline&&d.type==CKEDITOR.NODE_ELEMENT&&d.hasAttribute("data-cke-widget-drag-handler")?(g=1,a.focused!=e&&b.getSelection().removeAllRanges()):
+{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function w(a){var b=a.editor;b.on("contentDom",function(){var c=b.editable(),d=c.isInline()?c:b.document,e,g;c.attachListener(d,"mousedown",function(c){var d=c.data.getTarget();if(!d.type)return!1;e=a.getByElement(d);g=0;e&&(e.inline&&d.type==CKEDITOR.NODE_ELEMENT&&d.hasAttribute("data-cke-widget-drag-handler")?(g=1,a.focused!=e&&b.getSelection().removeAllRanges()):
 f.getNestedEditable(e.wrapper,d)?e=null:(c.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});c.attachListener(d,"mouseup",function(){g&&e&&e.wrapper&&(g=0,e.focus())});CKEDITOR.env.ie&&c.attachListener(d,"mouseup",function(){setTimeout(function(){e&&e.wrapper&&c.contains(e.wrapper)&&(e.focus(),e=null)})})});b.on("doubleclick",function(b){var c=a.getByElement(b.data.element);if(c&&!f.getNestedEditable(c.wrapper,b.data.element))return c.fire("doubleclick",{element:b.data.element})},null,null,1)}
-function z(a){a.editor.on("key",function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):d&&(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e},null,
-null,1)}function A(a){function b(c){a.focused&&F(a.focused,"cut"==c.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();a.attachListener(a,"copy",b);a.attachListener(a,"cut",b)})}function t(a){var b=a.editor;b.on("selectionCheck",function(){a.fire("checkSelection")});a.on("checkSelection",a.checkSelection,a);b.on("selectionChange",function(c){var d=(c=f.getNestedEditable(b.editable(),c.data.selection.getStartElement()))&&a.getByElement(c),e=a.widgetHoldingFocusedEditable;e?e===d&&
-e.focusedEditable.equals(c)||(v(a,e,null),d&&c&&v(a,d,c)):d&&c&&v(a,d,c)});b.on("dataReady",function(){B(a).commit()});b.on("blur",function(){var b;(b=a.focused)&&m(a,b);(b=a.widgetHoldingFocusedEditable)&&v(a,b,null)})}function w(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var d=CKEDITOR.tools.getNextNumber(),e=[];b.data.downcastingSessionId=d;c[d]=e;b.data.dataValue.forEach(function(b){var c=b.attributes,d;if("data-cke-widget-id"in c){if(c=a.instances[c["data-cke-widget-id"]])d=b.getFirst(f.isParserWidgetElement),
+function A(a){a.editor.on("key",function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):d&&(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e},null,
+null,1)}function B(a){function b(c){a.focused&&G(a.focused,"cut"==c.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();a.attachListener(a,"copy",b);a.attachListener(a,"cut",b)})}function t(a){var b=a.editor;b.on("selectionCheck",function(){a.fire("checkSelection")});a.on("checkSelection",a.checkSelection,a);b.on("selectionChange",function(c){var d=(c=f.getNestedEditable(b.editable(),c.data.selection.getStartElement()))&&a.getByElement(c),e=a.widgetHoldingFocusedEditable;e?e===d&&
+e.focusedEditable.equals(c)||(v(a,e,null),d&&c&&v(a,d,c)):d&&c&&v(a,d,c)});b.on("dataReady",function(){y(a).commit()});b.on("blur",function(){var b;(b=a.focused)&&m(a,b);(b=a.widgetHoldingFocusedEditable)&&v(a,b,null)})}function x(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var d=CKEDITOR.tools.getNextNumber(),e=[];b.data.downcastingSessionId=d;c[d]=e;b.data.dataValue.forEach(function(b){var c=b.attributes,d;if("data-cke-widget-id"in c){if(c=a.instances[c["data-cke-widget-id"]])d=b.getFirst(f.isParserWidgetElement),
 e.push({wrapper:b,element:d,widget:c,editables:{}}),"1"!=d.attributes["data-cke-widget-keep-attr"]&&delete d.attributes["data-widget"]}else if("data-cke-widget-editable"in c)return e[e.length-1].editables[c["data-cke-widget-editable"]]=b,!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);b.on("toDataFormat",function(a){if(a.data.downcastingSessionId){a=c[a.data.downcastingSessionId];for(var b,d,e,f,g,h;b=a.shift();){d=b.widget;e=b.element;f=d._.downcastFn&&d._.downcastFn.call(d,e);for(h in b.editables)g=
 b.editables[h],delete g.attributes.contenteditable,g.setHtml(d.editables[h].getData());f||(f=e);b.wrapper.replaceWith(f)}}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}function D(a){var c=a.editor,d,e;c.on("toHtml",function(c){var e=b(a),g;for(c.data.dataValue.forEach(e.iterator,CKEDITOR.NODE_ELEMENT,!0);g=e.toBeWrapped.pop();){var h=g[0],k=h.parent;k.type==CKEDITOR.NODE_ELEMENT&&k.attributes["data-cke-widget-wrapper"]&&k.replaceWith(h);a.wrapElement(g[0],g[1])}d=c.data.protectedWhitespaces?
 3==c.data.dataValue.children.length&&f.isParserWidgetWrapper(c.data.dataValue.children[1]):1==c.data.dataValue.children.length&&f.isParserWidgetWrapper(c.data.dataValue.children[0])},null,null,8);c.on("dataReady",function(){if(e)for(var b=c.editable().find(".cke_widget_wrapper"),d,g,h=0,k=b.count();h<k;++h)d=b.getItem(h),g=d.getFirst(f.isDomWidgetElement),g.type==CKEDITOR.NODE_ELEMENT&&g.data("widget")?(g.replace(d),a.wrapElement(g)):d.remove();e=0;a.destroyAll(!0);a.initOnAll()});c.on("loadSnapshot",
-function(b){/data-cke-widget/.test(b.data)&&(e=1);a.destroyAll(!0)},null,null,9);c.on("paste",function(a){a=a.data;a.dataValue=a.dataValue.replace(S,n);a.range&&(a=f.getNestedEditable(c.editable(),a.range.startContainer))&&(a=CKEDITOR.filter.instances[a.data("cke-filter")])&&c.setActiveFilter(a)});c.on("afterInsertHtml",function(b){b.data.intoRange?a.checkWidgets({initOnlyNew:!0}):(c.fire("lockSnapshot"),a.checkWidgets({initOnlyNew:!0,focusInited:d}),c.fire("unlockSnapshot"))})}function B(a){var b=
+function(b){/data-cke-widget/.test(b.data)&&(e=1);a.destroyAll(!0)},null,null,9);c.on("paste",function(a){a=a.data;a.dataValue=a.dataValue.replace(V,n);a.range&&(a=f.getNestedEditable(c.editable(),a.range.startContainer))&&(a=CKEDITOR.filter.instances[a.data("cke-filter")])&&c.setActiveFilter(a)});c.on("afterInsertHtml",function(b){b.data.intoRange?a.checkWidgets({initOnlyNew:!0}):(c.fire("lockSnapshot"),a.checkWidgets({initOnlyNew:!0,focusInited:d}),c.fire("unlockSnapshot"))})}function y(a){var b=
 a.selected,c=[],d=b.slice(0),e=null;return{select:function(a){0>CKEDITOR.tools.indexOf(b,a)&&c.push(a);a=CKEDITOR.tools.indexOf(d,a);0<=a&&d.splice(a,1);return this},focus:function(a){e=a;return this},commit:function(){var f=a.focused!==e,g,h;a.editor.fire("lockSnapshot");for(f&&(g=a.focused)&&m(a,g);g=d.pop();)b.splice(CKEDITOR.tools.indexOf(b,g),1),g.isInited()&&(h=g.editor.checkDirty(),g.setSelected(!1),!h&&g.editor.resetDirty());f&&e&&(h=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",
-{widget:e}),e.setFocused(!0),!h&&a.editor.resetDirty());for(;g=c.pop();)b.push(g),g.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function y(a,b,c){var d=0;b=E(b);var e=a.data.classes||{},f;if(b){for(e=CKEDITOR.tools.clone(e);f=b.pop();)c?e[f]||(d=e[f]=1):e[f]&&(delete e[f],d=1);d&&a.setData("classes",e)}}function C(a){a.cancel()}function F(a,b){var c=a.editor,d=c.document;if(!d.getById("cke_copybin")){var e=c.blockless||CKEDITOR.env.ie?"span":"div",f=d.createElement(e),g=d.createElement(e),e=
+{widget:e}),e.setFocused(!0),!h&&a.editor.resetDirty());for(;g=c.pop();)b.push(g),g.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function z(a,b,c){var d=0;b=E(b);var e=a.data.classes||{},f;if(b){for(e=CKEDITOR.tools.clone(e);f=b.pop();)c?e[f]||(d=e[f]=1):e[f]&&(delete e[f],d=1);d&&a.setData("classes",e)}}function C(a){a.cancel()}function G(a,b){var c=a.editor,d=c.document;if(!d.getById("cke_copybin")){var e=c.blockless||CKEDITOR.env.ie?"span":"div",f=d.createElement(e),g=d.createElement(e),e=
 CKEDITOR.env.ie&&9>CKEDITOR.env.version;g.setAttributes({id:"cke_copybin","data-cke-temp":"1"});f.setStyles({position:"absolute",width:"1px",height:"1px",overflow:"hidden"});f.setStyle("ltr"==c.config.contentsLangDirection?"left":"right","-5000px");var h=c.createRange();h.setStartBefore(a.wrapper);h.setEndAfter(a.wrapper);f.setHtml('\x3cspan data-cke-copybin-start\x3d"1"\x3e​\x3c/span\x3e'+c.editable().getHtmlFromRange(h).getHtml()+'\x3cspan data-cke-copybin-end\x3d"1"\x3e​\x3c/span\x3e');c.fire("saveSnapshot");
 c.fire("lockSnapshot");g.append(f);c.editable().append(g);var k=c.on("selectionChange",C,null,null,0),l=a.repository.on("checkSelection",C,null,null,0);if(e)var m=d.getDocumentElement().$,n=m.scrollTop;h=c.createRange();h.selectNodeContents(f);h.select();e&&(m.scrollTop=n);setTimeout(function(){b||a.focus();g.remove();k.removeListener();l.removeListener();c.fire("unlockSnapshot");b&&(a.repository.del(a),c.fire("saveSnapshot"))},100)}}function E(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?
-a.split(/\s+/):null}function L(){var a=CKEDITOR.document.getActive(),b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function G(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function N(a){var b=null;a.on("data",function(){var a=this.data.classes,c;if(b!=a){for(c in b)a&&a[c]||this.removeClass(c);for(c in a)this.addClass(c);b=a}})}function O(a){a.on("data",
-function(){if(a.wrapper){var b=this.getLabel?this.getLabel():this.editor.lang.widget.label.replace(/%1/,this.pathName||this.element.getName());a.wrapper.setAttribute("role","region");a.wrapper.setAttribute("aria-label",b)}},null,null,9999)}function I(a){if(a.draggable){var b=a.editor,c=a.wrapper.getLast(f.isDomDragHandlerContainer),d;c?d=c.findOne("img"):(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+
-b.plugins.widget.path+"images/handle.png)"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler","data-cke-widget-drag-handler":"1",src:CKEDITOR.tools.transparentImageData,width:15,title:b.lang.widget.move,height:15,role:"presentation"}),a.inline&&d.setAttribute("draggable","true"),c.append(d),a.wrapper.append(c));a.wrapper.on("dragover",function(a){a.data.preventDefault()});a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",
-a.updateDragHandlerPosition,a)},50);if(!a.inline&&(d.on("mousedown",R,a),CKEDITOR.env.ie&&9>CKEDITOR.env.version))d.on("dragstart",function(a){a.data.preventDefault(!0)});a.dragHandlerContainer=c}}function R(a){function b(){var c;for(p.reset();c=h.pop();)c.removeListener();var d=k;c=a.sender;var e=this.repository.finder,f=this.repository.liner,g=this.editor,l=this.editor.editable();CKEDITOR.tools.isEmpty(f.visible)||(d=e.getRange(d[0]),this.focus(),g.fire("drop",{dropRange:d,target:d.startContainer}));
-l.removeClass("cke_widget_dragging");f.hideVisible();g.fire("dragend",{target:c})}var c=this.repository.finder,d=this.repository.locator,e=this.repository.liner,f=this.editor,g=f.editable(),h=[],k=[],l,m;this.repository._.draggedWidget=this;var n=c.greedySearch(),p=CKEDITOR.tools.eventsBuffer(50,function(){l=d.locate(n);k=d.sort(m,1);k.length&&(e.prepare(n,l),e.placeLine(k[0]),e.cleanup())});g.addClass("cke_widget_dragging");h.push(g.on("mousemove",function(a){m=a.data.$.clientY;p.input()}));f.fire("dragstart",
-{target:a.sender});h.push(f.document.once("mouseup",b,this));g.isInline()||h.push(CKEDITOR.document.once("mouseup",b,this))}function M(a){var b,c,d=a.editables;a.editables={};if(a.editables)for(b in d)c=d[b],a.initEditable(b,"string"==typeof c?{selector:c}:c)}function Q(a){if(a.mask){var b=a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));
-a.mask=b}}function P(a){if(a.parts){var b={},c,d;for(d in a.parts)c=a.wrapper.findOne(a.parts[d]),b[d]=c;a.parts=b}}function K(a,b){W(a);P(a);M(a);Q(a);I(a);N(a);O(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart",function(b){var c=b.data.getTarget();f.getNestedEditable(a,c)||a.inline&&f.isDomDragHandler(c)||b.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(13==b)a.edit();else{if(b==
-CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){F(a,b==CKEDITOR.CTRL+88);return}if(b in J||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",function(b){a.edit()&&b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function W(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",a.id)}function U(a){a.element.data("cke-widget-data",encodeURIComponent(JSON.stringify(a.data)))}CKEDITOR.plugins.add("widget",{requires:"lineutils,clipboard",
-onLoad:function(){CKEDITOR.addCss(".cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover\x3e.cke_widget_element{outline:2px solid yellow;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid yellow}.cke_widget_wrapper.cke_widget_focused\x3e.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #ace}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:15px;height:0;display:none;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover\x3e.cke_widget_drag_handler_container{height:15px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}img.cke_widget_drag_handler{cursor:move;width:15px;height:15px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}")},
-beforeInit:function(b){b.widgets=new a(b)},afterInit:function(a){var b=a.widgets.registered,c,d,e;for(d in b)c=b[d],(e=c.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(c.name,!0),{label:e,command:c.name,toolbar:"insert,10"});u(a)}});a.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(a,b){b=CKEDITOR.tools.prototypedCopy(b);b.name=a;b._=b._||{};this.editor.fire("widgetDefinition",b);b.template&&(b.template=new CKEDITOR.template(b.template));e(this.editor,b);h(this,b);return this.registered[a]=
-b},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},checkSelection:function(){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=B(this),d;if(b&&(d=this.getByElement(b,!0)))return c.focus(d).select(d).commit();a=a.getRanges()[0];if(!a||a.collapsed)return c.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=f.isDomWidgetWrapper;b=a.next();)c.select(this.getByElement(b));c.commit()},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===
+a.split(/\s+/):null}function J(){var a=CKEDITOR.document.getActive(),b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function I(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function N(a){var b=null;a.on("data",function(){var a=this.data.classes,c;if(b!=a){for(c in b)a&&a[c]||this.removeClass(c);for(c in a)this.addClass(c);b=a}})}function F(a){if(a.draggable){var b=
+a.editor,c=a.wrapper.getLast(f.isDomDragHandlerContainer),d;c?d=c.findOne("img"):(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png)"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler","data-cke-widget-drag-handler":"1",src:CKEDITOR.tools.transparentImageData,width:15,title:b.lang.widget.move,
+height:15}),a.inline&&d.setAttribute("draggable","true"),c.append(d),a.wrapper.append(c));a.wrapper.on("dragover",function(a){a.data.preventDefault()});a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(!a.inline&&(d.on("mousedown",P,a),CKEDITOR.env.ie&&9>CKEDITOR.env.version))d.on("dragstart",function(a){a.data.preventDefault(!0)});a.dragHandlerContainer=c}}function P(a){function b(){var c;for(m.reset();c=h.pop();)c.removeListener();
+var d=k;c=a.sender;var e=this.repository.finder,f=this.repository.liner,g=this.editor,l=this.editor.editable();CKEDITOR.tools.isEmpty(f.visible)||(d=e.getRange(d[0]),this.focus(),g.fire("drop",{dropRange:d,target:d.startContainer}));l.removeClass("cke_widget_dragging");f.hideVisible();g.fire("dragend",{target:c})}var c=this.repository.finder,d=this.repository.locator,e=this.repository.liner,f=this.editor,g=f.editable(),h=[],k=[];this.repository._.draggedWidget=this;var l=c.greedySearch(),m=CKEDITOR.tools.eventsBuffer(50,
+function(){n=d.locate(l);k=d.sort(p,1);k.length&&(e.prepare(l,n),e.placeLine(k[0]),e.cleanup())}),n,p;g.addClass("cke_widget_dragging");h.push(g.on("mousemove",function(a){p=a.data.$.clientY;m.input()}));f.fire("dragstart",{target:a.sender});h.push(f.document.once("mouseup",b,this));g.isInline()||h.push(CKEDITOR.document.once("mouseup",b,this))}function R(a){var b,c,d=a.editables;a.editables={};if(a.editables)for(b in d)c=d[b],a.initEditable(b,"string"==typeof c?{selector:c}:c)}function L(a){if(a.mask){var b=
+a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}}function Q(a){if(a.parts){var b={},c,d;for(d in a.parts)c=a.wrapper.findOne(a.parts[d]),b[d]=c;a.parts=b}}function O(a,b){U(a);Q(a);R(a);L(a);F(a);N(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart",function(b){var c=b.data.getTarget();f.getNestedEditable(a,c)||
+a.inline&&f.isDomDragHandler(c)||b.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){G(a,b==CKEDITOR.CTRL+88);return}if(b in S||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",function(b){a.edit()&&b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function U(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",
+a.id)}function K(a){a.element.data("cke-widget-data",encodeURIComponent(JSON.stringify(a.data)))}CKEDITOR.plugins.add("widget",{requires:"lineutils,clipboard",onLoad:function(){CKEDITOR.addCss(".cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover\x3e.cke_widget_element{outline:2px solid yellow;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid yellow}.cke_widget_wrapper.cke_widget_focused\x3e.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #ace}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:15px;height:0;display:none;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover\x3e.cke_widget_drag_handler_container{height:15px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}img.cke_widget_drag_handler{cursor:move;width:15px;height:15px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}")},
+beforeInit:function(b){b.widgets=new a(b)},afterInit:function(a){var b=a.widgets.registered,c,d,e;for(d in b)c=b[d],(e=c.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(c.name,!0),{label:e,command:c.name,toolbar:"insert,10"});r(a)}});a.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(a,b){b=CKEDITOR.tools.prototypedCopy(b);b.name=a;b._=b._||{};this.editor.fire("widgetDefinition",b);b.template&&(b.template=new CKEDITOR.template(b.template));e(this.editor,b);h(this,b);return this.registered[a]=
+b},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},checkSelection:function(){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=y(this),d;if(b&&(d=this.getByElement(b,!0)))return c.focus(d).select(d).commit();a=a.getRanges()[0];if(!a||a.collapsed)return c.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=f.isDomWidgetWrapper;b=a.next();)c.select(this.getByElement(b));c.commit()},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===
 a){var b=a.editor,c=b.createRange(),d;(d=c.moveToClosestEditablePosition(a.wrapper,!0))||(d=c.moveToClosestEditablePosition(a.wrapper,!1));d&&b.getSelection().selectRanges([c])}a.wrapper.remove();this.destroy(a,!0)},destroy:function(a,b){this.widgetHoldingFocusedEditable===a&&v(this,a,null,b);a.destroy(b);delete this.instances[a.id];this.fire("instanceDestroyed",a)},destroyAll:function(a,b){var c,d,e=this.instances;if(b&&!a){d=b.find(".cke_widget_wrapper");for(var e=d.count(),f=0;f<e;++f)(c=this.getByElement(d.getItem(f),
 !0))&&this.destroy(c)}else for(d in e)c=e[d],this.destroy(c,a)},finalizeCreation:function(a){(a=a.getFirst())&&f.isDomWidgetWrapper(a)&&(this.editor.insertElement(a),a=this.getByElement(a),a.ready=!0,a.fire("ready"),a.focus())},getByElement:function(){function a(c){return c.is(b)&&c.data("cke-widget-id")}var b={div:1,span:1};return function(b,c){if(!b)return null;var d=a(b);if(!c&&!d){var e=this.editor.editable();do b=b.getParent();while(b&&!b.equals(e)&&!(d=a(b)))}return this.instances[d]||null}}(),
 initOn:function(a,b,c){b?"string"==typeof b&&(b=this.registered[b]):b=this.registered[a.data("widget")];if(!b)return null;var d=this.wrapElement(a,b.name);return d?d.hasClass("cke_widget_new")?(a=new f(this,this._.nextId++,a,b,c),a.isInited()?this.instances[a.id]=a:null):this.getByElement(a):null},initOnAll:function(a){a=(a||this.editor.editable()).find(".cke_widget_new");for(var b=[],c,d=a.count();d--;)(c=this.initOn(a.getItem(d).getFirst(f.isDomWidgetElement)))&&b.push(c);return b},onWidget:function(a){var b=
 Array.prototype.slice.call(arguments);b.shift();for(var c in this.instances){var d=this.instances[c];d.name==a&&d.on.apply(d,b)}this.on("instanceCreated",function(c){c=c.data;c.name==a&&c.on.apply(c,b)})},parseElementClasses:function(a){if(!a)return null;a=CKEDITOR.tools.trim(a).split(/\s+/);for(var b,c={},d=0;b=a.pop();)-1==b.indexOf("cke_")&&(c[b]=d=1);return d?c:null},wrapElement:function(a,b){var c=null,e,f;if(a instanceof CKEDITOR.dom.element){e=this.registered[b||a.data("widget")];if(!e)return null;
 if((c=a.getParent())&&c.type==CKEDITOR.NODE_ELEMENT&&c.data("cke-widget-wrapper"))return c;a.hasAttribute("data-cke-widget-keep-attr")||a.data("cke-widget-keep-attr",a.data("widget")?1:0);b&&a.data("widget",b);f=p(e,a.getName());c=new CKEDITOR.dom.element(f?"span":"div");c.setAttributes(d(f));c.data("cke-display-name",e.pathName?e.pathName:a.getName());a.getParent(!0)&&c.replace(a);a.appendTo(c)}else if(a instanceof CKEDITOR.htmlParser.element){e=this.registered[b||a.attributes["data-widget"]];if(!e)return null;
 if((c=a.parent)&&c.type==CKEDITOR.NODE_ELEMENT&&c.attributes["data-cke-widget-wrapper"])return c;"data-cke-widget-keep-attr"in a.attributes||(a.attributes["data-cke-widget-keep-attr"]=a.attributes["data-widget"]?1:0);b&&(a.attributes["data-widget"]=b);f=p(e,a.name);c=new CKEDITOR.htmlParser.element(f?"span":"div",d(f));c.attributes["data-cke-display-name"]=e.pathName?e.pathName:a.name;e=a.parent;var h;e&&(h=a.getIndex(),a.remove());c.add(a);e&&g(e,h,c)}return c},_tests_createEditableFilter:k};CKEDITOR.event.implementOn(a.prototype);
-f.prototype={addClass:function(a){this.element.addClass(a)},applyStyle:function(a){y(this,a,1)},checkStyleActive:function(a){a=E(a);var b;if(!a)return!1;for(;b=a.pop();)if(!this.hasClass(b))return!1;return!0},destroy:function(a){this.fire("destroy");if(this.editables)for(var b in this.editables)this.destroyEditable(b,a);a||("0"==this.element.data("cke-widget-keep-attr")&&this.element.removeAttribute("data-widget"),this.element.removeAttributes(["data-cke-widget-data","data-cke-widget-keep-attr"]),
-this.element.removeClass("cke_widget_element"),this.element.replace(this.wrapper));this.wrapper=null},destroyEditable:function(a,b){var c=this.editables[a];c.removeListener("focus",G);c.removeListener("blur",L);this.editor.focusManager.remove(c);b||(this.repository.destroyAll(!1,c),c.removeClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),c.removeAttributes(["contenteditable","data-cke-widget-editable","data-cke-enter-mode"]));delete this.editables[a]},edit:function(){var a=
+f.prototype={addClass:function(a){this.element.addClass(a)},applyStyle:function(a){z(this,a,1)},checkStyleActive:function(a){a=E(a);var b;if(!a)return!1;for(;b=a.pop();)if(!this.hasClass(b))return!1;return!0},destroy:function(a){this.fire("destroy");if(this.editables)for(var b in this.editables)this.destroyEditable(b,a);a||("0"==this.element.data("cke-widget-keep-attr")&&this.element.removeAttribute("data-widget"),this.element.removeAttributes(["data-cke-widget-data","data-cke-widget-keep-attr"]),
+this.element.removeClass("cke_widget_element"),this.element.replace(this.wrapper));this.wrapper=null},destroyEditable:function(a,b){var c=this.editables[a];c.removeListener("focus",I);c.removeListener("blur",J);this.editor.focusManager.remove(c);b||(this.repository.destroyAll(!1,c),c.removeClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),c.removeAttributes(["contenteditable","data-cke-widget-editable","data-cke-enter-mode"]));delete this.editables[a]},edit:function(){var a=
 {dialog:this.dialog},b=this;if(!1===this.fire("edit",a)||!a.dialog)return!1;this.editor.openDialog(a.dialog,function(a){var c,d;!1!==b.fire("dialog",a)&&(c=a.on("show",function(){a.setupContent(b)}),d=a.on("ok",function(){var c,d=b.on("data",function(a){c=1;a.cancel()},null,null,0);b.editor.fire("saveSnapshot");a.commitContent(b);d.removeListener();c&&(b.fire("data",b.data),b.editor.fire("saveSnapshot"))}),a.once("hide",function(){c.removeListener();d.removeListener()}))});return!0},getClasses:function(){return this.repository.parseElementClasses(this.element.getAttribute("class"))},
 hasClass:function(a){return this.element.hasClass(a)},initEditable:function(a,b){var d=this._findOneNotNested(b.selector);return d&&d.is(CKEDITOR.dtd.$editable)?(d=new c(this.editor,d,{filter:k.call(this.repository,this.name,a,b)}),this.editables[a]=d,d.setAttributes({contenteditable:"true","data-cke-widget-editable":a,"data-cke-enter-mode":d.enterMode}),d.filter&&d.data("cke-filter",d.filter.id),d.addClass("cke_widget_editable"),d.removeClass("cke_widget_editable_focused"),b.pathName&&d.data("cke-display-name",
-b.pathName),this.editor.focusManager.add(d),d.on("focus",G,this),CKEDITOR.env.ie&&d.on("blur",L,this),d._.initialSetData=!0,d.setData(d.getHtml()),!0):!1},_findOneNotNested:function(a){a=this.wrapper.find(a);for(var b,c,d=0;d<a.count();d++)if(b=a.getItem(d),c=b.getAscendant(f.isDomWidgetWrapper),this.wrapper.equals(c))return b;return null},isInited:function(){return!(!this.wrapper||!this.inited)},isReady:function(){return this.isInited()&&this.ready},focus:function(){var a=this.editor.getSelection();
-if(a){var b=this.editor.checkDirty();a.fake(this.wrapper);!b&&this.editor.resetDirty()}this.editor.focus()},removeClass:function(a){this.element.removeClass(a)},removeStyle:function(a){y(this,a,0)},setData:function(a,b){var c=this.data,d=0;if("string"==typeof a)c[a]!==b&&(c[a]=b,d=1);else{var e=a;for(a in e)c[a]!==e[a]&&(d=1,c[a]=e[a])}d&&this.dataReady&&(U(this),this.fire("data",c));return this},setFocused:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_focused");this.fire(a?"focus":
+b.pathName),this.editor.focusManager.add(d),d.on("focus",I,this),CKEDITOR.env.ie&&d.on("blur",J,this),d._.initialSetData=!0,d.setData(d.getHtml()),!0):!1},_findOneNotNested:function(a){a=this.wrapper.find(a);for(var b,c,d=0;d<a.count();d++)if(b=a.getItem(d),c=b.getAscendant(f.isDomWidgetWrapper),this.wrapper.equals(c))return b;return null},isInited:function(){return!(!this.wrapper||!this.inited)},isReady:function(){return this.isInited()&&this.ready},focus:function(){var a=this.editor.getSelection();
+if(a){var b=this.editor.checkDirty();a.fake(this.wrapper);!b&&this.editor.resetDirty()}this.editor.focus()},removeClass:function(a){this.element.removeClass(a)},removeStyle:function(a){z(this,a,0)},setData:function(a,b){var c=this.data,d=0;if("string"==typeof a)c[a]!==b&&(c[a]=b,d=1);else{var e=a;for(a in e)c[a]!==e[a]&&(d=1,c[a]=e[a])}d&&this.dataReady&&(K(this),this.fire("data",c));return this},setFocused:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_focused");this.fire(a?"focus":
 "blur");return this},setSelected:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_selected");this.fire(a?"select":"deselect");return this},updateDragHandlerPosition:function(){var a=this.editor,b=this.element.$,c=this._.dragHandlerOffset,b={x:b.offsetLeft,y:b.offsetTop-15};c&&b.x==c.x&&b.y==c.y||(c=a.checkDirty(),a.fire("lockSnapshot"),this.dragHandlerContainer.setStyles({top:b.y+"px",left:b.x+"px",display:"block"}),a.fire("unlockSnapshot"),!c&&a.resetDirty(),this._.dragHandlerOffset=
 b)}};CKEDITOR.event.implementOn(f.prototype);f.getNestedEditable=function(a,b){return!b||b.equals(a)?null:f.isDomNestedEditable(b)?b:f.getNestedEditable(a,b.getParent())};f.isDomDragHandler=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-drag-handler")};f.isDomDragHandlerContainer=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_widget_drag_handler_container")};f.isDomNestedEditable=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-editable")};
 f.isDomWidgetElement=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-widget")};f.isDomWidgetWrapper=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-wrapper")};f.isParserWidgetElement=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&!!a.attributes["data-widget"]};f.isParserWidgetWrapper=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&!!a.attributes["data-cke-widget-wrapper"]};c.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.dom.element.prototype),
-{setData:function(a){this._.initialSetData||this.editor.widgets.destroyAll(!1,this);this._.initialSetData=!1;a=this.editor.dataProcessor.toHtml(a,{context:this.getName(),filter:this.filter,enterMode:this.enterMode});this.setHtml(a);this.editor.widgets.initOnAll(this)},getData:function(){return this.editor.dataProcessor.toDataFormat(this.getHtml(),{context:this.getName(),filter:this.filter,enterMode:this.enterMode})}});var S=/^(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?(?:<(?:div|span)(?: style="[^"]+")?>)?<span [^>]*data-cke-copybin-start="1"[^>]*>.?<\/span>([\s\S]+)<span [^>]*data-cke-copybin-end="1"[^>]*>.?<\/span>(?:<\/(?:div|span)>)?(?:<\/(?:div|span)>)?$/i,
-J={37:1,38:1,39:1,40:1,8:1,46:1};(function(){function a(){}function b(a,c,d){return d&&this.checkElement(a)?(a=d.widgets.getByElement(a,!0))&&a.checkStyleActive(this):!1}CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget},apply:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.applyStyle(this)},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},
+{setData:function(a){this._.initialSetData||this.editor.widgets.destroyAll(!1,this);this._.initialSetData=!1;a=this.editor.dataProcessor.toHtml(a,{context:this.getName(),filter:this.filter,enterMode:this.enterMode});this.setHtml(a);this.editor.widgets.initOnAll(this)},getData:function(){return this.editor.dataProcessor.toDataFormat(this.getHtml(),{context:this.getName(),filter:this.filter,enterMode:this.enterMode})}});var V=/^(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?(?:<(?:div|span)(?: style="[^"]+")?>)?<span [^>]*data-cke-copybin-start="1"[^>]*>.?<\/span>([\s\S]+)<span [^>]*data-cke-copybin-end="1"[^>]*>.?<\/span>(?:<\/(?:div|span)>)?(?:<\/(?:div|span)>)?$/i,
+S={37:1,38:1,39:1,40:1,8:1,46:1};(function(){function a(){}function b(a,c,d){return d&&this.checkElement(a)?(a=d.widgets.getByElement(a,!0))&&a.checkStyleActive(this):!1}CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget},apply:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.applyStyle(this)},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},
 checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},checkApplicable:function(a,b){return b instanceof CKEDITOR.editor?this.checkElement(a.lastElement):!1},checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return f.isDomWidgetWrapper(a)?(a=a.getFirst(f.isDomWidgetElement))&&a.data("widget")==this.widget:!1},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;a=a.widgets.registered[this.widget];var b,
 c={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;c[a.styleableElements]={classes:b,propertiesOnly:!0};return c}return a.styleToAllowedContentRules?a.styleToAllowedContentRules(this):null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})})();CKEDITOR.plugins.widget=f;f.repository=a;f.nestedEditable=c}(),"use strict",
 function(){function a(a){function b(){this.deflated||(a.widgets.focused==this.widget&&(this.focused=!0),a.widgets.destroy(this.widget),this.deflated=!0)}function e(){var b=a.editable(),c=a.document;if(this.deflated)this.widget=a.widgets.initOn(this.element,"image",this.widget.data),this.widget.inline&&!(new CKEDITOR.dom.elementPath(this.widget.wrapper,b)).block&&(b=c.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div"),b.replace(this.widget.wrapper),this.widget.wrapper.move(b)),this.focused&&
@@ -1025,22 +1023,22 @@ a.filter.checkFeature(c.align)||(this.data.align="none");this.shiftState({widget
 if(a.filter.checkFeature(c.dimension)){c=this.data;c={width:c.width,height:c.height};d=this.parts.image;for(var f in c)c[f]?d.setAttribute(f,c[f]):d.removeAttribute(f)}this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var b=CKEDITOR.plugins.image2,c=this.parts.image,d={hasCaption:!!this.parts.caption,src:c.getAttribute("src"),alt:c.getAttribute("alt")||"",width:c.getAttribute("width")||"",height:c.getAttribute("height")||"",lock:this.ready?b.checkHasNaturalRatio(c):!0},e=c.getAscendant("a");
 e&&this.wrapper.contains(e)&&(this.parts.link=e);d.align||(c=d.hasCaption?this.element:c,h?(c.hasClass(h[0])?d.align="left":c.hasClass(h[2])&&(d.align="right"),d.align?c.removeClass(h[v[d.align]]):d.align="none"):(d.align=c.getStyle("float")||"none",c.removeStyle("float")));a.plugins.link&&this.parts.link&&(d.link=b.getLinkAttributesParser()(a,this.parts.link),(c=d.link.advanced)&&c.advCSSClasses&&(c.advCSSClasses=CKEDITOR.tools.trim(c.advCSSClasses.replace(/cke_\S+/,""))));this.wrapper[(d.hasCaption?
 "remove":"add")+"Class"]("cke_image_nocaption");this.setData(d);a.filter.checkFeature(this.features.dimension)&&!0!==a.config.image2_disableResizer&&m(this);this.shiftState=b.stateShifter(this.editor);this.on("contextMenu",function(a){a.data.image=CKEDITOR.TRISTATE_OFF;if(this.parts.link||this.wrapper.getAscendant("a"))a.data.link=a.data.unlink=CKEDITOR.TRISTATE_OFF});this.on("dialog",function(a){a.data.widget=this},this)},addClass:function(a){p(this).addClass(a)},hasClass:function(a){return p(this).hasClass(a)},
-removeClass:function(a){p(this).removeClass(a)},getClasses:function(){var a=new RegExp("^("+[].concat(k,h).join("|")+")$");return function(){var b=this.repository.parseElementClasses(p(this).getAttribute("class")),c;for(c in b)a.test(c)&&delete b[c];return b}}(),upcast:f(a),downcast:c(a),getLabel:function(){return this.editor.lang.widget.label.replace(/%1/,(this.data.alt||"")+" "+this.pathName)}}}function f(a){var b=e(a),c=a.config.image2_captionedClass;return function(a,d){var e={width:1,height:1},
-f=a.name,g;if(!a.attributes["data-cke-realelement"]&&(b(a)?("div"==f&&(g=a.getFirst("figure"))&&(a.replaceWith(g),a=g),d.align="center",g=a.getFirst("img")||a.getFirst("a").getFirst("img")):"figure"==f&&a.hasClass(c)?g=a.getFirst("img")||a.getFirst("a").getFirst("img"):h(a)&&(g="a"==a.name?a.children[0]:a),g)){for(var k in e)(e=g.attributes[k])&&e.match(u)&&delete g.attributes[k];return a}}}function c(a){var b=a.config.image2_alignClasses;return function(a){var c="a"==a.name?a.getFirst():a,d=c.attributes,
-e=this.data.align;if(!this.inline){var f=a.getFirst("span");f&&f.replaceWith(f.getFirst({img:1,a:1}))}e&&"none"!=e&&(f=CKEDITOR.tools.parseCssText(d.style||""),"center"==e&&"figure"==a.name?a=a.wrapWith(new CKEDITOR.htmlParser.element("div",b?{"class":b[1]}:{style:"text-align:center"})):e in{left:1,right:1}&&(b?c.addClass(b[v[e]]):f["float"]=e),b||CKEDITOR.tools.isEmpty(f)||(d.style=CKEDITOR.tools.writeCssText(f)));return a}}function e(a){var b=a.config.image2_captionedClass,c=a.config.image2_alignClasses,
-d={figure:1,a:1,img:1};return function(e){if(!(e.name in{div:1,p:1}))return!1;var f=e.children;if(1!==f.length)return!1;f=f[0];if(!(f.name in d))return!1;if("p"==e.name){if(!h(f))return!1}else if("figure"==f.name){if(!f.hasClass(b))return!1}else if(a.enterMode==CKEDITOR.ENTER_P||!h(f))return!1;return(c?e.hasClass(c[1]):"center"==CKEDITOR.tools.parseCssText(e.attributes.style||"",!0)["text-align"])?!0:!1}}function h(a){return"img"==a.name?!0:"a"==a.name?1==a.children.length&&a.getFirst("img"):!1}function m(a){var b=
-a.editor,c=b.editable(),d=b.document,e=a.resizer=d.createElement("span");e.addClass("cke_image_resizer");e.setAttribute("title",b.lang.image2.resizer);e.append(new CKEDITOR.dom.text("​",d));if(a.inline)a.wrapper.append(e);else{var f=a.parts.link||a.parts.image,g=f.getParent(),h=d.createElement("span");h.addClass("cke_image_resizer_wrapper");h.append(f);h.append(e);a.element.append(h,!0);g.is("span")&&g.remove()}e.on("mousedown",function(f){function g(a,b,c){var e=CKEDITOR.document,f=[];d.equals(e)||
-f.push(e.on(a,b));f.push(d.on(a,b));if(c)for(a=f.length;a--;)c.push(f.pop())}function h(){K=t+m*S;W=Math.round(K/w)}function k(){W=u-J;K=Math.round(W*w)}var l=a.parts.image,m="right"==a.data.align?-1:1,p=f.data.$.screenX,r=f.data.$.screenY,t=l.$.clientWidth,u=l.$.clientHeight,w=t/u,v=[],D="cke_image_s"+(~m?"e":"w"),P,K,W,U,S,J,H;b.fire("saveSnapshot");g("mousemove",function(a){P=a.data.$;S=P.screenX-p;J=r-P.screenY;H=Math.abs(S/J);1==m?0>=S?0>=J?h():H>=w?h():k():0>=J?H>=w?k():h():k():0>=S?0>=J?H>=
-w?k():h():k():0>=J?h():H>=w?h():k();15<=K&&15<=W?(l.setAttributes({width:K,height:W}),U=!0):U=!1},v);g("mouseup",function(){for(var d;d=v.pop();)d.removeListener();c.removeClass(D);e.removeClass("cke_image_resizing");U&&(a.setData({width:K,height:W}),b.fire("saveSnapshot"));U=!1},v);c.addClass(D);e.addClass("cke_image_resizing")});a.on("data",function(){e["right"==a.data.align?"addClass":"removeClass"]("cke_image_resizer_left")})}function l(a){var c=[],d;return function(e){var f=a.getCommand("justify"+
-e);if(f){c.push(function(){f.refresh(a,a.elementPath())});if(e in{right:1,left:1,center:1})f.on("exec",function(d){var f=b(a);if(f){f.setData("align",e);for(f=c.length;f--;)c[f]();d.cancel()}});f.on("refresh",function(c){var f=b(a),g={right:1,left:1,center:1};f&&(void 0===d&&(d=a.filter.checkFeature(a.widgets.registered.image.features.align)),d?this.setState(f.data.align==e?CKEDITOR.TRISTATE_ON:e in g?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),c.cancel())})}}}
-function k(a){a.plugins.link&&(CKEDITOR.on("dialogDefinition",function(c){c=c.data;if("link"==c.name){c=c.definition;var d=c.onShow,e=c.onOk;c.onShow=function(){var c=b(a);c&&(c.inline?!c.wrapper.getAscendant("a"):1)?this.setupContent(c.data.link||{}):d.apply(this,arguments)};c.onOk=function(){var c=b(a);if(c&&(c.inline?!c.wrapper.getAscendant("a"):1)){var d={};this.commitContent(d);c.setData("link",d)}else e.apply(this,arguments)}}}),a.getCommand("unlink").on("exec",function(c){var d=b(a);d&&d.parts.link&&
-(d.setData("link",null),this.refresh(a,a.elementPath()),c.cancel())}),a.getCommand("unlink").on("refresh",function(c){var d=b(a);d&&(this.setState(d.data.link||d.wrapper.getAscendant("a")?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),c.cancel())}))}function b(a){return(a=a.widgets.focused)&&"image"==a.name?a:null}function d(a){var b=a.config.image2_alignClasses;a={div:{match:e(a)},p:{match:e(a)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+a.config.image2_captionedClass},figcaption:!0};
-b?(a.div.classes=b[1],a.p.classes=a.div.classes,a.img.classes=b[0]+","+b[2],a.figure.classes+=","+a.img.classes):(a.div.styles="text-align",a.p.styles="text-align",a.img.styles="float",a.figure.styles="float,display");return a}function g(a){a=a.config.image2_alignClasses;return{dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(a?"("+a[0]+")":"{float}")},caption:{requiredContent:"figcaption"}}}function p(a){return a.data.hasCaption?a.element:a.parts.image}var r=new CKEDITOR.template('\x3cfigure class\x3d"{captionedClass}"\x3e\x3cimg alt\x3d"" src\x3d"" /\x3e\x3cfigcaption\x3e{captionPlaceholder}\x3c/figcaption\x3e\x3c/figure\x3e'),
-v={left:0,center:1,right:2},u=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("image2",{requires:"widget,dialog",icons:"image",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_image_nocaption{line-height:0}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_left{right:auto;left:-5px;cursor:sw-resize;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_widget_wrapper\x3ea{display:inline-block}")},
+removeClass:function(a){p(this).removeClass(a)},getClasses:function(){var a=new RegExp("^("+[].concat(k,h).join("|")+")$");return function(){var b=this.repository.parseElementClasses(p(this).getAttribute("class")),c;for(c in b)a.test(c)&&delete b[c];return b}}(),upcast:f(a),downcast:c(a)}}function f(a){var b=e(a),c=a.config.image2_captionedClass;return function(a,d){var e={width:1,height:1},f=a.name,g;if(!a.attributes["data-cke-realelement"]&&(b(a)?("div"==f&&(g=a.getFirst("figure"))&&(a.replaceWith(g),
+a=g),d.align="center",g=a.getFirst("img")||a.getFirst("a").getFirst("img")):"figure"==f&&a.hasClass(c)?g=a.getFirst("img")||a.getFirst("a").getFirst("img"):h(a)&&(g="a"==a.name?a.children[0]:a),g)){for(var k in e)(e=g.attributes[k])&&e.match(r)&&delete g.attributes[k];return a}}}function c(a){var b=a.config.image2_alignClasses;return function(a){var c="a"==a.name?a.getFirst():a,d=c.attributes,e=this.data.align;if(!this.inline){var f=a.getFirst("span");f&&f.replaceWith(f.getFirst({img:1,a:1}))}e&&
+"none"!=e&&(f=CKEDITOR.tools.parseCssText(d.style||""),"center"==e&&"figure"==a.name?a=a.wrapWith(new CKEDITOR.htmlParser.element("div",b?{"class":b[1]}:{style:"text-align:center"})):e in{left:1,right:1}&&(b?c.addClass(b[v[e]]):f["float"]=e),b||CKEDITOR.tools.isEmpty(f)||(d.style=CKEDITOR.tools.writeCssText(f)));return a}}function e(a){var b=a.config.image2_captionedClass,c=a.config.image2_alignClasses,d={figure:1,a:1,img:1};return function(e){if(!(e.name in{div:1,p:1}))return!1;var f=e.children;
+if(1!==f.length)return!1;f=f[0];if(!(f.name in d))return!1;if("p"==e.name){if(!h(f))return!1}else if("figure"==f.name){if(!f.hasClass(b))return!1}else if(a.enterMode==CKEDITOR.ENTER_P||!h(f))return!1;return(c?e.hasClass(c[1]):"center"==CKEDITOR.tools.parseCssText(e.attributes.style||"",!0)["text-align"])?!0:!1}}function h(a){return"img"==a.name?!0:"a"==a.name?1==a.children.length&&a.getFirst("img"):!1}function m(a){var b=a.editor,c=b.editable(),d=b.document,e=a.resizer=d.createElement("span");e.addClass("cke_image_resizer");
+e.setAttribute("title",b.lang.image2.resizer);e.append(new CKEDITOR.dom.text("​",d));if(a.inline)a.wrapper.append(e);else{var f=a.parts.link||a.parts.image,g=f.getParent(),h=d.createElement("span");h.addClass("cke_image_resizer_wrapper");h.append(f);h.append(e);a.element.append(h,!0);g.is("span")&&g.remove()}e.on("mousedown",function(f){function g(a,b,c){var e=CKEDITOR.document,f=[];d.equals(e)||f.push(e.on(a,b));f.push(d.on(a,b));if(c)for(a=f.length;a--;)c.push(f.pop())}function h(){U=r+m*S;K=Math.round(U/
+v)}function k(){K=u-H;U=Math.round(K*v)}var l=a.parts.image,m="right"==a.data.align?-1:1,p=f.data.$.screenX,t=f.data.$.screenY,r=l.$.clientWidth,u=l.$.clientHeight,v=r/u,x=[],D="cke_image_s"+(~m?"e":"w"),O,U,K,V,S,H,M;b.fire("saveSnapshot");g("mousemove",function(a){O=a.data.$;S=O.screenX-p;H=t-O.screenY;M=Math.abs(S/H);1==m?0>=S?0>=H?h():M>=v?h():k():0>=H?M>=v?k():h():k():0>=S?0>=H?M>=v?k():h():k():0>=H?h():M>=v?h():k();15<=U&&15<=K?(l.setAttributes({width:U,height:K}),V=!0):V=!1},x);g("mouseup",
+function(){for(var d;d=x.pop();)d.removeListener();c.removeClass(D);e.removeClass("cke_image_resizing");V&&(a.setData({width:U,height:K}),b.fire("saveSnapshot"));V=!1},x);c.addClass(D);e.addClass("cke_image_resizing")});a.on("data",function(){e["right"==a.data.align?"addClass":"removeClass"]("cke_image_resizer_left")})}function l(a){var c=[],d;return function(e){var f=a.getCommand("justify"+e);if(f){c.push(function(){f.refresh(a,a.elementPath())});if(e in{right:1,left:1,center:1})f.on("exec",function(d){var f=
+b(a);if(f){f.setData("align",e);for(f=c.length;f--;)c[f]();d.cancel()}});f.on("refresh",function(c){var f=b(a),g={right:1,left:1,center:1};f&&(void 0===d&&(d=a.filter.checkFeature(a.widgets.registered.image.features.align)),d?this.setState(f.data.align==e?CKEDITOR.TRISTATE_ON:e in g?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),c.cancel())})}}}function k(a){a.plugins.link&&(CKEDITOR.on("dialogDefinition",function(c){c=c.data;if("link"==c.name){c=c.definition;
+var d=c.onShow,e=c.onOk;c.onShow=function(){var c=b(a);c&&(c.inline?!c.wrapper.getAscendant("a"):1)?this.setupContent(c.data.link||{}):d.apply(this,arguments)};c.onOk=function(){var c=b(a);if(c&&(c.inline?!c.wrapper.getAscendant("a"):1)){var d={};this.commitContent(d);c.setData("link",d)}else e.apply(this,arguments)}}}),a.getCommand("unlink").on("exec",function(c){var d=b(a);d&&d.parts.link&&(d.setData("link",null),this.refresh(a,a.elementPath()),c.cancel())}),a.getCommand("unlink").on("refresh",
+function(c){var d=b(a);d&&(this.setState(d.data.link||d.wrapper.getAscendant("a")?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),c.cancel())}))}function b(a){return(a=a.widgets.focused)&&"image"==a.name?a:null}function d(a){var b=a.config.image2_alignClasses;a={div:{match:e(a)},p:{match:e(a)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+a.config.image2_captionedClass},figcaption:!0};b?(a.div.classes=b[1],a.p.classes=a.div.classes,a.img.classes=b[0]+","+b[2],a.figure.classes+=","+
+a.img.classes):(a.div.styles="text-align",a.p.styles="text-align",a.img.styles="float",a.figure.styles="float,display");return a}function g(a){a=a.config.image2_alignClasses;return{dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(a?"("+a[0]+")":"{float}")},caption:{requiredContent:"figcaption"}}}function p(a){return a.data.hasCaption?a.element:a.parts.image}var u=new CKEDITOR.template('\x3cfigure class\x3d"{captionedClass}"\x3e\x3cimg alt\x3d"" src\x3d"" /\x3e\x3cfigcaption\x3e{captionPlaceholder}\x3c/figcaption\x3e\x3c/figure\x3e'),
+v={left:0,center:1,right:2},r=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("image2",{requires:"widget,dialog",icons:"image",hidpi:!0,onLoad:function(){CKEDITOR.addCss(".cke_image_nocaption{line-height:0}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_left{right:auto;left:-5px;cursor:sw-resize;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_widget_wrapper\x3ea{display:inline-block}")},
 init:function(b){var c=b.config,d=b.lang.image2,e=a(b);c.filebrowserImage2BrowseUrl=c.filebrowserImageBrowseUrl;c.filebrowserImage2UploadUrl=c.filebrowserImageUploadUrl;e.pathName=d.pathName;e.editables.caption.pathName=d.pathNameCaption;b.widgets.add("image",e);b.ui.addButton&&b.ui.addButton("Image",{label:b.lang.common.image,command:"image",toolbar:"insert,10"});b.contextMenu&&(b.addMenuGroup("image",10),b.addMenuItem("image",{label:d.menu,command:"image",group:"image"}));CKEDITOR.dialog.add("image2",
 this.path+"dialogs/image2.js")},afterInit:function(a){var b={left:1,right:1,center:1,block:1},c=l(a),d;for(d in b)c(d);k(a)}});CKEDITOR.plugins.image2={stateShifter:function(a){function b(a,f){var g={};e?g.attributes={"class":e[1]}:g.styles={"text-align":"center"};g=d.createElement(a.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",g);c(g,f);f.move(g);return g}function c(b,d){if(d.getParent()){var e=a.createRange();e.moveToPosition(d,CKEDITOR.POSITION_BEFORE_START);d.remove();g.insertElementIntoRange(b,
 e)}else b.replace(d)}var d=a.document,e=a.config.image2_alignClasses,f=a.config.image2_captionedClass,g=a.editable(),h=["hasCaption","align","link"],k={align:function(c,d,f){var g=c.element;c.changed.align?c.newData.hasCaption||("center"==f&&(c.deflate(),c.element=b(a,g)),c.changed.hasCaption||"center"!=d||"center"==f||(c.deflate(),d=g.findOne("a,img"),d.replace(g),c.element=d)):"center"==f&&c.changed.hasCaption&&!c.newData.hasCaption&&(c.deflate(),c.element=b(a,g));!e&&g.is("figure")&&("center"==
-f?g.setStyle("display","inline-block"):g.removeStyle("display"))},hasCaption:function(b,e,g){b.changed.hasCaption&&(e=b.element.is({img:1,a:1})?b.element:b.element.findOne("a,img"),b.deflate(),g?(g=CKEDITOR.dom.element.createFromHtml(r.output({captionedClass:f,captionPlaceholder:a.lang.image2.captionPlaceholder}),d),c(g,b.element),e.replace(g.findOne("img")),b.element=g):(e.replace(b.element),b.element=e))},link:function(b,c,e){if(b.changed.link){var f=b.element.is("img")?b.element:b.element.findOne("img"),
+f?g.setStyle("display","inline-block"):g.removeStyle("display"))},hasCaption:function(b,e,g){b.changed.hasCaption&&(e=b.element.is({img:1,a:1})?b.element:b.element.findOne("a,img"),b.deflate(),g?(g=CKEDITOR.dom.element.createFromHtml(u.output({captionedClass:f,captionPlaceholder:a.lang.image2.captionPlaceholder}),d),c(g,b.element),e.replace(g.findOne("img")),b.element=g):(e.replace(b.element),b.element=e))},link:function(b,c,e){if(b.changed.link){var f=b.element.is("img")?b.element:b.element.findOne("img"),
 g=b.element.is("a")?b.element:b.element.findOne("a"),h=b.element.is("a")&&!e||b.element.is("img")&&e,k;h&&b.deflate();e?(c||(k=d.createElement("a",{attributes:{href:b.newData.link.url}}),k.replace(f),f.move(k)),e=CKEDITOR.plugins.image2.getLinkAttributesGetter()(a,e),CKEDITOR.tools.isEmpty(e.set)||(k||g).setAttributes(e.set),e.removed.length&&(k||g).removeAttributes(e.removed)):(e=g.findOne("img"),e.replace(g),k=e);h&&(b.element=k)}}};return function(a){var b,c;a.changed={};for(c=0;c<h.length;c++)b=
 h[c],a.changed[b]=a.oldData?a.oldData[b]!==a.newData[b]:!1;for(c=0;c<h.length;c++)b=h[c],k[b](a,a.oldData?a.oldData[b]:null,a.newData[b]);a.inflate()}},checkHasNaturalRatio:function(a){var b=a.$;a=this.getNatural(a);return Math.round(b.clientWidth/a.width*a.height)==b.clientHeight||Math.round(b.clientHeight/a.height*a.width)==b.clientWidth},getNatural:function(a){if(a.$.naturalWidth)a={width:a.$.naturalWidth,height:a.$.naturalHeight};else{var b=new Image;b.src=a.getAttribute("src");a={width:b.width,
 height:b.height}}return a},getLinkAttributesGetter:function(){return CKEDITOR.plugins.link.getLinkAttributes},getLinkAttributesParser:function(){return CKEDITOR.plugins.link.parseLinkAttributes}}}(),CKEDITOR.config.image2_captionedClass="image",CKEDITOR.config.plugins="dialogui,dialog,about,a11yhelp,basicstyles,blockquote,clipboard,panel,floatpanel,menu,contextmenu,resize,button,toolbar,elementspath,enterkey,entities,popup,filebrowser,floatingspace,listblock,richcombo,format,htmlwriter,horizontalrule,wysiwygarea,indent,indentlist,menubutton,language,list,magicline,maximize,pastetext,pastefromword,removeformat,sourcearea,specialchar,stylescombo,tab,table,tabletools,undo,justify,showblocks,showborders,tableresize,sharedspace,sourcedialog,lineutils,widget,image2",
diff --git a/core/assets/vendor/ckeditor/lang/af.js b/core/assets/vendor/ckeditor/lang/af.js
index 70754a4..e10e28a 100644
--- a/core/assets/vendor/ckeditor/lang/af.js
+++ b/core/assets/vendor/ckeditor/lang/af.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['af']={"widget":{"move":"Klik en trek on te beweeg","label":"%1 widget"},"undo":{"redo":"Oordoen","undo":"Ontdoen"},"toolbar":{"toolbarCollapse":"Verklein werkbalk","toolbarExpand":"Vergroot werkbalk","toolbarGroups":{"document":"Dokument","clipboard":"Knipbord/Undo","editing":"Verander","forms":"Vorms","basicstyles":"Eenvoudige Styl","paragraph":"Paragraaf","links":"Skakels","insert":"Toevoeg","styles":"Style","colors":"Kleure","tools":"Gereedskap"},"toolbars":"Werkbalke"},"table":{"border":"Randbreedte","caption":"Naam","cell":{"menu":"Sel","insertBefore":"Voeg sel in voor","insertAfter":"Voeg sel in na","deleteCell":"Verwyder sel","merge":"Voeg selle saam","mergeRight":"Voeg saam na regs","mergeDown":"Voeg saam ondertoe","splitHorizontal":"Splits sel horisontaal","splitVertical":"Splits sel vertikaal","title":"Sel eienskappe","cellType":"Sel tipe","rowSpan":"Omspan rye","colSpan":"Omspan kolomme","wordWrap":"Woord terugloop","hAlign":"Horisontale oplyning","vAlign":"Vertikale oplyning","alignBaseline":"Basislyn","bgColor":"Agtergrondkleur","borderColor":"Randkleur","data":"Inhoud","header":"Opskrif","yes":"Ja","no":"Nee","invalidWidth":"Selbreedte moet 'n getal wees.","invalidHeight":"Selhoogte moet 'n getal wees.","invalidRowSpan":"Omspan rye moet 'n heelgetal wees.","invalidColSpan":"Omspan kolomme moet 'n heelgetal wees.","chooseColor":"Kies"},"cellPad":"Sel-spasie","cellSpace":"Sel-afstand","column":{"menu":"Kolom","insertBefore":"Voeg kolom in voor","insertAfter":"Voeg kolom in na","deleteColumn":"Verwyder kolom"},"columns":"Kolomme","deleteTable":"Verwyder tabel","headers":"Opskrifte","headersBoth":"Beide    ","headersColumn":"Eerste kolom","headersNone":"Geen","headersRow":"Eerste ry","invalidBorder":"Randbreedte moet 'n getal wees.","invalidCellPadding":"Sel-spasie moet 'n getal wees.","invalidCellSpacing":"Sel-afstand moet 'n getal wees.","invalidCols":"Aantal kolomme moet 'n getal groter as 0 wees.","invalidHeight":"Tabelhoogte moet 'n getal wees.","invalidRows":"Aantal rye moet 'n getal groter as 0 wees.","invalidWidth":"Tabelbreedte moet 'n getal wees.","menu":"Tabel eienskappe","row":{"menu":"Ry","insertBefore":"Voeg ry in voor","insertAfter":"Voeg ry in na","deleteRow":"Verwyder ry"},"rows":"Rye","summary":"Opsomming","title":"Tabel eienskappe","toolbar":"Tabel","widthPc":"persent","widthPx":"piksels","widthUnit":"breedte-eenheid"},"stylescombo":{"label":"Styl","panelTitle":"Vormaat style","panelTitle1":"Blok style","panelTitle2":"Inlyn style","panelTitle3":"Objek style"},"specialchar":{"options":"Spesiale karakter-opsies","title":"Kies spesiale karakter","toolbar":"Voeg spesiaale karakter in"},"sourcedialog":{"toolbar":"Bron","title":"Bron"},"sourcearea":{"toolbar":"Bron"},"showblocks":{"toolbar":"Toon blokke"},"removeformat":{"toolbar":"Verwyder opmaak"},"pastetext":{"button":"Plak as eenvoudige teks","title":"Plak as eenvoudige teks"},"pastefromword":{"confirmCleanup":"Die teks wat u wil plak lyk asof dit uit Word gekopiëer is. Wil u dit eers skoonmaak voordat dit geplak word?","error":"Die geplakte teks kon nie skoongemaak word nie, weens 'n interne fout","title":"Plak vanuit Word","toolbar":"Plak vanuit Word"},"maximize":{"maximize":"Maksimaliseer","minimize":"Minimaliseer"},"magicline":{"title":"Voeg paragraaf hier in"},"list":{"bulletedlist":"Ongenommerde lys","numberedlist":"Genommerde lys"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Uitvul","center":"Sentreer","left":"Links oplyn","right":"Regs oplyn"},"indent":{"indent":"Vergroot inspring","outdent":"Verklein inspring"},"image2":{"alt":"Alternatiewe teks","btnUpload":"Stuur na bediener","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Afbeelding informasie","lockRatio":"Vaste proporsie","menu":"Afbeelding eienskappe","pathName":"image","pathNameCaption":"caption","resetSize":"Herstel grootte","resizer":"Click and drag to resize","title":"Afbeelding eienskappe","uploadTab":"Oplaai","urlMissing":"Die URL na die afbeelding ontbreek."},"horizontalrule":{"toolbar":"Horisontale lyn invoeg"},"format":{"label":"Opmaak","panelTitle":"Opmaak","tag_address":"Adres","tag_div":"Normaal (DIV)","tag_h1":"Opskrif 1","tag_h2":"Opskrif 2","tag_h3":"Opskrif 3","tag_h4":"Opskrif 4","tag_h5":"Opskrif 5","tag_h6":"Opskrif 6","tag_p":"Normaal","tag_pre":"Opgemaak"},"elementspath":{"eleLabel":"Elemente-pad","eleTitle":"%1 element"},"contextmenu":{"options":"Konteks Spyskaart-opsies"},"clipboard":{"copy":"Kopiëer","copyError":"U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).","cut":"Knip","cutError":"U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).","paste":"Plak","pasteArea":"Plak-area","pasteMsg":"Plak die teks in die volgende teks-area met die sleutelbordkombinasie (<STRONG>Ctrl/Cmd+V</STRONG>) en druk <STRONG>OK</STRONG>.","securityMsg":"Weens u blaaier se sekuriteitsinstelling is data op die knipbord nie toeganklik nie. U kan dit eers weer in hierdie venster plak.","title":"Byvoeg"},"button":{"selectedLabel":"%1 uitgekies"},"blockquote":{"toolbar":"Sitaatblok"},"basicstyles":{"bold":"Vet","italic":"Skuins","strike":"Deurgestreep","subscript":"Onderskrif","superscript":"Bo-skrif","underline":"Onderstreep"},"about":{"copy":"Kopiereg &copy; $1. Alle regte voorbehou.","dlgTitle":"Meer oor CKEditor","help":"Slaan $1 na vir hulp.","moreInfo":"Vir lisensie-informasie, besoek asb. ons webwerf:","title":"Meer oor CKEditor","userGuide":"CKEditor Gebruikers gits"},"editor":"Woordverwerker","editorPanel":"Woordverwerkerpaneel","common":{"editorHelp":"Druk op ALT 0 vir hulp","browseServer":"Blaai op bediener","url":"URL","protocol":"Protokol","upload":"Oplaai","uploadSubmit":"Stuur aan die bediener","image":"Beeld","flash":"Flash","form":"Vorm","checkbox":"Merkhokkie","radio":"Radioknoppie","textField":"Teksveld","textarea":"Teksarea","hiddenField":"Versteekteveld","button":"Knop","select":"Keuseveld","imageButton":"Beeldknop","notSet":"<geen instelling>","id":"Id","name":"Naam","langDir":"Skryfrigting","langDirLtr":"Links na regs (LTR)","langDirRtl":"Regs na links (RTL)","langCode":"Taalkode","longDescr":"Lang beskrywing URL","cssClass":"CSS klasse","advisoryTitle":"Aanbevole titel","cssStyle":"Styl","ok":"OK","cancel":"Kanselleer","close":"Sluit","preview":"Voorbeeld","resize":"Skalierung","generalTab":"Algemeen","advancedTab":"Gevorderd","validateNumberFailed":"Hierdie waarde is nie 'n nommer nie.","confirmNewPage":"Alle wysiginge sal verlore gaan. Is jy seker dat jy 'n nuwe bladsy wil laai?","confirmCancel":"Sommige opsies is gewysig. Is jy seker dat jy hierdie dialoogvenster wil sluit?","options":"Opsies","target":"Teiken","targetNew":"Nuwe venster (_blank)","targetTop":"Boonste venster (_top)","targetSelf":"Selfde venster (_self)","targetParent":"Oorspronklike venster (_parent)","langDirLTR":"Links na Regs (LTR)","langDirRTL":"Regs na Links (RTL)","styles":"Styl","cssClasses":"CSS klasse","width":"Breedte","height":"Hoogte","align":"Orienteerung","alignLeft":"Links","alignRight":"Regs","alignCenter":"Middel","alignJustify":"Eweredig","alignTop":"Bo","alignMiddle":"Middel","alignBottom":"Onder","alignNone":"Geen","invalidValue":"Ongeldige waarde","invalidHeight":"Hoogte moet 'n getal wees","invalidWidth":"Breedte moet 'n getal wees.","invalidCssLength":"Die waarde vir die \"%1\" veld moet 'n posetiewe getal wees met of sonder 'n geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","invalidHtmlLength":"Die waarde vir die  \"%1\" veld moet 'n posetiewe getal wees met of sonder 'n geldige HTML eenheid (px of %).","invalidInlineStyle":"Ongeldige CSS. Formaat is een of meer sleutel-wert paare, \"naam : wert\" met kommapunte gesky.","cssLengthTooltip":"Voeg 'n getal wert in pixel in, of 'n waarde met geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","unavailable":"%1<span class=\"cke_accessibility\">, nie beskikbaar nie</span>"}};
\ No newline at end of file
+CKEDITOR.lang['af']={"widget":{"move":"Klik en trek on te beweeg"},"undo":{"redo":"Oordoen","undo":"Ontdoen"},"toolbar":{"toolbarCollapse":"Verklein werkbalk","toolbarExpand":"Vergroot werkbalk","toolbarGroups":{"document":"Dokument","clipboard":"Knipbord/Undo","editing":"Verander","forms":"Vorms","basicstyles":"Eenvoudige Styl","paragraph":"Paragraaf","links":"Skakels","insert":"Toevoeg","styles":"Style","colors":"Kleure","tools":"Gereedskap"},"toolbars":"Werkbalke"},"table":{"border":"Randbreedte","caption":"Naam","cell":{"menu":"Sel","insertBefore":"Voeg sel in voor","insertAfter":"Voeg sel in na","deleteCell":"Verwyder sel","merge":"Voeg selle saam","mergeRight":"Voeg saam na regs","mergeDown":"Voeg saam ondertoe","splitHorizontal":"Splits sel horisontaal","splitVertical":"Splits sel vertikaal","title":"Sel eienskappe","cellType":"Sel tipe","rowSpan":"Omspan rye","colSpan":"Omspan kolomme","wordWrap":"Woord terugloop","hAlign":"Horisontale oplyning","vAlign":"Vertikale oplyning","alignBaseline":"Basislyn","bgColor":"Agtergrondkleur","borderColor":"Randkleur","data":"Inhoud","header":"Opskrif","yes":"Ja","no":"Nee","invalidWidth":"Selbreedte moet 'n getal wees.","invalidHeight":"Selhoogte moet 'n getal wees.","invalidRowSpan":"Omspan rye moet 'n heelgetal wees.","invalidColSpan":"Omspan kolomme moet 'n heelgetal wees.","chooseColor":"Kies"},"cellPad":"Sel-spasie","cellSpace":"Sel-afstand","column":{"menu":"Kolom","insertBefore":"Voeg kolom in voor","insertAfter":"Voeg kolom in na","deleteColumn":"Verwyder kolom"},"columns":"Kolomme","deleteTable":"Verwyder tabel","headers":"Opskrifte","headersBoth":"Beide    ","headersColumn":"Eerste kolom","headersNone":"Geen","headersRow":"Eerste ry","invalidBorder":"Randbreedte moet 'n getal wees.","invalidCellPadding":"Sel-spasie moet 'n getal wees.","invalidCellSpacing":"Sel-afstand moet 'n getal wees.","invalidCols":"Aantal kolomme moet 'n getal groter as 0 wees.","invalidHeight":"Tabelhoogte moet 'n getal wees.","invalidRows":"Aantal rye moet 'n getal groter as 0 wees.","invalidWidth":"Tabelbreedte moet 'n getal wees.","menu":"Tabel eienskappe","row":{"menu":"Ry","insertBefore":"Voeg ry in voor","insertAfter":"Voeg ry in na","deleteRow":"Verwyder ry"},"rows":"Rye","summary":"Opsomming","title":"Tabel eienskappe","toolbar":"Tabel","widthPc":"persent","widthPx":"piksels","widthUnit":"breedte-eenheid"},"stylescombo":{"label":"Styl","panelTitle":"Vormaat style","panelTitle1":"Blok style","panelTitle2":"Inlyn style","panelTitle3":"Objek style"},"specialchar":{"options":"Spesiale karakter-opsies","title":"Kies spesiale karakter","toolbar":"Voeg spesiaale karakter in"},"sourcedialog":{"toolbar":"Bron","title":"Bron"},"sourcearea":{"toolbar":"Bron"},"showblocks":{"toolbar":"Toon blokke"},"removeformat":{"toolbar":"Verwyder opmaak"},"pastetext":{"button":"Plak as eenvoudige teks","title":"Plak as eenvoudige teks"},"pastefromword":{"confirmCleanup":"Die teks wat u wil plak lyk asof dit uit Word gekopiëer is. Wil u dit eers skoonmaak voordat dit geplak word?","error":"Die geplakte teks kon nie skoongemaak word nie, weens 'n interne fout","title":"Plak vanuit Word","toolbar":"Plak vanuit Word"},"maximize":{"maximize":"Maksimaliseer","minimize":"Minimaliseer"},"magicline":{"title":"Voeg paragraaf hier in"},"list":{"bulletedlist":"Ongenommerde lys","numberedlist":"Genommerde lys"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Uitvul","center":"Sentreer","left":"Links oplyn","right":"Regs oplyn"},"indent":{"indent":"Vergroot inspring","outdent":"Verklein inspring"},"image2":{"alt":"Alternatiewe teks","btnUpload":"Stuur na bediener","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Afbeelding informasie","lockRatio":"Vaste proporsie","menu":"Afbeelding eienskappe","pathName":"image","pathNameCaption":"caption","resetSize":"Herstel grootte","resizer":"Click and drag to resize","title":"Afbeelding eienskappe","uploadTab":"Oplaai","urlMissing":"Die URL na die afbeelding ontbreek."},"horizontalrule":{"toolbar":"Horisontale lyn invoeg"},"format":{"label":"Opmaak","panelTitle":"Opmaak","tag_address":"Adres","tag_div":"Normaal (DIV)","tag_h1":"Opskrif 1","tag_h2":"Opskrif 2","tag_h3":"Opskrif 3","tag_h4":"Opskrif 4","tag_h5":"Opskrif 5","tag_h6":"Opskrif 6","tag_p":"Normaal","tag_pre":"Opgemaak"},"elementspath":{"eleLabel":"Elemente-pad","eleTitle":"%1 element"},"contextmenu":{"options":"Konteks Spyskaart-opsies"},"clipboard":{"copy":"Kopiëer","copyError":"U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).","cut":"Knip","cutError":"U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).","paste":"Plak","pasteArea":"Plak-area","pasteMsg":"Plak die teks in die volgende teks-area met die sleutelbordkombinasie (<STRONG>Ctrl/Cmd+V</STRONG>) en druk <STRONG>OK</STRONG>.","securityMsg":"Weens u blaaier se sekuriteitsinstelling is data op die knipbord nie toeganklik nie. U kan dit eers weer in hierdie venster plak.","title":"Byvoeg"},"button":{"selectedLabel":"%1 uitgekies"},"blockquote":{"toolbar":"Sitaatblok"},"basicstyles":{"bold":"Vet","italic":"Skuins","strike":"Deurgestreep","subscript":"Onderskrif","superscript":"Bo-skrif","underline":"Onderstreep"},"about":{"copy":"Kopiereg &copy; $1. Alle regte voorbehou.","dlgTitle":"Meer oor CKEditor","help":"Slaan $1 na vir hulp.","moreInfo":"Vir lisensie-informasie, besoek asb. ons webwerf:","title":"Meer oor CKEditor","userGuide":"CKEditor Gebruikers gits"},"editor":"Woordverwerker","editorPanel":"Woordverwerkerpaneel","common":{"editorHelp":"Druk op ALT 0 vir hulp","browseServer":"Blaai op bediener","url":"URL","protocol":"Protokol","upload":"Oplaai","uploadSubmit":"Stuur aan die bediener","image":"Beeld","flash":"Flash","form":"Vorm","checkbox":"Merkhokkie","radio":"Radioknoppie","textField":"Teksveld","textarea":"Teksarea","hiddenField":"Versteekteveld","button":"Knop","select":"Keuseveld","imageButton":"Beeldknop","notSet":"<geen instelling>","id":"Id","name":"Naam","langDir":"Skryfrigting","langDirLtr":"Links na regs (LTR)","langDirRtl":"Regs na links (RTL)","langCode":"Taalkode","longDescr":"Lang beskrywing URL","cssClass":"CSS klasse","advisoryTitle":"Aanbevole titel","cssStyle":"Styl","ok":"OK","cancel":"Kanselleer","close":"Sluit","preview":"Voorbeeld","resize":"Skalierung","generalTab":"Algemeen","advancedTab":"Gevorderd","validateNumberFailed":"Hierdie waarde is nie 'n nommer nie.","confirmNewPage":"Alle wysiginge sal verlore gaan. Is jy seker dat jy 'n nuwe bladsy wil laai?","confirmCancel":"Sommige opsies is gewysig. Is jy seker dat jy hierdie dialoogvenster wil sluit?","options":"Opsies","target":"Teiken","targetNew":"Nuwe venster (_blank)","targetTop":"Boonste venster (_top)","targetSelf":"Selfde venster (_self)","targetParent":"Oorspronklike venster (_parent)","langDirLTR":"Links na Regs (LTR)","langDirRTL":"Regs na Links (RTL)","styles":"Styl","cssClasses":"CSS klasse","width":"Breedte","height":"Hoogte","align":"Orienteerung","alignLeft":"Links","alignRight":"Regs","alignCenter":"Middel","alignJustify":"Eweredig","alignTop":"Bo","alignMiddle":"Middel","alignBottom":"Onder","alignNone":"Geen","invalidValue":"Ongeldige waarde","invalidHeight":"Hoogte moet 'n getal wees","invalidWidth":"Breedte moet 'n getal wees.","invalidCssLength":"Die waarde vir die \"%1\" veld moet 'n posetiewe getal wees met of sonder 'n geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","invalidHtmlLength":"Die waarde vir die  \"%1\" veld moet 'n posetiewe getal wees met of sonder 'n geldige HTML eenheid (px of %).","invalidInlineStyle":"Ongeldige CSS. Formaat is een of meer sleutel-wert paare, \"naam : wert\" met kommapunte gesky.","cssLengthTooltip":"Voeg 'n getal wert in pixel in, of 'n waarde met geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","unavailable":"%1<span class=\"cke_accessibility\">, nie beskikbaar nie</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/ar.js b/core/assets/vendor/ckeditor/lang/ar.js
index 0c224e4..7be2171 100644
--- a/core/assets/vendor/ckeditor/lang/ar.js
+++ b/core/assets/vendor/ckeditor/lang/ar.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['ar']={"widget":{"move":"إضغط و إسحب للتحريك","label":"%1 widget"},"undo":{"redo":"إعادة","undo":"تراجع"},"toolbar":{"toolbarCollapse":"تقليص شريط الأدوت","toolbarExpand":"تمديد شريط الأدوات","toolbarGroups":{"document":"مستند","clipboard":"الحافظة/الرجوع","editing":"تحرير","forms":"نماذج","basicstyles":"نمط بسيط","paragraph":"فقرة","links":"روابط","insert":"إدراج","styles":"أنماط","colors":"ألوان","tools":"أدوات"},"toolbars":"أشرطة أدوات المحرر"},"table":{"border":"الحدود","caption":"الوصف","cell":{"menu":"خلية","insertBefore":"إدراج خلية قبل","insertAfter":"إدراج خلية بعد","deleteCell":"حذف خلية","merge":"دمج خلايا","mergeRight":"دمج لليمين","mergeDown":"دمج للأسفل","splitHorizontal":"تقسيم الخلية أفقياً","splitVertical":"تقسيم الخلية عمودياً","title":"خصائص الخلية","cellType":"نوع الخلية","rowSpan":"امتداد الصفوف","colSpan":"امتداد الأعمدة","wordWrap":"التفاف النص","hAlign":"محاذاة أفقية","vAlign":"محاذاة رأسية","alignBaseline":"خط القاعدة","bgColor":"لون الخلفية","borderColor":"لون الحدود","data":"بيانات","header":"عنوان","yes":"نعم","no":"لا","invalidWidth":"عرض الخلية يجب أن يكون عدداً.","invalidHeight":"ارتفاع الخلية يجب أن يكون عدداً.","invalidRowSpan":"امتداد الصفوف يجب أن يكون عدداً صحيحاً.","invalidColSpan":"امتداد الأعمدة يجب أن يكون عدداً صحيحاً.","chooseColor":"اختر"},"cellPad":"المسافة البادئة","cellSpace":"تباعد الخلايا","column":{"menu":"عمود","insertBefore":"إدراج عمود قبل","insertAfter":"إدراج عمود بعد","deleteColumn":"حذف أعمدة"},"columns":"أعمدة","deleteTable":"حذف الجدول","headers":"العناوين","headersBoth":"كلاهما","headersColumn":"العمود الأول","headersNone":"بدون","headersRow":"الصف الأول","invalidBorder":"حجم الحد يجب أن يكون عدداً.","invalidCellPadding":"المسافة البادئة يجب أن تكون عدداً","invalidCellSpacing":"المسافة بين الخلايا يجب أن تكون عدداً.","invalidCols":"عدد الأعمدة يجب أن يكون عدداً أكبر من صفر.","invalidHeight":"ارتفاع الجدول يجب أن يكون عدداً.","invalidRows":"عدد الصفوف يجب أن يكون عدداً أكبر من صفر.","invalidWidth":"عرض الجدول يجب أن يكون عدداً.","menu":"خصائص الجدول","row":{"menu":"صف","insertBefore":"إدراج صف قبل","insertAfter":"إدراج صف بعد","deleteRow":"حذف صفوف"},"rows":"صفوف","summary":"الخلاصة","title":"خصائص الجدول","toolbar":"جدول","widthPc":"بالمئة","widthPx":"بكسل","widthUnit":"وحدة العرض"},"stylescombo":{"label":"أنماط","panelTitle":"أنماط التنسيق","panelTitle1":"أنماط الفقرة","panelTitle2":"أنماط مضمنة","panelTitle3":"أنماط الكائن"},"specialchar":{"options":"خيارات الأحرف الخاصة","title":"اختر حرف خاص","toolbar":"إدراج  حرف خاص"},"sourcedialog":{"toolbar":"المصدر","title":"المصدر"},"sourcearea":{"toolbar":"المصدر"},"showblocks":{"toolbar":"مخطط تفصيلي"},"removeformat":{"toolbar":"إزالة التنسيقات"},"pastetext":{"button":"لصق كنص بسيط","title":"لصق كنص بسيط"},"pastefromword":{"confirmCleanup":"يبدو أن النص المراد لصقه منسوخ من برنامج وورد. هل تود تنظيفه قبل الشروع في عملية اللصق؟","error":"لم يتم مسح المعلومات الملصقة لخلل داخلي","title":"لصق من وورد","toolbar":"لصق من وورد"},"maximize":{"maximize":"تكبير","minimize":"تصغير"},"magicline":{"title":"إدراج فقرة هنا"},"list":{"bulletedlist":"ادخال/حذف تعداد نقطي","numberedlist":"ادخال/حذف تعداد رقمي"},"language":{"button":"حدد اللغة","remove":"حذف اللغة"},"justify":{"block":"ضبط","center":"توسيط","left":"محاذاة إلى اليسار","right":"محاذاة إلى اليمين"},"indent":{"indent":"زيادة المسافة البادئة","outdent":"إنقاص المسافة البادئة"},"image2":{"alt":"عنوان الصورة","btnUpload":"أرسلها للخادم","captioned":"صورة ذات اسم","captionPlaceholder":"تسمية","infoTab":"معلومات الصورة","lockRatio":"تناسق الحجم","menu":"خصائص الصورة","pathName":"صورة","pathNameCaption":"تسمية","resetSize":"إستعادة الحجم الأصلي","resizer":"انقر ثم اسحب للتحجيم","title":"خصائص الصورة","uploadTab":"رفع","urlMissing":"عنوان مصدر الصورة مفقود"},"horizontalrule":{"toolbar":"خط فاصل"},"format":{"label":"تنسيق","panelTitle":"تنسيق الفقرة","tag_address":"عنوان","tag_div":"عادي (DIV)","tag_h1":"العنوان 1","tag_h2":"العنوان  2","tag_h3":"العنوان  3","tag_h4":"العنوان  4","tag_h5":"العنوان  5","tag_h6":"العنوان  6","tag_p":"عادي","tag_pre":"منسّق"},"elementspath":{"eleLabel":"مسار العنصر","eleTitle":"عنصر 1%"},"contextmenu":{"options":"خصائص قائمة السياق"},"clipboard":{"copy":"نسخ","copyError":"الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع عمليات النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+C).","cut":"قص","cutError":"الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+X).","paste":"لصق","pasteArea":"منطقة اللصق","pasteMsg":"الصق داخل الصندوق بإستخدام زرائر (<STRONG>Ctrl/Cmd+V</STRONG>) في لوحة المفاتيح، ثم اضغط زر  <STRONG>موافق</STRONG>.","securityMsg":"نظراً لإعدادات الأمان الخاصة بمتصفحك، لن يتمكن هذا المحرر من الوصول لمحتوى حافظتك، لذلك يجب عليك لصق المحتوى مرة أخرى في هذه النافذة.","title":"لصق"},"button":{"selectedLabel":"%1 (محدد)"},"blockquote":{"toolbar":"اقتباس"},"basicstyles":{"bold":"عريض","italic":"مائل","strike":"يتوسطه خط","subscript":"منخفض","superscript":"مرتفع","underline":"تسطير"},"about":{"copy":"حقوق النشر &copy; $1. جميع الحقوق محفوظة.","dlgTitle":"عن CKEditor","help":"راجع $1 من أجل المساعدة","moreInfo":"للحصول على معلومات الترخيص ، يرجى زيارة موقعنا:","title":"عن CKEditor","userGuide":"دليل مستخدم CKEditor."},"editor":"محرر النص الغني","editorPanel":"لائحة محرر النص المنسق","common":{"editorHelp":"إضغط على ALT + 0 للحصول على المساعدة.","browseServer":"تصفح","url":"الرابط","protocol":"البروتوكول","upload":"رفع","uploadSubmit":"أرسل","image":"صورة","flash":"فلاش","form":"نموذج","checkbox":"خانة إختيار","radio":"زر اختيار","textField":"مربع نص","textarea":"مساحة نصية","hiddenField":"إدراج حقل خفي","button":"زر ضغط","select":"اختار","imageButton":"زر صورة","notSet":"<بدون تحديد>","id":"الرقم","name":"إسم","langDir":"إتجاه النص","langDirLtr":"اليسار لليمين (LTR)","langDirRtl":"اليمين لليسار (RTL)","langCode":"رمز اللغة","longDescr":"الوصف التفصيلى","cssClass":"فئات التنسيق","advisoryTitle":"عنوان التقرير","cssStyle":"نمط","ok":"موافق","cancel":"إلغاء الأمر","close":"أغلق","preview":"استعراض","resize":"تغيير الحجم","generalTab":"عام","advancedTab":"متقدم","validateNumberFailed":"لايوجد نتيجة","confirmNewPage":"ستفقد أي متغييرات اذا لم تقم بحفظها اولا. هل أنت متأكد أنك تريد صفحة جديدة؟","confirmCancel":"بعض الخيارات قد تغيرت. هل أنت متأكد من إغلاق مربع النص؟","options":"خيارات","target":"هدف الرابط","targetNew":"نافذة جديدة","targetTop":"النافذة الأعلى","targetSelf":"داخل النافذة","targetParent":"النافذة الأم","langDirLTR":"اليسار لليمين (LTR)","langDirRTL":"اليمين لليسار (RTL)","styles":"نمط","cssClasses":"فئات التنسيق","width":"العرض","height":"الإرتفاع","align":"محاذاة","alignLeft":"يسار","alignRight":"يمين","alignCenter":"وسط","alignJustify":"ضبط","alignTop":"أعلى","alignMiddle":"وسط","alignBottom":"أسفل","alignNone":"None","invalidValue":"قيمة غير مفبولة.","invalidHeight":"الارتفاع يجب أن يكون عدداً.","invalidWidth":"العرض يجب أن يكون عدداً.","invalidCssLength":"قيمة الخانة المخصصة لـ \"%1\" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة CSS قياس مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"قيمة الخانة المخصصة لـ \"%1\" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة HTML قياس مقبولة (px or %).","invalidInlineStyle":"قيمة الخانة المخصصة لـ  Inline Style يجب أن تختوي على مجموع واحد أو أكثر بالشكل التالي: \"name : value\", مفصولة بفاصلة منقزطة.","cssLengthTooltip":"أدخل رقما للقيمة بالبكسل أو رقما بوحدة CSS مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, غير متاح</span>"}};
\ No newline at end of file
+CKEDITOR.lang['ar']={"widget":{"move":"إضغط و إسحب للتحريك"},"undo":{"redo":"إعادة","undo":"تراجع"},"toolbar":{"toolbarCollapse":"تقليص شريط الأدوت","toolbarExpand":"تمديد شريط الأدوات","toolbarGroups":{"document":"مستند","clipboard":"الحافظة/الرجوع","editing":"تحرير","forms":"نماذج","basicstyles":"نمط بسيط","paragraph":"فقرة","links":"روابط","insert":"إدراج","styles":"أنماط","colors":"ألوان","tools":"أدوات"},"toolbars":"أشرطة أدوات المحرر"},"table":{"border":"الحدود","caption":"الوصف","cell":{"menu":"خلية","insertBefore":"إدراج خلية قبل","insertAfter":"إدراج خلية بعد","deleteCell":"حذف خلية","merge":"دمج خلايا","mergeRight":"دمج لليمين","mergeDown":"دمج للأسفل","splitHorizontal":"تقسيم الخلية أفقياً","splitVertical":"تقسيم الخلية عمودياً","title":"خصائص الخلية","cellType":"نوع الخلية","rowSpan":"امتداد الصفوف","colSpan":"امتداد الأعمدة","wordWrap":"التفاف النص","hAlign":"محاذاة أفقية","vAlign":"محاذاة رأسية","alignBaseline":"خط القاعدة","bgColor":"لون الخلفية","borderColor":"لون الحدود","data":"بيانات","header":"عنوان","yes":"نعم","no":"لا","invalidWidth":"عرض الخلية يجب أن يكون عدداً.","invalidHeight":"ارتفاع الخلية يجب أن يكون عدداً.","invalidRowSpan":"امتداد الصفوف يجب أن يكون عدداً صحيحاً.","invalidColSpan":"امتداد الأعمدة يجب أن يكون عدداً صحيحاً.","chooseColor":"اختر"},"cellPad":"المسافة البادئة","cellSpace":"تباعد الخلايا","column":{"menu":"عمود","insertBefore":"إدراج عمود قبل","insertAfter":"إدراج عمود بعد","deleteColumn":"حذف أعمدة"},"columns":"أعمدة","deleteTable":"حذف الجدول","headers":"العناوين","headersBoth":"كلاهما","headersColumn":"العمود الأول","headersNone":"بدون","headersRow":"الصف الأول","invalidBorder":"حجم الحد يجب أن يكون عدداً.","invalidCellPadding":"المسافة البادئة يجب أن تكون عدداً","invalidCellSpacing":"المسافة بين الخلايا يجب أن تكون عدداً.","invalidCols":"عدد الأعمدة يجب أن يكون عدداً أكبر من صفر.","invalidHeight":"ارتفاع الجدول يجب أن يكون عدداً.","invalidRows":"عدد الصفوف يجب أن يكون عدداً أكبر من صفر.","invalidWidth":"عرض الجدول يجب أن يكون عدداً.","menu":"خصائص الجدول","row":{"menu":"صف","insertBefore":"إدراج صف قبل","insertAfter":"إدراج صف بعد","deleteRow":"حذف صفوف"},"rows":"صفوف","summary":"الخلاصة","title":"خصائص الجدول","toolbar":"جدول","widthPc":"بالمئة","widthPx":"بكسل","widthUnit":"وحدة العرض"},"stylescombo":{"label":"أنماط","panelTitle":"أنماط التنسيق","panelTitle1":"أنماط الفقرة","panelTitle2":"أنماط مضمنة","panelTitle3":"أنماط الكائن"},"specialchar":{"options":"خيارات الأحرف الخاصة","title":"اختر حرف خاص","toolbar":"إدراج  حرف خاص"},"sourcedialog":{"toolbar":"المصدر","title":"المصدر"},"sourcearea":{"toolbar":"المصدر"},"showblocks":{"toolbar":"مخطط تفصيلي"},"removeformat":{"toolbar":"إزالة التنسيقات"},"pastetext":{"button":"لصق كنص بسيط","title":"لصق كنص بسيط"},"pastefromword":{"confirmCleanup":"يبدو أن النص المراد لصقه منسوخ من برنامج وورد. هل تود تنظيفه قبل الشروع في عملية اللصق؟","error":"لم يتم مسح المعلومات الملصقة لخلل داخلي","title":"لصق من وورد","toolbar":"لصق من وورد"},"maximize":{"maximize":"تكبير","minimize":"تصغير"},"magicline":{"title":"إدراج فقرة هنا"},"list":{"bulletedlist":"ادخال/حذف تعداد نقطي","numberedlist":"ادخال/حذف تعداد رقمي"},"language":{"button":"حدد اللغة","remove":"حذف اللغة"},"justify":{"block":"ضبط","center":"توسيط","left":"محاذاة إلى اليسار","right":"محاذاة إلى اليمين"},"indent":{"indent":"زيادة المسافة البادئة","outdent":"إنقاص المسافة البادئة"},"image2":{"alt":"عنوان الصورة","btnUpload":"أرسلها للخادم","captioned":"صورة ذات اسم","captionPlaceholder":"تسمية","infoTab":"معلومات الصورة","lockRatio":"تناسق الحجم","menu":"خصائص الصورة","pathName":"صورة","pathNameCaption":"تسمية","resetSize":"إستعادة الحجم الأصلي","resizer":"انقر ثم اسحب للتحجيم","title":"خصائص الصورة","uploadTab":"رفع","urlMissing":"عنوان مصدر الصورة مفقود"},"horizontalrule":{"toolbar":"خط فاصل"},"format":{"label":"تنسيق","panelTitle":"تنسيق الفقرة","tag_address":"عنوان","tag_div":"عادي (DIV)","tag_h1":"العنوان 1","tag_h2":"العنوان  2","tag_h3":"العنوان  3","tag_h4":"العنوان  4","tag_h5":"العنوان  5","tag_h6":"العنوان  6","tag_p":"عادي","tag_pre":"منسّق"},"elementspath":{"eleLabel":"مسار العنصر","eleTitle":"عنصر 1%"},"contextmenu":{"options":"خصائص قائمة السياق"},"clipboard":{"copy":"نسخ","copyError":"الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع عمليات النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+C).","cut":"قص","cutError":"الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+X).","paste":"لصق","pasteArea":"منطقة اللصق","pasteMsg":"الصق داخل الصندوق بإستخدام زرائر (<STRONG>Ctrl/Cmd+V</STRONG>) في لوحة المفاتيح، ثم اضغط زر  <STRONG>موافق</STRONG>.","securityMsg":"نظراً لإعدادات الأمان الخاصة بمتصفحك، لن يتمكن هذا المحرر من الوصول لمحتوى حافظتك، لذلك يجب عليك لصق المحتوى مرة أخرى في هذه النافذة.","title":"لصق"},"button":{"selectedLabel":"%1 (محدد)"},"blockquote":{"toolbar":"اقتباس"},"basicstyles":{"bold":"عريض","italic":"مائل","strike":"يتوسطه خط","subscript":"منخفض","superscript":"مرتفع","underline":"تسطير"},"about":{"copy":"حقوق النشر &copy; $1. جميع الحقوق محفوظة.","dlgTitle":"عن CKEditor","help":"راجع $1 من أجل المساعدة","moreInfo":"للحصول على معلومات الترخيص ، يرجى زيارة موقعنا:","title":"عن CKEditor","userGuide":"دليل مستخدم CKEditor."},"editor":"محرر النص الغني","editorPanel":"لائحة محرر النص المنسق","common":{"editorHelp":"إضغط على ALT + 0 للحصول على المساعدة.","browseServer":"تصفح","url":"الرابط","protocol":"البروتوكول","upload":"رفع","uploadSubmit":"أرسل","image":"صورة","flash":"فلاش","form":"نموذج","checkbox":"خانة إختيار","radio":"زر اختيار","textField":"مربع نص","textarea":"مساحة نصية","hiddenField":"إدراج حقل خفي","button":"زر ضغط","select":"اختار","imageButton":"زر صورة","notSet":"<بدون تحديد>","id":"الرقم","name":"إسم","langDir":"إتجاه النص","langDirLtr":"اليسار لليمين (LTR)","langDirRtl":"اليمين لليسار (RTL)","langCode":"رمز اللغة","longDescr":"الوصف التفصيلى","cssClass":"فئات التنسيق","advisoryTitle":"عنوان التقرير","cssStyle":"نمط","ok":"موافق","cancel":"إلغاء الأمر","close":"أغلق","preview":"استعراض","resize":"تغيير الحجم","generalTab":"عام","advancedTab":"متقدم","validateNumberFailed":"لايوجد نتيجة","confirmNewPage":"ستفقد أي متغييرات اذا لم تقم بحفظها اولا. هل أنت متأكد أنك تريد صفحة جديدة؟","confirmCancel":"بعض الخيارات قد تغيرت. هل أنت متأكد من إغلاق مربع النص؟","options":"خيارات","target":"هدف الرابط","targetNew":"نافذة جديدة","targetTop":"النافذة الأعلى","targetSelf":"داخل النافذة","targetParent":"النافذة الأم","langDirLTR":"اليسار لليمين (LTR)","langDirRTL":"اليمين لليسار (RTL)","styles":"نمط","cssClasses":"فئات التنسيق","width":"العرض","height":"الإرتفاع","align":"محاذاة","alignLeft":"يسار","alignRight":"يمين","alignCenter":"وسط","alignJustify":"ضبط","alignTop":"أعلى","alignMiddle":"وسط","alignBottom":"أسفل","alignNone":"None","invalidValue":"قيمة غير مفبولة.","invalidHeight":"الارتفاع يجب أن يكون عدداً.","invalidWidth":"العرض يجب أن يكون عدداً.","invalidCssLength":"قيمة الخانة المخصصة لـ \"%1\" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة CSS قياس مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"قيمة الخانة المخصصة لـ \"%1\" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة HTML قياس مقبولة (px or %).","invalidInlineStyle":"قيمة الخانة المخصصة لـ  Inline Style يجب أن تختوي على مجموع واحد أو أكثر بالشكل التالي: \"name : value\", مفصولة بفاصلة منقزطة.","cssLengthTooltip":"أدخل رقما للقيمة بالبكسل أو رقما بوحدة CSS مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, غير متاح</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/bg.js b/core/assets/vendor/ckeditor/lang/bg.js
index f958c6e..49c455c 100644
--- a/core/assets/vendor/ckeditor/lang/bg.js
+++ b/core/assets/vendor/ckeditor/lang/bg.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['bg']={"widget":{"move":"Кликни и влачи, за да преместиш","label":"%1 widget"},"undo":{"redo":"Връщане на предишен статус","undo":"Възтанови"},"toolbar":{"toolbarCollapse":"Свиване на лентата с инструменти","toolbarExpand":"Разширяване на лентата с инструменти","toolbarGroups":{"document":"Документ","clipboard":"Клипборд/Отмяна","editing":"Промяна","forms":"Форми","basicstyles":"Базови стилове","paragraph":"Параграф","links":"Връзки","insert":"Вмъкване","styles":"Стилове","colors":"Цветове","tools":"Инструменти"},"toolbars":"Ленти с инструменти"},"table":{"border":"Размер на рамката","caption":"Заглавие","cell":{"menu":"Клетка","insertBefore":"Вмъкване на клетка преди","insertAfter":"Вмъкване на клетка след","deleteCell":"Изтриване на клетки","merge":"Сливане на клетки","mergeRight":"Сливане в дясно","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Настройки на клетката","cellType":"Тип на клетката","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Авто. пренос","hAlign":"Хоризонтално подравняване","vAlign":"Вертикално подравняване","alignBaseline":"Базова линия","bgColor":"Фон","borderColor":"Цвят на рамката","data":"Данни","header":"Хедър","yes":"Да","no":"Не","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Изберете"},"cellPad":"Отделяне на клетките","cellSpace":"Разтояние между клетките","column":{"menu":"Колона","insertBefore":"Вмъкване на колона преди","insertAfter":"Вмъкване на колона след","deleteColumn":"Изтриване на колони"},"columns":"Колони","deleteTable":"Изтриване на таблица","headers":"Хедъри","headersBoth":"Заедно","headersColumn":"Първа колона","headersNone":"Няма","headersRow":"Първи ред","invalidBorder":"Размерът на рамката трябва да е число.","invalidCellPadding":"Отстоянието на клетките трябва да е позитивно число.","invalidCellSpacing":"Интервала в клетките трябва да е позитивно число.","invalidCols":"Броят колони трябва да е по-голям от 0.","invalidHeight":"Височината на таблицата трябва да е число.","invalidRows":"Броят редове трябва да е по-голям от 0.","invalidWidth":"Ширината на таблицата трябва да е число.","menu":"Настройки на таблицата","row":{"menu":"Ред","insertBefore":"Вмъкване на ред преди","insertAfter":"Вмъкване на ред след","deleteRow":"Изтриване на редове"},"rows":"Редове","summary":"Обща информация","title":"Настройки на таблицата","toolbar":"Таблица","widthPc":"процент","widthPx":"пиксела","widthUnit":"единица за ширина"},"stylescombo":{"label":"Стилове","panelTitle":"Стилове за форматиране","panelTitle1":"Блокови стилове","panelTitle2":"Вътрешни стилове","panelTitle3":"Обектни стилове"},"specialchar":{"options":"Опции за специален знак","title":"Избор на специален знак","toolbar":"Вмъкване на специален знак"},"sourcedialog":{"toolbar":"Източник","title":"Източник"},"sourcearea":{"toolbar":"Изходен код"},"showblocks":{"toolbar":"Показва блокове"},"removeformat":{"toolbar":"Премахване на форматирането"},"pastetext":{"button":"Вмъкни като чист текст","title":"Вмъкни като чист текст"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Вмъкни от MS Word","toolbar":"Вмъкни от MS Word"},"maximize":{"maximize":"Максимизиране","minimize":"Минимизиране"},"magicline":{"title":"Вмъкнете параграф тук"},"list":{"bulletedlist":"Вмъкване/Премахване на точков списък","numberedlist":"Вмъкване/Премахване на номериран списък"},"language":{"button":"Задай език","remove":"Премахни език"},"justify":{"block":"Двустранно подравняване","center":"Център","left":"Подравни в ляво","right":"Подравни в дясно"},"indent":{"indent":"Увеличаване на отстъпа","outdent":"Намаляване на отстъпа"},"image2":{"alt":"Алтернативен текст","btnUpload":"Изпрати я на сървъра","captioned":"Надписано изображение","captionPlaceholder":"Надпис","infoTab":"Детайли за изображението","lockRatio":"Заключване на съотношението","menu":"Настройки на изображението","pathName":"изображение","pathNameCaption":"надпис","resetSize":"Нулиране на размер","resizer":"Кликни и влачи, за да преоразмериш","title":"Настройки на изображението","uploadTab":"Качване","urlMissing":"URL адреса на изображението липсва."},"horizontalrule":{"toolbar":"Вмъкване на хоризонтална линия"},"format":{"label":"Формат","panelTitle":"Формат","tag_address":"Адрес","tag_div":"Параграф (DIV)","tag_h1":"Заглавие 1","tag_h2":"Заглавие 2","tag_h3":"Заглавие 3","tag_h4":"Заглавие 4","tag_h5":"Заглавие 5","tag_h6":"Заглавие 6","tag_p":"Нормален","tag_pre":"Форматиран"},"elementspath":{"eleLabel":"Път за елементите","eleTitle":"%1 елемент"},"contextmenu":{"options":"Опции на контекстното меню"},"clipboard":{"copy":"Копирай","copyError":"Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl/Cmd+C).","cut":"Отрежи","cutError":"Настройките за сигурност на Вашия браузър не позволяват на редактора автоматично да изъплни действията за отрязване. Моля ползвайте клавиатурните команди за целта (ctrl+x).","paste":"Вмъкни","pasteArea":"Зона за вмъкване","pasteMsg":"Вмъкнете тук съдъжанието с клавиатуарата (<STRONG>Ctrl/Cmd+V</STRONG>) и натиснете <STRONG>OK</STRONG>.","securityMsg":"Заради настройките за сигурност на Вашия браузър, редакторът не може да прочете данните от клипборда коректно.","title":"Вмъкни"},"button":{"selectedLabel":"%1 (Избрано)"},"blockquote":{"toolbar":"Блок за цитат"},"basicstyles":{"bold":"Удебелен","italic":"Наклонен","strike":"Зачертан текст","subscript":"Индексиран текст","superscript":"Суперскрипт","underline":"Подчертан"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"Относно CKEditor","help":"Проверете $1 за помощ.","moreInfo":"За лицензионна информация моля посетете сайта ни:","title":"Относно CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Текстов редактор за форматиран текст","editorPanel":"Панел на текстовия редактор","common":{"editorHelp":"натиснете ALT 0 за помощ","browseServer":"Избор от сървъра","url":"URL","protocol":"Протокол","upload":"Качване","uploadSubmit":"Изпращане към сървъра","image":"Снимка","flash":"Флаш","form":"Форма","checkbox":"Поле за избор","radio":"Радио бутон","textField":"Текстово поле","textarea":"Текстова зона","hiddenField":"Скрито поле","button":"Бутон","select":"Поле за избор","imageButton":"Бутон за снимка","notSet":"<не е избрано>","id":"ID","name":"Име","langDir":"Посока на езика","langDirLtr":"Ляво на дясно (ЛнД)","langDirRtl":"Дясно на ляво (ДнЛ)","langCode":"Код на езика","longDescr":"Уеб адрес за дълго описание","cssClass":"Класове за CSS","advisoryTitle":"Препоръчително заглавие","cssStyle":"Стил","ok":"ОК","cancel":"Отказ","close":"Затвори","preview":"Преглед","resize":"Влачете за да оразмерите","generalTab":"Общи","advancedTab":"Разширено","validateNumberFailed":"Тази стойност не е число","confirmNewPage":"Всички незапазени промени ще бъдат изгубени. Сигурни ли сте, че желаете да заредите нова страница?","confirmCancel":"Някои от опциите са променени. Сигурни ли сте, че желаете да затворите прозореца?","options":"Опции","target":"Цел","targetNew":"Нов прозорец (_blank)","targetTop":"Горна позиция (_top)","targetSelf":"Текущия прозорец (_self)","targetParent":"Основен прозорец (_parent)","langDirLTR":"Ляво на дясно (ЛнД)","langDirRTL":"Дясно на ляво (ДнЛ)","styles":"Стил","cssClasses":"Класове за CSS","width":"Ширина","height":"Височина","align":"Подравняване","alignLeft":"Ляво","alignRight":"Дясно","alignCenter":"Център","alignJustify":"Двустранно подравняване","alignTop":"Горе","alignMiddle":"По средата","alignBottom":"Долу","alignNone":"Без подравняване","invalidValue":"Невалидна стойност.","invalidHeight":"Височината трябва да е число.","invalidWidth":"Ширина требе да е число.","invalidCssLength":"Стойността на полето \"%1\" трябва да бъде положително число с или без валидна CSS измервателна единица (px, %, in, cm, mm, em, ex, pt, или pc).","invalidHtmlLength":"Стойността на полето \"%1\" трябва да бъде положително число с или без валидна HTML измервателна единица (px или %).","invalidInlineStyle":"Стойността на стилa трябва да съдържат една или повече двойки във формат \"name : value\", разделени с двоеточие.","cssLengthTooltip":"Въведете числена стойност в пиксели или друга валидна CSS единица (px, %, in, cm, mm, em, ex, pt, или pc).","unavailable":"%1<span class=\"cke_accessibility\">, недостъпно</span>"}};
\ No newline at end of file
+CKEDITOR.lang['bg']={"widget":{"move":"Кликни и влачи, за да преместиш"},"undo":{"redo":"Връщане на предишен статус","undo":"Възтанови"},"toolbar":{"toolbarCollapse":"Свиване на лентата с инструменти","toolbarExpand":"Разширяване на лентата с инструменти","toolbarGroups":{"document":"Документ","clipboard":"Клипборд/Отмяна","editing":"Промяна","forms":"Форми","basicstyles":"Базови стилове","paragraph":"Параграф","links":"Връзки","insert":"Вмъкване","styles":"Стилове","colors":"Цветове","tools":"Инструменти"},"toolbars":"Ленти с инструменти"},"table":{"border":"Размер на рамката","caption":"Заглавие","cell":{"menu":"Клетка","insertBefore":"Вмъкване на клетка преди","insertAfter":"Вмъкване на клетка след","deleteCell":"Изтриване на клетки","merge":"Сливане на клетки","mergeRight":"Сливане в дясно","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Настройки на клетката","cellType":"Тип на клетката","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Авто. пренос","hAlign":"Хоризонтално подравняване","vAlign":"Вертикално подравняване","alignBaseline":"Базова линия","bgColor":"Фон","borderColor":"Цвят на рамката","data":"Данни","header":"Хедър","yes":"Да","no":"Не","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Изберете"},"cellPad":"Отделяне на клетките","cellSpace":"Разтояние между клетките","column":{"menu":"Колона","insertBefore":"Вмъкване на колона преди","insertAfter":"Вмъкване на колона след","deleteColumn":"Изтриване на колони"},"columns":"Колони","deleteTable":"Изтриване на таблица","headers":"Хедъри","headersBoth":"Заедно","headersColumn":"Първа колона","headersNone":"Няма","headersRow":"Първи ред","invalidBorder":"Размерът на рамката трябва да е число.","invalidCellPadding":"Отстоянието на клетките трябва да е позитивно число.","invalidCellSpacing":"Интервала в клетките трябва да е позитивно число.","invalidCols":"Броят колони трябва да е по-голям от 0.","invalidHeight":"Височината на таблицата трябва да е число.","invalidRows":"Броят редове трябва да е по-голям от 0.","invalidWidth":"Ширината на таблицата трябва да е число.","menu":"Настройки на таблицата","row":{"menu":"Ред","insertBefore":"Вмъкване на ред преди","insertAfter":"Вмъкване на ред след","deleteRow":"Изтриване на редове"},"rows":"Редове","summary":"Обща информация","title":"Настройки на таблицата","toolbar":"Таблица","widthPc":"процент","widthPx":"пиксела","widthUnit":"единица за ширина"},"stylescombo":{"label":"Стилове","panelTitle":"Стилове за форматиране","panelTitle1":"Блокови стилове","panelTitle2":"Вътрешни стилове","panelTitle3":"Обектни стилове"},"specialchar":{"options":"Опции за специален знак","title":"Избор на специален знак","toolbar":"Вмъкване на специален знак"},"sourcedialog":{"toolbar":"Източник","title":"Източник"},"sourcearea":{"toolbar":"Изходен код"},"showblocks":{"toolbar":"Показва блокове"},"removeformat":{"toolbar":"Премахване на форматирането"},"pastetext":{"button":"Вмъкни като чист текст","title":"Вмъкни като чист текст"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Вмъкни от MS Word","toolbar":"Вмъкни от MS Word"},"maximize":{"maximize":"Максимизиране","minimize":"Минимизиране"},"magicline":{"title":"Вмъкнете параграф тук"},"list":{"bulletedlist":"Вмъкване/Премахване на точков списък","numberedlist":"Вмъкване/Премахване на номериран списък"},"language":{"button":"Задай език","remove":"Премахни език"},"justify":{"block":"Двустранно подравняване","center":"Център","left":"Подравни в ляво","right":"Подравни в дясно"},"indent":{"indent":"Увеличаване на отстъпа","outdent":"Намаляване на отстъпа"},"image2":{"alt":"Алтернативен текст","btnUpload":"Изпрати я на сървъра","captioned":"Надписано изображение","captionPlaceholder":"Надпис","infoTab":"Детайли за изображението","lockRatio":"Заключване на съотношението","menu":"Настройки на изображението","pathName":"изображение","pathNameCaption":"надпис","resetSize":"Нулиране на размер","resizer":"Кликни и влачи, за да преоразмериш","title":"Настройки на изображението","uploadTab":"Качване","urlMissing":"URL адреса на изображението липсва."},"horizontalrule":{"toolbar":"Вмъкване на хоризонтална линия"},"format":{"label":"Формат","panelTitle":"Формат","tag_address":"Адрес","tag_div":"Параграф (DIV)","tag_h1":"Заглавие 1","tag_h2":"Заглавие 2","tag_h3":"Заглавие 3","tag_h4":"Заглавие 4","tag_h5":"Заглавие 5","tag_h6":"Заглавие 6","tag_p":"Нормален","tag_pre":"Форматиран"},"elementspath":{"eleLabel":"Път за елементите","eleTitle":"%1 елемент"},"contextmenu":{"options":"Опции на контекстното меню"},"clipboard":{"copy":"Копирай","copyError":"Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl/Cmd+C).","cut":"Отрежи","cutError":"Настройките за сигурност на Вашия браузър не позволяват на редактора автоматично да изъплни действията за отрязване. Моля ползвайте клавиатурните команди за целта (ctrl+x).","paste":"Вмъкни","pasteArea":"Зона за вмъкване","pasteMsg":"Вмъкнете тук съдъжанието с клавиатуарата (<STRONG>Ctrl/Cmd+V</STRONG>) и натиснете <STRONG>OK</STRONG>.","securityMsg":"Заради настройките за сигурност на Вашия браузър, редакторът не може да прочете данните от клипборда коректно.","title":"Вмъкни"},"button":{"selectedLabel":"%1 (Избрано)"},"blockquote":{"toolbar":"Блок за цитат"},"basicstyles":{"bold":"Удебелен","italic":"Наклонен","strike":"Зачертан текст","subscript":"Индексиран текст","superscript":"Суперскрипт","underline":"Подчертан"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"Относно CKEditor","help":"Проверете $1 за помощ.","moreInfo":"За лицензионна информация моля посетете сайта ни:","title":"Относно CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Текстов редактор за форматиран текст","editorPanel":"Панел на текстовия редактор","common":{"editorHelp":"натиснете ALT 0 за помощ","browseServer":"Избор от сървъра","url":"URL","protocol":"Протокол","upload":"Качване","uploadSubmit":"Изпращане към сървъра","image":"Снимка","flash":"Флаш","form":"Форма","checkbox":"Поле за избор","radio":"Радио бутон","textField":"Текстово поле","textarea":"Текстова зона","hiddenField":"Скрито поле","button":"Бутон","select":"Поле за избор","imageButton":"Бутон за снимка","notSet":"<не е избрано>","id":"ID","name":"Име","langDir":"Посока на езика","langDirLtr":"Ляво на дясно (ЛнД)","langDirRtl":"Дясно на ляво (ДнЛ)","langCode":"Код на езика","longDescr":"Уеб адрес за дълго описание","cssClass":"Класове за CSS","advisoryTitle":"Препоръчително заглавие","cssStyle":"Стил","ok":"ОК","cancel":"Отказ","close":"Затвори","preview":"Преглед","resize":"Влачете за да оразмерите","generalTab":"Общи","advancedTab":"Разширено","validateNumberFailed":"Тази стойност не е число","confirmNewPage":"Всички незапазени промени ще бъдат изгубени. Сигурни ли сте, че желаете да заредите нова страница?","confirmCancel":"Някои от опциите са променени. Сигурни ли сте, че желаете да затворите прозореца?","options":"Опции","target":"Цел","targetNew":"Нов прозорец (_blank)","targetTop":"Горна позиция (_top)","targetSelf":"Текущия прозорец (_self)","targetParent":"Основен прозорец (_parent)","langDirLTR":"Ляво на дясно (ЛнД)","langDirRTL":"Дясно на ляво (ДнЛ)","styles":"Стил","cssClasses":"Класове за CSS","width":"Ширина","height":"Височина","align":"Подравняване","alignLeft":"Ляво","alignRight":"Дясно","alignCenter":"Център","alignJustify":"Двустранно подравняване","alignTop":"Горе","alignMiddle":"По средата","alignBottom":"Долу","alignNone":"Без подравняване","invalidValue":"Невалидна стойност.","invalidHeight":"Височината трябва да е число.","invalidWidth":"Ширина требе да е число.","invalidCssLength":"Стойността на полето \"%1\" трябва да бъде положително число с или без валидна CSS измервателна единица (px, %, in, cm, mm, em, ex, pt, или pc).","invalidHtmlLength":"Стойността на полето \"%1\" трябва да бъде положително число с или без валидна HTML измервателна единица (px или %).","invalidInlineStyle":"Стойността на стилa трябва да съдържат една или повече двойки във формат \"name : value\", разделени с двоеточие.","cssLengthTooltip":"Въведете числена стойност в пиксели или друга валидна CSS единица (px, %, in, cm, mm, em, ex, pt, или pc).","unavailable":"%1<span class=\"cke_accessibility\">, недостъпно</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/bn.js b/core/assets/vendor/ckeditor/lang/bn.js
index 7b36320..96acada 100644
--- a/core/assets/vendor/ckeditor/lang/bn.js
+++ b/core/assets/vendor/ckeditor/lang/bn.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['bn']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"পুনরায়  করি","undo":"আনডু"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"বর্ডারের সাইজ","caption":"শীর্ষক","cell":{"menu":"সেল","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"সেল মুছে দাও","merge":"সেল জোড়া দাও","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"পৃষ্ঠতলের রং","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"সেল প্যাডিং","cellSpace":"সেল স্পেস","column":{"menu":"কলাম","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"কলাম মুছে দাও"},"columns":"কলাম","deleteTable":"টেবিল ডিলীট কর","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"টেবিল প্রোপার্টি","row":{"menu":"রো","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"রো মুছে দাও"},"rows":"রো","summary":"সারাংশ","title":"টেবিল প্রোপার্টি","toolbar":"টেবিলের লেবেল যুক্ত কর","widthPc":"শতকরা","widthPx":"পিক্সেল","widthUnit":"width unit"},"stylescombo":{"label":"ধরন","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"বিশেষ ক্যারেক্টার বাছাই কর","toolbar":"বিশেষ অক্ষর যুক্ত কর"},"sourcedialog":{"toolbar":"উৎস","title":"সোর্স"},"sourcearea":{"toolbar":"উৎস"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"ধরন-প্রকৃতি অপসারণ করি"},"pastetext":{"button":"সাধারণ টেক্সট হিসেবে পেইস্ট করি","title":"সাদা টেক্সট হিসেবে পেস্ট কর"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"পেস্ট (শব্দ)","toolbar":"পেস্ট (শব্দ)"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"বুলেটেড তালিকা প্রবেশ/অপসারন করি","numberedlist":"সাংখ্যিক লিস্টের লেবেল"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"যাচাই করি","center":"মাঝ বরাবর ঘেষা","left":"বা দিকে ঘেঁষা","right":"ডান দিকে ঘেঁষা"},"indent":{"indent":"ইনডেন্ট বাড়াই","outdent":"ইনডেন্ট কমাও"},"image2":{"alt":"বিকল্প টেক্সট","btnUpload":"ইহাকে সার্ভারে প্রেরন কর","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"ছবির তথ্য","lockRatio":"অনুপাত লক কর","menu":"ছবির প্রোপার্টি","pathName":"image","pathNameCaption":"caption","resetSize":"সাইজ পূর্বাবস্থায় ফিরিয়ে দাও","resizer":"Click and drag to resize","title":"ছবির প্রোপার্টি","uploadTab":"আপলোড","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"অনুভূমিক লাইন যোগ করি"},"format":{"label":"ধরন-প্রকৃতি","panelTitle":"ফন্ট ফরমেট","tag_address":"ঠিকানা","tag_div":"শীর্ষক (DIV)","tag_h1":"শীর্ষক ১","tag_h2":"শীর্ষক ২","tag_h3":"শীর্ষক ৩","tag_h4":"শীর্ষক ৪","tag_h5":"শীর্ষক ৫","tag_h6":"শীর্ষক ৬","tag_p":"সাধারণ","tag_pre":"ফর্মেটেড"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"কপি","copyError":"আপনার ব্রাউজারের নিরাপত্তা সেটিংসমূহ এডিটরকে স্বয়ংক্রিয়ভাবে কপি করার প্রক্রিয়া চালনা করার অনুমতি দেয় না। অনুগ্রহপূর্বক এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+C)।","cut":"কাট","cutError":"আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+X)।","paste":"পেস্ট","pasteArea":"Paste Area","pasteMsg":"অনুগ্রহ করে নীচের বাক্সে কিবোর্ড ব্যবহার করে (<STRONG>Ctrl/Cmd+V</STRONG>) পেস্ট করুন এবং <STRONG>OK</STRONG> চাপ দিন","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"পেস্ট"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"বোল্ড","italic":"বাঁকা","strike":"স্ট্রাইক থ্রু","subscript":"অধোলেখ","superscript":"অভিলেখ","underline":"আন্ডারলাইন"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"ব্রাউজ সার্ভার","url":"URL","protocol":"প্রোটোকল","upload":"আপলোড","uploadSubmit":"ইহাকে সার্ভারে প্রেরন কর","image":"ছবির লেবেল যুক্ত কর","flash":"ফ্লাশ লেবেল যুক্ত কর","form":"ফর্ম","checkbox":"চেক বাক্স","radio":"রেডিও বাটন","textField":"টেক্সট ফীল্ড","textarea":"টেক্সট এরিয়া","hiddenField":"গুপ্ত ফীল্ড","button":"বাটন","select":"বাছাই ফীল্ড","imageButton":"ছবির বাটন","notSet":"<সেট নেই>","id":"আইডি","name":"নাম","langDir":"ভাষা লেখার দিক","langDirLtr":"বাম থেকে ডান (LTR)","langDirRtl":"ডান থেকে বাম (RTL)","langCode":"ভাষা কোড","longDescr":"URL এর লম্বা বর্ণনা","cssClass":"স্টাইল-শীট ক্লাস","advisoryTitle":"পরামর্শ শীর্ষক","cssStyle":"স্টাইল","ok":"ওকে","cancel":"বাতিল","close":"Close","preview":"প্রিভিউ","resize":"Resize","generalTab":"General","advancedTab":"এডভান্সড","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"টার্গেট","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"বাম থেকে ডান (LTR)","langDirRTL":"ডান থেকে বাম (RTL)","styles":"স্টাইল","cssClasses":"স্টাইল-শীট ক্লাস","width":"প্রস্থ","height":"দৈর্ঘ্য","align":"এলাইন","alignLeft":"বামে","alignRight":"ডানে","alignCenter":"মাঝখানে","alignJustify":"ব্লক জাস্টিফাই","alignTop":"উপর","alignMiddle":"মধ্য","alignBottom":"নীচে","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['bn']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"রি-ডু","undo":"আনডু"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"বর্ডার সাইজ","caption":"শীর্ষক","cell":{"menu":"সেল","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"সেল মুছে দাও","merge":"সেল জোড়া দাও","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"সেল প্যাডিং","cellSpace":"সেল স্পেস","column":{"menu":"কলাম","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"কলাম মুছে দাও"},"columns":"কলাম","deleteTable":"টেবিল ডিলীট কর","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"টেবিল প্রোপার্টি","row":{"menu":"রো","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"রো মুছে দাও"},"rows":"রো","summary":"সারাংশ","title":"টেবিল প্রোপার্টি","toolbar":"টেবিলের লেবেল যুক্ত কর","widthPc":"শতকরা","widthPx":"পিক্সেল","widthUnit":"width unit"},"stylescombo":{"label":"স্টাইল","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"বিশেষ ক্যারেক্টার বাছাই কর","toolbar":"বিশেষ অক্ষর যুক্ত কর"},"sourcedialog":{"toolbar":"সোর্স","title":"সোর্স"},"sourcearea":{"toolbar":"সোর্স"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"ফরমেট সরাও"},"pastetext":{"button":"সাদা টেক্সট হিসেবে পেস্ট কর","title":"সাদা টেক্সট হিসেবে পেস্ট কর"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"পেস্ট (শব্দ)","toolbar":"পেস্ট (শব্দ)"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"বুলেট লিস্ট লেবেল","numberedlist":"সাংখ্যিক লিস্টের লেবেল"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"ব্লক জাস্টিফাই","center":"মাঝ বরাবর ঘেষা","left":"বা দিকে ঘেঁষা","right":"ডান দিকে ঘেঁষা"},"indent":{"indent":"ইনডেন্ট বাড়াও","outdent":"ইনডেন্ট কমাও"},"image2":{"alt":"বিকল্প টেক্সট","btnUpload":"ইহাকে সার্ভারে প্রেরন কর","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"ছবির তথ্য","lockRatio":"অনুপাত লক কর","menu":"ছবির প্রোপার্টি","pathName":"image","pathNameCaption":"caption","resetSize":"সাইজ পূর্বাবস্থায় ফিরিয়ে দাও","resizer":"Click and drag to resize","title":"ছবির প্রোপার্টি","uploadTab":"আপলোড","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"রেখা যুক্ত কর"},"format":{"label":"ফন্ট ফরমেট","panelTitle":"ফন্ট ফরমেট","tag_address":"ঠিকানা","tag_div":"শীর্ষক (DIV)","tag_h1":"শীর্ষক ১","tag_h2":"শীর্ষক ২","tag_h3":"শীর্ষক ৩","tag_h4":"শীর্ষক ৪","tag_h5":"শীর্ষক ৫","tag_h6":"শীর্ষক ৬","tag_p":"সাধারণ","tag_pre":"ফর্মেটেড"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"কপি","copyError":"আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কপি করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+C)।","cut":"কাট","cutError":"আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+X)।","paste":"পেস্ট","pasteArea":"Paste Area","pasteMsg":"অনুগ্রহ করে নীচের বাক্সে কিবোর্ড ব্যবহার করে (<STRONG>Ctrl/Cmd+V</STRONG>) পেস্ট করুন এবং <STRONG>OK</STRONG> চাপ দিন","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"পেস্ট"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"বোল্ড","italic":"ইটালিক","strike":"স্ট্রাইক থ্রু","subscript":"অধোলেখ","superscript":"অভিলেখ","underline":"আন্ডারলাইন"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"ব্রাউজ সার্ভার","url":"URL","protocol":"প্রোটোকল","upload":"আপলোড","uploadSubmit":"ইহাকে সার্ভারে প্রেরন কর","image":"ছবির লেবেল যুক্ত কর","flash":"ফ্লাশ লেবেল যুক্ত কর","form":"ফর্ম","checkbox":"চেক বাক্স","radio":"রেডিও বাটন","textField":"টেক্সট ফীল্ড","textarea":"টেক্সট এরিয়া","hiddenField":"গুপ্ত ফীল্ড","button":"বাটন","select":"বাছাই ফীল্ড","imageButton":"ছবির বাটন","notSet":"<সেট নেই>","id":"আইডি","name":"নাম","langDir":"ভাষা লেখার দিক","langDirLtr":"বাম থেকে ডান (LTR)","langDirRtl":"ডান থেকে বাম (RTL)","langCode":"ভাষা কোড","longDescr":"URL এর লম্বা বর্ণনা","cssClass":"স্টাইল-শীট ক্লাস","advisoryTitle":"পরামর্শ শীর্ষক","cssStyle":"স্টাইল","ok":"ওকে","cancel":"বাতিল","close":"Close","preview":"প্রিভিউ","resize":"Resize","generalTab":"General","advancedTab":"এডভান্সড","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"টার্গেট","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"বাম থেকে ডান (LTR)","langDirRTL":"ডান থেকে বাম (RTL)","styles":"স্টাইল","cssClasses":"স্টাইল-শীট ক্লাস","width":"প্রস্থ","height":"দৈর্ঘ্য","align":"এলাইন","alignLeft":"বামে","alignRight":"ডানে","alignCenter":"মাঝখানে","alignJustify":"ব্লক জাস্টিফাই","alignTop":"উপর","alignMiddle":"মধ্য","alignBottom":"নীচে","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/bs.js b/core/assets/vendor/ckeditor/lang/bs.js
index da6c6aa..75da178 100644
--- a/core/assets/vendor/ckeditor/lang/bs.js
+++ b/core/assets/vendor/ckeditor/lang/bs.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['bs']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Ponovi","undo":"Vrati"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Okvir","caption":"Naslov","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Briši æelije","merge":"Spoji æelije","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Uvod æelija","cellSpace":"Razmak æelija","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Briši kolone"},"columns":"Kolona","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Svojstva tabele","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Briši redove"},"rows":"Redova","summary":"Summary","title":"Svojstva tabele","toolbar":"Tabela","widthPc":"posto","widthPx":"piksela","widthUnit":"width unit"},"stylescombo":{"label":"Stil","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Izaberi specijalni karakter","toolbar":"Ubaci specijalni karater"},"sourcedialog":{"toolbar":"HTML kôd","title":"HTML kôd"},"sourcearea":{"toolbar":"HTML kôd"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Poništi format"},"pastetext":{"button":"Zalijepi kao obièan tekst","title":"Zalijepi kao obièan tekst"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Zalijepi iz Word-a","toolbar":"Zalijepi iz Word-a"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Lista","numberedlist":"Numerisana lista"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Puno poravnanje","center":"Centralno poravnanje","left":"Lijevo poravnanje","right":"Desno poravnanje"},"indent":{"indent":"Poveæaj uvod","outdent":"Smanji uvod"},"image2":{"alt":"Tekst na slici","btnUpload":"Šalji na server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info slike","lockRatio":"Zakljuèaj odnos","menu":"Svojstva slike","pathName":"image","pathNameCaption":"caption","resetSize":"Resetuj dimenzije","resizer":"Click and drag to resize","title":"Svojstva slike","uploadTab":"Šalji","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Ubaci horizontalnu liniju"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).","paste":"Zalijepi","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Zalijepi"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Boldiraj","italic":"Ukosi","strike":"Precrtaj","subscript":"Subscript","superscript":"Superscript","underline":"Podvuci"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protokol","upload":"Šalji","uploadSubmit":"Šalji na server","image":"Slika","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije podešeno>","id":"Id","name":"Naziv","langDir":"Smjer pisanja","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Jezièni kôd","longDescr":"Dugaèki opis URL-a","cssClass":"Klase CSS stilova","advisoryTitle":"Advisory title","cssStyle":"Stil","ok":"OK","cancel":"Odustani","close":"Close","preview":"Prikaži","resize":"Resize","generalTab":"General","advancedTab":"Naprednije","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Prozor","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase CSS stilova","width":"Širina","height":"Visina","align":"Poravnanje","alignLeft":"Lijevo","alignRight":"Desno","alignCenter":"Centar","alignJustify":"Puno poravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dno","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['bs']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Ponovi","undo":"Vrati"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Okvir","caption":"Naslov","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Briši æelije","merge":"Spoji æelije","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Uvod æelija","cellSpace":"Razmak æelija","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Briši kolone"},"columns":"Kolona","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Svojstva tabele","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Briši redove"},"rows":"Redova","summary":"Summary","title":"Svojstva tabele","toolbar":"Tabela","widthPc":"posto","widthPx":"piksela","widthUnit":"width unit"},"stylescombo":{"label":"Stil","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Izaberi specijalni karakter","toolbar":"Ubaci specijalni karater"},"sourcedialog":{"toolbar":"HTML kôd","title":"HTML kôd"},"sourcearea":{"toolbar":"HTML kôd"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Poništi format"},"pastetext":{"button":"Zalijepi kao obièan tekst","title":"Zalijepi kao obièan tekst"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Zalijepi iz Word-a","toolbar":"Zalijepi iz Word-a"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Lista","numberedlist":"Numerisana lista"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Puno poravnanje","center":"Centralno poravnanje","left":"Lijevo poravnanje","right":"Desno poravnanje"},"indent":{"indent":"Poveæaj uvod","outdent":"Smanji uvod"},"image2":{"alt":"Tekst na slici","btnUpload":"Šalji na server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info slike","lockRatio":"Zakljuèaj odnos","menu":"Svojstva slike","pathName":"image","pathNameCaption":"caption","resetSize":"Resetuj dimenzije","resizer":"Click and drag to resize","title":"Svojstva slike","uploadTab":"Šalji","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Ubaci horizontalnu liniju"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).","paste":"Zalijepi","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Zalijepi"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Boldiraj","italic":"Ukosi","strike":"Precrtaj","subscript":"Subscript","superscript":"Superscript","underline":"Podvuci"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protokol","upload":"Šalji","uploadSubmit":"Šalji na server","image":"Slika","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije podešeno>","id":"Id","name":"Naziv","langDir":"Smjer pisanja","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Jezièni kôd","longDescr":"Dugaèki opis URL-a","cssClass":"Klase CSS stilova","advisoryTitle":"Advisory title","cssStyle":"Stil","ok":"OK","cancel":"Odustani","close":"Close","preview":"Prikaži","resize":"Resize","generalTab":"General","advancedTab":"Naprednije","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Prozor","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase CSS stilova","width":"Širina","height":"Visina","align":"Poravnanje","alignLeft":"Lijevo","alignRight":"Desno","alignCenter":"Centar","alignJustify":"Puno poravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dno","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/ca.js b/core/assets/vendor/ckeditor/lang/ca.js
index f41211e..6f415d4 100644
--- a/core/assets/vendor/ckeditor/lang/ca.js
+++ b/core/assets/vendor/ckeditor/lang/ca.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['ca']={"widget":{"move":"Clicar i arrossegar per moure","label":"%1 widget"},"undo":{"redo":"Refés","undo":"Desfés"},"toolbar":{"toolbarCollapse":"Redueix la barra d'eines","toolbarExpand":"Amplia la barra d'eines","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor de barra d'eines"},"table":{"border":"Mida vora","caption":"Títol","cell":{"menu":"Cel·la","insertBefore":"Insereix abans","insertAfter":"Insereix després","deleteCell":"Suprimeix","merge":"Fusiona","mergeRight":"Fusiona a la dreta","mergeDown":"Fusiona avall","splitHorizontal":"Divideix horitzontalment","splitVertical":"Divideix verticalment","title":"Propietats de la cel·la","cellType":"Tipus de cel·la","rowSpan":"Expansió de files","colSpan":"Expansió de columnes","wordWrap":"Ajustar al contingut","hAlign":"Alineació Horizontal","vAlign":"Alineació Vertical","alignBaseline":"A la línia base","bgColor":"Color de fons","borderColor":"Color de la vora","data":"Dades","header":"Capçalera","yes":"Sí","no":"No","invalidWidth":"L'amplada de cel·la ha de ser un nombre.","invalidHeight":"L'alçada de cel·la ha de ser un nombre.","invalidRowSpan":"L'expansió de files ha de ser un nombre enter.","invalidColSpan":"L'expansió de columnes ha de ser un nombre enter.","chooseColor":"Trieu"},"cellPad":"Encoixinament de cel·les","cellSpace":"Espaiat de cel·les","column":{"menu":"Columna","insertBefore":"Insereix columna abans de","insertAfter":"Insereix columna darrera","deleteColumn":"Suprimeix una columna"},"columns":"Columnes","deleteTable":"Suprimeix la taula","headers":"Capçaleres","headersBoth":"Ambdues","headersColumn":"Primera columna","headersNone":"Cap","headersRow":"Primera fila","invalidBorder":"El gruix de la vora ha de ser un nombre.","invalidCellPadding":"L'encoixinament de cel·la  ha de ser un nombre.","invalidCellSpacing":"L'espaiat de cel·la  ha de ser un nombre.","invalidCols":"El nombre de columnes ha de ser un nombre major que 0.","invalidHeight":"L'alçada de la taula  ha de ser un nombre.","invalidRows":"El nombre de files ha de ser un nombre major que 0.","invalidWidth":"L'amplada de la taula  ha de ser un nombre.","menu":"Propietats de la taula","row":{"menu":"Fila","insertBefore":"Insereix fila abans de","insertAfter":"Insereix fila darrera","deleteRow":"Suprimeix una fila"},"rows":"Files","summary":"Resum","title":"Propietats de la taula","toolbar":"Taula","widthPc":"percentatge","widthPx":"píxels","widthUnit":"unitat d'amplada"},"stylescombo":{"label":"Estil","panelTitle":"Estils de format","panelTitle1":"Estils de bloc","panelTitle2":"Estils incrustats","panelTitle3":"Estils d'objecte"},"specialchar":{"options":"Opcions de caràcters especials","title":"Selecciona el caràcter especial","toolbar":"Insereix caràcter especial"},"sourcedialog":{"toolbar":"Codi font","title":"Codi font"},"sourcearea":{"toolbar":"Codi font"},"showblocks":{"toolbar":"Mostra els blocs"},"removeformat":{"toolbar":"Elimina Format"},"pastetext":{"button":"Enganxa com a text no formatat","title":"Enganxa com a text no formatat"},"pastefromword":{"confirmCleanup":"El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?","error":"No ha estat possible netejar les dades enganxades degut a un error intern","title":"Enganxa des del Word","toolbar":"Enganxa des del Word"},"maximize":{"maximize":"Maximitza","minimize":"Minimitza"},"magicline":{"title":"Insereix el paràgraf aquí"},"list":{"bulletedlist":"Llista de pics","numberedlist":"Llista numerada"},"language":{"button":"Definir l'idioma","remove":"Eliminar idioma"},"justify":{"block":"Justificat","center":"Centrat","left":"Alinea a l'esquerra","right":"Alinea a la dreta"},"indent":{"indent":"Augmenta el sagnat","outdent":"Redueix el sagnat"},"image2":{"alt":"Text alternatiu","btnUpload":"Envia-la al servidor","captioned":"Imatge amb subtítol","captionPlaceholder":"Títol","infoTab":"Informació de la imatge","lockRatio":"Bloqueja les proporcions","menu":"Propietats de la imatge","pathName":"imatge","pathNameCaption":"subtítol","resetSize":"Restaura la mida","resizer":"Clicar i arrossegar per redimensionar","title":"Propietats de la imatge","uploadTab":"Puja","urlMissing":"Falta la URL de la imatge."},"horizontalrule":{"toolbar":"Insereix línia horitzontal"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adreça","tag_div":"Normal (DIV)","tag_h1":"Encapçalament 1","tag_h2":"Encapçalament 2","tag_h3":"Encapçalament 3","tag_h4":"Encapçalament 4","tag_h5":"Encapçalament 5","tag_h6":"Encapçalament 6","tag_p":"Normal","tag_pre":"Formatejat"},"elementspath":{"eleLabel":"Ruta dels elements","eleTitle":"%1 element"},"contextmenu":{"options":"Opcions del menú contextual"},"clipboard":{"copy":"Copiar","copyError":"La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+C).","cut":"Retallar","cutError":"La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+X).","paste":"Enganxar","pasteArea":"Àrea d'enganxat","pasteMsg":"Si us plau, enganxi dins del següent camp utilitzant el teclat (<strong>Ctrl/Cmd+V</strong>) i premi OK.","securityMsg":"A causa de la configuració de seguretat del vostre navegador, l'editor no pot accedir a les dades del porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.","title":"Enganxar"},"button":{"selectedLabel":"%1 (Seleccionat)"},"blockquote":{"toolbar":"Bloc de cita"},"basicstyles":{"bold":"Negreta","italic":"Cursiva","strike":"Ratllat","subscript":"Subíndex","superscript":"Superíndex","underline":"Subratllat"},"about":{"copy":"Copyright &copy; $1. Tots els drets reservats.","dlgTitle":"Quant al CKEditor","help":"Premi $1 per obtenir ajuda.","moreInfo":"Per informació sobre llicències visiteu el nostre lloc web:","title":"Quant al CKEditor","userGuide":"Manual d'usuari de CKEditor"},"editor":"Editor de text enriquit","editorPanel":"Panell de l'editor de text enriquit","common":{"editorHelp":"Premeu ALT 0 per ajuda","browseServer":"Veure servidor","url":"URL","protocol":"Protocol","upload":"Puja","uploadSubmit":"Envia-la al servidor","image":"Imatge","flash":"Flash","form":"Formulari","checkbox":"Casella de verificació","radio":"Botó d'opció","textField":"Camp de text","textarea":"Àrea de text","hiddenField":"Camp ocult","button":"Botó","select":"Camp de selecció","imageButton":"Botó d'imatge","notSet":"<no definit>","id":"Id","name":"Nom","langDir":"Direcció de l'idioma","langDirLtr":"D'esquerra a dreta (LTR)","langDirRtl":"De dreta a esquerra (RTL)","langCode":"Codi d'idioma","longDescr":"Descripció llarga de la URL","cssClass":"Classes del full d'estil","advisoryTitle":"Títol consultiu","cssStyle":"Estil","ok":"D'acord","cancel":"Cancel·la","close":"Tanca","preview":"Previsualitza","resize":"Arrossegueu per redimensionar","generalTab":"General","advancedTab":"Avançat","validateNumberFailed":"Aquest valor no és un número.","confirmNewPage":"Els canvis en aquest contingut que no es desin es perdran. Esteu segur que voleu carregar una pàgina nova?","confirmCancel":"Algunes opcions s'han canviat. Esteu segur que voleu tancar el quadre de diàleg?","options":"Opcions","target":"Destí","targetNew":"Nova finestra (_blank)","targetTop":"Finestra superior (_top)","targetSelf":"Mateixa finestra (_self)","targetParent":"Finestra pare (_parent)","langDirLTR":"D'esquerra a dreta (LTR)","langDirRTL":"De dreta a esquerra (RTL)","styles":"Estil","cssClasses":"Classes del full d'estil","width":"Amplada","height":"Alçada","align":"Alineació","alignLeft":"Ajusta a l'esquerra","alignRight":"Ajusta a la dreta","alignCenter":"Centre","alignJustify":"Justificat","alignTop":"Superior","alignMiddle":"Centre","alignBottom":"Inferior","alignNone":"None","invalidValue":"Valor no vàlid.","invalidHeight":"L'alçada ha de ser un número.","invalidWidth":"L'amplada ha de ser un número.","invalidCssLength":"El valor especificat per als \"%1\" camps ha de ser un número positiu amb o sense unitat de mesura vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).","invalidHtmlLength":"El valor especificat per als \"%1\" camps ha de ser un número positiu amb o sense unitat de mesura vàlida d'HTML (px o %).","invalidInlineStyle":"El valor especificat per l'estil en línia ha de constar d'una o més tuples amb el format \"name: value\", separats per punt i coma.","cssLengthTooltip":"Introduïu un número per un valor en píxels o un número amb una unitat vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>"}};
\ No newline at end of file
+CKEDITOR.lang['ca']={"widget":{"move":"Clicar i arrossegar per moure"},"undo":{"redo":"Refés","undo":"Desfés"},"toolbar":{"toolbarCollapse":"Redueix la barra d'eines","toolbarExpand":"Amplia la barra d'eines","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor de barra d'eines"},"table":{"border":"Mida vora","caption":"Títol","cell":{"menu":"Cel·la","insertBefore":"Insereix abans","insertAfter":"Insereix després","deleteCell":"Suprimeix","merge":"Fusiona","mergeRight":"Fusiona a la dreta","mergeDown":"Fusiona avall","splitHorizontal":"Divideix horitzontalment","splitVertical":"Divideix verticalment","title":"Propietats de la cel·la","cellType":"Tipus de cel·la","rowSpan":"Expansió de files","colSpan":"Expansió de columnes","wordWrap":"Ajustar al contingut","hAlign":"Alineació Horizontal","vAlign":"Alineació Vertical","alignBaseline":"A la línia base","bgColor":"Color de fons","borderColor":"Color de la vora","data":"Dades","header":"Capçalera","yes":"Sí","no":"No","invalidWidth":"L'amplada de cel·la ha de ser un nombre.","invalidHeight":"L'alçada de cel·la ha de ser un nombre.","invalidRowSpan":"L'expansió de files ha de ser un nombre enter.","invalidColSpan":"L'expansió de columnes ha de ser un nombre enter.","chooseColor":"Trieu"},"cellPad":"Encoixinament de cel·les","cellSpace":"Espaiat de cel·les","column":{"menu":"Columna","insertBefore":"Insereix columna abans de","insertAfter":"Insereix columna darrera","deleteColumn":"Suprimeix una columna"},"columns":"Columnes","deleteTable":"Suprimeix la taula","headers":"Capçaleres","headersBoth":"Ambdues","headersColumn":"Primera columna","headersNone":"Cap","headersRow":"Primera fila","invalidBorder":"El gruix de la vora ha de ser un nombre.","invalidCellPadding":"L'encoixinament de cel·la  ha de ser un nombre.","invalidCellSpacing":"L'espaiat de cel·la  ha de ser un nombre.","invalidCols":"El nombre de columnes ha de ser un nombre major que 0.","invalidHeight":"L'alçada de la taula  ha de ser un nombre.","invalidRows":"El nombre de files ha de ser un nombre major que 0.","invalidWidth":"L'amplada de la taula  ha de ser un nombre.","menu":"Propietats de la taula","row":{"menu":"Fila","insertBefore":"Insereix fila abans de","insertAfter":"Insereix fila darrera","deleteRow":"Suprimeix una fila"},"rows":"Files","summary":"Resum","title":"Propietats de la taula","toolbar":"Taula","widthPc":"percentatge","widthPx":"píxels","widthUnit":"unitat d'amplada"},"stylescombo":{"label":"Estil","panelTitle":"Estils de format","panelTitle1":"Estils de bloc","panelTitle2":"Estils incrustats","panelTitle3":"Estils d'objecte"},"specialchar":{"options":"Opcions de caràcters especials","title":"Selecciona el caràcter especial","toolbar":"Insereix caràcter especial"},"sourcedialog":{"toolbar":"Codi font","title":"Codi font"},"sourcearea":{"toolbar":"Codi font"},"showblocks":{"toolbar":"Mostra els blocs"},"removeformat":{"toolbar":"Elimina Format"},"pastetext":{"button":"Enganxa com a text no formatat","title":"Enganxa com a text no formatat"},"pastefromword":{"confirmCleanup":"El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?","error":"No ha estat possible netejar les dades enganxades degut a un error intern","title":"Enganxa des del Word","toolbar":"Enganxa des del Word"},"maximize":{"maximize":"Maximitza","minimize":"Minimitza"},"magicline":{"title":"Insereix el paràgraf aquí"},"list":{"bulletedlist":"Llista de pics","numberedlist":"Llista numerada"},"language":{"button":"Definir l'idioma","remove":"Eliminar idioma"},"justify":{"block":"Justificat","center":"Centrat","left":"Alinea a l'esquerra","right":"Alinea a la dreta"},"indent":{"indent":"Augmenta el sagnat","outdent":"Redueix el sagnat"},"image2":{"alt":"Text alternatiu","btnUpload":"Envia-la al servidor","captioned":"Imatge amb subtítol","captionPlaceholder":"Títol","infoTab":"Informació de la imatge","lockRatio":"Bloqueja les proporcions","menu":"Propietats de la imatge","pathName":"imatge","pathNameCaption":"subtítol","resetSize":"Restaura la mida","resizer":"Clicar i arrossegar per redimensionar","title":"Propietats de la imatge","uploadTab":"Puja","urlMissing":"Falta la URL de la imatge."},"horizontalrule":{"toolbar":"Insereix línia horitzontal"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adreça","tag_div":"Normal (DIV)","tag_h1":"Encapçalament 1","tag_h2":"Encapçalament 2","tag_h3":"Encapçalament 3","tag_h4":"Encapçalament 4","tag_h5":"Encapçalament 5","tag_h6":"Encapçalament 6","tag_p":"Normal","tag_pre":"Formatejat"},"elementspath":{"eleLabel":"Ruta dels elements","eleTitle":"%1 element"},"contextmenu":{"options":"Opcions del menú contextual"},"clipboard":{"copy":"Copiar","copyError":"La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+C).","cut":"Retallar","cutError":"La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+X).","paste":"Enganxar","pasteArea":"Àrea d'enganxat","pasteMsg":"Si us plau, enganxi dins del següent camp utilitzant el teclat (<strong>Ctrl/Cmd+V</strong>) i premi OK.","securityMsg":"A causa de la configuració de seguretat del vostre navegador, l'editor no pot accedir a les dades del porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.","title":"Enganxar"},"button":{"selectedLabel":"%1 (Seleccionat)"},"blockquote":{"toolbar":"Bloc de cita"},"basicstyles":{"bold":"Negreta","italic":"Cursiva","strike":"Ratllat","subscript":"Subíndex","superscript":"Superíndex","underline":"Subratllat"},"about":{"copy":"Copyright &copy; $1. Tots els drets reservats.","dlgTitle":"Quant al CKEditor","help":"Premi $1 per obtenir ajuda.","moreInfo":"Per informació sobre llicències visiteu el nostre lloc web:","title":"Quant al CKEditor","userGuide":"Manual d'usuari de CKEditor"},"editor":"Editor de text enriquit","editorPanel":"Panell de l'editor de text enriquit","common":{"editorHelp":"Premeu ALT 0 per ajuda","browseServer":"Veure servidor","url":"URL","protocol":"Protocol","upload":"Puja","uploadSubmit":"Envia-la al servidor","image":"Imatge","flash":"Flash","form":"Formulari","checkbox":"Casella de verificació","radio":"Botó d'opció","textField":"Camp de text","textarea":"Àrea de text","hiddenField":"Camp ocult","button":"Botó","select":"Camp de selecció","imageButton":"Botó d'imatge","notSet":"<no definit>","id":"Id","name":"Nom","langDir":"Direcció de l'idioma","langDirLtr":"D'esquerra a dreta (LTR)","langDirRtl":"De dreta a esquerra (RTL)","langCode":"Codi d'idioma","longDescr":"Descripció llarga de la URL","cssClass":"Classes del full d'estil","advisoryTitle":"Títol consultiu","cssStyle":"Estil","ok":"D'acord","cancel":"Cancel·la","close":"Tanca","preview":"Previsualitza","resize":"Arrossegueu per redimensionar","generalTab":"General","advancedTab":"Avançat","validateNumberFailed":"Aquest valor no és un número.","confirmNewPage":"Els canvis en aquest contingut que no es desin es perdran. Esteu segur que voleu carregar una pàgina nova?","confirmCancel":"Algunes opcions s'han canviat. Esteu segur que voleu tancar el quadre de diàleg?","options":"Opcions","target":"Destí","targetNew":"Nova finestra (_blank)","targetTop":"Finestra superior (_top)","targetSelf":"Mateixa finestra (_self)","targetParent":"Finestra pare (_parent)","langDirLTR":"D'esquerra a dreta (LTR)","langDirRTL":"De dreta a esquerra (RTL)","styles":"Estil","cssClasses":"Classes del full d'estil","width":"Amplada","height":"Alçada","align":"Alineació","alignLeft":"Ajusta a l'esquerra","alignRight":"Ajusta a la dreta","alignCenter":"Centre","alignJustify":"Justificat","alignTop":"Superior","alignMiddle":"Centre","alignBottom":"Inferior","alignNone":"None","invalidValue":"Valor no vàlid.","invalidHeight":"L'alçada ha de ser un número.","invalidWidth":"L'amplada ha de ser un número.","invalidCssLength":"El valor especificat per als \"%1\" camps ha de ser un número positiu amb o sense unitat de mesura vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).","invalidHtmlLength":"El valor especificat per als \"%1\" camps ha de ser un número positiu amb o sense unitat de mesura vàlida d'HTML (px o %).","invalidInlineStyle":"El valor especificat per l'estil en línia ha de constar d'una o més tuples amb el format \"name: value\", separats per punt i coma.","cssLengthTooltip":"Introduïu un número per un valor en píxels o un número amb una unitat vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/cs.js b/core/assets/vendor/ckeditor/lang/cs.js
index 2745d97..ec3d374 100644
--- a/core/assets/vendor/ckeditor/lang/cs.js
+++ b/core/assets/vendor/ckeditor/lang/cs.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['cs']={"widget":{"move":"Klepněte a táhněte pro přesunutí","label":"Ovládací prvek %1"},"undo":{"redo":"Znovu","undo":"Zpět"},"toolbar":{"toolbarCollapse":"Skrýt panel nástrojů","toolbarExpand":"Zobrazit panel nástrojů","toolbarGroups":{"document":"Dokument","clipboard":"Schránka/Zpět","editing":"Úpravy","forms":"Formuláře","basicstyles":"Základní styly","paragraph":"Odstavec","links":"Odkazy","insert":"Vložit","styles":"Styly","colors":"Barvy","tools":"Nástroje"},"toolbars":"Panely nástrojů editoru"},"table":{"border":"Ohraničení","caption":"Popis","cell":{"menu":"Buňka","insertBefore":"Vložit buňku před","insertAfter":"Vložit buňku za","deleteCell":"Smazat buňky","merge":"Sloučit buňky","mergeRight":"Sloučit doprava","mergeDown":"Sloučit dolů","splitHorizontal":"Rozdělit buňky vodorovně","splitVertical":"Rozdělit buňky svisle","title":"Vlastnosti buňky","cellType":"Typ buňky","rowSpan":"Spojit řádky","colSpan":"Spojit sloupce","wordWrap":"Zalamování","hAlign":"Vodorovné zarovnání","vAlign":"Svislé zarovnání","alignBaseline":"Na účaří","bgColor":"Barva pozadí","borderColor":"Barva okraje","data":"Data","header":"Hlavička","yes":"Ano","no":"Ne","invalidWidth":"Šířka buňky musí být číslo.","invalidHeight":"Zadaná výška buňky musí být číslená.","invalidRowSpan":"Zadaný počet sloučených řádků musí být celé číslo.","invalidColSpan":"Zadaný počet sloučených sloupců musí být celé číslo.","chooseColor":"Výběr"},"cellPad":"Odsazení obsahu v buňce","cellSpace":"Vzdálenost buněk","column":{"menu":"Sloupec","insertBefore":"Vložit sloupec před","insertAfter":"Vložit sloupec za","deleteColumn":"Smazat sloupec"},"columns":"Sloupce","deleteTable":"Smazat tabulku","headers":"Záhlaví","headersBoth":"Obojí","headersColumn":"První sloupec","headersNone":"Žádné","headersRow":"První řádek","invalidBorder":"Zdaná velikost okraje musí být číselná.","invalidCellPadding":"Zadané odsazení obsahu v buňce musí být číselné.","invalidCellSpacing":"Zadaná vzdálenost buněk musí být číselná.","invalidCols":"Počet sloupců musí být číslo větší než 0.","invalidHeight":"Zadaná výška tabulky musí být číselná.","invalidRows":"Počet řádků musí být číslo větší než 0.","invalidWidth":"Šířka tabulky musí být číslo.","menu":"Vlastnosti tabulky","row":{"menu":"Řádek","insertBefore":"Vložit řádek před","insertAfter":"Vložit řádek za","deleteRow":"Smazat řádky"},"rows":"Řádky","summary":"Souhrn","title":"Vlastnosti tabulky","toolbar":"Tabulka","widthPc":"procent","widthPx":"bodů","widthUnit":"jednotka šířky"},"stylescombo":{"label":"Styl","panelTitle":"Formátovací styly","panelTitle1":"Blokové styly","panelTitle2":"Řádkové styly","panelTitle3":"Objektové styly"},"specialchar":{"options":"Nastavení speciálních znaků","title":"Výběr speciálního znaku","toolbar":"Vložit speciální znaky"},"sourcedialog":{"toolbar":"Zdroj","title":"Zdroj"},"sourcearea":{"toolbar":"Zdroj"},"showblocks":{"toolbar":"Ukázat bloky"},"removeformat":{"toolbar":"Odstranit formátování"},"pastetext":{"button":"Vložit jako čistý text","title":"Vložit jako čistý text"},"pastefromword":{"confirmCleanup":"Jak je vidět, vkládaný text je kopírován z Wordu. Chcete jej před vložením vyčistit?","error":"Z důvodu vnitřní chyby nebylo možné provést vyčištění vkládaného textu.","title":"Vložit z Wordu","toolbar":"Vložit z Wordu"},"maximize":{"maximize":"Maximalizovat","minimize":"Minimalizovat"},"magicline":{"title":"zde vložit odstavec"},"list":{"bulletedlist":"Odrážky","numberedlist":"Číslování"},"language":{"button":"Nastavit jazyk","remove":"Odstranit jazyk"},"justify":{"block":"Zarovnat do bloku","center":"Zarovnat na střed","left":"Zarovnat vlevo","right":"Zarovnat vpravo"},"indent":{"indent":"Zvětšit odsazení","outdent":"Zmenšit odsazení"},"image2":{"alt":"Alternativní text","btnUpload":"Odeslat na server","captioned":"Obrázek s popisem","captionPlaceholder":"Popis","infoTab":"Informace o obrázku","lockRatio":"Zámek","menu":"Vlastnosti obrázku","pathName":"Obrázek","pathNameCaption":"Popis","resetSize":"Původní velikost","resizer":"Klepněte a táhněte pro změnu velikosti","title":"Vlastnosti obrázku","uploadTab":"Odeslat","urlMissing":"Zadané URL zdroje obrázku nebylo nalezeno."},"horizontalrule":{"toolbar":"Vložit vodorovnou linku"},"format":{"label":"Formát","panelTitle":"Formát","tag_address":"Adresa","tag_div":"Normální (DIV)","tag_h1":"Nadpis 1","tag_h2":"Nadpis 2","tag_h3":"Nadpis 3","tag_h4":"Nadpis 4","tag_h5":"Nadpis 5","tag_h6":"Nadpis 6","tag_p":"Normální","tag_pre":"Naformátováno"},"elementspath":{"eleLabel":"Cesta objektu","eleTitle":"%1 objekt"},"contextmenu":{"options":"Nastavení kontextové nabídky"},"clipboard":{"copy":"Kopírovat","copyError":"Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).","cut":"Vyjmout","cutError":"Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).","paste":"Vložit","pasteArea":"Oblast vkládání","pasteMsg":"Do následujícího pole vložte požadovaný obsah pomocí klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stiskněte <STRONG>OK</STRONG>.","securityMsg":"Z důvodů nastavení bezpečnosti vašeho prohlížeče nemůže editor přistupovat přímo do schránky. Obsah schránky prosím vložte znovu do tohoto okna.","title":"Vložit"},"button":{"selectedLabel":"%1 (Vybráno)"},"blockquote":{"toolbar":"Citace"},"basicstyles":{"bold":"Tučné","italic":"Kurzíva","strike":"Přeškrtnuté","subscript":"Dolní index","superscript":"Horní index","underline":"Podtržené"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"O aplikaci CKEditor","help":"Prohlédněte si $1 pro nápovědu.","moreInfo":"Pro informace o lincenci navštivte naši webovou stránku:","title":"O aplikaci CKEditor","userGuide":"Uživatelská příručka CKEditor"},"editor":"Textový editor","editorPanel":"Panel textového editoru","common":{"editorHelp":"Stiskněte ALT 0 pro nápovědu","browseServer":"Vybrat na serveru","url":"URL","protocol":"Protokol","upload":"Odeslat","uploadSubmit":"Odeslat na server","image":"Obrázek","flash":"Flash","form":"Formulář","checkbox":"Zaškrtávací políčko","radio":"Přepínač","textField":"Textové pole","textarea":"Textová oblast","hiddenField":"Skryté pole","button":"Tlačítko","select":"Seznam","imageButton":"Obrázkové tlačítko","notSet":"<nenastaveno>","id":"Id","name":"Jméno","langDir":"Směr jazyka","langDirLtr":"Zleva doprava (LTR)","langDirRtl":"Zprava doleva (RTL)","langCode":"Kód jazyka","longDescr":"Dlouhý popis URL","cssClass":"Třída stylu","advisoryTitle":"Pomocný titulek","cssStyle":"Styl","ok":"OK","cancel":"Zrušit","close":"Zavřít","preview":"Náhled","resize":"Uchopit pro změnu velikosti","generalTab":"Obecné","advancedTab":"Rozšířené","validateNumberFailed":"Zadaná hodnota není číselná.","confirmNewPage":"Jakékoliv neuložené změny obsahu budou ztraceny. Skutečně chcete otevřít novou stránku?","confirmCancel":"Některá z nastavení byla změněna. Skutečně chcete zavřít dialogové okno?","options":"Nastavení","target":"Cíl","targetNew":"Nové okno (_blank)","targetTop":"Okno nejvyšší úrovně (_top)","targetSelf":"Stejné okno (_self)","targetParent":"Rodičovské okno (_parent)","langDirLTR":"Zleva doprava (LTR)","langDirRTL":"Zprava doleva (RTL)","styles":"Styly","cssClasses":"Třídy stylů","width":"Šířka","height":"Výška","align":"Zarovnání","alignLeft":"Vlevo","alignRight":"Vpravo","alignCenter":"Na střed","alignJustify":"Zarovnat do bloku","alignTop":"Nahoru","alignMiddle":"Na střed","alignBottom":"Dolů","alignNone":"Žádné","invalidValue":"Neplatná hodnota.","invalidHeight":"Zadaná výška musí být číslo.","invalidWidth":"Šířka musí být číslo.","invalidCssLength":"Hodnota určená pro pole \"%1\" musí být kladné číslo bez nebo s platnou jednotkou míry CSS (px, %, in, cm, mm, em, ex, pt, nebo pc).","invalidHtmlLength":"Hodnota určená pro pole \"%1\" musí být kladné číslo bez nebo s platnou jednotkou míry HTML (px nebo %).","invalidInlineStyle":"Hodnota určená pro řádkový styl se musí skládat z jedné nebo více n-tic ve formátu \"název : hodnota\", oddělené středníky","cssLengthTooltip":"Zadejte číslo jako hodnotu v pixelech nebo číslo s platnou jednotkou CSS (px, %, v cm, mm, em, ex, pt, nebo pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupné</span>"}};
\ No newline at end of file
+CKEDITOR.lang['cs']={"widget":{"move":"Klepněte a táhněte pro přesunutí"},"undo":{"redo":"Znovu","undo":"Zpět"},"toolbar":{"toolbarCollapse":"Skrýt panel nástrojů","toolbarExpand":"Zobrazit panel nástrojů","toolbarGroups":{"document":"Dokument","clipboard":"Schránka/Zpět","editing":"Úpravy","forms":"Formuláře","basicstyles":"Základní styly","paragraph":"Odstavec","links":"Odkazy","insert":"Vložit","styles":"Styly","colors":"Barvy","tools":"Nástroje"},"toolbars":"Panely nástrojů editoru"},"table":{"border":"Ohraničení","caption":"Popis","cell":{"menu":"Buňka","insertBefore":"Vložit buňku před","insertAfter":"Vložit buňku za","deleteCell":"Smazat buňky","merge":"Sloučit buňky","mergeRight":"Sloučit doprava","mergeDown":"Sloučit dolů","splitHorizontal":"Rozdělit buňky vodorovně","splitVertical":"Rozdělit buňky svisle","title":"Vlastnosti buňky","cellType":"Typ buňky","rowSpan":"Spojit řádky","colSpan":"Spojit sloupce","wordWrap":"Zalamování","hAlign":"Vodorovné zarovnání","vAlign":"Svislé zarovnání","alignBaseline":"Na účaří","bgColor":"Barva pozadí","borderColor":"Barva okraje","data":"Data","header":"Hlavička","yes":"Ano","no":"Ne","invalidWidth":"Šířka buňky musí být číslo.","invalidHeight":"Zadaná výška buňky musí být číslená.","invalidRowSpan":"Zadaný počet sloučených řádků musí být celé číslo.","invalidColSpan":"Zadaný počet sloučených sloupců musí být celé číslo.","chooseColor":"Výběr"},"cellPad":"Odsazení obsahu v buňce","cellSpace":"Vzdálenost buněk","column":{"menu":"Sloupec","insertBefore":"Vložit sloupec před","insertAfter":"Vložit sloupec za","deleteColumn":"Smazat sloupec"},"columns":"Sloupce","deleteTable":"Smazat tabulku","headers":"Záhlaví","headersBoth":"Obojí","headersColumn":"První sloupec","headersNone":"Žádné","headersRow":"První řádek","invalidBorder":"Zdaná velikost okraje musí být číselná.","invalidCellPadding":"Zadané odsazení obsahu v buňce musí být číselné.","invalidCellSpacing":"Zadaná vzdálenost buněk musí být číselná.","invalidCols":"Počet sloupců musí být číslo větší než 0.","invalidHeight":"Zadaná výška tabulky musí být číselná.","invalidRows":"Počet řádků musí být číslo větší než 0.","invalidWidth":"Šířka tabulky musí být číslo.","menu":"Vlastnosti tabulky","row":{"menu":"Řádek","insertBefore":"Vložit řádek před","insertAfter":"Vložit řádek za","deleteRow":"Smazat řádky"},"rows":"Řádky","summary":"Souhrn","title":"Vlastnosti tabulky","toolbar":"Tabulka","widthPc":"procent","widthPx":"bodů","widthUnit":"jednotka šířky"},"stylescombo":{"label":"Styl","panelTitle":"Formátovací styly","panelTitle1":"Blokové styly","panelTitle2":"Řádkové styly","panelTitle3":"Objektové styly"},"specialchar":{"options":"Nastavení speciálních znaků","title":"Výběr speciálního znaku","toolbar":"Vložit speciální znaky"},"sourcedialog":{"toolbar":"Zdroj","title":"Zdroj"},"sourcearea":{"toolbar":"Zdroj"},"showblocks":{"toolbar":"Ukázat bloky"},"removeformat":{"toolbar":"Odstranit formátování"},"pastetext":{"button":"Vložit jako čistý text","title":"Vložit jako čistý text"},"pastefromword":{"confirmCleanup":"Jak je vidět, vkládaný text je kopírován z Wordu. Chcete jej před vložením vyčistit?","error":"Z důvodu vnitřní chyby nebylo možné provést vyčištění vkládaného textu.","title":"Vložit z Wordu","toolbar":"Vložit z Wordu"},"maximize":{"maximize":"Maximalizovat","minimize":"Minimalizovat"},"magicline":{"title":"zde vložit odstavec"},"list":{"bulletedlist":"Odrážky","numberedlist":"Číslování"},"language":{"button":"Nastavit jazyk","remove":"Odstranit jazyk"},"justify":{"block":"Zarovnat do bloku","center":"Zarovnat na střed","left":"Zarovnat vlevo","right":"Zarovnat vpravo"},"indent":{"indent":"Zvětšit odsazení","outdent":"Zmenšit odsazení"},"image2":{"alt":"Alternativní text","btnUpload":"Odeslat na server","captioned":"Obrázek s popisem","captionPlaceholder":"Popis","infoTab":"Informace o obrázku","lockRatio":"Zámek","menu":"Vlastnosti obrázku","pathName":"Obrázek","pathNameCaption":"Popis","resetSize":"Původní velikost","resizer":"Klepněte a táhněte pro změnu velikosti","title":"Vlastnosti obrázku","uploadTab":"Odeslat","urlMissing":"Zadané URL zdroje obrázku nebylo nalezeno."},"horizontalrule":{"toolbar":"Vložit vodorovnou linku"},"format":{"label":"Formát","panelTitle":"Formát","tag_address":"Adresa","tag_div":"Normální (DIV)","tag_h1":"Nadpis 1","tag_h2":"Nadpis 2","tag_h3":"Nadpis 3","tag_h4":"Nadpis 4","tag_h5":"Nadpis 5","tag_h6":"Nadpis 6","tag_p":"Normální","tag_pre":"Naformátováno"},"elementspath":{"eleLabel":"Cesta objektu","eleTitle":"%1 objekt"},"contextmenu":{"options":"Nastavení kontextové nabídky"},"clipboard":{"copy":"Kopírovat","copyError":"Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).","cut":"Vyjmout","cutError":"Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).","paste":"Vložit","pasteArea":"Oblast vkládání","pasteMsg":"Do následujícího pole vložte požadovaný obsah pomocí klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stiskněte <STRONG>OK</STRONG>.","securityMsg":"Z důvodů nastavení bezpečnosti vašeho prohlížeče nemůže editor přistupovat přímo do schránky. Obsah schránky prosím vložte znovu do tohoto okna.","title":"Vložit"},"button":{"selectedLabel":"%1 (Vybráno)"},"blockquote":{"toolbar":"Citace"},"basicstyles":{"bold":"Tučné","italic":"Kurzíva","strike":"Přeškrtnuté","subscript":"Dolní index","superscript":"Horní index","underline":"Podtržené"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"O aplikaci CKEditor","help":"Prohlédněte si $1 pro nápovědu.","moreInfo":"Pro informace o lincenci navštivte naši webovou stránku:","title":"O aplikaci CKEditor","userGuide":"Uživatelská příručka CKEditor"},"editor":"Textový editor","editorPanel":"Panel textového editoru","common":{"editorHelp":"Stiskněte ALT 0 pro nápovědu","browseServer":"Vybrat na serveru","url":"URL","protocol":"Protokol","upload":"Odeslat","uploadSubmit":"Odeslat na server","image":"Obrázek","flash":"Flash","form":"Formulář","checkbox":"Zaškrtávací políčko","radio":"Přepínač","textField":"Textové pole","textarea":"Textová oblast","hiddenField":"Skryté pole","button":"Tlačítko","select":"Seznam","imageButton":"Obrázkové tlačítko","notSet":"<nenastaveno>","id":"Id","name":"Jméno","langDir":"Směr jazyka","langDirLtr":"Zleva doprava (LTR)","langDirRtl":"Zprava doleva (RTL)","langCode":"Kód jazyka","longDescr":"Dlouhý popis URL","cssClass":"Třída stylu","advisoryTitle":"Pomocný titulek","cssStyle":"Styl","ok":"OK","cancel":"Zrušit","close":"Zavřít","preview":"Náhled","resize":"Uchopit pro změnu velikosti","generalTab":"Obecné","advancedTab":"Rozšířené","validateNumberFailed":"Zadaná hodnota není číselná.","confirmNewPage":"Jakékoliv neuložené změny obsahu budou ztraceny. Skutečně chcete otevřít novou stránku?","confirmCancel":"Některá z nastavení byla změněna. Skutečně chcete zavřít dialogové okno?","options":"Nastavení","target":"Cíl","targetNew":"Nové okno (_blank)","targetTop":"Okno nejvyšší úrovně (_top)","targetSelf":"Stejné okno (_self)","targetParent":"Rodičovské okno (_parent)","langDirLTR":"Zleva doprava (LTR)","langDirRTL":"Zprava doleva (RTL)","styles":"Styly","cssClasses":"Třídy stylů","width":"Šířka","height":"Výška","align":"Zarovnání","alignLeft":"Vlevo","alignRight":"Vpravo","alignCenter":"Na střed","alignJustify":"Zarovnat do bloku","alignTop":"Nahoru","alignMiddle":"Na střed","alignBottom":"Dolů","alignNone":"Žádné","invalidValue":"Neplatná hodnota.","invalidHeight":"Zadaná výška musí být číslo.","invalidWidth":"Šířka musí být číslo.","invalidCssLength":"Hodnota určená pro pole \"%1\" musí být kladné číslo bez nebo s platnou jednotkou míry CSS (px, %, in, cm, mm, em, ex, pt, nebo pc).","invalidHtmlLength":"Hodnota určená pro pole \"%1\" musí být kladné číslo bez nebo s platnou jednotkou míry HTML (px nebo %).","invalidInlineStyle":"Hodnota určená pro řádkový styl se musí skládat z jedné nebo více n-tic ve formátu \"název : hodnota\", oddělené středníky","cssLengthTooltip":"Zadejte číslo jako hodnotu v pixelech nebo číslo s platnou jednotkou CSS (px, %, v cm, mm, em, ex, pt, nebo pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupné</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/cy.js b/core/assets/vendor/ckeditor/lang/cy.js
index 487e3bf..d456bb4 100644
--- a/core/assets/vendor/ckeditor/lang/cy.js
+++ b/core/assets/vendor/ckeditor/lang/cy.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['cy']={"widget":{"move":"Clcio a llusgo i symud","label":"%1 widget"},"undo":{"redo":"Ailwneud","undo":"Dadwneud"},"toolbar":{"toolbarCollapse":"Cyfangu'r Bar Offer","toolbarExpand":"Ehangu'r Bar Offer","toolbarGroups":{"document":"Dogfen","clipboard":"Clipfwrdd/Dadwneud","editing":"Golygu","forms":"Ffurflenni","basicstyles":"Arddulliau Sylfaenol","paragraph":"Paragraff","links":"Dolenni","insert":"Mewnosod","styles":"Arddulliau","colors":"Lliwiau","tools":"Offer"},"toolbars":"Bariau offer y golygydd"},"table":{"border":"Maint yr Ymyl","caption":"Pennawd","cell":{"menu":"Cell","insertBefore":"Mewnosod Cell Cyn","insertAfter":"Mewnosod Cell Ar Ôl","deleteCell":"Dileu Celloedd","merge":"Cyfuno Celloedd","mergeRight":"Cyfuno i'r Dde","mergeDown":"Cyfuno i Lawr","splitHorizontal":"Hollti'r Gell yn Lorweddol","splitVertical":"Hollti'r Gell yn Fertigol","title":"Priodweddau'r Gell","cellType":"Math y Gell","rowSpan":"Rhychwant Rhesi","colSpan":"Rhychwant Colofnau","wordWrap":"Lapio Geiriau","hAlign":"Aliniad Llorweddol","vAlign":"Aliniad Fertigol","alignBaseline":"Baslinell","bgColor":"Lliw Cefndir","borderColor":"Lliw Ymyl","data":"Data","header":"Pennyn","yes":"Ie","no":"Na","invalidWidth":"Mae'n rhaid i led y gell fod yn rhif.","invalidHeight":"Mae'n rhaid i uchder y gell fod yn rhif.","invalidRowSpan":"Mae'n rhaid i rychwant y rhesi fod yn gyfanrif.","invalidColSpan":"Mae'n rhaid i rychwant y colofnau fod yn gyfanrif.","chooseColor":"Dewis"},"cellPad":"Padio'r gell","cellSpace":"Bylchiad y gell","column":{"menu":"Colofn","insertBefore":"Mewnosod Colofn Cyn","insertAfter":"Mewnosod Colofn Ar Ôl","deleteColumn":"Dileu Colofnau"},"columns":"Colofnau","deleteTable":"Dileu Tabl","headers":"Penynnau","headersBoth":"Y Ddau","headersColumn":"Colofn gyntaf","headersNone":"Dim","headersRow":"Rhes gyntaf","invalidBorder":"Mae'n rhaid i faint yr ymyl fod yn rhif.","invalidCellPadding":"Mae'n rhaid i badiad y gell fod yn rhif positif.","invalidCellSpacing":"Mae'n rhaid i fylchiad y gell fod yn rhif positif.","invalidCols":"Mae'n rhaid cael o leiaf un golofn.","invalidHeight":"Mae'n rhaid i uchder y tabl fod yn rhif.","invalidRows":"Mae'n rhaid cael o leiaf un rhes.","invalidWidth":"Mae'n rhaid i led y tabl fod yn rhif.","menu":"Priodweddau'r Tabl","row":{"menu":"Rhes","insertBefore":"Mewnosod Rhes Cyn","insertAfter":"Mewnosod Rhes Ar Ôl","deleteRow":"Dileu Rhesi"},"rows":"Rhesi","summary":"Crynodeb","title":"Priodweddau'r Tabl","toolbar":"Tabl","widthPc":"y cant","widthPx":"picsel","widthUnit":"uned lled"},"stylescombo":{"label":"Arddulliau","panelTitle":"Arddulliau Fformatio","panelTitle1":"Arddulliau Bloc","panelTitle2":"Arddulliau Mewnol","panelTitle3":"Arddulliau Gwrthrych"},"specialchar":{"options":"Opsiynau Nodau Arbennig","title":"Dewis Nod Arbennig","toolbar":"Mewnosod Nod Arbennig"},"sourcedialog":{"toolbar":"HTML","title":"HTML"},"sourcearea":{"toolbar":"HTML"},"showblocks":{"toolbar":"Dangos Blociau"},"removeformat":{"toolbar":"Tynnu Fformat"},"pastetext":{"button":"Gludo fel testun plaen","title":"Gludo fel Testun Plaen"},"pastefromword":{"confirmCleanup":"Mae'r testun rydych chi am ludo wedi'i gopïo o Word. Ydych chi am ei lanhau cyn ei ludo?","error":"Doedd dim modd glanhau y data a ludwyd oherwydd gwall mewnol","title":"Gludo o Word","toolbar":"Gludo o Word"},"maximize":{"maximize":"Mwyhau","minimize":"Lleihau"},"magicline":{"title":"Mewnosod paragraff yma"},"list":{"bulletedlist":"Mewnosod/Tynnu Rhestr Bwled","numberedlist":"Mewnosod/Tynnu Rhestr Rhifol"},"language":{"button":"Gosod iaith","remove":"Tynnu iaith"},"justify":{"block":"Unioni","center":"Alinio i'r Canol","left":"Alinio i'r Chwith","right":"Alinio i'r Dde"},"indent":{"indent":"Cynyddu'r Mewnoliad","outdent":"Lleihau'r Mewnoliad"},"image2":{"alt":"Testun Amgen","btnUpload":"Anfon i'r Gweinydd","captioned":"Delwedd â phennawd","captionPlaceholder":"Caption","infoTab":"Gwyb Delwedd","lockRatio":"Cloi Cymhareb","menu":"Priodweddau Delwedd","pathName":"delwedd","pathNameCaption":"pennawd","resetSize":"Ailosod Maint","resizer":"Clicio a llusgo i ail-meintio","title":"Priodweddau Delwedd","uploadTab":"Lanlwytho","urlMissing":"URL gwreiddiol y ddelwedd ar goll."},"horizontalrule":{"toolbar":"Mewnosod Llinell Lorweddol"},"format":{"label":"Fformat","panelTitle":"Fformat Paragraff","tag_address":"Cyfeiriad","tag_div":"Normal (DIV)","tag_h1":"Pennawd 1","tag_h2":"Pennawd 2","tag_h3":"Pennawd 3","tag_h4":"Pennawd 4","tag_h5":"Pennawd 5","tag_h6":"Pennawd 6","tag_p":"Normal","tag_pre":"Wedi'i Fformatio"},"elementspath":{"eleLabel":"Llwybr elfennau","eleTitle":"Elfen %1"},"contextmenu":{"options":"Opsiynau Dewislen Cyd-destun"},"clipboard":{"copy":"Copïo","copyError":"'Dyw gosodiadau diogelwch eich porwr ddim yn caniatàu'r golygydd i gynnal 'gweithredoedd copïo' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).","cut":"Torri","cutError":"Nid yw gosodiadau diogelwch eich porwr yn caniatàu'r golygydd i gynnal 'gweithredoedd torri' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).","paste":"Gludo","pasteArea":"Ardal Gludo","pasteMsg":"Gludwch i mewn i'r blwch canlynol gan ddefnyddio'r bysellfwrdd (<strong>Ctrl/Cmd+V</strong>) a phwyso <strong>Iawn</strong>.","securityMsg":"Oherwydd gosodiadau diogelwch eich porwr, 'dyw'r porwr ddim yn gallu ennill mynediad i'r data ar y clipfwrdd yn uniongyrchol. Mae angen i chi ei ludo eto i'r ffenestr hon.","title":"Gludo"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Dyfyniad bloc"},"basicstyles":{"bold":"Bras","italic":"Italig","strike":"Llinell Trwyddo","subscript":"Is-sgript","superscript":"Uwchsgript","underline":"Tanlinellu"},"about":{"copy":"Hawlfraint &copy; $1. Cedwir pob hawl.","dlgTitle":"Ynghylch CKEditor","help":"Gwirio $1 am gymorth.","moreInfo":"Am wybodaeth ynghylch trwyddedau, ewch i'n gwefan:","title":"Ynghylch CKEditor","userGuide":"Canllawiau Defnyddiwr CKEditor"},"editor":"Golygydd Testun Cyfoethog","editorPanel":"Panel Golygydd Testun Cyfoethog","common":{"editorHelp":"Gwasgwch ALT 0 am gymorth","browseServer":"Pori'r Gweinydd","url":"URL","protocol":"Protocol","upload":"Lanlwytho","uploadSubmit":"Anfon i'r Gweinydd","image":"Delwedd","flash":"Flash","form":"Ffurflen","checkbox":"Blwch ticio","radio":"Botwm Radio","textField":"Maes Testun","textarea":"Ardal Testun","hiddenField":"Maes Cudd","button":"Botwm","select":"Maes Dewis","imageButton":"Botwm Delwedd","notSet":"<heb osod>","id":"Id","name":"Name","langDir":"Cyfeiriad Iaith","langDirLtr":"Chwith i'r Dde (LTR)","langDirRtl":"Dde i'r Chwith (RTL)","langCode":"Cod Iaith","longDescr":"URL Disgrifiad Hir","cssClass":"Dosbarthiadau Dalen Arddull","advisoryTitle":"Teitl Cynghorol","cssStyle":"Arddull","ok":"Iawn","cancel":"Diddymu","close":"Cau","preview":"Rhagolwg","resize":"Ailfeintio","generalTab":"Cyffredinol","advancedTab":"Uwch","validateNumberFailed":"'Dyw'r gwerth hwn ddim yn rhif.","confirmNewPage":"Byddwch chi'n colli unrhyw newidiadau i'r cynnwys sydd heb eu cadw. Ydych am barhau i lwytho tudalen newydd?","confirmCancel":"Cafodd rhai o'r opsiynau eu newid. Ydych chi wir am gau'r deialog?","options":"Opsiynau","target":"Targed","targetNew":"Ffenest Newydd (_blank)","targetTop":"Ffenest ar y Brig (_top)","targetSelf":"Yr un Ffenest (_self)","targetParent":"Ffenest y Rhiant (_parent)","langDirLTR":"Chwith i'r Dde (LTR)","langDirRTL":"Dde i'r Chwith (RTL)","styles":"Arddull","cssClasses":"Dosbarthiadau Dalen Arddull","width":"Lled","height":"Uchder","align":"Alinio","alignLeft":"Chwith","alignRight":"Dde","alignCenter":"Canol","alignJustify":"Unioni","alignTop":"Brig","alignMiddle":"Canol","alignBottom":"Gwaelod","alignNone":"None","invalidValue":"Gwerth annilys.","invalidHeight":"Mae'n rhaid i'r uchder fod yn rhif.","invalidWidth":"Mae'n rhaid i'r lled fod yn rhif.","invalidCssLength":"Mae'n rhaid i'r gwerth ar gyfer maes \"%1\" fod yn rhif positif gyda neu heb uned fesuriad CSS dilys (px, %, in, cm, mm, em, ex, pt, neu pc).","invalidHtmlLength":"Mae'n rhaid i'r gwerth ar gyfer maes \"%1\" fod yn rhif positif gyda neu heb uned fesuriad HTML dilys (px neu %).","invalidInlineStyle":"Mae'n rhaid i'r gwerth ar gyfer arddull mewn-llinell gynnwys un set neu fwy ar y fformat \"enw : gwerth\", wedi'u gwahanu gyda hanner colon.","cssLengthTooltip":"Rhowch rif am werth mewn picsel neu rhif gydag uned CSS dilys (px, %, in, cm, mm, em, pt neu pc).","unavailable":"%1<span class=\"cke_accessibility\">, ddim ar gael</span>"}};
\ No newline at end of file
+CKEDITOR.lang['cy']={"widget":{"move":"Clcio a llusgo i symud"},"undo":{"redo":"Ailwneud","undo":"Dadwneud"},"toolbar":{"toolbarCollapse":"Cyfangu'r Bar Offer","toolbarExpand":"Ehangu'r Bar Offer","toolbarGroups":{"document":"Dogfen","clipboard":"Clipfwrdd/Dadwneud","editing":"Golygu","forms":"Ffurflenni","basicstyles":"Arddulliau Sylfaenol","paragraph":"Paragraff","links":"Dolenni","insert":"Mewnosod","styles":"Arddulliau","colors":"Lliwiau","tools":"Offer"},"toolbars":"Bariau offer y golygydd"},"table":{"border":"Maint yr Ymyl","caption":"Pennawd","cell":{"menu":"Cell","insertBefore":"Mewnosod Cell Cyn","insertAfter":"Mewnosod Cell Ar Ôl","deleteCell":"Dileu Celloedd","merge":"Cyfuno Celloedd","mergeRight":"Cyfuno i'r Dde","mergeDown":"Cyfuno i Lawr","splitHorizontal":"Hollti'r Gell yn Lorweddol","splitVertical":"Hollti'r Gell yn Fertigol","title":"Priodweddau'r Gell","cellType":"Math y Gell","rowSpan":"Rhychwant Rhesi","colSpan":"Rhychwant Colofnau","wordWrap":"Lapio Geiriau","hAlign":"Aliniad Llorweddol","vAlign":"Aliniad Fertigol","alignBaseline":"Baslinell","bgColor":"Lliw Cefndir","borderColor":"Lliw Ymyl","data":"Data","header":"Pennyn","yes":"Ie","no":"Na","invalidWidth":"Mae'n rhaid i led y gell fod yn rhif.","invalidHeight":"Mae'n rhaid i uchder y gell fod yn rhif.","invalidRowSpan":"Mae'n rhaid i rychwant y rhesi fod yn gyfanrif.","invalidColSpan":"Mae'n rhaid i rychwant y colofnau fod yn gyfanrif.","chooseColor":"Dewis"},"cellPad":"Padio'r gell","cellSpace":"Bylchiad y gell","column":{"menu":"Colofn","insertBefore":"Mewnosod Colofn Cyn","insertAfter":"Mewnosod Colofn Ar Ôl","deleteColumn":"Dileu Colofnau"},"columns":"Colofnau","deleteTable":"Dileu Tabl","headers":"Penynnau","headersBoth":"Y Ddau","headersColumn":"Colofn gyntaf","headersNone":"Dim","headersRow":"Rhes gyntaf","invalidBorder":"Mae'n rhaid i faint yr ymyl fod yn rhif.","invalidCellPadding":"Mae'n rhaid i badiad y gell fod yn rhif positif.","invalidCellSpacing":"Mae'n rhaid i fylchiad y gell fod yn rhif positif.","invalidCols":"Mae'n rhaid cael o leiaf un golofn.","invalidHeight":"Mae'n rhaid i uchder y tabl fod yn rhif.","invalidRows":"Mae'n rhaid cael o leiaf un rhes.","invalidWidth":"Mae'n rhaid i led y tabl fod yn rhif.","menu":"Priodweddau'r Tabl","row":{"menu":"Rhes","insertBefore":"Mewnosod Rhes Cyn","insertAfter":"Mewnosod Rhes Ar Ôl","deleteRow":"Dileu Rhesi"},"rows":"Rhesi","summary":"Crynodeb","title":"Priodweddau'r Tabl","toolbar":"Tabl","widthPc":"y cant","widthPx":"picsel","widthUnit":"uned lled"},"stylescombo":{"label":"Arddulliau","panelTitle":"Arddulliau Fformatio","panelTitle1":"Arddulliau Bloc","panelTitle2":"Arddulliau Mewnol","panelTitle3":"Arddulliau Gwrthrych"},"specialchar":{"options":"Opsiynau Nodau Arbennig","title":"Dewis Nod Arbennig","toolbar":"Mewnosod Nod Arbennig"},"sourcedialog":{"toolbar":"HTML","title":"HTML"},"sourcearea":{"toolbar":"HTML"},"showblocks":{"toolbar":"Dangos Blociau"},"removeformat":{"toolbar":"Tynnu Fformat"},"pastetext":{"button":"Gludo fel testun plaen","title":"Gludo fel Testun Plaen"},"pastefromword":{"confirmCleanup":"Mae'r testun rydych chi am ludo wedi'i gopïo o Word. Ydych chi am ei lanhau cyn ei ludo?","error":"Doedd dim modd glanhau y data a ludwyd oherwydd gwall mewnol","title":"Gludo o Word","toolbar":"Gludo o Word"},"maximize":{"maximize":"Mwyhau","minimize":"Lleihau"},"magicline":{"title":"Mewnosod paragraff yma"},"list":{"bulletedlist":"Mewnosod/Tynnu Rhestr Bwled","numberedlist":"Mewnosod/Tynnu Rhestr Rhifol"},"language":{"button":"Gosod iaith","remove":"Tynnu iaith"},"justify":{"block":"Unioni","center":"Alinio i'r Canol","left":"Alinio i'r Chwith","right":"Alinio i'r Dde"},"indent":{"indent":"Cynyddu'r Mewnoliad","outdent":"Lleihau'r Mewnoliad"},"image2":{"alt":"Testun Amgen","btnUpload":"Anfon i'r Gweinydd","captioned":"Delwedd â phennawd","captionPlaceholder":"Caption","infoTab":"Gwyb Delwedd","lockRatio":"Cloi Cymhareb","menu":"Priodweddau Delwedd","pathName":"delwedd","pathNameCaption":"pennawd","resetSize":"Ailosod Maint","resizer":"Clicio a llusgo i ail-meintio","title":"Priodweddau Delwedd","uploadTab":"Lanlwytho","urlMissing":"URL gwreiddiol y ddelwedd ar goll."},"horizontalrule":{"toolbar":"Mewnosod Llinell Lorweddol"},"format":{"label":"Fformat","panelTitle":"Fformat Paragraff","tag_address":"Cyfeiriad","tag_div":"Normal (DIV)","tag_h1":"Pennawd 1","tag_h2":"Pennawd 2","tag_h3":"Pennawd 3","tag_h4":"Pennawd 4","tag_h5":"Pennawd 5","tag_h6":"Pennawd 6","tag_p":"Normal","tag_pre":"Wedi'i Fformatio"},"elementspath":{"eleLabel":"Llwybr elfennau","eleTitle":"Elfen %1"},"contextmenu":{"options":"Opsiynau Dewislen Cyd-destun"},"clipboard":{"copy":"Copïo","copyError":"'Dyw gosodiadau diogelwch eich porwr ddim yn caniatàu'r golygydd i gynnal 'gweithredoedd copïo' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).","cut":"Torri","cutError":"Nid yw gosodiadau diogelwch eich porwr yn caniatàu'r golygydd i gynnal 'gweithredoedd torri' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).","paste":"Gludo","pasteArea":"Ardal Gludo","pasteMsg":"Gludwch i mewn i'r blwch canlynol gan ddefnyddio'r bysellfwrdd (<strong>Ctrl/Cmd+V</strong>) a phwyso <strong>Iawn</strong>.","securityMsg":"Oherwydd gosodiadau diogelwch eich porwr, 'dyw'r porwr ddim yn gallu ennill mynediad i'r data ar y clipfwrdd yn uniongyrchol. Mae angen i chi ei ludo eto i'r ffenestr hon.","title":"Gludo"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Dyfyniad bloc"},"basicstyles":{"bold":"Bras","italic":"Italig","strike":"Llinell Trwyddo","subscript":"Is-sgript","superscript":"Uwchsgript","underline":"Tanlinellu"},"about":{"copy":"Hawlfraint &copy; $1. Cedwir pob hawl.","dlgTitle":"Ynghylch CKEditor","help":"Gwirio $1 am gymorth.","moreInfo":"Am wybodaeth ynghylch trwyddedau, ewch i'n gwefan:","title":"Ynghylch CKEditor","userGuide":"Canllawiau Defnyddiwr CKEditor"},"editor":"Golygydd Testun Cyfoethog","editorPanel":"Panel Golygydd Testun Cyfoethog","common":{"editorHelp":"Gwasgwch ALT 0 am gymorth","browseServer":"Pori'r Gweinydd","url":"URL","protocol":"Protocol","upload":"Lanlwytho","uploadSubmit":"Anfon i'r Gweinydd","image":"Delwedd","flash":"Flash","form":"Ffurflen","checkbox":"Blwch ticio","radio":"Botwm Radio","textField":"Maes Testun","textarea":"Ardal Testun","hiddenField":"Maes Cudd","button":"Botwm","select":"Maes Dewis","imageButton":"Botwm Delwedd","notSet":"<heb osod>","id":"Id","name":"Name","langDir":"Cyfeiriad Iaith","langDirLtr":"Chwith i'r Dde (LTR)","langDirRtl":"Dde i'r Chwith (RTL)","langCode":"Cod Iaith","longDescr":"URL Disgrifiad Hir","cssClass":"Dosbarthiadau Dalen Arddull","advisoryTitle":"Teitl Cynghorol","cssStyle":"Arddull","ok":"Iawn","cancel":"Diddymu","close":"Cau","preview":"Rhagolwg","resize":"Ailfeintio","generalTab":"Cyffredinol","advancedTab":"Uwch","validateNumberFailed":"'Dyw'r gwerth hwn ddim yn rhif.","confirmNewPage":"Byddwch chi'n colli unrhyw newidiadau i'r cynnwys sydd heb eu cadw. Ydych am barhau i lwytho tudalen newydd?","confirmCancel":"Cafodd rhai o'r opsiynau eu newid. Ydych chi wir am gau'r deialog?","options":"Opsiynau","target":"Targed","targetNew":"Ffenest Newydd (_blank)","targetTop":"Ffenest ar y Brig (_top)","targetSelf":"Yr un Ffenest (_self)","targetParent":"Ffenest y Rhiant (_parent)","langDirLTR":"Chwith i'r Dde (LTR)","langDirRTL":"Dde i'r Chwith (RTL)","styles":"Arddull","cssClasses":"Dosbarthiadau Dalen Arddull","width":"Lled","height":"Uchder","align":"Alinio","alignLeft":"Chwith","alignRight":"Dde","alignCenter":"Canol","alignJustify":"Unioni","alignTop":"Brig","alignMiddle":"Canol","alignBottom":"Gwaelod","alignNone":"None","invalidValue":"Gwerth annilys.","invalidHeight":"Mae'n rhaid i'r uchder fod yn rhif.","invalidWidth":"Mae'n rhaid i'r lled fod yn rhif.","invalidCssLength":"Mae'n rhaid i'r gwerth ar gyfer maes \"%1\" fod yn rhif positif gyda neu heb uned fesuriad CSS dilys (px, %, in, cm, mm, em, ex, pt, neu pc).","invalidHtmlLength":"Mae'n rhaid i'r gwerth ar gyfer maes \"%1\" fod yn rhif positif gyda neu heb uned fesuriad HTML dilys (px neu %).","invalidInlineStyle":"Mae'n rhaid i'r gwerth ar gyfer arddull mewn-llinell gynnwys un set neu fwy ar y fformat \"enw : gwerth\", wedi'u gwahanu gyda hanner colon.","cssLengthTooltip":"Rhowch rif am werth mewn picsel neu rhif gydag uned CSS dilys (px, %, in, cm, mm, em, pt neu pc).","unavailable":"%1<span class=\"cke_accessibility\">, ddim ar gael</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/da.js b/core/assets/vendor/ckeditor/lang/da.js
index c6434e7..10a3e7c 100644
--- a/core/assets/vendor/ckeditor/lang/da.js
+++ b/core/assets/vendor/ckeditor/lang/da.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['da']={"widget":{"move":"Klik og træk for at flytte","label":"%1 widget"},"undo":{"redo":"Annullér fortryd","undo":"Fortryd"},"toolbar":{"toolbarCollapse":"Sammenklap værktøjslinje","toolbarExpand":"Udvid værktøjslinje","toolbarGroups":{"document":"Dokument","clipboard":"Udklipsholder/Fortryd","editing":"Redigering","forms":"Formularer","basicstyles":"Basis styles","paragraph":"Paragraf","links":"Links","insert":"Indsæt","styles":"Typografier","colors":"Farver","tools":"Værktøjer"},"toolbars":"Editors værktøjslinjer"},"table":{"border":"Rammebredde","caption":"Titel","cell":{"menu":"Celle","insertBefore":"Indsæt celle før","insertAfter":"Indsæt celle efter","deleteCell":"Slet celle","merge":"Flet celler","mergeRight":"Flet til højre","mergeDown":"Flet nedad","splitHorizontal":"Del celle vandret","splitVertical":"Del celle lodret","title":"Celleegenskaber","cellType":"Celletype","rowSpan":"Række span (rows span)","colSpan":"Kolonne span (columns span)","wordWrap":"Tekstombrydning","hAlign":"Vandret justering","vAlign":"Lodret justering","alignBaseline":"Grundlinje","bgColor":"Baggrundsfarve","borderColor":"Rammefarve","data":"Data","header":"Hoved","yes":"Ja","no":"Nej","invalidWidth":"Cellebredde skal være et tal.","invalidHeight":"Cellehøjde skal være et tal.","invalidRowSpan":"Række span skal være et heltal.","invalidColSpan":"Kolonne span skal være et heltal.","chooseColor":"Vælg"},"cellPad":"Cellemargen","cellSpace":"Celleafstand","column":{"menu":"Kolonne","insertBefore":"Indsæt kolonne før","insertAfter":"Indsæt kolonne efter","deleteColumn":"Slet kolonne"},"columns":"Kolonner","deleteTable":"Slet tabel","headers":"Hoved","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første række","invalidBorder":"Rammetykkelse skal være et tal.","invalidCellPadding":"Cellemargen skal være et tal.","invalidCellSpacing":"Celleafstand skal være et tal.","invalidCols":"Antallet af kolonner skal være større end 0.","invalidHeight":"Tabelhøjde skal være et tal.","invalidRows":"Antallet af rækker skal være større end 0.","invalidWidth":"Tabelbredde skal være et tal.","menu":"Egenskaber for tabel","row":{"menu":"Række","insertBefore":"Indsæt række før","insertAfter":"Indsæt række efter","deleteRow":"Slet række"},"rows":"Rækker","summary":"Resumé","title":"Egenskaber for tabel","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"Bredde på enhed"},"stylescombo":{"label":"Typografi","panelTitle":"Formattering på stylesheet","panelTitle1":"Block typografi","panelTitle2":"Inline typografi","panelTitle3":"Object typografi"},"specialchar":{"options":"Muligheder for specialkarakterer","title":"Vælg symbol","toolbar":"Indsæt symbol"},"sourcedialog":{"toolbar":"Kilde","title":"Kilde"},"sourcearea":{"toolbar":"Kilde"},"showblocks":{"toolbar":"Vis afsnitsmærker"},"removeformat":{"toolbar":"Fjern formatering"},"pastetext":{"button":"Indsæt som ikke-formateret tekst","title":"Indsæt som ikke-formateret tekst"},"pastefromword":{"confirmCleanup":"Den tekst du forsøger at indsætte ser ud til at komme fra Word. Vil du rense teksten før den indsættes?","error":"Det var ikke muligt at fjerne formatteringen på den indsatte tekst grundet en intern fejl","title":"Indsæt fra Word","toolbar":"Indsæt fra Word"},"maximize":{"maximize":"Maksimér","minimize":"Minimér"},"magicline":{"title":"Indsæt afsnit"},"list":{"bulletedlist":"Punktopstilling","numberedlist":"Talopstilling"},"language":{"button":"Vælg sprog","remove":"Fjern sprog"},"justify":{"block":"Lige margener","center":"Centreret","left":"Venstrestillet","right":"Højrestillet"},"indent":{"indent":"Forøg indrykning","outdent":"Formindsk indrykning"},"image2":{"alt":"Alternativ tekst","btnUpload":"Upload fil til serveren","captioned":"Tekstet billede","captionPlaceholder":"Tekst","infoTab":"Generelt","lockRatio":"Lås størrelsesforhold","menu":"Egenskaber for billede","pathName":"billede","pathNameCaption":"tekst","resetSize":"Nulstil størrelse","resizer":"Klik og træk for at ændre størrelsen","title":"Egenskaber for billede","uploadTab":"Upload","urlMissing":"Kilde på billed-URL mangler"},"horizontalrule":{"toolbar":"Indsæt vandret streg"},"format":{"label":"Formatering","panelTitle":"Formatering","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formateret"},"elementspath":{"eleLabel":"Sti på element","eleTitle":"%1 element"},"contextmenu":{"options":"Muligheder for hjælpemenu"},"clipboard":{"copy":"Kopiér","copyError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).","cut":"Klip","cutError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).","paste":"Indsæt","pasteArea":"Indsæt område","pasteMsg":"Indsæt i feltet herunder (<STRONG>Ctrl/Cmd+V</STRONG>) og klik på <STRONG>OK</STRONG>.","securityMsg":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Du skal indsætte udklipsholderens indhold i dette vindue igen.","title":"Indsæt"},"button":{"selectedLabel":"%1 (Valgt)"},"blockquote":{"toolbar":"Blokcitat"},"basicstyles":{"bold":"Fed","italic":"Kursiv","strike":"Gennemstreget","subscript":"Sænket skrift","superscript":"Hævet skrift","underline":"Understreget"},"about":{"copy":"Copyright &copy; $1. Alle rettigheder forbeholdes.","dlgTitle":"Om CKEditor","help":"Se $1 for at få hjælp.","moreInfo":"For informationer omkring licens, se venligst vores hjemmeside (på engelsk):","title":"Om CKEditor","userGuide":"CKEditor-brugermanual"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Tryk ALT 0 for hjælp","browseServer":"Gennemse...","url":"URL","protocol":"Protokol","upload":"Upload","uploadSubmit":"Upload","image":"Indsæt billede","flash":"Indsæt Flash","form":"Indsæt formular","checkbox":"Indsæt afkrydsningsfelt","radio":"Indsæt alternativknap","textField":"Indsæt tekstfelt","textarea":"Indsæt tekstboks","hiddenField":"Indsæt skjult felt","button":"Indsæt knap","select":"Indsæt liste","imageButton":"Indsæt billedknap","notSet":"<intet valgt>","id":"Id","name":"Navn","langDir":"Tekstretning","langDirLtr":"Fra venstre mod højre (LTR)","langDirRtl":"Fra højre mod venstre (RTL)","langCode":"Sprogkode","longDescr":"Udvidet beskrivelse","cssClass":"Typografiark (CSS)","advisoryTitle":"Titel","cssStyle":"Typografi (CSS)","ok":"OK","cancel":"Annullér","close":"Luk","preview":"Forhåndsvisning","resize":"Træk for at skalere","generalTab":"Generelt","advancedTab":"Avanceret","validateNumberFailed":"Værdien er ikke et tal.","confirmNewPage":"Alt indhold, der ikke er blevet gemt, vil gå tabt. Er du sikker på, at du vil indlæse en ny side?","confirmCancel":"Nogle af indstillingerne er blevet ændret. Er du sikker på, at du vil lukke vinduet?","options":"Vis muligheder","target":"Mål","targetNew":"Nyt vindue (_blank)","targetTop":"Øverste vindue (_top)","targetSelf":"Samme vindue (_self)","targetParent":"Samme vindue (_parent)","langDirLTR":"Venstre til højre (LTR)","langDirRTL":"Højre til venstre (RTL)","styles":"Style","cssClasses":"Stylesheetklasser","width":"Bredde","height":"Højde","align":"Justering","alignLeft":"Venstre","alignRight":"Højre","alignCenter":"Centreret","alignJustify":"Lige margener","alignTop":"Øverst","alignMiddle":"Centreret","alignBottom":"Nederst","alignNone":"Ingen","invalidValue":"Ugyldig værdi.","invalidHeight":"Højde skal være et tal.","invalidWidth":"Bredde skal være et tal.","invalidCssLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS måleenhed  (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS måleenhed  (px eller %).","invalidInlineStyle":"Værdien specificeret for inline style skal indeholde en eller flere elementer med et format som \"name:value\", separeret af semikoloner","cssLengthTooltip":"Indsæt en numerisk værdi i pixel eller nummer med en gyldig CSS værdi (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikke tilgængelig</span>"}};
\ No newline at end of file
+CKEDITOR.lang['da']={"widget":{"move":"Klik og træk for at flytte"},"undo":{"redo":"Annullér fortryd","undo":"Fortryd"},"toolbar":{"toolbarCollapse":"Sammenklap værktøjslinje","toolbarExpand":"Udvid værktøjslinje","toolbarGroups":{"document":"Dokument","clipboard":"Udklipsholder/Fortryd","editing":"Redigering","forms":"Formularer","basicstyles":"Basis styles","paragraph":"Paragraf","links":"Links","insert":"Indsæt","styles":"Typografier","colors":"Farver","tools":"Værktøjer"},"toolbars":"Editors værktøjslinjer"},"table":{"border":"Rammebredde","caption":"Titel","cell":{"menu":"Celle","insertBefore":"Indsæt celle før","insertAfter":"Indsæt celle efter","deleteCell":"Slet celle","merge":"Flet celler","mergeRight":"Flet til højre","mergeDown":"Flet nedad","splitHorizontal":"Del celle vandret","splitVertical":"Del celle lodret","title":"Celleegenskaber","cellType":"Celletype","rowSpan":"Række span (rows span)","colSpan":"Kolonne span (columns span)","wordWrap":"Tekstombrydning","hAlign":"Vandret justering","vAlign":"Lodret justering","alignBaseline":"Grundlinje","bgColor":"Baggrundsfarve","borderColor":"Rammefarve","data":"Data","header":"Hoved","yes":"Ja","no":"Nej","invalidWidth":"Cellebredde skal være et tal.","invalidHeight":"Cellehøjde skal være et tal.","invalidRowSpan":"Række span skal være et heltal.","invalidColSpan":"Kolonne span skal være et heltal.","chooseColor":"Vælg"},"cellPad":"Cellemargen","cellSpace":"Celleafstand","column":{"menu":"Kolonne","insertBefore":"Indsæt kolonne før","insertAfter":"Indsæt kolonne efter","deleteColumn":"Slet kolonne"},"columns":"Kolonner","deleteTable":"Slet tabel","headers":"Hoved","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første række","invalidBorder":"Rammetykkelse skal være et tal.","invalidCellPadding":"Cellemargen skal være et tal.","invalidCellSpacing":"Celleafstand skal være et tal.","invalidCols":"Antallet af kolonner skal være større end 0.","invalidHeight":"Tabelhøjde skal være et tal.","invalidRows":"Antallet af rækker skal være større end 0.","invalidWidth":"Tabelbredde skal være et tal.","menu":"Egenskaber for tabel","row":{"menu":"Række","insertBefore":"Indsæt række før","insertAfter":"Indsæt række efter","deleteRow":"Slet række"},"rows":"Rækker","summary":"Resumé","title":"Egenskaber for tabel","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"Bredde på enhed"},"stylescombo":{"label":"Typografi","panelTitle":"Formattering på stylesheet","panelTitle1":"Block typografi","panelTitle2":"Inline typografi","panelTitle3":"Object typografi"},"specialchar":{"options":"Muligheder for specialkarakterer","title":"Vælg symbol","toolbar":"Indsæt symbol"},"sourcedialog":{"toolbar":"Kilde","title":"Kilde"},"sourcearea":{"toolbar":"Kilde"},"showblocks":{"toolbar":"Vis afsnitsmærker"},"removeformat":{"toolbar":"Fjern formatering"},"pastetext":{"button":"Indsæt som ikke-formateret tekst","title":"Indsæt som ikke-formateret tekst"},"pastefromword":{"confirmCleanup":"Den tekst du forsøger at indsætte ser ud til at komme fra Word. Vil du rense teksten før den indsættes?","error":"Det var ikke muligt at fjerne formatteringen på den indsatte tekst grundet en intern fejl","title":"Indsæt fra Word","toolbar":"Indsæt fra Word"},"maximize":{"maximize":"Maksimér","minimize":"Minimér"},"magicline":{"title":"Indsæt afsnit"},"list":{"bulletedlist":"Punktopstilling","numberedlist":"Talopstilling"},"language":{"button":"Vælg sprog","remove":"Fjern sprog"},"justify":{"block":"Lige margener","center":"Centreret","left":"Venstrestillet","right":"Højrestillet"},"indent":{"indent":"Forøg indrykning","outdent":"Formindsk indrykning"},"image2":{"alt":"Alternativ tekst","btnUpload":"Upload fil til serveren","captioned":"Tekstet billede","captionPlaceholder":"Tekst","infoTab":"Generelt","lockRatio":"Lås størrelsesforhold","menu":"Egenskaber for billede","pathName":"billede","pathNameCaption":"tekst","resetSize":"Nulstil størrelse","resizer":"Klik og træk for at ændre størrelsen","title":"Egenskaber for billede","uploadTab":"Upload","urlMissing":"Kilde på billed-URL mangler"},"horizontalrule":{"toolbar":"Indsæt vandret streg"},"format":{"label":"Formatering","panelTitle":"Formatering","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formateret"},"elementspath":{"eleLabel":"Sti på element","eleTitle":"%1 element"},"contextmenu":{"options":"Muligheder for hjælpemenu"},"clipboard":{"copy":"Kopiér","copyError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).","cut":"Klip","cutError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).","paste":"Indsæt","pasteArea":"Indsæt område","pasteMsg":"Indsæt i feltet herunder (<STRONG>Ctrl/Cmd+V</STRONG>) og klik på <STRONG>OK</STRONG>.","securityMsg":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Du skal indsætte udklipsholderens indhold i dette vindue igen.","title":"Indsæt"},"button":{"selectedLabel":"%1 (Valgt)"},"blockquote":{"toolbar":"Blokcitat"},"basicstyles":{"bold":"Fed","italic":"Kursiv","strike":"Gennemstreget","subscript":"Sænket skrift","superscript":"Hævet skrift","underline":"Understreget"},"about":{"copy":"Copyright &copy; $1. Alle rettigheder forbeholdes.","dlgTitle":"Om CKEditor","help":"Se $1 for at få hjælp.","moreInfo":"For informationer omkring licens, se venligst vores hjemmeside (på engelsk):","title":"Om CKEditor","userGuide":"CKEditor-brugermanual"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Tryk ALT 0 for hjælp","browseServer":"Gennemse...","url":"URL","protocol":"Protokol","upload":"Upload","uploadSubmit":"Upload","image":"Indsæt billede","flash":"Indsæt Flash","form":"Indsæt formular","checkbox":"Indsæt afkrydsningsfelt","radio":"Indsæt alternativknap","textField":"Indsæt tekstfelt","textarea":"Indsæt tekstboks","hiddenField":"Indsæt skjult felt","button":"Indsæt knap","select":"Indsæt liste","imageButton":"Indsæt billedknap","notSet":"<intet valgt>","id":"Id","name":"Navn","langDir":"Tekstretning","langDirLtr":"Fra venstre mod højre (LTR)","langDirRtl":"Fra højre mod venstre (RTL)","langCode":"Sprogkode","longDescr":"Udvidet beskrivelse","cssClass":"Typografiark (CSS)","advisoryTitle":"Titel","cssStyle":"Typografi (CSS)","ok":"OK","cancel":"Annullér","close":"Luk","preview":"Forhåndsvisning","resize":"Træk for at skalere","generalTab":"Generelt","advancedTab":"Avanceret","validateNumberFailed":"Værdien er ikke et tal.","confirmNewPage":"Alt indhold, der ikke er blevet gemt, vil gå tabt. Er du sikker på, at du vil indlæse en ny side?","confirmCancel":"Nogle af indstillingerne er blevet ændret. Er du sikker på, at du vil lukke vinduet?","options":"Vis muligheder","target":"Mål","targetNew":"Nyt vindue (_blank)","targetTop":"Øverste vindue (_top)","targetSelf":"Samme vindue (_self)","targetParent":"Samme vindue (_parent)","langDirLTR":"Venstre til højre (LTR)","langDirRTL":"Højre til venstre (RTL)","styles":"Style","cssClasses":"Stylesheetklasser","width":"Bredde","height":"Højde","align":"Justering","alignLeft":"Venstre","alignRight":"Højre","alignCenter":"Centreret","alignJustify":"Lige margener","alignTop":"Øverst","alignMiddle":"Centreret","alignBottom":"Nederst","alignNone":"Ingen","invalidValue":"Ugyldig værdi.","invalidHeight":"Højde skal være et tal.","invalidWidth":"Bredde skal være et tal.","invalidCssLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS måleenhed  (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS måleenhed  (px eller %).","invalidInlineStyle":"Værdien specificeret for inline style skal indeholde en eller flere elementer med et format som \"name:value\", separeret af semikoloner","cssLengthTooltip":"Indsæt en numerisk værdi i pixel eller nummer med en gyldig CSS værdi (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikke tilgængelig</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/de-ch.js b/core/assets/vendor/ckeditor/lang/de-ch.js
index bf60eaa..9e68381 100644
--- a/core/assets/vendor/ckeditor/lang/de-ch.js
+++ b/core/assets/vendor/ckeditor/lang/de-ch.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['de-ch']={"widget":{"move":"Zum Verschieben anwählen und ziehen","label":"%1 widget"},"undo":{"redo":"Wiederherstellen","undo":"Rückgängig"},"toolbar":{"toolbarCollapse":"Werkzeugleiste einklappen","toolbarExpand":"Werkzeugleiste ausklappen","toolbarGroups":{"document":"Dokument","clipboard":"Zwischenablage/Rückgängig","editing":"Editieren","forms":"Formulare","basicstyles":"Grundstile","paragraph":"Absatz","links":"Links","insert":"Einfügen","styles":"Stile","colors":"Farben","tools":"Werkzeuge"},"toolbars":"Editor Werkzeugleisten"},"table":{"border":"Rahmengrösse","caption":"Überschrift","cell":{"menu":"Zelle","insertBefore":"Zelle davor einfügen","insertAfter":"Zelle danach einfügen","deleteCell":"Zelle löschen","merge":"Zellen verbinden","mergeRight":"Nach rechts verbinden","mergeDown":"Nach unten verbinden","splitHorizontal":"Zelle horizontal teilen","splitVertical":"Zelle vertikal teilen","title":"Zelleneigenschaften","cellType":"Zellart","rowSpan":"Anzahl Zeilen verbinden","colSpan":"Anzahl Spalten verbinden","wordWrap":"Zeilenumbruch","hAlign":"Horizontale Ausrichtung","vAlign":"Vertikale Ausrichtung","alignBaseline":"Grundlinie","bgColor":"Hintergrundfarbe","borderColor":"Rahmenfarbe","data":"Daten","header":"Überschrift","yes":"Ja","no":"Nein","invalidWidth":"Zellenbreite muss eine Zahl sein.","invalidHeight":"Zellenhöhe muss eine Zahl sein.","invalidRowSpan":"\"Anzahl Zeilen verbinden\" muss eine Ganzzahl sein.","invalidColSpan":"\"Anzahl Spalten verbinden\" muss eine Ganzzahl sein.","chooseColor":"Wählen"},"cellPad":"Zellenabstand innen","cellSpace":"Zellenabstand aussen","column":{"menu":"Spalte","insertBefore":"Spalte links davor einfügen","insertAfter":"Spalte rechts danach einfügen","deleteColumn":"Spalte löschen"},"columns":"Spalte","deleteTable":"Tabelle löschen","headers":"Kopfzeile","headersBoth":"Beide","headersColumn":"Erste Spalte","headersNone":"Keine","headersRow":"Erste Zeile","invalidBorder":"Die Rahmenbreite muss eine Zahl sein.","invalidCellPadding":"Der Zellenabstand innen muss eine positive Zahl sein.","invalidCellSpacing":"Der Zellenabstand aussen muss eine positive Zahl sein.","invalidCols":"Die Anzahl der Spalten muß grösser als 0 sein..","invalidHeight":"Die Tabellenbreite muss eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muß grösser als 0 sein.","invalidWidth":"Die Tabellenbreite muss eine Zahl sein.","menu":"Tabellen-Eigenschaften","row":{"menu":"Zeile","insertBefore":"Zeile oberhalb einfügen","insertAfter":"Zeile unterhalb einfügen","deleteRow":"Zeile entfernen"},"rows":"Zeile","summary":"Inhaltsübersicht","title":"Tabellen-Eigenschaften","toolbar":"Tabelle","widthPc":"%","widthPx":"Pixel","widthUnit":"Breite Einheit"},"stylescombo":{"label":"Stil","panelTitle":"Formatierungsstile","panelTitle1":"Blockstile","panelTitle2":"Inline Stilart","panelTitle3":"Objektstile"},"specialchar":{"options":"Sonderzeichenoptionen","title":"Sonderzeichen auswählen","toolbar":"Sonderzeichen einfügen"},"sourcedialog":{"toolbar":"Quellcode","title":"Quellcode"},"sourcearea":{"toolbar":"Quellcode"},"showblocks":{"toolbar":"Blöcke anzeigen"},"removeformat":{"toolbar":"Formatierung entfernen"},"pastetext":{"button":"Als Klartext einfügen","title":"Als Klartext einfügen"},"pastefromword":{"confirmCleanup":"Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?","error":"Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen","title":"Aus Word einfügen","toolbar":"Aus Word einfügen"},"maximize":{"maximize":"Maximieren","minimize":"Minimieren"},"magicline":{"title":"Absatz hier einfügen"},"list":{"bulletedlist":"Liste","numberedlist":"Nummerierte Liste einfügen/entfernen"},"language":{"button":"Sprache festlegen","remove":"Sprache entfernen"},"justify":{"block":"Blocksatz","center":"Zentriert","left":"Linksbündig","right":"Rechtsbündig"},"indent":{"indent":"Einzug erhöhen","outdent":"Einzug verringern"},"image2":{"alt":"Alternativer Text","btnUpload":"Zum Server senden","captioned":"Bild mit Überschrift","captionPlaceholder":"Überschrift","infoTab":"Bildinfo","lockRatio":"Größenverhältnis beibehalten","menu":"Bildeigenschaften","pathName":"Bild","pathNameCaption":"Überschrift","resetSize":"Grösse zurücksetzen","resizer":"Zum Vergrössern auswählen und ziehen","title":"Bild-Eigenschaften","uploadTab":"Hochladen","urlMissing":"Bildquellen-URL fehlt."},"horizontalrule":{"toolbar":"Horizontale Linie einfügen"},"format":{"label":"Format","panelTitle":"Absatzformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Überschrift 1","tag_h2":"Überschrift 2","tag_h3":"Überschrift 3","tag_h4":"Überschrift 4","tag_h5":"Überschrift 5","tag_h6":"Überschrift 6","tag_p":"Normal","tag_pre":"Formatiert"},"elementspath":{"eleLabel":"Elementepfad","eleTitle":"%1 Element"},"contextmenu":{"options":"Kontextmenüoptionen"},"clipboard":{"copy":"Kopieren","copyError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).","cut":"Ausschneiden","cutError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).","paste":"Einfügen","pasteArea":"Einfügebereich","pasteMsg":"Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.","securityMsg":"Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.","title":"Einfügen"},"button":{"selectedLabel":"%1 (Ausgewählt)"},"blockquote":{"toolbar":"Zitatblock"},"basicstyles":{"bold":"Fett","italic":"Kursiv","strike":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen"},"about":{"copy":"Copyright &copy; $1. Alle Rechte vorbehalten.","dlgTitle":"Über CKEditor","help":"Prüfen Sie $1 für Hilfe.","moreInfo":"Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:","title":"Über CKEditor","userGuide":"CKEditor Benutzerhandbuch"},"editor":"WYSIWYG-Editor","editorPanel":"WYSIWYG-Editor-Leiste","common":{"editorHelp":"Drücken Sie ALT 0 für Hilfe","browseServer":"Server durchsuchen","url":"URL","protocol":"Protokoll","upload":"Hochladen","uploadSubmit":"Zum Server senden","image":"Bild","flash":"Flash","form":"Formular","checkbox":"Kontrollbox","radio":"Optionsfeld","textField":"Textfeld","textarea":"Textfeld","hiddenField":"Verstecktes Feld","button":"Schaltfläche","select":"Auswahlfeld","imageButton":"Bildschaltfläche","notSet":"<nicht festgelegt>","id":"Kennung","name":"Name","langDir":"Schreibrichtung","langDirLtr":"Links nach Rechts (LTR)","langDirRtl":"Rechts nach Links (RTL)","langCode":"Sprachcode","longDescr":"Langbeschreibungs-URL","cssClass":"Formatvorlagenklassen","advisoryTitle":"Titel Beschreibung","cssStyle":"Stil","ok":"OK","cancel":"Abbrechen","close":"Schliessen","preview":"Vorschau","resize":"Grösse ändern","generalTab":"Allgemein","advancedTab":"Erweitert","validateNumberFailed":"Dieser Wert ist keine Nummer.","confirmNewPage":"Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?","confirmCancel":"Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schliessen?","options":"Optionen","target":"Zielseite","targetNew":"Neues Fenster (_blank)","targetTop":"Oberstes Fenster (_top)","targetSelf":"Gleiches Fenster (_self)","targetParent":"Oberes Fenster (_parent)","langDirLTR":"Links nach Rechts (LNR)","langDirRTL":"Rechts nach Links (RNL)","styles":"Style","cssClasses":"Stylesheet Klasse","width":"Breite","height":"Höhe","align":"Ausrichtung","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Zentriert","alignJustify":"Blocksatz","alignTop":"Oben","alignMiddle":"Mitte","alignBottom":"Unten","alignNone":"Keine","invalidValue":"Ungültiger Wert.","invalidHeight":"Höhe muss eine Zahl sein.","invalidWidth":"Breite muss eine Zahl sein.","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","invalidHtmlLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format \"Name : Wert\" getrennt mit Semikolons.","cssLengthTooltip":"Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","unavailable":"%1<span class=\"cke_accessibility\">, nicht verfügbar</span>"}};
\ No newline at end of file
+CKEDITOR.lang['de-ch']={"widget":{"move":"Zum Verschieben anwählen und ziehen"},"undo":{"redo":"Wiederherstellen","undo":"Rückgängig"},"toolbar":{"toolbarCollapse":"Werkzeugleiste einklappen","toolbarExpand":"Werkzeugleiste ausklappen","toolbarGroups":{"document":"Dokument","clipboard":"Zwischenablage/Rückgängig","editing":"Editieren","forms":"Formulare","basicstyles":"Grundstile","paragraph":"Absatz","links":"Links","insert":"Einfügen","styles":"Stile","colors":"Farben","tools":"Werkzeuge"},"toolbars":"Editor Werkzeugleisten"},"table":{"border":"Rahmengrösse","caption":"Überschrift","cell":{"menu":"Zelle","insertBefore":"Zelle davor einfügen","insertAfter":"Zelle danach einfügen","deleteCell":"Zelle löschen","merge":"Zellen verbinden","mergeRight":"Nach rechts verbinden","mergeDown":"Nach unten verbinden","splitHorizontal":"Zelle horizontal teilen","splitVertical":"Zelle vertikal teilen","title":"Zelleneigenschaften","cellType":"Zellart","rowSpan":"Anzahl Zeilen verbinden","colSpan":"Anzahl Spalten verbinden","wordWrap":"Zeilenumbruch","hAlign":"Horizontale Ausrichtung","vAlign":"Vertikale Ausrichtung","alignBaseline":"Grundlinie","bgColor":"Hintergrundfarbe","borderColor":"Rahmenfarbe","data":"Daten","header":"Überschrift","yes":"Ja","no":"Nein","invalidWidth":"Zellenbreite muss eine Zahl sein.","invalidHeight":"Zellenhöhe muss eine Zahl sein.","invalidRowSpan":"\"Anzahl Zeilen verbinden\" muss eine Ganzzahl sein.","invalidColSpan":"\"Anzahl Spalten verbinden\" muss eine Ganzzahl sein.","chooseColor":"Wählen"},"cellPad":"Zellenabstand innen","cellSpace":"Zellenabstand aussen","column":{"menu":"Spalte","insertBefore":"Spalte links davor einfügen","insertAfter":"Spalte rechts danach einfügen","deleteColumn":"Spalte löschen"},"columns":"Spalte","deleteTable":"Tabelle löschen","headers":"Kopfzeile","headersBoth":"Beide","headersColumn":"Erste Spalte","headersNone":"Keine","headersRow":"Erste Zeile","invalidBorder":"Die Rahmenbreite muss eine Zahl sein.","invalidCellPadding":"Der Zellenabstand innen muss eine positive Zahl sein.","invalidCellSpacing":"Der Zellenabstand aussen muss eine positive Zahl sein.","invalidCols":"Die Anzahl der Spalten muß grösser als 0 sein..","invalidHeight":"Die Tabellenbreite muss eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muß grösser als 0 sein.","invalidWidth":"Die Tabellenbreite muss eine Zahl sein.","menu":"Tabellen-Eigenschaften","row":{"menu":"Zeile","insertBefore":"Zeile oberhalb einfügen","insertAfter":"Zeile unterhalb einfügen","deleteRow":"Zeile entfernen"},"rows":"Zeile","summary":"Inhaltsübersicht","title":"Tabellen-Eigenschaften","toolbar":"Tabelle","widthPc":"%","widthPx":"Pixel","widthUnit":"Breite Einheit"},"stylescombo":{"label":"Stil","panelTitle":"Formatierungsstile","panelTitle1":"Blockstile","panelTitle2":"Inline Stilart","panelTitle3":"Objektstile"},"specialchar":{"options":"Sonderzeichenoptionen","title":"Sonderzeichen auswählen","toolbar":"Sonderzeichen einfügen"},"sourcedialog":{"toolbar":"Quellcode","title":"Quellcode"},"sourcearea":{"toolbar":"Quellcode"},"showblocks":{"toolbar":"Blöcke anzeigen"},"removeformat":{"toolbar":"Formatierung entfernen"},"pastetext":{"button":"Als Klartext einfügen","title":"Als Klartext einfügen"},"pastefromword":{"confirmCleanup":"Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?","error":"Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen","title":"Aus Word einfügen","toolbar":"Aus Word einfügen"},"maximize":{"maximize":"Maximieren","minimize":"Minimieren"},"magicline":{"title":"Absatz hier einfügen"},"list":{"bulletedlist":"Liste","numberedlist":"Nummerierte Liste einfügen/entfernen"},"language":{"button":"Sprache festlegen","remove":"Sprache entfernen"},"justify":{"block":"Blocksatz","center":"Zentriert","left":"Linksbündig","right":"Rechtsbündig"},"indent":{"indent":"Einzug erhöhen","outdent":"Einzug verringern"},"image2":{"alt":"Alternativer Text","btnUpload":"Zum Server senden","captioned":"Bild mit Überschrift","captionPlaceholder":"Überschrift","infoTab":"Bildinfo","lockRatio":"Größenverhältnis beibehalten","menu":"Bildeigenschaften","pathName":"Bild","pathNameCaption":"Überschrift","resetSize":"Grösse zurücksetzen","resizer":"Zum Vergrössern auswählen und ziehen","title":"Bild-Eigenschaften","uploadTab":"Hochladen","urlMissing":"Bildquellen-URL fehlt."},"horizontalrule":{"toolbar":"Horizontale Linie einfügen"},"format":{"label":"Format","panelTitle":"Absatzformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Überschrift 1","tag_h2":"Überschrift 2","tag_h3":"Überschrift 3","tag_h4":"Überschrift 4","tag_h5":"Überschrift 5","tag_h6":"Überschrift 6","tag_p":"Normal","tag_pre":"Formatiert"},"elementspath":{"eleLabel":"Elementepfad","eleTitle":"%1 Element"},"contextmenu":{"options":"Kontextmenüoptionen"},"clipboard":{"copy":"Kopieren","copyError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).","cut":"Ausschneiden","cutError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).","paste":"Einfügen","pasteArea":"Einfügebereich","pasteMsg":"Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.","securityMsg":"Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.","title":"Einfügen"},"button":{"selectedLabel":"%1 (Ausgewählt)"},"blockquote":{"toolbar":"Zitatblock"},"basicstyles":{"bold":"Fett","italic":"Kursiv","strike":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen"},"about":{"copy":"Copyright &copy; $1. Alle Rechte vorbehalten.","dlgTitle":"Über CKEditor","help":"Prüfen Sie $1 für Hilfe.","moreInfo":"Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:","title":"Über CKEditor","userGuide":"CKEditor Benutzerhandbuch"},"editor":"WYSIWYG-Editor","editorPanel":"WYSIWYG-Editor-Leiste","common":{"editorHelp":"Drücken Sie ALT 0 für Hilfe","browseServer":"Server durchsuchen","url":"URL","protocol":"Protokoll","upload":"Hochladen","uploadSubmit":"Zum Server senden","image":"Bild","flash":"Flash","form":"Formular","checkbox":"Kontrollbox","radio":"Optionsfeld","textField":"Textfeld","textarea":"Textfeld","hiddenField":"Verstecktes Feld","button":"Schaltfläche","select":"Auswahlfeld","imageButton":"Bildschaltfläche","notSet":"<nicht festgelegt>","id":"Kennung","name":"Name","langDir":"Schreibrichtung","langDirLtr":"Links nach Rechts (LTR)","langDirRtl":"Rechts nach Links (RTL)","langCode":"Sprachcode","longDescr":"Langbeschreibungs-URL","cssClass":"Formatvorlagenklassen","advisoryTitle":"Titel Beschreibung","cssStyle":"Stil","ok":"OK","cancel":"Abbrechen","close":"Schliessen","preview":"Vorschau","resize":"Grösse ändern","generalTab":"Allgemein","advancedTab":"Erweitert","validateNumberFailed":"Dieser Wert ist keine Nummer.","confirmNewPage":"Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?","confirmCancel":"Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schliessen?","options":"Optionen","target":"Zielseite","targetNew":"Neues Fenster (_blank)","targetTop":"Oberstes Fenster (_top)","targetSelf":"Gleiches Fenster (_self)","targetParent":"Oberes Fenster (_parent)","langDirLTR":"Links nach Rechts (LNR)","langDirRTL":"Rechts nach Links (RNL)","styles":"Style","cssClasses":"Stylesheet Klasse","width":"Breite","height":"Höhe","align":"Ausrichtung","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Zentriert","alignJustify":"Blocksatz","alignTop":"Oben","alignMiddle":"Mitte","alignBottom":"Unten","alignNone":"Keine","invalidValue":"Ungültiger Wert.","invalidHeight":"Höhe muss eine Zahl sein.","invalidWidth":"Breite muss eine Zahl sein.","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","invalidHtmlLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format \"Name : Wert\" getrennt mit Semikolons.","cssLengthTooltip":"Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","unavailable":"%1<span class=\"cke_accessibility\">, nicht verfügbar</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/de.js b/core/assets/vendor/ckeditor/lang/de.js
index b88cf7c..bcc2d84 100644
--- a/core/assets/vendor/ckeditor/lang/de.js
+++ b/core/assets/vendor/ckeditor/lang/de.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['de']={"widget":{"move":"Zum Verschieben anwählen und ziehen","label":"%1 widget"},"undo":{"redo":"Wiederherstellen","undo":"Rückgängig"},"toolbar":{"toolbarCollapse":"Werkzeugleiste einklappen","toolbarExpand":"Werkzeugleiste ausklappen","toolbarGroups":{"document":"Dokument","clipboard":"Zwischenablage/Rückgängig","editing":"Editieren","forms":"Formulare","basicstyles":"Grundstile","paragraph":"Absatz","links":"Links","insert":"Einfügen","styles":"Stile","colors":"Farben","tools":"Werkzeuge"},"toolbars":"Editor Werkzeugleisten"},"table":{"border":"Rahmengröße","caption":"Überschrift","cell":{"menu":"Zelle","insertBefore":"Zelle davor einfügen","insertAfter":"Zelle danach einfügen","deleteCell":"Zelle löschen","merge":"Zellen verbinden","mergeRight":"Nach rechts verbinden","mergeDown":"Nach unten verbinden","splitHorizontal":"Zelle horizontal teilen","splitVertical":"Zelle vertikal teilen","title":"Zelleneigenschaften","cellType":"Zellart","rowSpan":"Anzahl Zeilen verbinden","colSpan":"Anzahl Spalten verbinden","wordWrap":"Zeilenumbruch","hAlign":"Horizontale Ausrichtung","vAlign":"Vertikale Ausrichtung","alignBaseline":"Grundlinie","bgColor":"Hintergrundfarbe","borderColor":"Rahmenfarbe","data":"Daten","header":"Überschrift","yes":"Ja","no":"Nein","invalidWidth":"Zellenbreite muss eine Zahl sein.","invalidHeight":"Zellenhöhe muss eine Zahl sein.","invalidRowSpan":"\"Anzahl Zeilen verbinden\" muss eine Ganzzahl sein.","invalidColSpan":"\"Anzahl Spalten verbinden\" muss eine Ganzzahl sein.","chooseColor":"Wählen"},"cellPad":"Zellenabstand innen","cellSpace":"Zellenabstand außen","column":{"menu":"Spalte","insertBefore":"Spalte links davor einfügen","insertAfter":"Spalte rechts danach einfügen","deleteColumn":"Spalte löschen"},"columns":"Spalte","deleteTable":"Tabelle löschen","headers":"Kopfzeile","headersBoth":"Beide","headersColumn":"Erste Spalte","headersNone":"Keine","headersRow":"Erste Zeile","invalidBorder":"Die Rahmenbreite muß eine Zahl sein.","invalidCellPadding":"Der Zellenabstand innen muß eine positive Zahl sein.","invalidCellSpacing":"Der Zellenabstand außen muß eine positive Zahl sein.","invalidCols":"Die Anzahl der Spalten muß größer als 0 sein..","invalidHeight":"Die Tabellenbreite muß eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muß größer als 0 sein.","invalidWidth":"Die Tabellenbreite muss eine Zahl sein.","menu":"Tabellen-Eigenschaften","row":{"menu":"Zeile","insertBefore":"Zeile oberhalb einfügen","insertAfter":"Zeile unterhalb einfügen","deleteRow":"Zeile entfernen"},"rows":"Zeile","summary":"Inhaltsübersicht","title":"Tabellen-Eigenschaften","toolbar":"Tabelle","widthPc":"%","widthPx":"Pixel","widthUnit":"Breite Einheit"},"stylescombo":{"label":"Stil","panelTitle":"Formatierungsstile","panelTitle1":"Blockstile","panelTitle2":"Inline Stilart","panelTitle3":"Objektstile"},"specialchar":{"options":"Sonderzeichenoptionen","title":"Sonderzeichen auswählen","toolbar":"Sonderzeichen einfügen"},"sourcedialog":{"toolbar":"Quellcode","title":"Quellcode"},"sourcearea":{"toolbar":"Quellcode"},"showblocks":{"toolbar":"Blöcke anzeigen"},"removeformat":{"toolbar":"Formatierung entfernen"},"pastetext":{"button":"Als Klartext einfügen","title":"Als Klartext einfügen"},"pastefromword":{"confirmCleanup":"Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?","error":"Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen","title":"Aus Word einfügen","toolbar":"Aus Word einfügen"},"maximize":{"maximize":"Maximieren","minimize":"Minimieren"},"magicline":{"title":"Absatz hier einfügen"},"list":{"bulletedlist":"Liste","numberedlist":"Nummerierte Liste einfügen/entfernen"},"language":{"button":"Sprache festlegen","remove":"Sprache entfernen"},"justify":{"block":"Blocksatz","center":"Zentriert","left":"Linksbündig","right":"Rechtsbündig"},"indent":{"indent":"Einzug erhöhen","outdent":"Einzug verringern"},"image2":{"alt":"Alternativer Text","btnUpload":"Zum Server senden","captioned":"Bild mit Überschrift","captionPlaceholder":"Überschrift","infoTab":"Bildinfo","lockRatio":"Größenverhältnis beibehalten","menu":"Bildeigenschaften","pathName":"Bild","pathNameCaption":"Überschrift","resetSize":"Größe zurücksetzen","resizer":"Zum Vergrößern auswählen und ziehen","title":"Bild-Eigenschaften","uploadTab":"Hochladen","urlMissing":"Bildquellen-URL fehlt."},"horizontalrule":{"toolbar":"Horizontale Linie einfügen"},"format":{"label":"Format","panelTitle":"Absatzformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Überschrift 1","tag_h2":"Überschrift 2","tag_h3":"Überschrift 3","tag_h4":"Überschrift 4","tag_h5":"Überschrift 5","tag_h6":"Überschrift 6","tag_p":"Normal","tag_pre":"Formatiert"},"elementspath":{"eleLabel":"Elementepfad","eleTitle":"%1 Element"},"contextmenu":{"options":"Kontextmenüoptionen"},"clipboard":{"copy":"Kopieren","copyError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).","cut":"Ausschneiden","cutError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).","paste":"Einfügen","pasteArea":"Einfügebereich","pasteMsg":"Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.","securityMsg":"Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.","title":"Einfügen"},"button":{"selectedLabel":"%1 (Ausgewählt)"},"blockquote":{"toolbar":"Zitatblock"},"basicstyles":{"bold":"Fett","italic":"Kursiv","strike":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen"},"about":{"copy":"Copyright &copy; $1. Alle Rechte vorbehalten.","dlgTitle":"Über CKEditor","help":"Prüfen Sie $1 für Hilfe.","moreInfo":"Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:","title":"Über CKEditor","userGuide":"CKEditor Benutzerhandbuch"},"editor":"WYSIWYG-Editor","editorPanel":"WYSIWYG-Editor-Leiste","common":{"editorHelp":"Drücken Sie ALT 0 für Hilfe","browseServer":"Server durchsuchen","url":"URL","protocol":"Protokoll","upload":"Hochladen","uploadSubmit":"Zum Server senden","image":"Bild","flash":"Flash","form":"Formular","checkbox":"Kontrollbox","radio":"Optionsfeld","textField":"Textfeld","textarea":"Textfeld","hiddenField":"Verstecktes Feld","button":"Schaltfläche","select":"Auswahlfeld","imageButton":"Bildschaltfläche","notSet":"<nicht festgelegt>","id":"Kennung","name":"Name","langDir":"Schreibrichtung","langDirLtr":"Links nach Rechts (LTR)","langDirRtl":"Rechts nach Links (RTL)","langCode":"Sprachcode","longDescr":"Langbeschreibungs-URL","cssClass":"Formatvorlagenklassen","advisoryTitle":"Titel Beschreibung","cssStyle":"Stil","ok":"OK","cancel":"Abbrechen","close":"Schließen","preview":"Vorschau","resize":"Größe ändern","generalTab":"Allgemein","advancedTab":"Erweitert","validateNumberFailed":"Dieser Wert ist keine Nummer.","confirmNewPage":"Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?","confirmCancel":"Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schließen?","options":"Optionen","target":"Zielseite","targetNew":"Neues Fenster (_blank)","targetTop":"Oberstes Fenster (_top)","targetSelf":"Gleiches Fenster (_self)","targetParent":"Oberes Fenster (_parent)","langDirLTR":"Links nach Rechts (LNR)","langDirRTL":"Rechts nach Links (RNL)","styles":"Style","cssClasses":"Stylesheet Klasse","width":"Breite","height":"Höhe","align":"Ausrichtung","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Zentriert","alignJustify":"Blocksatz","alignTop":"Oben","alignMiddle":"Mitte","alignBottom":"Unten","alignNone":"Keine","invalidValue":"Ungültiger Wert.","invalidHeight":"Höhe muss eine Zahl sein.","invalidWidth":"Breite muss eine Zahl sein.","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","invalidHtmlLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format \"Name : Wert\" getrennt mit Semikolons.","cssLengthTooltip":"Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","unavailable":"%1<span class=\"cke_accessibility\">, nicht verfügbar</span>"}};
\ No newline at end of file
+CKEDITOR.lang['de']={"widget":{"move":"Zum Verschieben anwählen und ziehen"},"undo":{"redo":"Wiederherstellen","undo":"Rückgängig"},"toolbar":{"toolbarCollapse":"Werkzeugleiste einklappen","toolbarExpand":"Werkzeugleiste ausklappen","toolbarGroups":{"document":"Dokument","clipboard":"Zwischenablage/Rückgängig","editing":"Editieren","forms":"Formulare","basicstyles":"Grundstile","paragraph":"Absatz","links":"Links","insert":"Einfügen","styles":"Stile","colors":"Farben","tools":"Werkzeuge"},"toolbars":"Editor Werkzeugleisten"},"table":{"border":"Rahmengröße","caption":"Überschrift","cell":{"menu":"Zelle","insertBefore":"Zelle davor einfügen","insertAfter":"Zelle danach einfügen","deleteCell":"Zelle löschen","merge":"Zellen verbinden","mergeRight":"Nach rechts verbinden","mergeDown":"Nach unten verbinden","splitHorizontal":"Zelle horizontal teilen","splitVertical":"Zelle vertikal teilen","title":"Zelleneigenschaften","cellType":"Zellart","rowSpan":"Anzahl Zeilen verbinden","colSpan":"Anzahl Spalten verbinden","wordWrap":"Zeilenumbruch","hAlign":"Horizontale Ausrichtung","vAlign":"Vertikale Ausrichtung","alignBaseline":"Grundlinie","bgColor":"Hintergrundfarbe","borderColor":"Rahmenfarbe","data":"Daten","header":"Überschrift","yes":"Ja","no":"Nein","invalidWidth":"Zellenbreite muss eine Zahl sein.","invalidHeight":"Zellenhöhe muss eine Zahl sein.","invalidRowSpan":"\"Anzahl Zeilen verbinden\" muss eine Ganzzahl sein.","invalidColSpan":"\"Anzahl Spalten verbinden\" muss eine Ganzzahl sein.","chooseColor":"Wählen"},"cellPad":"Zellenabstand innen","cellSpace":"Zellenabstand außen","column":{"menu":"Spalte","insertBefore":"Spalte links davor einfügen","insertAfter":"Spalte rechts danach einfügen","deleteColumn":"Spalte löschen"},"columns":"Spalte","deleteTable":"Tabelle löschen","headers":"Kopfzeile","headersBoth":"Beide","headersColumn":"Erste Spalte","headersNone":"Keine","headersRow":"Erste Zeile","invalidBorder":"Die Rahmenbreite muß eine Zahl sein.","invalidCellPadding":"Der Zellenabstand innen muß eine positive Zahl sein.","invalidCellSpacing":"Der Zellenabstand außen muß eine positive Zahl sein.","invalidCols":"Die Anzahl der Spalten muß größer als 0 sein..","invalidHeight":"Die Tabellenbreite muß eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muß größer als 0 sein.","invalidWidth":"Die Tabellenbreite muss eine Zahl sein.","menu":"Tabellen-Eigenschaften","row":{"menu":"Zeile","insertBefore":"Zeile oberhalb einfügen","insertAfter":"Zeile unterhalb einfügen","deleteRow":"Zeile entfernen"},"rows":"Zeile","summary":"Inhaltsübersicht","title":"Tabellen-Eigenschaften","toolbar":"Tabelle","widthPc":"%","widthPx":"Pixel","widthUnit":"Breite Einheit"},"stylescombo":{"label":"Stil","panelTitle":"Formatierungsstile","panelTitle1":"Blockstile","panelTitle2":"Inline Stilart","panelTitle3":"Objektstile"},"specialchar":{"options":"Sonderzeichenoptionen","title":"Sonderzeichen auswählen","toolbar":"Sonderzeichen einfügen"},"sourcedialog":{"toolbar":"Quellcode","title":"Quellcode"},"sourcearea":{"toolbar":"Quellcode"},"showblocks":{"toolbar":"Blöcke anzeigen"},"removeformat":{"toolbar":"Formatierung entfernen"},"pastetext":{"button":"Als Klartext einfügen","title":"Als Klartext einfügen"},"pastefromword":{"confirmCleanup":"Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?","error":"Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen","title":"Aus Word einfügen","toolbar":"Aus Word einfügen"},"maximize":{"maximize":"Maximieren","minimize":"Minimieren"},"magicline":{"title":"Absatz hier einfügen"},"list":{"bulletedlist":"Liste","numberedlist":"Nummerierte Liste einfügen/entfernen"},"language":{"button":"Sprache festlegen","remove":"Sprache entfernen"},"justify":{"block":"Blocksatz","center":"Zentriert","left":"Linksbündig","right":"Rechtsbündig"},"indent":{"indent":"Einzug erhöhen","outdent":"Einzug verringern"},"image2":{"alt":"Alternativer Text","btnUpload":"Zum Server senden","captioned":"Bild mit Überschrift","captionPlaceholder":"Überschrift","infoTab":"Bildinfo","lockRatio":"Größenverhältnis beibehalten","menu":"Bildeigenschaften","pathName":"Bild","pathNameCaption":"Überschrift","resetSize":"Größe zurücksetzen","resizer":"Zum Vergrößern auswählen und ziehen","title":"Bild-Eigenschaften","uploadTab":"Hochladen","urlMissing":"Bildquellen-URL fehlt."},"horizontalrule":{"toolbar":"Horizontale Linie einfügen"},"format":{"label":"Format","panelTitle":"Absatzformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Überschrift 1","tag_h2":"Überschrift 2","tag_h3":"Überschrift 3","tag_h4":"Überschrift 4","tag_h5":"Überschrift 5","tag_h6":"Überschrift 6","tag_p":"Normal","tag_pre":"Formatiert"},"elementspath":{"eleLabel":"Elementepfad","eleTitle":"%1 Element"},"contextmenu":{"options":"Kontextmenüoptionen"},"clipboard":{"copy":"Kopieren","copyError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).","cut":"Ausschneiden","cutError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).","paste":"Einfügen","pasteArea":"Einfügebereich","pasteMsg":"Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.","securityMsg":"Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.","title":"Einfügen"},"button":{"selectedLabel":"%1 (Ausgewählt)"},"blockquote":{"toolbar":"Zitatblock"},"basicstyles":{"bold":"Fett","italic":"Kursiv","strike":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen"},"about":{"copy":"Copyright &copy; $1. Alle Rechte vorbehalten.","dlgTitle":"Über CKEditor","help":"Prüfen Sie $1 für Hilfe.","moreInfo":"Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:","title":"Über CKEditor","userGuide":"CKEditor Benutzerhandbuch"},"editor":"WYSIWYG-Editor","editorPanel":"WYSIWYG-Editor-Leiste","common":{"editorHelp":"Drücken Sie ALT 0 für Hilfe","browseServer":"Server durchsuchen","url":"URL","protocol":"Protokoll","upload":"Hochladen","uploadSubmit":"Zum Server senden","image":"Bild","flash":"Flash","form":"Formular","checkbox":"Kontrollbox","radio":"Optionsfeld","textField":"Textfeld","textarea":"Textfeld","hiddenField":"Verstecktes Feld","button":"Schaltfläche","select":"Auswahlfeld","imageButton":"Bildschaltfläche","notSet":"<nicht festgelegt>","id":"Kennung","name":"Name","langDir":"Schreibrichtung","langDirLtr":"Links nach Rechts (LTR)","langDirRtl":"Rechts nach Links (RTL)","langCode":"Sprachcode","longDescr":"Langbeschreibungs-URL","cssClass":"Formatvorlagenklassen","advisoryTitle":"Titel Beschreibung","cssStyle":"Stil","ok":"OK","cancel":"Abbrechen","close":"Schließen","preview":"Vorschau","resize":"Größe ändern","generalTab":"Allgemein","advancedTab":"Erweitert","validateNumberFailed":"Dieser Wert ist keine Nummer.","confirmNewPage":"Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?","confirmCancel":"Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schließen?","options":"Optionen","target":"Zielseite","targetNew":"Neues Fenster (_blank)","targetTop":"Oberstes Fenster (_top)","targetSelf":"Gleiches Fenster (_self)","targetParent":"Oberes Fenster (_parent)","langDirLTR":"Links nach Rechts (LNR)","langDirRTL":"Rechts nach Links (RNL)","styles":"Style","cssClasses":"Stylesheet Klasse","width":"Breite","height":"Höhe","align":"Ausrichtung","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Zentriert","alignJustify":"Blocksatz","alignTop":"Oben","alignMiddle":"Mitte","alignBottom":"Unten","alignNone":"Keine","invalidValue":"Ungültiger Wert.","invalidHeight":"Höhe muss eine Zahl sein.","invalidWidth":"Breite muss eine Zahl sein.","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","invalidHtmlLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format \"Name : Wert\" getrennt mit Semikolons.","cssLengthTooltip":"Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","unavailable":"%1<span class=\"cke_accessibility\">, nicht verfügbar</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/el.js b/core/assets/vendor/ckeditor/lang/el.js
index f0b8a1e..4531573 100644
--- a/core/assets/vendor/ckeditor/lang/el.js
+++ b/core/assets/vendor/ckeditor/lang/el.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['el']={"widget":{"move":"Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε","label":"%1 widget"},"undo":{"redo":"Επανάληψη","undo":"Αναίρεση"},"toolbar":{"toolbarCollapse":"Σύμπτυξη Εργαλειοθήκης","toolbarExpand":"Ανάπτυξη Εργαλειοθήκης","toolbarGroups":{"document":"Έγγραφο","clipboard":"Πρόχειρο/Αναίρεση","editing":"Επεξεργασία","forms":"Φόρμες","basicstyles":"Βασικά Στυλ","paragraph":"Παράγραφος","links":"Σύνδεσμοι","insert":"Εισαγωγή","styles":"Στυλ","colors":"Χρώματα","tools":"Εργαλεία"},"toolbars":"Εργαλειοθήκες επεξεργαστή"},"table":{"border":"Πάχος Περιγράμματος","caption":"Λεζάντα","cell":{"menu":"Κελί","insertBefore":"Εισαγωγή Κελιού Πριν","insertAfter":"Εισαγωγή Κελιού Μετά","deleteCell":"Διαγραφή Κελιών","merge":"Ενοποίηση Κελιών","mergeRight":"Συγχώνευση Με Δεξιά","mergeDown":"Συγχώνευση Με Κάτω","splitHorizontal":"Οριζόντια Διαίρεση Κελιού","splitVertical":"Κατακόρυφη Διαίρεση Κελιού","title":"Ιδιότητες Κελιού","cellType":"Τύπος Κελιού","rowSpan":"Εύρος Γραμμών","colSpan":"Εύρος Στηλών","wordWrap":"Αναδίπλωση Λέξεων","hAlign":"Οριζόντια Στοίχιση","vAlign":"Κάθετη Στοίχιση","alignBaseline":"Γραμμή Βάσης","bgColor":"Χρώμα Φόντου","borderColor":"Χρώμα Περιγράμματος","data":"Δεδομένα","header":"Κεφαλίδα","yes":"Ναι","no":"Όχι","invalidWidth":"Το πλάτος του κελιού πρέπει να είναι αριθμός.","invalidHeight":"Το ύψος του κελιού πρέπει να είναι αριθμός.","invalidRowSpan":"Το εύρος των γραμμών πρέπει να είναι ακέραιος αριθμός.","invalidColSpan":"Το εύρος των στηλών πρέπει να είναι ακέραιος αριθμός.","chooseColor":"Επιλέξτε"},"cellPad":"Αναπλήρωση κελιών","cellSpace":"Απόσταση κελιών","column":{"menu":"Στήλη","insertBefore":"Εισαγωγή Στήλης Πριν","insertAfter":"Εισαγωγή Στήλης Μετά","deleteColumn":"Διαγραφή Στηλών"},"columns":"Στήλες","deleteTable":"Διαγραφή Πίνακα","headers":"Κεφαλίδες","headersBoth":"Και τα δύο","headersColumn":"Πρώτη στήλη","headersNone":"Κανένα","headersRow":"Πρώτη Γραμμή","invalidBorder":"Το πάχος του περιγράμματος πρέπει να είναι ένας αριθμός.","invalidCellPadding":"Η αναπλήρωση των κελιών πρέπει να είναι θετικός αριθμός.","invalidCellSpacing":"Η απόσταση μεταξύ των κελιών πρέπει να είναι ένας θετικός αριθμός.","invalidCols":"Ο αριθμός των στηλών πρέπει να είναι μεγαλύτερος από 0.","invalidHeight":"Το ύψος του πίνακα πρέπει να είναι αριθμός.","invalidRows":"Ο αριθμός των σειρών πρέπει να είναι μεγαλύτερος από 0.","invalidWidth":"Το πλάτος του πίνακα πρέπει να είναι ένας αριθμός.","menu":"Ιδιότητες Πίνακα","row":{"menu":"Γραμμή","insertBefore":"Εισαγωγή Γραμμής Πριν","insertAfter":"Εισαγωγή Γραμμής Μετά","deleteRow":"Διαγραφή Γραμμών"},"rows":"Γραμμές","summary":"Περίληψη","title":"Ιδιότητες Πίνακα","toolbar":"Πίνακας","widthPc":"τοις εκατό","widthPx":"pixel","widthUnit":"μονάδα πλάτους"},"stylescombo":{"label":"Μορφές","panelTitle":"Στυλ Μορφοποίησης","panelTitle1":"Στυλ Τμημάτων","panelTitle2":"Στυλ Εν Σειρά","panelTitle3":"Στυλ Αντικειμένων"},"specialchar":{"options":"Επιλογές Ειδικών Χαρακτήρων","title":"Επιλέξτε Έναν Ειδικό Χαρακτήρα","toolbar":"Εισαγωγή Ειδικού Χαρακτήρα"},"sourcedialog":{"toolbar":"Κώδικας","title":"Κώδικας"},"sourcearea":{"toolbar":"Κώδικας"},"showblocks":{"toolbar":"Προβολή Τμημάτων"},"removeformat":{"toolbar":"Εκκαθάριση Μορφοποίησης"},"pastetext":{"button":"Επικόλληση ως απλό κείμενο","title":"Επικόλληση ως απλό κείμενο"},"pastefromword":{"confirmCleanup":"Το κείμενο που επικολλάται φαίνεται να είναι αντιγραμμένο από το Word. Μήπως θα θέλατε να καθαριστεί προτού επικολληθεί;","error":"Δεν ήταν δυνατό να καθαριστούν τα δεδομένα λόγω ενός εσωτερικού σφάλματος","title":"Επικόλληση από το Word","toolbar":"Επικόλληση από το Word"},"maximize":{"maximize":"Μεγιστοποίηση","minimize":"Ελαχιστοποίηση"},"magicline":{"title":"Εισάγετε παράγραφο εδώ"},"list":{"bulletedlist":"Εισαγωγή/Απομάκρυνση Λίστας Κουκκίδων","numberedlist":"Εισαγωγή/Απομάκρυνση Αριθμημένης Λίστας"},"language":{"button":"Θέση γλώσσας","remove":"Αφαίρεση γλώσσας"},"justify":{"block":"Πλήρης Στοίχιση","center":"Στο Κέντρο","left":"Στοίχιση Αριστερά","right":"Στοίχιση Δεξιά"},"indent":{"indent":"Αύξηση Εσοχής","outdent":"Μείωση Εσοχής"},"image2":{"alt":"Εναλλακτικό Κείμενο","btnUpload":"Αποστολή στον Διακομιστή","captioned":"Εικόνα με λεζάντα","captionPlaceholder":"Λεζάντα","infoTab":"Πληροφορίες Εικόνας","lockRatio":"Κλείδωμα Αναλογίας","menu":"Ιδιότητες Εικόνας","pathName":"εικόνα","pathNameCaption":"λεζάντα","resetSize":"Επαναφορά Αρχικού Μεγέθους","resizer":"Κάνετε κλικ και σύρετε το ποντίκι για να αλλάξετε το μέγεθος","title":"Ιδιότητες Εικόνας","uploadTab":"Αποστολή","urlMissing":"Λείπει το πηγαίο URL της εικόνας."},"horizontalrule":{"toolbar":"Εισαγωγή Οριζόντιας Γραμμής"},"format":{"label":"Μορφοποίηση","panelTitle":"Μορφοποίηση Παραγράφου","tag_address":"Διεύθυνση","tag_div":"Κανονική (DIV)","tag_h1":"Κεφαλίδα 1","tag_h2":"Κεφαλίδα 2","tag_h3":"Κεφαλίδα 3","tag_h4":"Κεφαλίδα 4","tag_h5":"Κεφαλίδα 5","tag_h6":"Κεφαλίδα 6","tag_p":"Κανονική","tag_pre":"Προ-μορφοποιημένη"},"elementspath":{"eleLabel":"Διαδρομή Στοιχείων","eleTitle":"Στοιχείο %1"},"contextmenu":{"options":"Επιλογές Αναδυόμενου Μενού"},"clipboard":{"copy":"Αντιγραφή","copyError":"Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+C).","cut":"Αποκοπή","cutError":"Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+X).","paste":"Επικόλληση","pasteArea":"Περιοχή Επικόλλησης","pasteMsg":"Παρακαλώ επικολλήστε στο ακόλουθο κουτί χρησιμοποιώντας το πληκτρολόγιο (<strong>Ctrl/Cmd+V</strong>) και πατήστε OK.","securityMsg":"Λόγων των ρυθμίσεων ασφάλειας του περιηγητή σας, ο επεξεργαστής δεν μπορεί να έχει πρόσβαση στην μνήμη επικόλλησης. Χρειάζεται να επικολλήσετε ξανά σε αυτό το παράθυρο.","title":"Επικόλληση"},"button":{"selectedLabel":"%1 (Επιλεγμένο)"},"blockquote":{"toolbar":"Περιοχή Παράθεσης"},"basicstyles":{"bold":"Έντονη","italic":"Πλάγια","strike":"Διακριτή Διαγραφή","subscript":"Δείκτης","superscript":"Εκθέτης","underline":"Υπογράμμιση"},"about":{"copy":"Πνευματικά δικαιώματα &copy; $1 Με επιφύλαξη παντός δικαιώματος.","dlgTitle":"Περί του CKEditor","help":"Ελέγξτε τις $1 για βοήθεια.","moreInfo":"Για πληροφορίες σχετικές με την άδεια χρήσης, παρακαλούμε επισκεφθείτε την ιστοσελίδα μας:","title":"Περί του CKEditor","userGuide":"Οδηγίες Χρήστη CKEditor"},"editor":"Επεξεργαστής Πλούσιου Κειμένου","editorPanel":"Πίνακας Επεξεργαστή Πλούσιου Κειμένου","common":{"editorHelp":"Πατήστε το ALT 0 για βοήθεια","browseServer":"Εξερεύνηση Διακομιστή","url":"URL","protocol":"Πρωτόκολλο","upload":"Αποστολή","uploadSubmit":"Αποστολή στον Διακομιστή","image":"Εικόνα","flash":"Flash","form":"Φόρμα","checkbox":"Κουτί Επιλογής","radio":"Κουμπί Επιλογής","textField":"Πεδίο Κειμένου","textarea":"Περιοχή Κειμένου","hiddenField":"Κρυφό Πεδίο","button":"Κουμπί","select":"Πεδίο Επιλογής","imageButton":"Κουμπί Εικόνας","notSet":"<δεν έχει ρυθμιστεί>","id":"Id","name":"Όνομα","langDir":"Κατεύθυνση Κειμένου","langDirLtr":"Αριστερά προς Δεξιά (LTR)","langDirRtl":"Δεξιά προς Αριστερά (RTL)","langCode":"Κωδικός Γλώσσας","longDescr":"Αναλυτική Περιγραφή URL","cssClass":"Κλάσεις Φύλλων Στυλ","advisoryTitle":"Ενδεικτικός Τίτλος","cssStyle":"Μορφή Κειμένου","ok":"OK","cancel":"Ακύρωση","close":"Κλείσιμο","preview":"Προεπισκόπηση","resize":"Αλλαγή Μεγέθους","generalTab":"Γενικά","advancedTab":"Για Προχωρημένους","validateNumberFailed":"Αυτή η τιμή δεν είναι αριθμός.","confirmNewPage":"Οι όποιες αλλαγές στο περιεχόμενο θα χαθούν. Είσαστε σίγουροι ότι θέλετε να φορτώσετε μια νέα σελίδα;","confirmCancel":"Μερικές επιλογές έχουν αλλάξει. Είσαστε σίγουροι ότι θέλετε να κλείσετε το παράθυρο διαλόγου;","options":"Επιλογές","target":"Προορισμός","targetNew":"Νέο Παράθυρο (_blank)","targetTop":"Αρχική Περιοχή (_top)","targetSelf":"Ίδιο Παράθυρο (_self)","targetParent":"Γονεϊκό Παράθυρο (_parent)","langDirLTR":"Αριστερά προς Δεξιά (LTR)","langDirRTL":"Δεξιά προς Αριστερά (RTL)","styles":"Μορφή","cssClasses":"Κλάσεις Φύλλων Στυλ","width":"Πλάτος","height":"Ύψος","align":"Στοίχιση","alignLeft":"Αριστερά","alignRight":"Δεξιά","alignCenter":"Κέντρο","alignJustify":"Πλήρης Στοίχιση","alignTop":"Πάνω","alignMiddle":"Μέση","alignBottom":"Κάτω","alignNone":"Χωρίς","invalidValue":"Μη έγκυρη τιμή.","invalidHeight":"Το ύψος πρέπει να είναι ένας αριθμός.","invalidWidth":"Το πλάτος πρέπει να είναι ένας αριθμός.","invalidCssLength":"Η τιμή που ορίζεται για το πεδίο \"%1\" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).","invalidHtmlLength":"Η τιμή που ορίζεται για το πεδίο \"%1\" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης HTML (px ή %).","invalidInlineStyle":"Η τιμή για το εν σειρά στυλ πρέπει να περιέχει ένα ή περισσότερα ζεύγη με την μορφή \"όνομα: τιμή\" διαχωρισμένα με Ελληνικό ερωτηματικό.","cssLengthTooltip":"Εισάγεται μια τιμή σε pixel ή έναν αριθμό μαζί με μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).","unavailable":"%1<span class=\"cke_accessibility\">, δεν είναι διαθέσιμο</span>"}};
\ No newline at end of file
+CKEDITOR.lang['el']={"widget":{"move":"Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε"},"undo":{"redo":"Επανάληψη","undo":"Αναίρεση"},"toolbar":{"toolbarCollapse":"Σύμπτυξη Εργαλειοθήκης","toolbarExpand":"Ανάπτυξη Εργαλειοθήκης","toolbarGroups":{"document":"Έγγραφο","clipboard":"Πρόχειρο/Αναίρεση","editing":"Επεξεργασία","forms":"Φόρμες","basicstyles":"Βασικά Στυλ","paragraph":"Παράγραφος","links":"Σύνδεσμοι","insert":"Εισαγωγή","styles":"Στυλ","colors":"Χρώματα","tools":"Εργαλεία"},"toolbars":"Εργαλειοθήκες επεξεργαστή"},"table":{"border":"Πάχος Περιγράμματος","caption":"Λεζάντα","cell":{"menu":"Κελί","insertBefore":"Εισαγωγή Κελιού Πριν","insertAfter":"Εισαγωγή Κελιού Μετά","deleteCell":"Διαγραφή Κελιών","merge":"Ενοποίηση Κελιών","mergeRight":"Συγχώνευση Με Δεξιά","mergeDown":"Συγχώνευση Με Κάτω","splitHorizontal":"Οριζόντια Διαίρεση Κελιού","splitVertical":"Κατακόρυφη Διαίρεση Κελιού","title":"Ιδιότητες Κελιού","cellType":"Τύπος Κελιού","rowSpan":"Εύρος Γραμμών","colSpan":"Εύρος Στηλών","wordWrap":"Αναδίπλωση Λέξεων","hAlign":"Οριζόντια Στοίχιση","vAlign":"Κάθετη Στοίχιση","alignBaseline":"Γραμμή Βάσης","bgColor":"Χρώμα Φόντου","borderColor":"Χρώμα Περιγράμματος","data":"Δεδομένα","header":"Κεφαλίδα","yes":"Ναι","no":"Όχι","invalidWidth":"Το πλάτος του κελιού πρέπει να είναι αριθμός.","invalidHeight":"Το ύψος του κελιού πρέπει να είναι αριθμός.","invalidRowSpan":"Το εύρος των γραμμών πρέπει να είναι ακέραιος αριθμός.","invalidColSpan":"Το εύρος των στηλών πρέπει να είναι ακέραιος αριθμός.","chooseColor":"Επιλέξτε"},"cellPad":"Αναπλήρωση κελιών","cellSpace":"Απόσταση κελιών","column":{"menu":"Στήλη","insertBefore":"Εισαγωγή Στήλης Πριν","insertAfter":"Εισαγωγή Στήλης Μετά","deleteColumn":"Διαγραφή Στηλών"},"columns":"Στήλες","deleteTable":"Διαγραφή Πίνακα","headers":"Κεφαλίδες","headersBoth":"Και τα δύο","headersColumn":"Πρώτη στήλη","headersNone":"Κανένα","headersRow":"Πρώτη Γραμμή","invalidBorder":"Το πάχος του περιγράμματος πρέπει να είναι ένας αριθμός.","invalidCellPadding":"Η αναπλήρωση των κελιών πρέπει να είναι θετικός αριθμός.","invalidCellSpacing":"Η απόσταση μεταξύ των κελιών πρέπει να είναι ένας θετικός αριθμός.","invalidCols":"Ο αριθμός των στηλών πρέπει να είναι μεγαλύτερος από 0.","invalidHeight":"Το ύψος του πίνακα πρέπει να είναι αριθμός.","invalidRows":"Ο αριθμός των σειρών πρέπει να είναι μεγαλύτερος από 0.","invalidWidth":"Το πλάτος του πίνακα πρέπει να είναι ένας αριθμός.","menu":"Ιδιότητες Πίνακα","row":{"menu":"Γραμμή","insertBefore":"Εισαγωγή Γραμμής Πριν","insertAfter":"Εισαγωγή Γραμμής Μετά","deleteRow":"Διαγραφή Γραμμών"},"rows":"Γραμμές","summary":"Περίληψη","title":"Ιδιότητες Πίνακα","toolbar":"Πίνακας","widthPc":"τοις εκατό","widthPx":"pixel","widthUnit":"μονάδα πλάτους"},"stylescombo":{"label":"Μορφές","panelTitle":"Στυλ Μορφοποίησης","panelTitle1":"Στυλ Τμημάτων","panelTitle2":"Στυλ Εν Σειρά","panelTitle3":"Στυλ Αντικειμένων"},"specialchar":{"options":"Επιλογές Ειδικών Χαρακτήρων","title":"Επιλέξτε Έναν Ειδικό Χαρακτήρα","toolbar":"Εισαγωγή Ειδικού Χαρακτήρα"},"sourcedialog":{"toolbar":"Κώδικας","title":"Κώδικας"},"sourcearea":{"toolbar":"Κώδικας"},"showblocks":{"toolbar":"Προβολή Τμημάτων"},"removeformat":{"toolbar":"Εκκαθάριση Μορφοποίησης"},"pastetext":{"button":"Επικόλληση ως απλό κείμενο","title":"Επικόλληση ως απλό κείμενο"},"pastefromword":{"confirmCleanup":"Το κείμενο που επικολλάται φαίνεται να είναι αντιγραμμένο από το Word. Μήπως θα θέλατε να καθαριστεί προτού επικολληθεί;","error":"Δεν ήταν δυνατό να καθαριστούν τα δεδομένα λόγω ενός εσωτερικού σφάλματος","title":"Επικόλληση από το Word","toolbar":"Επικόλληση από το Word"},"maximize":{"maximize":"Μεγιστοποίηση","minimize":"Ελαχιστοποίηση"},"magicline":{"title":"Εισάγετε παράγραφο εδώ"},"list":{"bulletedlist":"Εισαγωγή/Απομάκρυνση Λίστας Κουκκίδων","numberedlist":"Εισαγωγή/Απομάκρυνση Αριθμημένης Λίστας"},"language":{"button":"Θέση γλώσσας","remove":"Αφαίρεση γλώσσας"},"justify":{"block":"Πλήρης Στοίχιση","center":"Στο Κέντρο","left":"Στοίχιση Αριστερά","right":"Στοίχιση Δεξιά"},"indent":{"indent":"Αύξηση Εσοχής","outdent":"Μείωση Εσοχής"},"image2":{"alt":"Εναλλακτικό Κείμενο","btnUpload":"Αποστολή στον Διακομιστή","captioned":"Εικόνα με λεζάντα","captionPlaceholder":"Λεζάντα","infoTab":"Πληροφορίες Εικόνας","lockRatio":"Κλείδωμα Αναλογίας","menu":"Ιδιότητες Εικόνας","pathName":"εικόνα","pathNameCaption":"λεζάντα","resetSize":"Επαναφορά Αρχικού Μεγέθους","resizer":"Κάνετε κλικ και σύρετε το ποντίκι για να αλλάξετε το μέγεθος","title":"Ιδιότητες Εικόνας","uploadTab":"Αποστολή","urlMissing":"Λείπει το πηγαίο URL της εικόνας."},"horizontalrule":{"toolbar":"Εισαγωγή Οριζόντιας Γραμμής"},"format":{"label":"Μορφοποίηση","panelTitle":"Μορφοποίηση Παραγράφου","tag_address":"Διεύθυνση","tag_div":"Κανονική (DIV)","tag_h1":"Κεφαλίδα 1","tag_h2":"Κεφαλίδα 2","tag_h3":"Κεφαλίδα 3","tag_h4":"Κεφαλίδα 4","tag_h5":"Κεφαλίδα 5","tag_h6":"Κεφαλίδα 6","tag_p":"Κανονική","tag_pre":"Προ-μορφοποιημένη"},"elementspath":{"eleLabel":"Διαδρομή Στοιχείων","eleTitle":"Στοιχείο %1"},"contextmenu":{"options":"Επιλογές Αναδυόμενου Μενού"},"clipboard":{"copy":"Αντιγραφή","copyError":"Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+C).","cut":"Αποκοπή","cutError":"Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+X).","paste":"Επικόλληση","pasteArea":"Περιοχή Επικόλλησης","pasteMsg":"Παρακαλώ επικολλήστε στο ακόλουθο κουτί χρησιμοποιώντας το πληκτρολόγιο (<strong>Ctrl/Cmd+V</strong>) και πατήστε OK.","securityMsg":"Λόγων των ρυθμίσεων ασφάλειας του περιηγητή σας, ο επεξεργαστής δεν μπορεί να έχει πρόσβαση στην μνήμη επικόλλησης. Χρειάζεται να επικολλήσετε ξανά σε αυτό το παράθυρο.","title":"Επικόλληση"},"button":{"selectedLabel":"%1 (Επιλεγμένο)"},"blockquote":{"toolbar":"Περιοχή Παράθεσης"},"basicstyles":{"bold":"Έντονη","italic":"Πλάγια","strike":"Διακριτή Διαγραφή","subscript":"Δείκτης","superscript":"Εκθέτης","underline":"Υπογράμμιση"},"about":{"copy":"Πνευματικά δικαιώματα &copy; $1 Με επιφύλαξη παντός δικαιώματος.","dlgTitle":"Περί του CKEditor","help":"Ελέγξτε τις $1 για βοήθεια.","moreInfo":"Για πληροφορίες σχετικές με την άδεια χρήσης, παρακαλούμε επισκεφθείτε την ιστοσελίδα μας:","title":"Περί του CKEditor","userGuide":"Οδηγίες Χρήστη CKEditor"},"editor":"Επεξεργαστής Πλούσιου Κειμένου","editorPanel":"Πίνακας Επεξεργαστή Πλούσιου Κειμένου","common":{"editorHelp":"Πατήστε το ALT 0 για βοήθεια","browseServer":"Εξερεύνηση Διακομιστή","url":"URL","protocol":"Πρωτόκολλο","upload":"Αποστολή","uploadSubmit":"Αποστολή στον Διακομιστή","image":"Εικόνα","flash":"Flash","form":"Φόρμα","checkbox":"Κουτί Επιλογής","radio":"Κουμπί Επιλογής","textField":"Πεδίο Κειμένου","textarea":"Περιοχή Κειμένου","hiddenField":"Κρυφό Πεδίο","button":"Κουμπί","select":"Πεδίο Επιλογής","imageButton":"Κουμπί Εικόνας","notSet":"<δεν έχει ρυθμιστεί>","id":"Id","name":"Όνομα","langDir":"Κατεύθυνση Κειμένου","langDirLtr":"Αριστερά προς Δεξιά (LTR)","langDirRtl":"Δεξιά προς Αριστερά (RTL)","langCode":"Κωδικός Γλώσσας","longDescr":"Αναλυτική Περιγραφή URL","cssClass":"Κλάσεις Φύλλων Στυλ","advisoryTitle":"Ενδεικτικός Τίτλος","cssStyle":"Μορφή Κειμένου","ok":"OK","cancel":"Ακύρωση","close":"Κλείσιμο","preview":"Προεπισκόπηση","resize":"Αλλαγή Μεγέθους","generalTab":"Γενικά","advancedTab":"Για Προχωρημένους","validateNumberFailed":"Αυτή η τιμή δεν είναι αριθμός.","confirmNewPage":"Οι όποιες αλλαγές στο περιεχόμενο θα χαθούν. Είσαστε σίγουροι ότι θέλετε να φορτώσετε μια νέα σελίδα;","confirmCancel":"Μερικές επιλογές έχουν αλλάξει. Είσαστε σίγουροι ότι θέλετε να κλείσετε το παράθυρο διαλόγου;","options":"Επιλογές","target":"Προορισμός","targetNew":"Νέο Παράθυρο (_blank)","targetTop":"Αρχική Περιοχή (_top)","targetSelf":"Ίδιο Παράθυρο (_self)","targetParent":"Γονεϊκό Παράθυρο (_parent)","langDirLTR":"Αριστερά προς Δεξιά (LTR)","langDirRTL":"Δεξιά προς Αριστερά (RTL)","styles":"Μορφή","cssClasses":"Κλάσεις Φύλλων Στυλ","width":"Πλάτος","height":"Ύψος","align":"Στοίχιση","alignLeft":"Αριστερά","alignRight":"Δεξιά","alignCenter":"Κέντρο","alignJustify":"Πλήρης Στοίχιση","alignTop":"Πάνω","alignMiddle":"Μέση","alignBottom":"Κάτω","alignNone":"Χωρίς","invalidValue":"Μη έγκυρη τιμή.","invalidHeight":"Το ύψος πρέπει να είναι ένας αριθμός.","invalidWidth":"Το πλάτος πρέπει να είναι ένας αριθμός.","invalidCssLength":"Η τιμή που ορίζεται για το πεδίο \"%1\" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).","invalidHtmlLength":"Η τιμή που ορίζεται για το πεδίο \"%1\" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης HTML (px ή %).","invalidInlineStyle":"Η τιμή για το εν σειρά στυλ πρέπει να περιέχει ένα ή περισσότερα ζεύγη με την μορφή \"όνομα: τιμή\" διαχωρισμένα με Ελληνικό ερωτηματικό.","cssLengthTooltip":"Εισάγεται μια τιμή σε pixel ή έναν αριθμό μαζί με μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).","unavailable":"%1<span class=\"cke_accessibility\">, δεν είναι διαθέσιμο</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/en-au.js b/core/assets/vendor/ckeditor/lang/en-au.js
index 7fc4245..00c9852 100644
--- a/core/assets/vendor/ckeditor/lang/en-au.js
+++ b/core/assets/vendor/ckeditor/lang/en-au.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['en-au']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"Centre","left":"Align Left","right":"Align Right"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['en-au']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"Centre","left":"Align Left","right":"Align Right"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/en-ca.js b/core/assets/vendor/ckeditor/lang/en-ca.js
index 64ee502..499a437 100644
--- a/core/assets/vendor/ckeditor/lang/en-ca.js
+++ b/core/assets/vendor/ckeditor/lang/en-ca.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['en-ca']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"Centre","left":"Align Left","right":"Align Right"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['en-ca']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"Centre","left":"Align Left","right":"Align Right"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/en-gb.js b/core/assets/vendor/ckeditor/lang/en-gb.js
index 5bb5fb3..9928975 100644
--- a/core/assets/vendor/ckeditor/lang/en-gb.js
+++ b/core/assets/vendor/ckeditor/lang/en-gb.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['en-gb']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"maximize":{"maximize":"Maximise","minimize":"Minimise"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"Centre","left":"Align Left","right":"Align Right"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Drag to resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialogue window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['en-gb']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"maximize":{"maximize":"Maximise","minimize":"Minimise"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"Centre","left":"Align Left","right":"Align Right"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Drag to resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialogue window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/en.js b/core/assets/vendor/ckeditor/lang/en.js
index 6282b4b..d0514e7 100644
--- a/core/assets/vendor/ckeditor/lang/en.js
+++ b/core/assets/vendor/ckeditor/lang/en.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['en']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"Center","left":"Align Left","right":"Align Right"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['en']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"Center","left":"Align Left","right":"Align Right"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Alternative Text","btnUpload":"Send it to the Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Image Info","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Reset Size","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Upload","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/eo.js b/core/assets/vendor/ckeditor/lang/eo.js
index 67e00d0..b08fce3 100644
--- a/core/assets/vendor/ckeditor/lang/eo.js
+++ b/core/assets/vendor/ckeditor/lang/eo.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['eo']={"widget":{"move":"klaki kaj treni por movi","label":"%1 widget"},"undo":{"redo":"Refari","undo":"Malfari"},"toolbar":{"toolbarCollapse":"Faldi la ilbreton","toolbarExpand":"Malfaldi la ilbreton","toolbarGroups":{"document":"Dokumento","clipboard":"Poŝo/Malfari","editing":"Redaktado","forms":"Formularoj","basicstyles":"Bazaj stiloj","paragraph":"Paragrafo","links":"Ligiloj","insert":"Enmeti","styles":"Stiloj","colors":"Koloroj","tools":"Iloj"},"toolbars":"Ilobretoj de la redaktilo"},"table":{"border":"Bordero","caption":"Tabeltitolo","cell":{"menu":"Ĉelo","insertBefore":"Enmeti Ĉelon Antaŭ","insertAfter":"Enmeti Ĉelon Post","deleteCell":"Forigi la Ĉelojn","merge":"Kunfandi la Ĉelojn","mergeRight":"Kunfandi dekstren","mergeDown":"Kunfandi malsupren ","splitHorizontal":"Horizontale dividi","splitVertical":"Vertikale dividi","title":"Ĉelatributoj","cellType":"Ĉeltipo","rowSpan":"Kunfando de linioj","colSpan":"Kunfando de kolumnoj","wordWrap":"Cezuro","hAlign":"Horizontala ĝisrandigo","vAlign":"Vertikala ĝisrandigo","alignBaseline":"Malsupro de la teksto","bgColor":"Fonkoloro","borderColor":"Borderkoloro","data":"Datenoj","header":"Supra paĝotitolo","yes":"Jes","no":"No","invalidWidth":"Ĉellarĝo devas esti nombro.","invalidHeight":"Ĉelalto devas esti nombro.","invalidRowSpan":"Kunfando de linioj devas esti entjera nombro.","invalidColSpan":"Kunfando de kolumnoj devas esti entjera nombro.","chooseColor":"Elektu"},"cellPad":"Interna Marĝeno de la ĉeloj","cellSpace":"Spaco inter la Ĉeloj","column":{"menu":"Kolumno","insertBefore":"Enmeti kolumnon antaŭ","insertAfter":"Enmeti kolumnon post","deleteColumn":"Forigi Kolumnojn"},"columns":"Kolumnoj","deleteTable":"Forigi Tabelon","headers":"Supraj Paĝotitoloj","headersBoth":"Ambaŭ","headersColumn":"Unua kolumno","headersNone":"Neniu","headersRow":"Unua linio","invalidBorder":"La bordergrando devas esti nombro.","invalidCellPadding":"La interna marĝeno en la ĉeloj devas esti pozitiva nombro.","invalidCellSpacing":"La spaco inter la ĉeloj devas esti pozitiva nombro.","invalidCols":"La nombro de la kolumnoj devas superi 0.","invalidHeight":"La tabelalto devas esti nombro.","invalidRows":"La nombro de la linioj devas superi 0.","invalidWidth":"La tabellarĝo devas esti nombro.","menu":"Atributoj de Tabelo","row":{"menu":"Linio","insertBefore":"Enmeti linion antaŭ","insertAfter":"Enmeti linion post","deleteRow":"Forigi Liniojn"},"rows":"Linioj","summary":"Resumo","title":"Atributoj de Tabelo","toolbar":"Tabelo","widthPc":"elcentoj","widthPx":"Rastrumeroj","widthUnit":"unuo de larĝo"},"stylescombo":{"label":"Stiloj","panelTitle":"Stiloj pri enpaĝigo","panelTitle1":"Stiloj de blokoj","panelTitle2":"Enliniaj Stiloj","panelTitle3":"Stiloj de objektoj"},"specialchar":{"options":"Opcioj pri Specialaj Signoj","title":"Selekti Specialan Signon","toolbar":"Enmeti Specialan Signon"},"sourcedialog":{"toolbar":"Fonto","title":"Fonto"},"sourcearea":{"toolbar":"Fonto"},"showblocks":{"toolbar":"Montri la blokojn"},"removeformat":{"toolbar":"Forigi Formaton"},"pastetext":{"button":"Interglui kiel platan tekston","title":"Interglui kiel platan tekston"},"pastefromword":{"confirmCleanup":"La teksto, kiun vi volas interglui, ŝajnas esti kopiita el Word. Ĉu vi deziras purigi ĝin antaŭ intergluo?","error":"Ne eblis purigi la intergluitajn datenojn pro interna eraro","title":"Interglui el Word","toolbar":"Interglui el Word"},"maximize":{"maximize":"Pligrandigi","minimize":"Malgrandigi"},"magicline":{"title":"Enmeti paragrafon ĉi-tien"},"list":{"bulletedlist":"Bula Listo","numberedlist":"Numera Listo"},"language":{"button":"Instali lingvon","remove":"Forigi lingvon"},"justify":{"block":"Ĝisrandigi Ambaŭflanke","center":"Centrigi","left":"Ĝisrandigi maldekstren","right":"Ĝisrandigi dekstren"},"indent":{"indent":"Pligrandigi Krommarĝenon","outdent":"Malpligrandigi Krommarĝenon"},"image2":{"alt":"Anstataŭiga Teksto","btnUpload":"Sendu al Servilo","captioned":"Bildo kun apudskribo","captionPlaceholder":"Apudskribo","infoTab":"Informoj pri Bildo","lockRatio":"Konservi Proporcion","menu":"Atributoj de Bildo","pathName":"bildo","pathNameCaption":"apudskribo","resetSize":"Origina Grando","resizer":"Kliki kaj treni por ŝanĝi la grandon","title":"Atributoj de Bildo","uploadTab":"Alŝuti","urlMissing":"La fontretadreso de la bildo mankas."},"horizontalrule":{"toolbar":"Enmeti Horizontalan Linion"},"format":{"label":"Formato","panelTitle":"ParagrafFormato","tag_address":"Adreso","tag_div":"Normala (DIV)","tag_h1":"Titolo 1","tag_h2":"Titolo 2","tag_h3":"Titolo 3","tag_h4":"Titolo 4","tag_h5":"Titolo 5","tag_h6":"Titolo 6","tag_p":"Normala","tag_pre":"Formatita"},"elementspath":{"eleLabel":"Vojo al Elementoj","eleTitle":"%1 elementoj"},"contextmenu":{"options":"Opcioj de Kunteksta Menuo"},"clipboard":{"copy":"Kopii","copyError":"La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).","cut":"Eltondi","cutError":"La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).","paste":"Interglui","pasteArea":"Intergluoareo","pasteMsg":"Bonvolu glui la tekston en la jenan areon per uzado de la klavaro (<strong>Ctrl/Cmd+V</strong>) kaj premu OK","securityMsg":"Pro la sekurecagordo de via TTT-legilo, la redaktilo ne povas rekte atingi viajn datenojn en la poŝo. Bonvolu denove interglui la datenojn en tiun fenestron.","title":"Interglui"},"button":{"selectedLabel":"%1 (Selektita)"},"blockquote":{"toolbar":"Citaĵo"},"basicstyles":{"bold":"Grasa","italic":"Kursiva","strike":"Trastreko","subscript":"Suba indico","superscript":"Supra indico","underline":"Substreko"},"about":{"copy":"Copyright &copy; $1. Ĉiuj rajtoj rezervitaj.","dlgTitle":"Pri CKEditor","help":"Kontroli $1 por helpo.","moreInfo":"Por informoj pri licenco, bonvolu viziti nian retpaĝaron:","title":"Pri CKEditor","userGuide":"CKEditor Uzindikoj"},"editor":"RiĉTeksta Redaktilo","editorPanel":"Panelo de la RiĉTeksta Redaktilo","common":{"editorHelp":"Premu ALT 0 por helpilo","browseServer":"Foliumi en la Servilo","url":"URL","protocol":"Protokolo","upload":"Alŝuti","uploadSubmit":"Sendu al Servilo","image":"Bildo","flash":"Flaŝo","form":"Formularo","checkbox":"Markobutono","radio":"Radiobutono","textField":"Teksta kampo","textarea":"Teksta Areo","hiddenField":"Kaŝita Kampo","button":"Butono","select":"Elekta Kampo","imageButton":"Bildbutono","notSet":"<Defaŭlta>","id":"Id","name":"Nomo","langDir":"Skribdirekto","langDirLtr":"De maldekstro dekstren (LTR)","langDirRtl":"De dekstro maldekstren (RTL)","langCode":"Lingva Kodo","longDescr":"URL de Longa Priskribo","cssClass":"Klasoj de Stilfolioj","advisoryTitle":"Priskriba Titolo","cssStyle":"Stilo","ok":"Akcepti","cancel":"Rezigni","close":"Fermi","preview":"Vidigi Aspekton","resize":"Movigi por ŝanĝi la grandon","generalTab":"Ĝenerala","advancedTab":"Speciala","validateNumberFailed":"Tiu valoro ne estas nombro.","confirmNewPage":"La neregistritaj ŝanĝoj estas perdotaj. Ĉu vi certas, ke vi volas ŝargi novan paĝon?","confirmCancel":"Iuj opcioj esta ŝanĝitaj. Ĉu vi certas, ke vi volas fermi la dialogon?","options":"Opcioj","target":"Celo","targetNew":"Nova Fenestro (_blank)","targetTop":"Supra Fenestro (_top)","targetSelf":"Sama Fenestro (_self)","targetParent":"Patra Fenestro (_parent)","langDirLTR":"De maldekstro dekstren (LTR)","langDirRTL":"De dekstro maldekstren (RTL)","styles":"Stilo","cssClasses":"Stilfoliaj Klasoj","width":"Larĝo","height":"Alto","align":"Ĝisrandigo","alignLeft":"Maldekstre","alignRight":"Dekstre","alignCenter":"Centre","alignJustify":"Ĝisrandigi Ambaŭflanke","alignTop":"Supre","alignMiddle":"Centre","alignBottom":"Malsupre","alignNone":"Neniu","invalidValue":"Nevalida Valoro","invalidHeight":"Alto devas esti nombro.","invalidWidth":"Larĝo devas esti nombro.","invalidCssLength":"La valoro indikita por la \"%1\" kampo devas esti pozitiva nombro kun aŭ sen valida CSSmezurunuo (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"La valoro indikita por la \"%1\" kampo devas esti pozitiva nombro kun aŭ sen valida HTMLmezurunuo (px or %).","invalidInlineStyle":"La valoro indikita por la enlinia stilo devas konsisti el unu aŭ pluraj elementoj kun la formato de \"nomo : valoro\", apartigitaj per punktokomoj.","cssLengthTooltip":"Entajpu nombron por rastrumera valoro aŭ nombron kun valida CSSunuo (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, nehavebla</span>"}};
\ No newline at end of file
+CKEDITOR.lang['eo']={"widget":{"move":"klaki kaj treni por movi"},"undo":{"redo":"Refari","undo":"Malfari"},"toolbar":{"toolbarCollapse":"Faldi la ilbreton","toolbarExpand":"Malfaldi la ilbreton","toolbarGroups":{"document":"Dokumento","clipboard":"Poŝo/Malfari","editing":"Redaktado","forms":"Formularoj","basicstyles":"Bazaj stiloj","paragraph":"Paragrafo","links":"Ligiloj","insert":"Enmeti","styles":"Stiloj","colors":"Koloroj","tools":"Iloj"},"toolbars":"Ilobretoj de la redaktilo"},"table":{"border":"Bordero","caption":"Tabeltitolo","cell":{"menu":"Ĉelo","insertBefore":"Enmeti Ĉelon Antaŭ","insertAfter":"Enmeti Ĉelon Post","deleteCell":"Forigi la Ĉelojn","merge":"Kunfandi la Ĉelojn","mergeRight":"Kunfandi dekstren","mergeDown":"Kunfandi malsupren ","splitHorizontal":"Horizontale dividi","splitVertical":"Vertikale dividi","title":"Ĉelatributoj","cellType":"Ĉeltipo","rowSpan":"Kunfando de linioj","colSpan":"Kunfando de kolumnoj","wordWrap":"Cezuro","hAlign":"Horizontala ĝisrandigo","vAlign":"Vertikala ĝisrandigo","alignBaseline":"Malsupro de la teksto","bgColor":"Fonkoloro","borderColor":"Borderkoloro","data":"Datenoj","header":"Supra paĝotitolo","yes":"Jes","no":"No","invalidWidth":"Ĉellarĝo devas esti nombro.","invalidHeight":"Ĉelalto devas esti nombro.","invalidRowSpan":"Kunfando de linioj devas esti entjera nombro.","invalidColSpan":"Kunfando de kolumnoj devas esti entjera nombro.","chooseColor":"Elektu"},"cellPad":"Interna Marĝeno de la ĉeloj","cellSpace":"Spaco inter la Ĉeloj","column":{"menu":"Kolumno","insertBefore":"Enmeti kolumnon antaŭ","insertAfter":"Enmeti kolumnon post","deleteColumn":"Forigi Kolumnojn"},"columns":"Kolumnoj","deleteTable":"Forigi Tabelon","headers":"Supraj Paĝotitoloj","headersBoth":"Ambaŭ","headersColumn":"Unua kolumno","headersNone":"Neniu","headersRow":"Unua linio","invalidBorder":"La bordergrando devas esti nombro.","invalidCellPadding":"La interna marĝeno en la ĉeloj devas esti pozitiva nombro.","invalidCellSpacing":"La spaco inter la ĉeloj devas esti pozitiva nombro.","invalidCols":"La nombro de la kolumnoj devas superi 0.","invalidHeight":"La tabelalto devas esti nombro.","invalidRows":"La nombro de la linioj devas superi 0.","invalidWidth":"La tabellarĝo devas esti nombro.","menu":"Atributoj de Tabelo","row":{"menu":"Linio","insertBefore":"Enmeti linion antaŭ","insertAfter":"Enmeti linion post","deleteRow":"Forigi Liniojn"},"rows":"Linioj","summary":"Resumo","title":"Atributoj de Tabelo","toolbar":"Tabelo","widthPc":"elcentoj","widthPx":"Rastrumeroj","widthUnit":"unuo de larĝo"},"stylescombo":{"label":"Stiloj","panelTitle":"Stiloj pri enpaĝigo","panelTitle1":"Stiloj de blokoj","panelTitle2":"Enliniaj Stiloj","panelTitle3":"Stiloj de objektoj"},"specialchar":{"options":"Opcioj pri Specialaj Signoj","title":"Selekti Specialan Signon","toolbar":"Enmeti Specialan Signon"},"sourcedialog":{"toolbar":"Fonto","title":"Fonto"},"sourcearea":{"toolbar":"Fonto"},"showblocks":{"toolbar":"Montri la blokojn"},"removeformat":{"toolbar":"Forigi Formaton"},"pastetext":{"button":"Interglui kiel platan tekston","title":"Interglui kiel platan tekston"},"pastefromword":{"confirmCleanup":"La teksto, kiun vi volas interglui, ŝajnas esti kopiita el Word. Ĉu vi deziras purigi ĝin antaŭ intergluo?","error":"Ne eblis purigi la intergluitajn datenojn pro interna eraro","title":"Interglui el Word","toolbar":"Interglui el Word"},"maximize":{"maximize":"Pligrandigi","minimize":"Malgrandigi"},"magicline":{"title":"Enmeti paragrafon ĉi-tien"},"list":{"bulletedlist":"Bula Listo","numberedlist":"Numera Listo"},"language":{"button":"Instali lingvon","remove":"Forigi lingvon"},"justify":{"block":"Ĝisrandigi Ambaŭflanke","center":"Centrigi","left":"Ĝisrandigi maldekstren","right":"Ĝisrandigi dekstren"},"indent":{"indent":"Pligrandigi Krommarĝenon","outdent":"Malpligrandigi Krommarĝenon"},"image2":{"alt":"Anstataŭiga Teksto","btnUpload":"Sendu al Servilo","captioned":"Bildo kun apudskribo","captionPlaceholder":"Apudskribo","infoTab":"Informoj pri Bildo","lockRatio":"Konservi Proporcion","menu":"Atributoj de Bildo","pathName":"bildo","pathNameCaption":"apudskribo","resetSize":"Origina Grando","resizer":"Kliki kaj treni por ŝanĝi la grandon","title":"Atributoj de Bildo","uploadTab":"Alŝuti","urlMissing":"La fontretadreso de la bildo mankas."},"horizontalrule":{"toolbar":"Enmeti Horizontalan Linion"},"format":{"label":"Formato","panelTitle":"ParagrafFormato","tag_address":"Adreso","tag_div":"Normala (DIV)","tag_h1":"Titolo 1","tag_h2":"Titolo 2","tag_h3":"Titolo 3","tag_h4":"Titolo 4","tag_h5":"Titolo 5","tag_h6":"Titolo 6","tag_p":"Normala","tag_pre":"Formatita"},"elementspath":{"eleLabel":"Vojo al Elementoj","eleTitle":"%1 elementoj"},"contextmenu":{"options":"Opcioj de Kunteksta Menuo"},"clipboard":{"copy":"Kopii","copyError":"La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).","cut":"Eltondi","cutError":"La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).","paste":"Interglui","pasteArea":"Intergluoareo","pasteMsg":"Bonvolu glui la tekston en la jenan areon per uzado de la klavaro (<strong>Ctrl/Cmd+V</strong>) kaj premu OK","securityMsg":"Pro la sekurecagordo de via TTT-legilo, la redaktilo ne povas rekte atingi viajn datenojn en la poŝo. Bonvolu denove interglui la datenojn en tiun fenestron.","title":"Interglui"},"button":{"selectedLabel":"%1 (Selektita)"},"blockquote":{"toolbar":"Citaĵo"},"basicstyles":{"bold":"Grasa","italic":"Kursiva","strike":"Trastreko","subscript":"Suba indico","superscript":"Supra indico","underline":"Substreko"},"about":{"copy":"Copyright &copy; $1. Ĉiuj rajtoj rezervitaj.","dlgTitle":"Pri CKEditor","help":"Kontroli $1 por helpo.","moreInfo":"Por informoj pri licenco, bonvolu viziti nian retpaĝaron:","title":"Pri CKEditor","userGuide":"CKEditor Uzindikoj"},"editor":"RiĉTeksta Redaktilo","editorPanel":"Panelo de la RiĉTeksta Redaktilo","common":{"editorHelp":"Premu ALT 0 por helpilo","browseServer":"Foliumi en la Servilo","url":"URL","protocol":"Protokolo","upload":"Alŝuti","uploadSubmit":"Sendu al Servilo","image":"Bildo","flash":"Flaŝo","form":"Formularo","checkbox":"Markobutono","radio":"Radiobutono","textField":"Teksta kampo","textarea":"Teksta Areo","hiddenField":"Kaŝita Kampo","button":"Butono","select":"Elekta Kampo","imageButton":"Bildbutono","notSet":"<Defaŭlta>","id":"Id","name":"Nomo","langDir":"Skribdirekto","langDirLtr":"De maldekstro dekstren (LTR)","langDirRtl":"De dekstro maldekstren (RTL)","langCode":"Lingva Kodo","longDescr":"URL de Longa Priskribo","cssClass":"Klasoj de Stilfolioj","advisoryTitle":"Priskriba Titolo","cssStyle":"Stilo","ok":"Akcepti","cancel":"Rezigni","close":"Fermi","preview":"Vidigi Aspekton","resize":"Movigi por ŝanĝi la grandon","generalTab":"Ĝenerala","advancedTab":"Speciala","validateNumberFailed":"Tiu valoro ne estas nombro.","confirmNewPage":"La neregistritaj ŝanĝoj estas perdotaj. Ĉu vi certas, ke vi volas ŝargi novan paĝon?","confirmCancel":"Iuj opcioj esta ŝanĝitaj. Ĉu vi certas, ke vi volas fermi la dialogon?","options":"Opcioj","target":"Celo","targetNew":"Nova Fenestro (_blank)","targetTop":"Supra Fenestro (_top)","targetSelf":"Sama Fenestro (_self)","targetParent":"Patra Fenestro (_parent)","langDirLTR":"De maldekstro dekstren (LTR)","langDirRTL":"De dekstro maldekstren (RTL)","styles":"Stilo","cssClasses":"Stilfoliaj Klasoj","width":"Larĝo","height":"Alto","align":"Ĝisrandigo","alignLeft":"Maldekstre","alignRight":"Dekstre","alignCenter":"Centre","alignJustify":"Ĝisrandigi Ambaŭflanke","alignTop":"Supre","alignMiddle":"Centre","alignBottom":"Malsupre","alignNone":"Neniu","invalidValue":"Nevalida Valoro","invalidHeight":"Alto devas esti nombro.","invalidWidth":"Larĝo devas esti nombro.","invalidCssLength":"La valoro indikita por la \"%1\" kampo devas esti pozitiva nombro kun aŭ sen valida CSSmezurunuo (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"La valoro indikita por la \"%1\" kampo devas esti pozitiva nombro kun aŭ sen valida HTMLmezurunuo (px or %).","invalidInlineStyle":"La valoro indikita por la enlinia stilo devas konsisti el unu aŭ pluraj elementoj kun la formato de \"nomo : valoro\", apartigitaj per punktokomoj.","cssLengthTooltip":"Entajpu nombron por rastrumera valoro aŭ nombron kun valida CSSunuo (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, nehavebla</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/es.js b/core/assets/vendor/ckeditor/lang/es.js
index 4f034d6..9d8759f 100644
--- a/core/assets/vendor/ckeditor/lang/es.js
+++ b/core/assets/vendor/ckeditor/lang/es.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['es']={"widget":{"move":"Dar clic y arrastrar para mover","label":"%1 widget"},"undo":{"redo":"Rehacer","undo":"Deshacer"},"toolbar":{"toolbarCollapse":"Contraer barra de herramientas","toolbarExpand":"Expandir barra de herramientas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeles/Deshacer","editing":"Edición","forms":"Formularios","basicstyles":"Estilos básicos","paragraph":"Párrafo","links":"Enlaces","insert":"Insertar","styles":"Estilos","colors":"Colores","tools":"Herramientas"},"toolbars":"Barras de herramientas del editor"},"table":{"border":"Tamaño de Borde","caption":"Título","cell":{"menu":"Celda","insertBefore":"Insertar celda a la izquierda","insertAfter":"Insertar celda a la derecha","deleteCell":"Eliminar Celdas","merge":"Combinar Celdas","mergeRight":"Combinar a la derecha","mergeDown":"Combinar hacia abajo","splitHorizontal":"Dividir la celda horizontalmente","splitVertical":"Dividir la celda verticalmente","title":"Propiedades de celda","cellType":"Tipo de Celda","rowSpan":"Expandir filas","colSpan":"Expandir columnas","wordWrap":"Ajustar al contenido","hAlign":"Alineación Horizontal","vAlign":"Alineación Vertical","alignBaseline":"Linea de base","bgColor":"Color de fondo","borderColor":"Color de borde","data":"Datos","header":"Encabezado","yes":"Sí","no":"No","invalidWidth":"La anchura de celda debe ser un número.","invalidHeight":"La altura de celda debe ser un número.","invalidRowSpan":"La expansión de filas debe ser un número entero.","invalidColSpan":"La expansión de columnas debe ser un número entero.","chooseColor":"Elegir"},"cellPad":"Esp. interior","cellSpace":"Esp. e/celdas","column":{"menu":"Columna","insertBefore":"Insertar columna a la izquierda","insertAfter":"Insertar columna a la derecha","deleteColumn":"Eliminar Columnas"},"columns":"Columnas","deleteTable":"Eliminar Tabla","headers":"Encabezados","headersBoth":"Ambas","headersColumn":"Primera columna","headersNone":"Ninguno","headersRow":"Primera fila","invalidBorder":"El tamaño del borde debe ser un número.","invalidCellPadding":"El espaciado interior debe ser un número.","invalidCellSpacing":"El espaciado entre celdas debe ser un número.","invalidCols":"El número de columnas debe ser un número mayor que 0.","invalidHeight":"La altura de tabla debe ser un número.","invalidRows":"El número de filas debe ser un número mayor que 0.","invalidWidth":"La anchura de tabla debe ser un número.","menu":"Propiedades de Tabla","row":{"menu":"Fila","insertBefore":"Insertar fila en la parte superior","insertAfter":"Insertar fila en la parte inferior","deleteRow":"Eliminar Filas"},"rows":"Filas","summary":"Síntesis","title":"Propiedades de Tabla","toolbar":"Tabla","widthPc":"porcentaje","widthPx":"pixeles","widthUnit":"unidad de la anchura"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos para formatear","panelTitle1":"Estilos de párrafo","panelTitle2":"Estilos de carácter","panelTitle3":"Estilos de objeto"},"specialchar":{"options":"Opciones de caracteres especiales","title":"Seleccione un caracter especial","toolbar":"Insertar Caracter Especial"},"sourcedialog":{"toolbar":"Fuente HTML","title":"Fuente HTML"},"sourcearea":{"toolbar":"Fuente HTML"},"showblocks":{"toolbar":"Mostrar bloques"},"removeformat":{"toolbar":"Eliminar Formato"},"pastetext":{"button":"Pegar como Texto Plano","title":"Pegar como Texto Plano"},"pastefromword":{"confirmCleanup":"El texto que desea parece provenir de Word.\r\n¿Desea depurarlo antes de pegarlo?","error":"No ha sido posible limpiar los datos debido a un error interno","title":"Pegar desde Word","toolbar":"Pegar desde Word"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Insertar párrafo aquí"},"list":{"bulletedlist":"Viñetas","numberedlist":"Numeración"},"language":{"button":"Fijar lenguaje","remove":"Quitar lenguaje"},"justify":{"block":"Justificado","center":"Centrar","left":"Alinear a Izquierda","right":"Alinear a Derecha"},"indent":{"indent":"Aumentar Sangría","outdent":"Disminuir Sangría"},"image2":{"alt":"Texto Alternativo","btnUpload":"Enviar al Servidor","captioned":"Imagen subtitulada","captionPlaceholder":"Leyenda","infoTab":"Información de Imagen","lockRatio":"Proporcional","menu":"Propiedades de Imagen","pathName":"image","pathNameCaption":"subtítulo","resetSize":"Tamaño Original","resizer":"Dar clic y arrastrar para cambiar tamaño","title":"Propiedades de Imagen","uploadTab":"Cargar","urlMissing":"Debe indicar la URL de la imagen."},"horizontalrule":{"toolbar":"Insertar Línea Horizontal"},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Dirección","tag_div":"Normal (DIV)","tag_h1":"Encabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Con formato"},"elementspath":{"eleLabel":"Ruta de los elementos","eleTitle":"%1 elemento"},"contextmenu":{"options":"Opciones del menú contextual"},"clipboard":{"copy":"Copiar","copyError":"La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).","cut":"Cortar","cutError":"La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).","paste":"Pegar","pasteArea":"Zona de pegado","pasteMsg":"Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl/Cmd+V</STRONG>);\r\nluego presione <STRONG>Aceptar</STRONG>.","securityMsg":"Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles.\r\nEs necesario que lo pegue de nuevo en esta ventana.","title":"Pegar"},"button":{"selectedLabel":"%1 (Seleccionado)"},"blockquote":{"toolbar":"Cita"},"basicstyles":{"bold":"Negrita","italic":"Cursiva","strike":"Tachado","subscript":"Subíndice","superscript":"Superíndice","underline":"Subrayado"},"about":{"copy":"Copyright &copy; $1. Todos los derechos reservados.","dlgTitle":"Acerca de CKEditor","help":"Lea la  $1 para resolver sus dudas.","moreInfo":"Para información de licencia, por favor visite nuestro sitio web:","title":"Acerca de CKEditor","userGuide":"Guía de usuario de CKEditor"},"editor":"Editor de texto enriquecido","editorPanel":"Panel del Editor de Texto Enriquecido","common":{"editorHelp":"Pulse ALT 0 para ayuda","browseServer":"Ver Servidor","url":"URL","protocol":"Protocolo","upload":"Cargar","uploadSubmit":"Enviar al Servidor","image":"Imagen","flash":"Flash","form":"Formulario","checkbox":"Casilla de Verificación","radio":"Botones de Radio","textField":"Campo de Texto","textarea":"Area de Texto","hiddenField":"Campo Oculto","button":"Botón","select":"Campo de Selección","imageButton":"Botón Imagen","notSet":"<No definido>","id":"Id","name":"Nombre","langDir":"Orientación","langDirLtr":"Izquierda a Derecha (LTR)","langDirRtl":"Derecha a Izquierda (RTL)","langCode":"Cód. de idioma","longDescr":"Descripción larga URL","cssClass":"Clases de hojas de estilo","advisoryTitle":"Título","cssStyle":"Estilo","ok":"Aceptar","cancel":"Cancelar","close":"Cerrar","preview":"Previsualización","resize":"Arrastre para redimensionar","generalTab":"General","advancedTab":"Avanzado","validateNumberFailed":"El valor no es un número.","confirmNewPage":"Cualquier cambio que no se haya guardado se perderá.\r\n¿Está seguro de querer crear una nueva página?","confirmCancel":"Algunas de las opciones se han cambiado.\r\n¿Está seguro de querer cerrar el diálogo?","options":"Opciones","target":"Destino","targetNew":"Nueva ventana (_blank)","targetTop":"Ventana principal (_top)","targetSelf":"Misma ventana (_self)","targetParent":"Ventana padre (_parent)","langDirLTR":"Izquierda a derecha (LTR)","langDirRTL":"Derecha a izquierda (RTL)","styles":"Estilos","cssClasses":"Clase de la hoja de estilos","width":"Anchura","height":"Altura","align":"Alineación","alignLeft":"Izquierda","alignRight":"Derecha","alignCenter":"Centrado","alignJustify":"Justificado","alignTop":"Tope","alignMiddle":"Centro","alignBottom":"Pie","alignNone":"Ninguno","invalidValue":"Valor no válido","invalidHeight":"Altura debe ser un número.","invalidWidth":"Anchura debe ser un número.","invalidCssLength":"El valor especificado para el campo \"%1\" debe ser un número positivo, incluyendo optionalmente una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"El valor especificado para el campo \"%1\" debe ser un número positivo, incluyendo optionalmente una unidad de medida HTML válida (px o %).","invalidInlineStyle":"El valor especificado para el estilo debe consistir en uno o más pares con el formato \"nombre: valor\", separados por punto y coma.","cssLengthTooltip":"Introduca un número para el valor en pixels o un número con una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>"}};
\ No newline at end of file
+CKEDITOR.lang['es']={"widget":{"move":"Dar clic y arrastrar para mover"},"undo":{"redo":"Rehacer","undo":"Deshacer"},"toolbar":{"toolbarCollapse":"Contraer barra de herramientas","toolbarExpand":"Expandir barra de herramientas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeles/Deshacer","editing":"Edición","forms":"Formularios","basicstyles":"Estilos básicos","paragraph":"Párrafo","links":"Enlaces","insert":"Insertar","styles":"Estilos","colors":"Colores","tools":"Herramientas"},"toolbars":"Barras de herramientas del editor"},"table":{"border":"Tamaño de Borde","caption":"Título","cell":{"menu":"Celda","insertBefore":"Insertar celda a la izquierda","insertAfter":"Insertar celda a la derecha","deleteCell":"Eliminar Celdas","merge":"Combinar Celdas","mergeRight":"Combinar a la derecha","mergeDown":"Combinar hacia abajo","splitHorizontal":"Dividir la celda horizontalmente","splitVertical":"Dividir la celda verticalmente","title":"Propiedades de celda","cellType":"Tipo de Celda","rowSpan":"Expandir filas","colSpan":"Expandir columnas","wordWrap":"Ajustar al contenido","hAlign":"Alineación Horizontal","vAlign":"Alineación Vertical","alignBaseline":"Linea de base","bgColor":"Color de fondo","borderColor":"Color de borde","data":"Datos","header":"Encabezado","yes":"Sí","no":"No","invalidWidth":"La anchura de celda debe ser un número.","invalidHeight":"La altura de celda debe ser un número.","invalidRowSpan":"La expansión de filas debe ser un número entero.","invalidColSpan":"La expansión de columnas debe ser un número entero.","chooseColor":"Elegir"},"cellPad":"Esp. interior","cellSpace":"Esp. e/celdas","column":{"menu":"Columna","insertBefore":"Insertar columna a la izquierda","insertAfter":"Insertar columna a la derecha","deleteColumn":"Eliminar Columnas"},"columns":"Columnas","deleteTable":"Eliminar Tabla","headers":"Encabezados","headersBoth":"Ambas","headersColumn":"Primera columna","headersNone":"Ninguno","headersRow":"Primera fila","invalidBorder":"El tamaño del borde debe ser un número.","invalidCellPadding":"El espaciado interior debe ser un número.","invalidCellSpacing":"El espaciado entre celdas debe ser un número.","invalidCols":"El número de columnas debe ser un número mayor que 0.","invalidHeight":"La altura de tabla debe ser un número.","invalidRows":"El número de filas debe ser un número mayor que 0.","invalidWidth":"La anchura de tabla debe ser un número.","menu":"Propiedades de Tabla","row":{"menu":"Fila","insertBefore":"Insertar fila en la parte superior","insertAfter":"Insertar fila en la parte inferior","deleteRow":"Eliminar Filas"},"rows":"Filas","summary":"Síntesis","title":"Propiedades de Tabla","toolbar":"Tabla","widthPc":"porcentaje","widthPx":"pixeles","widthUnit":"unidad de la anchura"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos para formatear","panelTitle1":"Estilos de párrafo","panelTitle2":"Estilos de carácter","panelTitle3":"Estilos de objeto"},"specialchar":{"options":"Opciones de caracteres especiales","title":"Seleccione un caracter especial","toolbar":"Insertar Caracter Especial"},"sourcedialog":{"toolbar":"Fuente HTML","title":"Fuente HTML"},"sourcearea":{"toolbar":"Fuente HTML"},"showblocks":{"toolbar":"Mostrar bloques"},"removeformat":{"toolbar":"Eliminar Formato"},"pastetext":{"button":"Pegar como Texto Plano","title":"Pegar como Texto Plano"},"pastefromword":{"confirmCleanup":"El texto que desea parece provenir de Word.\r\n¿Desea depurarlo antes de pegarlo?","error":"No ha sido posible limpiar los datos debido a un error interno","title":"Pegar desde Word","toolbar":"Pegar desde Word"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Insertar párrafo aquí"},"list":{"bulletedlist":"Viñetas","numberedlist":"Numeración"},"language":{"button":"Fijar lenguaje","remove":"Quitar lenguaje"},"justify":{"block":"Justificado","center":"Centrar","left":"Alinear a Izquierda","right":"Alinear a Derecha"},"indent":{"indent":"Aumentar Sangría","outdent":"Disminuir Sangría"},"image2":{"alt":"Texto Alternativo","btnUpload":"Enviar al Servidor","captioned":"Imagen subtitulada","captionPlaceholder":"Leyenda","infoTab":"Información de Imagen","lockRatio":"Proporcional","menu":"Propiedades de Imagen","pathName":"image","pathNameCaption":"subtítulo","resetSize":"Tamaño Original","resizer":"Dar clic y arrastrar para cambiar tamaño","title":"Propiedades de Imagen","uploadTab":"Cargar","urlMissing":"Debe indicar la URL de la imagen."},"horizontalrule":{"toolbar":"Insertar Línea Horizontal"},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Dirección","tag_div":"Normal (DIV)","tag_h1":"Encabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Con formato"},"elementspath":{"eleLabel":"Ruta de los elementos","eleTitle":"%1 elemento"},"contextmenu":{"options":"Opciones del menú contextual"},"clipboard":{"copy":"Copiar","copyError":"La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).","cut":"Cortar","cutError":"La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).","paste":"Pegar","pasteArea":"Zona de pegado","pasteMsg":"Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl/Cmd+V</STRONG>);\r\nluego presione <STRONG>Aceptar</STRONG>.","securityMsg":"Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles.\r\nEs necesario que lo pegue de nuevo en esta ventana.","title":"Pegar"},"button":{"selectedLabel":"%1 (Seleccionado)"},"blockquote":{"toolbar":"Cita"},"basicstyles":{"bold":"Negrita","italic":"Cursiva","strike":"Tachado","subscript":"Subíndice","superscript":"Superíndice","underline":"Subrayado"},"about":{"copy":"Copyright &copy; $1. Todos los derechos reservados.","dlgTitle":"Acerca de CKEditor","help":"Lea la  $1 para resolver sus dudas.","moreInfo":"Para información de licencia, por favor visite nuestro sitio web:","title":"Acerca de CKEditor","userGuide":"Guía de usuario de CKEditor"},"editor":"Editor de texto enriquecido","editorPanel":"Panel del Editor de Texto Enriquecido","common":{"editorHelp":"Pulse ALT 0 para ayuda","browseServer":"Ver Servidor","url":"URL","protocol":"Protocolo","upload":"Cargar","uploadSubmit":"Enviar al Servidor","image":"Imagen","flash":"Flash","form":"Formulario","checkbox":"Casilla de Verificación","radio":"Botones de Radio","textField":"Campo de Texto","textarea":"Area de Texto","hiddenField":"Campo Oculto","button":"Botón","select":"Campo de Selección","imageButton":"Botón Imagen","notSet":"<No definido>","id":"Id","name":"Nombre","langDir":"Orientación","langDirLtr":"Izquierda a Derecha (LTR)","langDirRtl":"Derecha a Izquierda (RTL)","langCode":"Cód. de idioma","longDescr":"Descripción larga URL","cssClass":"Clases de hojas de estilo","advisoryTitle":"Título","cssStyle":"Estilo","ok":"Aceptar","cancel":"Cancelar","close":"Cerrar","preview":"Previsualización","resize":"Arrastre para redimensionar","generalTab":"General","advancedTab":"Avanzado","validateNumberFailed":"El valor no es un número.","confirmNewPage":"Cualquier cambio que no se haya guardado se perderá.\r\n¿Está seguro de querer crear una nueva página?","confirmCancel":"Algunas de las opciones se han cambiado.\r\n¿Está seguro de querer cerrar el diálogo?","options":"Opciones","target":"Destino","targetNew":"Nueva ventana (_blank)","targetTop":"Ventana principal (_top)","targetSelf":"Misma ventana (_self)","targetParent":"Ventana padre (_parent)","langDirLTR":"Izquierda a derecha (LTR)","langDirRTL":"Derecha a izquierda (RTL)","styles":"Estilos","cssClasses":"Clase de la hoja de estilos","width":"Anchura","height":"Altura","align":"Alineación","alignLeft":"Izquierda","alignRight":"Derecha","alignCenter":"Centrado","alignJustify":"Justificado","alignTop":"Tope","alignMiddle":"Centro","alignBottom":"Pie","alignNone":"Ninguno","invalidValue":"Valor no válido","invalidHeight":"Altura debe ser un número.","invalidWidth":"Anchura debe ser un número.","invalidCssLength":"El valor especificado para el campo \"%1\" debe ser un número positivo, incluyendo optionalmente una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"El valor especificado para el campo \"%1\" debe ser un número positivo, incluyendo optionalmente una unidad de medida HTML válida (px o %).","invalidInlineStyle":"El valor especificado para el estilo debe consistir en uno o más pares con el formato \"nombre: valor\", separados por punto y coma.","cssLengthTooltip":"Introduca un número para el valor en pixels o un número con una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/et.js b/core/assets/vendor/ckeditor/lang/et.js
index bb697a6..37ae12d 100644
--- a/core/assets/vendor/ckeditor/lang/et.js
+++ b/core/assets/vendor/ckeditor/lang/et.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['et']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Toimingu kordamine","undo":"Tagasivõtmine"},"toolbar":{"toolbarCollapse":"Tööriistariba peitmine","toolbarExpand":"Tööriistariba näitamine","toolbarGroups":{"document":"Dokument","clipboard":"Lõikelaud/tagasivõtmine","editing":"Muutmine","forms":"Vormid","basicstyles":"Põhistiilid","paragraph":"Lõik","links":"Lingid","insert":"Sisesta","styles":"Stiilid","colors":"Värvid","tools":"Tööriistad"},"toolbars":"Redaktori tööriistaribad"},"table":{"border":"Joone suurus","caption":"Tabeli tiitel","cell":{"menu":"Lahter","insertBefore":"Sisesta lahter enne","insertAfter":"Sisesta lahter peale","deleteCell":"Eemalda lahtrid","merge":"Ühenda lahtrid","mergeRight":"Ühenda paremale","mergeDown":"Ühenda alla","splitHorizontal":"Poolita lahter horisontaalselt","splitVertical":"Poolita lahter vertikaalselt","title":"Lahtri omadused","cellType":"Lahtri liik","rowSpan":"Ridade vahe","colSpan":"Tulpade vahe","wordWrap":"Sõnade murdmine","hAlign":"Horisontaalne joondus","vAlign":"Vertikaalne joondus","alignBaseline":"Baasjoon","bgColor":"Tausta värv","borderColor":"Äärise värv","data":"Andmed","header":"Päis","yes":"Jah","no":"Ei","invalidWidth":"Lahtri laius peab olema number.","invalidHeight":"Lahtri kõrgus peab olema number.","invalidRowSpan":"Ridade vahe peab olema täisarv.","invalidColSpan":"Tulpade vahe peab olema täisarv.","chooseColor":"Vali"},"cellPad":"Lahtri täidis","cellSpace":"Lahtri vahe","column":{"menu":"Veerg","insertBefore":"Sisesta veerg enne","insertAfter":"Sisesta veerg peale","deleteColumn":"Eemalda veerud"},"columns":"Veerud","deleteTable":"Kustuta tabel","headers":"Päised","headersBoth":"Mõlemad","headersColumn":"Esimene tulp","headersNone":"Puudub","headersRow":"Esimene rida","invalidBorder":"Äärise suurus peab olema number.","invalidCellPadding":"Lahtrite polsterdus (padding) peab olema positiivne arv.","invalidCellSpacing":"Lahtrite vahe peab olema positiivne arv.","invalidCols":"Tulpade arv peab olema nullist suurem.","invalidHeight":"Tabeli kõrgus peab olema number.","invalidRows":"Ridade arv peab olema nullist suurem.","invalidWidth":"Tabeli laius peab olema number.","menu":"Tabeli omadused","row":{"menu":"Rida","insertBefore":"Sisesta rida enne","insertAfter":"Sisesta rida peale","deleteRow":"Eemalda read"},"rows":"Read","summary":"Kokkuvõte","title":"Tabeli omadused","toolbar":"Tabel","widthPc":"protsenti","widthPx":"pikslit","widthUnit":"laiuse ühik"},"stylescombo":{"label":"Stiil","panelTitle":"Vormindusstiilid","panelTitle1":"Blokkstiilid","panelTitle2":"Reasisesed stiilid","panelTitle3":"Objektistiilid"},"specialchar":{"options":"Erimärkide valikud","title":"Erimärgi valimine","toolbar":"Erimärgi sisestamine"},"sourcedialog":{"toolbar":"Lähtekood","title":"Lähtekood"},"sourcearea":{"toolbar":"Lähtekood"},"showblocks":{"toolbar":"Blokkide näitamine"},"removeformat":{"toolbar":"Vormingu eemaldamine"},"pastetext":{"button":"Asetamine tavalise tekstina","title":"Asetamine tavalise tekstina"},"pastefromword":{"confirmCleanup":"Tekst, mida tahad asetada näib pärinevat Wordist. Kas tahad selle enne asetamist puhastada?","error":"Asetatud andmete puhastamine ei olnud sisemise vea tõttu võimalik","title":"Asetamine Wordist","toolbar":"Asetamine Wordist"},"maximize":{"maximize":"Maksimeerimine","minimize":"Minimeerimine"},"magicline":{"title":"Sisesta siia lõigu tekst"},"list":{"bulletedlist":"Punktloend","numberedlist":"Numberloend"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Rööpjoondus","center":"Keskjoondus","left":"Vasakjoondus","right":"Paremjoondus"},"indent":{"indent":"Taande suurendamine","outdent":"Taande vähendamine"},"image2":{"alt":"Alternatiivne tekst","btnUpload":"Saada serverisse","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Pildi info","lockRatio":"Lukusta kuvasuhe","menu":"Pildi omadused","pathName":"image","pathNameCaption":"caption","resetSize":"Lähtesta suurus","resizer":"Click and drag to resize","title":"Pildi omadused","uploadTab":"Lae üles","urlMissing":"Pildi lähte-URL on puudu."},"horizontalrule":{"toolbar":"Horisontaaljoone sisestamine"},"format":{"label":"Vorming","panelTitle":"Vorming","tag_address":"Aadress","tag_div":"Tavaline (DIV)","tag_h1":"Pealkiri 1","tag_h2":"Pealkiri 2","tag_h3":"Pealkiri 3","tag_h4":"Pealkiri 4","tag_h5":"Pealkiri 5","tag_h6":"Pealkiri 6","tag_p":"Tavaline","tag_pre":"Vormindatud"},"elementspath":{"eleLabel":"Elementide asukoht","eleTitle":"%1 element"},"contextmenu":{"options":"Kontekstimenüü valikud"},"clipboard":{"copy":"Kopeeri","copyError":"Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).","cut":"Lõika","cutError":"Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).","paste":"Aseta","pasteArea":"Asetamise ala","pasteMsg":"Palun aseta tekst järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl/Cmd+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.","securityMsg":"Sinu veebisirvija turvaseadete tõttu ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead asetama need uuesti siia aknasse.","title":"Asetamine"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Blokktsitaat"},"basicstyles":{"bold":"Paks","italic":"Kursiiv","strike":"Läbijoonitud","subscript":"Allindeks","superscript":"Ülaindeks","underline":"Allajoonitud"},"about":{"copy":"Copyright &copy; $1. Kõik õigused kaitstud.","dlgTitle":"CKEditorist","help":"Abi jaoks vaata $1.","moreInfo":"Litsentsi andmed leiab meie veebilehelt:","title":"CKEditorist","userGuide":"CKEditori kasutusjuhendit"},"editor":"Rikkalik tekstiredaktor","editorPanel":"Rikkaliku tekstiredaktori paneel","common":{"editorHelp":"Abi saamiseks vajuta ALT 0","browseServer":"Serveri sirvimine","url":"URL","protocol":"Protokoll","upload":"Laadi üles","uploadSubmit":"Saada serverisse","image":"Pilt","flash":"Flash","form":"Vorm","checkbox":"Märkeruut","radio":"Raadionupp","textField":"Tekstilahter","textarea":"Tekstiala","hiddenField":"Varjatud lahter","button":"Nupp","select":"Valiklahter","imageButton":"Piltnupp","notSet":"<määramata>","id":"ID","name":"Nimi","langDir":"Keele suund","langDirLtr":"Vasakult paremale (LTR)","langDirRtl":"Paremalt vasakule (RTL)","langCode":"Keele kood","longDescr":"Pikk kirjeldus URL","cssClass":"Stiilistiku klassid","advisoryTitle":"Soovituslik pealkiri","cssStyle":"Laad","ok":"Olgu","cancel":"Loobu","close":"Sulge","preview":"Eelvaade","resize":"Suuruse muutmiseks lohista","generalTab":"Üldine","advancedTab":"Täpsemalt","validateNumberFailed":"See väärtus pole number.","confirmNewPage":"Kõik salvestamata muudatused lähevad kaotsi. Kas oled kindel, et tahad laadida uue lehe?","confirmCancel":"Mõned valikud on muudetud. Kas oled kindel, et tahad dialoogi sulgeda?","options":"Valikud","target":"Sihtkoht","targetNew":"Uus aken (_blank)","targetTop":"Kõige ülemine aken (_top)","targetSelf":"Sama aken (_self)","targetParent":"Vanemaken (_parent)","langDirLTR":"Vasakult paremale (LTR)","langDirRTL":"Paremalt vasakule (RTL)","styles":"Stiili","cssClasses":"Stiililehe klassid","width":"Laius","height":"Kõrgus","align":"Joondus","alignLeft":"Vasak","alignRight":"Paremale","alignCenter":"Kesk","alignJustify":"Rööpjoondus","alignTop":"Üles","alignMiddle":"Keskele","alignBottom":"Alla","alignNone":"None","invalidValue":"Vigane väärtus.","invalidHeight":"Kõrgus peab olema number.","invalidWidth":"Laius peab olema number.","invalidCssLength":"\"%1\" välja jaoks määratud väärtus peab olema positiivne täisarv CSS ühikuga (px, %, in, cm, mm, em, ex, pt või pc) või ilma.","invalidHtmlLength":"\"%1\" välja jaoks määratud väärtus peab olema positiivne täisarv HTML ühikuga (px või %) või ilma.","invalidInlineStyle":"Reasisese stiili määrangud peavad koosnema paarisväärtustest (tuples), mis on semikoolonitega eraldatult järgnevas vormingus: \"nimi : väärtus\".","cssLengthTooltip":"Sisesta väärtus pikslites või number koos sobiva CSS-i ühikuga (px, %, in, cm, mm, em, ex, pt või pc).","unavailable":"%1<span class=\"cke_accessibility\">, pole saadaval</span>"}};
\ No newline at end of file
+CKEDITOR.lang['et']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Toimingu kordamine","undo":"Tagasivõtmine"},"toolbar":{"toolbarCollapse":"Tööriistariba peitmine","toolbarExpand":"Tööriistariba näitamine","toolbarGroups":{"document":"Dokument","clipboard":"Lõikelaud/tagasivõtmine","editing":"Muutmine","forms":"Vormid","basicstyles":"Põhistiilid","paragraph":"Lõik","links":"Lingid","insert":"Sisesta","styles":"Stiilid","colors":"Värvid","tools":"Tööriistad"},"toolbars":"Redaktori tööriistaribad"},"table":{"border":"Joone suurus","caption":"Tabeli tiitel","cell":{"menu":"Lahter","insertBefore":"Sisesta lahter enne","insertAfter":"Sisesta lahter peale","deleteCell":"Eemalda lahtrid","merge":"Ühenda lahtrid","mergeRight":"Ühenda paremale","mergeDown":"Ühenda alla","splitHorizontal":"Poolita lahter horisontaalselt","splitVertical":"Poolita lahter vertikaalselt","title":"Lahtri omadused","cellType":"Lahtri liik","rowSpan":"Ridade vahe","colSpan":"Tulpade vahe","wordWrap":"Sõnade murdmine","hAlign":"Horisontaalne joondus","vAlign":"Vertikaalne joondus","alignBaseline":"Baasjoon","bgColor":"Tausta värv","borderColor":"Äärise värv","data":"Andmed","header":"Päis","yes":"Jah","no":"Ei","invalidWidth":"Lahtri laius peab olema number.","invalidHeight":"Lahtri kõrgus peab olema number.","invalidRowSpan":"Ridade vahe peab olema täisarv.","invalidColSpan":"Tulpade vahe peab olema täisarv.","chooseColor":"Vali"},"cellPad":"Lahtri täidis","cellSpace":"Lahtri vahe","column":{"menu":"Veerg","insertBefore":"Sisesta veerg enne","insertAfter":"Sisesta veerg peale","deleteColumn":"Eemalda veerud"},"columns":"Veerud","deleteTable":"Kustuta tabel","headers":"Päised","headersBoth":"Mõlemad","headersColumn":"Esimene tulp","headersNone":"Puudub","headersRow":"Esimene rida","invalidBorder":"Äärise suurus peab olema number.","invalidCellPadding":"Lahtrite polsterdus (padding) peab olema positiivne arv.","invalidCellSpacing":"Lahtrite vahe peab olema positiivne arv.","invalidCols":"Tulpade arv peab olema nullist suurem.","invalidHeight":"Tabeli kõrgus peab olema number.","invalidRows":"Ridade arv peab olema nullist suurem.","invalidWidth":"Tabeli laius peab olema number.","menu":"Tabeli omadused","row":{"menu":"Rida","insertBefore":"Sisesta rida enne","insertAfter":"Sisesta rida peale","deleteRow":"Eemalda read"},"rows":"Read","summary":"Kokkuvõte","title":"Tabeli omadused","toolbar":"Tabel","widthPc":"protsenti","widthPx":"pikslit","widthUnit":"laiuse ühik"},"stylescombo":{"label":"Stiil","panelTitle":"Vormindusstiilid","panelTitle1":"Blokkstiilid","panelTitle2":"Reasisesed stiilid","panelTitle3":"Objektistiilid"},"specialchar":{"options":"Erimärkide valikud","title":"Erimärgi valimine","toolbar":"Erimärgi sisestamine"},"sourcedialog":{"toolbar":"Lähtekood","title":"Lähtekood"},"sourcearea":{"toolbar":"Lähtekood"},"showblocks":{"toolbar":"Blokkide näitamine"},"removeformat":{"toolbar":"Vormingu eemaldamine"},"pastetext":{"button":"Asetamine tavalise tekstina","title":"Asetamine tavalise tekstina"},"pastefromword":{"confirmCleanup":"Tekst, mida tahad asetada näib pärinevat Wordist. Kas tahad selle enne asetamist puhastada?","error":"Asetatud andmete puhastamine ei olnud sisemise vea tõttu võimalik","title":"Asetamine Wordist","toolbar":"Asetamine Wordist"},"maximize":{"maximize":"Maksimeerimine","minimize":"Minimeerimine"},"magicline":{"title":"Sisesta siia lõigu tekst"},"list":{"bulletedlist":"Punktloend","numberedlist":"Numberloend"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Rööpjoondus","center":"Keskjoondus","left":"Vasakjoondus","right":"Paremjoondus"},"indent":{"indent":"Taande suurendamine","outdent":"Taande vähendamine"},"image2":{"alt":"Alternatiivne tekst","btnUpload":"Saada serverisse","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Pildi info","lockRatio":"Lukusta kuvasuhe","menu":"Pildi omadused","pathName":"image","pathNameCaption":"caption","resetSize":"Lähtesta suurus","resizer":"Click and drag to resize","title":"Pildi omadused","uploadTab":"Lae üles","urlMissing":"Pildi lähte-URL on puudu."},"horizontalrule":{"toolbar":"Horisontaaljoone sisestamine"},"format":{"label":"Vorming","panelTitle":"Vorming","tag_address":"Aadress","tag_div":"Tavaline (DIV)","tag_h1":"Pealkiri 1","tag_h2":"Pealkiri 2","tag_h3":"Pealkiri 3","tag_h4":"Pealkiri 4","tag_h5":"Pealkiri 5","tag_h6":"Pealkiri 6","tag_p":"Tavaline","tag_pre":"Vormindatud"},"elementspath":{"eleLabel":"Elementide asukoht","eleTitle":"%1 element"},"contextmenu":{"options":"Kontekstimenüü valikud"},"clipboard":{"copy":"Kopeeri","copyError":"Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).","cut":"Lõika","cutError":"Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).","paste":"Aseta","pasteArea":"Asetamise ala","pasteMsg":"Palun aseta tekst järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl/Cmd+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.","securityMsg":"Sinu veebisirvija turvaseadete tõttu ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead asetama need uuesti siia aknasse.","title":"Asetamine"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Blokktsitaat"},"basicstyles":{"bold":"Paks","italic":"Kursiiv","strike":"Läbijoonitud","subscript":"Allindeks","superscript":"Ülaindeks","underline":"Allajoonitud"},"about":{"copy":"Copyright &copy; $1. Kõik õigused kaitstud.","dlgTitle":"CKEditorist","help":"Abi jaoks vaata $1.","moreInfo":"Litsentsi andmed leiab meie veebilehelt:","title":"CKEditorist","userGuide":"CKEditori kasutusjuhendit"},"editor":"Rikkalik tekstiredaktor","editorPanel":"Rikkaliku tekstiredaktori paneel","common":{"editorHelp":"Abi saamiseks vajuta ALT 0","browseServer":"Serveri sirvimine","url":"URL","protocol":"Protokoll","upload":"Laadi üles","uploadSubmit":"Saada serverisse","image":"Pilt","flash":"Flash","form":"Vorm","checkbox":"Märkeruut","radio":"Raadionupp","textField":"Tekstilahter","textarea":"Tekstiala","hiddenField":"Varjatud lahter","button":"Nupp","select":"Valiklahter","imageButton":"Piltnupp","notSet":"<määramata>","id":"ID","name":"Nimi","langDir":"Keele suund","langDirLtr":"Vasakult paremale (LTR)","langDirRtl":"Paremalt vasakule (RTL)","langCode":"Keele kood","longDescr":"Pikk kirjeldus URL","cssClass":"Stiilistiku klassid","advisoryTitle":"Soovituslik pealkiri","cssStyle":"Laad","ok":"Olgu","cancel":"Loobu","close":"Sulge","preview":"Eelvaade","resize":"Suuruse muutmiseks lohista","generalTab":"Üldine","advancedTab":"Täpsemalt","validateNumberFailed":"See väärtus pole number.","confirmNewPage":"Kõik salvestamata muudatused lähevad kaotsi. Kas oled kindel, et tahad laadida uue lehe?","confirmCancel":"Mõned valikud on muudetud. Kas oled kindel, et tahad dialoogi sulgeda?","options":"Valikud","target":"Sihtkoht","targetNew":"Uus aken (_blank)","targetTop":"Kõige ülemine aken (_top)","targetSelf":"Sama aken (_self)","targetParent":"Vanemaken (_parent)","langDirLTR":"Vasakult paremale (LTR)","langDirRTL":"Paremalt vasakule (RTL)","styles":"Stiili","cssClasses":"Stiililehe klassid","width":"Laius","height":"Kõrgus","align":"Joondus","alignLeft":"Vasak","alignRight":"Paremale","alignCenter":"Kesk","alignJustify":"Rööpjoondus","alignTop":"Üles","alignMiddle":"Keskele","alignBottom":"Alla","alignNone":"None","invalidValue":"Vigane väärtus.","invalidHeight":"Kõrgus peab olema number.","invalidWidth":"Laius peab olema number.","invalidCssLength":"\"%1\" välja jaoks määratud väärtus peab olema positiivne täisarv CSS ühikuga (px, %, in, cm, mm, em, ex, pt või pc) või ilma.","invalidHtmlLength":"\"%1\" välja jaoks määratud väärtus peab olema positiivne täisarv HTML ühikuga (px või %) või ilma.","invalidInlineStyle":"Reasisese stiili määrangud peavad koosnema paarisväärtustest (tuples), mis on semikoolonitega eraldatult järgnevas vormingus: \"nimi : väärtus\".","cssLengthTooltip":"Sisesta väärtus pikslites või number koos sobiva CSS-i ühikuga (px, %, in, cm, mm, em, ex, pt või pc).","unavailable":"%1<span class=\"cke_accessibility\">, pole saadaval</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/eu.js b/core/assets/vendor/ckeditor/lang/eu.js
index 904defb..901ff3f 100644
--- a/core/assets/vendor/ckeditor/lang/eu.js
+++ b/core/assets/vendor/ckeditor/lang/eu.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['eu']={"widget":{"move":"Klikatu eta arrastatu lekuz aldatzeko","label":"%1 widget"},"undo":{"redo":"Berregin","undo":"Desegin"},"toolbar":{"toolbarCollapse":"Tolestu tresna-barra","toolbarExpand":"Zabaldu tresna-barra","toolbarGroups":{"document":"Dokumentua","clipboard":"Arbela/Desegin","editing":"Editatu","forms":"Formularioak","basicstyles":"Oinarrizko estiloak","paragraph":"Paragrafoa","links":"Estekak","insert":"Txertatu","styles":"Estiloak","colors":"Koloreak","tools":"Tresnak"},"toolbars":"Editorearen tresna-barrak"},"table":{"border":"Ertzaren zabalera","caption":"Epigrafea","cell":{"menu":"Gelaxka","insertBefore":"Txertatu gelaxka aurretik","insertAfter":"Txertatu gelaxka ondoren","deleteCell":"Ezabatu gelaxkak","merge":"Batu gelaxkak","mergeRight":"Batu eskuinetara","mergeDown":"Batu behera","splitHorizontal":"Banatu gelaxka horizontalki","splitVertical":"Banatu gelaxka bertikalki","title":"Gelaxkaren propietateak","cellType":"Gelaxka-mota","rowSpan":"Errenkaden hedadura","colSpan":"Zutabeen hedadura","wordWrap":"Itzulbira","hAlign":"Lerrokatze horizontala","vAlign":"Lerrokatze bertikala","alignBaseline":"Oinarri-lerroan","bgColor":"Atzeko planoaren kolorea","borderColor":"Ertzaren kolorea","data":"Data","header":"Goiburua","yes":"Bai","no":"Ez","invalidWidth":"Gelaxkaren zabalera zenbaki bat izan behar da.","invalidHeight":"Gelaxkaren altuera zenbaki bat izan behar da.","invalidRowSpan":"Errenkaden hedadura zenbaki osoa izan behar da.","invalidColSpan":"Zutabeen hedadura zenbaki osoa izan behar da.","chooseColor":"Aukeratu"},"cellPad":"Gelaxken betegarria","cellSpace":"Gelaxka arteko tartea","column":{"menu":"Zutabea","insertBefore":"Txertatu zutabea aurretik","insertAfter":"Txertatu zutabea ondoren","deleteColumn":"Ezabatu zutabeak"},"columns":"Zutabeak","deleteTable":"Ezabatu taula","headers":"Goiburuak","headersBoth":"Biak","headersColumn":"Lehen zutabea","headersNone":"Bat ere ez","headersRow":"Lehen errenkada","invalidBorder":"Ertzaren tamaina zenbaki bat izan behar da.","invalidCellPadding":"Gelaxken betegarria zenbaki bat izan behar da.","invalidCellSpacing":"Gelaxka arteko tartea zenbaki bat izan behar da.","invalidCols":"Zutabe kopurua 0 baino handiagoa den zenbakia izan behar da.","invalidHeight":"Taularen altuera zenbaki bat izan behar da.","invalidRows":"Errenkada kopurua 0 baino handiagoa den zenbakia izan behar da.","invalidWidth":"Taularen zabalera zenbaki bat izan behar da.","menu":"Taularen propietateak","row":{"menu":"Errenkada","insertBefore":"Txertatu errenkada aurretik","insertAfter":"Txertatu errenkada ondoren","deleteRow":"Ezabatu errenkadak"},"rows":"Errenkadak","summary":"Laburpena","title":"Taularen propietateak","toolbar":"Taula","widthPc":"ehuneko","widthPx":"pixel","widthUnit":"zabalera unitatea"},"stylescombo":{"label":"Estiloak","panelTitle":"Formatu estiloak","panelTitle1":"Bloke estiloak","panelTitle2":"Lineako estiloak","panelTitle3":"Objektu estiloak"},"specialchar":{"options":"Karaktere berezien aukerak","title":"Hautatu karaktere berezia","toolbar":"Txertatu karaktere berezia"},"sourcedialog":{"toolbar":"Iturburua","title":"Iturburua"},"sourcearea":{"toolbar":"Iturburua"},"showblocks":{"toolbar":"Erakutsi blokeak"},"removeformat":{"toolbar":"Kendu formatua"},"pastetext":{"button":"Itsatsi testu arrunta bezala","title":"Itsatsi testu arrunta bezala"},"pastefromword":{"confirmCleanup":"Itsatsi nahi duzun testua Word-etik kopiatua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?","error":"Barne-errore bat dela eta ezin izan da itsatsitako testua garbitu","title":"Itsatsi Word-etik","toolbar":"Itsatsi Word-etik"},"maximize":{"maximize":"Maximizatu","minimize":"Minimizatu"},"magicline":{"title":"Txertatu paragrafoa hemen"},"list":{"bulletedlist":"Buletdun Zerrenda","numberedlist":"Zenbakidun Zerrenda"},"language":{"button":"Ezarri hizkuntza","remove":"Kendu hizkuntza"},"justify":{"block":"Justifikatu","center":"Erdian","left":"Lerrokatu ezkerrean","right":"Lerrokatu eskuinean"},"indent":{"indent":"Handitu koska","outdent":"Txikitu koska"},"image2":{"alt":"Ordezko testua","btnUpload":"Bidali zerbitzarira","captioned":"Argazki oina","captionPlaceholder":"Argazki oina","infoTab":"Irudiaren informazioa","lockRatio":"Blokeatu erlazioa","menu":"Irudiaren propietateak","pathName":"Irudia","pathNameCaption":"Argazki oina","resetSize":"Berrezarri tamaina","resizer":"Klikatu eta arrastatu tamainaz aldatzeko","title":"Irudiaren propietateak","uploadTab":"Kargatu","urlMissing":"Irudiaren iturburuaren URLa falta da."},"horizontalrule":{"toolbar":"Txertatu marra horizontala"},"format":{"label":"Formatua","panelTitle":"Paragrafoaren formatua","tag_address":"Helbidea","tag_div":"Normala (DIV)","tag_h1":"Izenburua 1","tag_h2":"Izenburua 2","tag_h3":"Izenburua 3","tag_h4":"Izenburua 4","tag_h5":"Izenburua 5","tag_h6":"Izenburua 6","tag_p":"Normala","tag_pre":"Formatuduna"},"elementspath":{"eleLabel":"Elementuen bidea","eleTitle":"%1 elementua"},"contextmenu":{"options":"Testuinguru-menuaren aukerak"},"clipboard":{"copy":"Kopiatu","copyError":"Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki kopiatzea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+C).","cut":"Ebaki","cutError":"Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki moztea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+X).","paste":"Itsatsi","pasteArea":"Itsasteko area","pasteMsg":"Mesedez teklatua erabiliz (<strong>Ctrl/Cmd+V</strong>) ondorengo eremuan testua itsatsi eta sakatu <strong>Ados</strong>.","securityMsg":"Nabigatzailearen segurtasun ezarpenak direla eta, editoreak ezin du arbela zuzenean erabili. Leiho honetan berriro itsatsi behar duzu.","title":"Itsatsi"},"button":{"selectedLabel":"%1 (hautatuta)"},"blockquote":{"toolbar":"Aipamen blokea"},"basicstyles":{"bold":"Lodia","italic":"Etzana","strike":"Marratua","subscript":"Azpi-indizea","superscript":"Goi-indizea","underline":"Azpimarratu"},"about":{"copy":"Copyright &copy; $1. Eskubide guztiak erreserbaturik.","dlgTitle":"CKEditor-i buruz","help":"Begiratu $1 laguntzarako.","moreInfo":"Lizentziari buruzko informazioa gure webgunean:","title":"CKEditor-i buruz","userGuide":"CKEditor-en erabiltzaile-gida"},"editor":"Testu aberastuaren editorea","editorPanel":"Testu aberastuaren editorearen panela","common":{"editorHelp":"Sakatu ALT 0 laguntza jasotzeko","browseServer":"Arakatu zerbitzaria","url":"URLa","protocol":"Protokoloa","upload":"Kargatu","uploadSubmit":"Bidali zerbitzarira","image":"Irudia","flash":"Flash","form":"Formularioa","checkbox":"Kontrol-laukia","radio":"Aukera-botoia","textField":"Testu-eremua","textarea":"Testu-area","hiddenField":"Ezkutuko eremua","button":"Botoia","select":"Hautespen-eremua","imageButton":"Irudi-botoia","notSet":"<ezarri gabe>","id":"Id","name":"Izena","langDir":"Hizkuntzaren norabidea","langDirLtr":"Ezkerretik eskuinera (LTR)","langDirRtl":"Eskuinetik ezkerrera (RTL)","langCode":"Hizkuntzaren kodea","longDescr":"URLaren deskribapen luzea","cssClass":"Estilo-orriko klaseak","advisoryTitle":"Aholkatutako izenburua","cssStyle":"Estiloa","ok":"Ados","cancel":"Utzi","close":"Itxi","preview":"Aurrebista","resize":"Aldatu tamainaz","generalTab":"Orokorra","advancedTab":"Aurreratua","validateNumberFailed":"Balio hau ez da zenbaki bat.","confirmNewPage":"Eduki honetan gorde gabe dauden aldaketak galduko dira. Ziur zaude orri berri bat kargatu nahi duzula?","confirmCancel":"Aukera batzuk aldatu dituzu. Ziur zaude elkarrizketa-koadroa itxi nahi duzula?","options":"Aukerak","target":"Helburua","targetNew":"Leiho berria (_blank)","targetTop":"Goieneko leihoan (_top)","targetSelf":"Leiho berean (_self)","targetParent":"Leiho gurasoan (_parent)","langDirLTR":"Ezkerretik eskuinera (LTR)","langDirRTL":"Eskuinetik ezkerrera (RTL)","styles":"Estiloa","cssClasses":"Estilo-orriko klaseak","width":"Zabalera","height":"Altuera","align":"Lerrokatzea","alignLeft":"Ezkerrean","alignRight":"Eskuinean","alignCenter":"Erdian","alignJustify":"Justifikatu","alignTop":"Goian","alignMiddle":"Erdian","alignBottom":"Behean","alignNone":"Bat ere ez","invalidValue":"Balio desegokia.","invalidHeight":"Altuera zenbaki bat izan behar da.","invalidWidth":"Zabalera zenbaki bat izan behar da.","invalidCssLength":"\"%1\" eremurako zehaztutako balioak zenbaki positibo bat izan behar du, CSS neurri unitate batekin edo gabe (px, %, in, cm, mm, em, ex, pt edo pc).","invalidHtmlLength":"\"%1\" eremurako zehaztutako balioak zenbaki positibo bat izan behar du, HTML neurri unitate batekin edo gabe (px edo %).","invalidInlineStyle":"Lineako estiloan zehaztutako balioak \"izen : balio\" formatuko tupla bat edo gehiago izan behar dira, komaz bereiztuak.","cssLengthTooltip":"Sartu zenbaki bat edo zenbaki bat baliozko CSS unitate batekin (px, %, in, cm, mm, em, ex, pt, edo pc).","unavailable":"%1<span class=\"cke_accessibility\">, erabilezina</span>"}};
\ No newline at end of file
+CKEDITOR.lang['eu']={"widget":{"move":"Klikatu eta arrastatu lekuz aldatzeko"},"undo":{"redo":"Berregin","undo":"Desegin"},"toolbar":{"toolbarCollapse":"Tolestu tresna-barra","toolbarExpand":"Zabaldu tresna-barra","toolbarGroups":{"document":"Dokumentua","clipboard":"Arbela/Desegin","editing":"Editatu","forms":"Formularioak","basicstyles":"Oinarrizko estiloak","paragraph":"Paragrafoa","links":"Estekak","insert":"Txertatu","styles":"Estiloak","colors":"Koloreak","tools":"Tresnak"},"toolbars":"Editorearen tresna-barrak"},"table":{"border":"Ertzaren zabalera","caption":"Epigrafea","cell":{"menu":"Gelaxka","insertBefore":"Txertatu gelaxka aurretik","insertAfter":"Txertatu gelaxka ondoren","deleteCell":"Ezabatu gelaxkak","merge":"Batu gelaxkak","mergeRight":"Batu eskuinetara","mergeDown":"Batu behera","splitHorizontal":"Banatu gelaxka horizontalki","splitVertical":"Banatu gelaxka bertikalki","title":"Gelaxkaren propietateak","cellType":"Gelaxka-mota","rowSpan":"Errenkaden hedadura","colSpan":"Zutabeen hedadura","wordWrap":"Itzulbira","hAlign":"Lerrokatze horizontala","vAlign":"Lerrokatze bertikala","alignBaseline":"Oinarri-lerroan","bgColor":"Atzeko planoaren kolorea","borderColor":"Ertzaren kolorea","data":"Data","header":"Goiburua","yes":"Bai","no":"Ez","invalidWidth":"Gelaxkaren zabalera zenbaki bat izan behar da.","invalidHeight":"Gelaxkaren altuera zenbaki bat izan behar da.","invalidRowSpan":"Errenkaden hedadura zenbaki osoa izan behar da.","invalidColSpan":"Zutabeen hedadura zenbaki osoa izan behar da.","chooseColor":"Aukeratu"},"cellPad":"Gelaxken betegarria","cellSpace":"Gelaxka arteko tartea","column":{"menu":"Zutabea","insertBefore":"Txertatu zutabea aurretik","insertAfter":"Txertatu zutabea ondoren","deleteColumn":"Ezabatu zutabeak"},"columns":"Zutabeak","deleteTable":"Ezabatu taula","headers":"Goiburuak","headersBoth":"Biak","headersColumn":"Lehen zutabea","headersNone":"Bat ere ez","headersRow":"Lehen errenkada","invalidBorder":"Ertzaren tamaina zenbaki bat izan behar da.","invalidCellPadding":"Gelaxken betegarria zenbaki bat izan behar da.","invalidCellSpacing":"Gelaxka arteko tartea zenbaki bat izan behar da.","invalidCols":"Zutabe kopurua 0 baino handiagoa den zenbakia izan behar da.","invalidHeight":"Taularen altuera zenbaki bat izan behar da.","invalidRows":"Errenkada kopurua 0 baino handiagoa den zenbakia izan behar da.","invalidWidth":"Taularen zabalera zenbaki bat izan behar da.","menu":"Taularen propietateak","row":{"menu":"Errenkada","insertBefore":"Txertatu errenkada aurretik","insertAfter":"Txertatu errenkada ondoren","deleteRow":"Ezabatu errenkadak"},"rows":"Errenkadak","summary":"Laburpena","title":"Taularen propietateak","toolbar":"Taula","widthPc":"ehuneko","widthPx":"pixel","widthUnit":"zabalera unitatea"},"stylescombo":{"label":"Estiloak","panelTitle":"Formatu estiloak","panelTitle1":"Bloke estiloak","panelTitle2":"Lineako estiloak","panelTitle3":"Objektu estiloak"},"specialchar":{"options":"Karaktere berezien aukerak","title":"Hautatu karaktere berezia","toolbar":"Txertatu karaktere berezia"},"sourcedialog":{"toolbar":"Iturburua","title":"Iturburua"},"sourcearea":{"toolbar":"Iturburua"},"showblocks":{"toolbar":"Erakutsi blokeak"},"removeformat":{"toolbar":"Kendu formatua"},"pastetext":{"button":"Itsatsi testu arrunta bezala","title":"Itsatsi testu arrunta bezala"},"pastefromword":{"confirmCleanup":"Itsatsi nahi duzun testua Word-etik kopiatua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?","error":"Barne-errore bat dela eta ezin izan da itsatsitako testua garbitu","title":"Itsatsi Word-etik","toolbar":"Itsatsi Word-etik"},"maximize":{"maximize":"Maximizatu","minimize":"Minimizatu"},"magicline":{"title":"Txertatu paragrafoa hemen"},"list":{"bulletedlist":"Buletdun Zerrenda","numberedlist":"Zenbakidun Zerrenda"},"language":{"button":"Ezarri hizkuntza","remove":"Kendu hizkuntza"},"justify":{"block":"Justifikatu","center":"Erdian","left":"Lerrokatu ezkerrean","right":"Lerrokatu eskuinean"},"indent":{"indent":"Handitu koska","outdent":"Txikitu koska"},"image2":{"alt":"Ordezko testua","btnUpload":"Bidali zerbitzarira","captioned":"Argazki oina","captionPlaceholder":"Argazki oina","infoTab":"Irudiaren informazioa","lockRatio":"Blokeatu erlazioa","menu":"Irudiaren propietateak","pathName":"Irudia","pathNameCaption":"Argazki oina","resetSize":"Berrezarri tamaina","resizer":"Klikatu eta arrastatu tamainaz aldatzeko","title":"Irudiaren propietateak","uploadTab":"Kargatu","urlMissing":"Irudiaren iturburuaren URLa falta da."},"horizontalrule":{"toolbar":"Txertatu marra horizontala"},"format":{"label":"Formatua","panelTitle":"Paragrafoaren formatua","tag_address":"Helbidea","tag_div":"Normala (DIV)","tag_h1":"Izenburua 1","tag_h2":"Izenburua 2","tag_h3":"Izenburua 3","tag_h4":"Izenburua 4","tag_h5":"Izenburua 5","tag_h6":"Izenburua 6","tag_p":"Normala","tag_pre":"Formatuduna"},"elementspath":{"eleLabel":"Elementuen bidea","eleTitle":"%1 elementua"},"contextmenu":{"options":"Testuinguru-menuaren aukerak"},"clipboard":{"copy":"Kopiatu","copyError":"Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki kopiatzea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+C).","cut":"Ebaki","cutError":"Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki moztea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+X).","paste":"Itsatsi","pasteArea":"Itsasteko area","pasteMsg":"Mesedez teklatua erabiliz (<strong>Ctrl/Cmd+V</strong>) ondorengo eremuan testua itsatsi eta sakatu <strong>Ados</strong>.","securityMsg":"Nabigatzailearen segurtasun ezarpenak direla eta, editoreak ezin du arbela zuzenean erabili. Leiho honetan berriro itsatsi behar duzu.","title":"Itsatsi"},"button":{"selectedLabel":"%1 (hautatuta)"},"blockquote":{"toolbar":"Aipamen blokea"},"basicstyles":{"bold":"Lodia","italic":"Etzana","strike":"Marratua","subscript":"Azpi-indizea","superscript":"Goi-indizea","underline":"Azpimarratu"},"about":{"copy":"Copyright &copy; $1. Eskubide guztiak erreserbaturik.","dlgTitle":"CKEditor-i buruz","help":"Begiratu $1 laguntzarako.","moreInfo":"Lizentziari buruzko informazioa gure webgunean:","title":"CKEditor-i buruz","userGuide":"CKEditor-en erabiltzaile-gida"},"editor":"Testu aberastuaren editorea","editorPanel":"Testu aberastuaren editorearen panela","common":{"editorHelp":"Sakatu ALT 0 laguntza jasotzeko","browseServer":"Arakatu zerbitzaria","url":"URLa","protocol":"Protokoloa","upload":"Kargatu","uploadSubmit":"Bidali zerbitzarira","image":"Irudia","flash":"Flash","form":"Formularioa","checkbox":"Kontrol-laukia","radio":"Aukera-botoia","textField":"Testu-eremua","textarea":"Testu-area","hiddenField":"Ezkutuko eremua","button":"Botoia","select":"Hautespen-eremua","imageButton":"Irudi-botoia","notSet":"<ezarri gabe>","id":"Id","name":"Izena","langDir":"Hizkuntzaren norabidea","langDirLtr":"Ezkerretik eskuinera (LTR)","langDirRtl":"Eskuinetik ezkerrera (RTL)","langCode":"Hizkuntzaren kodea","longDescr":"URLaren deskribapen luzea","cssClass":"Estilo-orriko klaseak","advisoryTitle":"Aholkatutako izenburua","cssStyle":"Estiloa","ok":"Ados","cancel":"Utzi","close":"Itxi","preview":"Aurrebista","resize":"Aldatu tamainaz","generalTab":"Orokorra","advancedTab":"Aurreratua","validateNumberFailed":"Balio hau ez da zenbaki bat.","confirmNewPage":"Eduki honetan gorde gabe dauden aldaketak galduko dira. Ziur zaude orri berri bat kargatu nahi duzula?","confirmCancel":"Aukera batzuk aldatu dituzu. Ziur zaude elkarrizketa-koadroa itxi nahi duzula?","options":"Aukerak","target":"Helburua","targetNew":"Leiho berria (_blank)","targetTop":"Goieneko leihoan (_top)","targetSelf":"Leiho berean (_self)","targetParent":"Leiho gurasoan (_parent)","langDirLTR":"Ezkerretik eskuinera (LTR)","langDirRTL":"Eskuinetik ezkerrera (RTL)","styles":"Estiloa","cssClasses":"Estilo-orriko klaseak","width":"Zabalera","height":"Altuera","align":"Lerrokatzea","alignLeft":"Ezkerrean","alignRight":"Eskuinean","alignCenter":"Erdian","alignJustify":"Justifikatu","alignTop":"Goian","alignMiddle":"Erdian","alignBottom":"Behean","alignNone":"Bat ere ez","invalidValue":"Balio desegokia.","invalidHeight":"Altuera zenbaki bat izan behar da.","invalidWidth":"Zabalera zenbaki bat izan behar da.","invalidCssLength":"\"%1\" eremurako zehaztutako balioak zenbaki positibo bat izan behar du, CSS neurri unitate batekin edo gabe (px, %, in, cm, mm, em, ex, pt edo pc).","invalidHtmlLength":"\"%1\" eremurako zehaztutako balioak zenbaki positibo bat izan behar du, HTML neurri unitate batekin edo gabe (px edo %).","invalidInlineStyle":"Lineako estiloan zehaztutako balioak \"izen : balio\" formatuko tupla bat edo gehiago izan behar dira, komaz bereiztuak.","cssLengthTooltip":"Sartu zenbaki bat edo zenbaki bat baliozko CSS unitate batekin (px, %, in, cm, mm, em, ex, pt, edo pc).","unavailable":"%1<span class=\"cke_accessibility\">, erabilezina</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/fa.js b/core/assets/vendor/ckeditor/lang/fa.js
index c667482..13c49c5 100644
--- a/core/assets/vendor/ckeditor/lang/fa.js
+++ b/core/assets/vendor/ckeditor/lang/fa.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['fa']={"widget":{"move":"کلیک و کشیدن برای جابجایی","label":"%1 widget"},"undo":{"redo":"بازچیدن","undo":"واچیدن"},"toolbar":{"toolbarCollapse":"بستن نوار ابزار","toolbarExpand":"بازکردن نوار ابزار","toolbarGroups":{"document":"سند","clipboard":"حافظه موقت/برگشت","editing":"در حال ویرایش","forms":"فرم​ها","basicstyles":"سبک‌های پایه","paragraph":"بند","links":"پیوندها","insert":"ورود","styles":"سبک‌ها","colors":"رنگ​ها","tools":"ابزارها"},"toolbars":"نوار ابزارهای ویرایش‌گر"},"table":{"border":"اندازهٴ لبه","caption":"عنوان","cell":{"menu":"سلول","insertBefore":"افزودن سلول قبل از","insertAfter":"افزودن سلول بعد از","deleteCell":"حذف سلولها","merge":"ادغام سلولها","mergeRight":"ادغام به راست","mergeDown":"ادغام به پایین","splitHorizontal":"جدا کردن افقی سلول","splitVertical":"جدا کردن عمودی سلول","title":"ویژگیهای سلول","cellType":"نوع سلول","rowSpan":"محدوده ردیفها","colSpan":"محدوده ستونها","wordWrap":"شکستن کلمه","hAlign":"چینش افقی","vAlign":"چینش عمودی","alignBaseline":"خط مبنا","bgColor":"رنگ زمینه","borderColor":"رنگ خطوط","data":"اطلاعات","header":"سرنویس","yes":"بله","no":"خیر","invalidWidth":"عرض سلول باید یک عدد باشد.","invalidHeight":"ارتفاع سلول باید عدد باشد.","invalidRowSpan":"مقدار محدوده ردیفها باید یک عدد باشد.","invalidColSpan":"مقدار محدوده ستونها باید یک عدد باشد.","chooseColor":"انتخاب"},"cellPad":"فاصلهٴ پرشده در سلول","cellSpace":"فاصلهٴ میان سلولها","column":{"menu":"ستون","insertBefore":"افزودن ستون قبل از","insertAfter":"افزودن ستون بعد از","deleteColumn":"حذف ستونها"},"columns":"ستونها","deleteTable":"پاک کردن جدول","headers":"سرنویسها","headersBoth":"هردو","headersColumn":"اولین ستون","headersNone":"هیچ","headersRow":"اولین ردیف","invalidBorder":"مقدار اندازه خطوط باید یک عدد باشد.","invalidCellPadding":"بالشتک سلول باید یک عدد باشد.","invalidCellSpacing":"مقدار فاصلهگذاری سلول باید یک عدد باشد.","invalidCols":"تعداد ستونها باید یک عدد بزرگتر از 0 باشد.","invalidHeight":"مقدار ارتفاع  جدول باید یک عدد باشد.","invalidRows":"تعداد ردیفها باید یک عدد بزرگتر از 0 باشد.","invalidWidth":"مقدار پهنای جدول باید یک عدد باشد.","menu":"ویژگیهای جدول","row":{"menu":"سطر","insertBefore":"افزودن سطر قبل از","insertAfter":"افزودن سطر بعد از","deleteRow":"حذف سطرها"},"rows":"سطرها","summary":"خلاصه","title":"ویژگیهای جدول","toolbar":"جدول","widthPc":"درصد","widthPx":"پیکسل","widthUnit":"واحد پهنا"},"stylescombo":{"label":"سبک","panelTitle":"سبکهای قالببندی","panelTitle1":"سبکهای بلوک","panelTitle2":"سبکهای درونخطی","panelTitle3":"سبکهای شیء"},"specialchar":{"options":"گزینه‌های نویسه‌های ویژه","title":"گزینش نویسه‌ی ویژه","toolbar":"گنجاندن نویسه‌ی ویژه"},"sourcedialog":{"toolbar":"منبع","title":"منبع"},"sourcearea":{"toolbar":"منبع"},"showblocks":{"toolbar":"نمایش بلوک‌ها"},"removeformat":{"toolbar":"برداشتن فرمت"},"pastetext":{"button":"چسباندن به عنوان متن ساده","title":"چسباندن به عنوان متن ساده"},"pastefromword":{"confirmCleanup":"متنی که میخواهید بچسبانید به نظر میرسد که از Word کپی شده است. آیا میخواهید قبل از چسباندن آن را پاکسازی کنید؟","error":"به دلیل بروز خطای داخلی امکان پاکسازی اطلاعات بازنشانی شده وجود ندارد.","title":"چسباندن از Word","toolbar":"چسباندن از Word"},"maximize":{"maximize":"بیشنه کردن","minimize":"کمینه کردن"},"magicline":{"title":"قرار دادن بند در اینجا"},"list":{"bulletedlist":"فهرست نقطه​ای","numberedlist":"فهرست شماره​دار"},"language":{"button":"تعیین زبان","remove":"حذف زبان"},"justify":{"block":"بلوک چین","center":"میان چین","left":"چپ چین","right":"راست چین"},"indent":{"indent":"افزایش تورفتگی","outdent":"کاهش تورفتگی"},"image2":{"alt":"متن جایگزین","btnUpload":"به سرور بفرست","captioned":"تصویر زیرنویس شده","captionPlaceholder":"عنوان","infoTab":"اطلاعات تصویر","lockRatio":"قفل کردن نسبت","menu":"ویژگی​های تصویر","pathName":"تصویر","pathNameCaption":"عنوان","resetSize":"بازنشانی اندازه","resizer":"کلیک و کشیدن برای تغییر اندازه","title":"ویژگی​های تصویر","uploadTab":"بالاگذاری","urlMissing":"آدرس URL اصلی تصویر یافت نشد."},"horizontalrule":{"toolbar":"گنجاندن خط افقی"},"format":{"label":"قالب","panelTitle":"قالب بند","tag_address":"نشانی","tag_div":"بند","tag_h1":"سرنویس ۱","tag_h2":"سرنویس ۲","tag_h3":"سرنویس ۳","tag_h4":"سرنویس ۴","tag_h5":"سرنویس ۵","tag_h6":"سرنویس ۶","tag_p":"معمولی","tag_pre":"قالب‌دار"},"elementspath":{"eleLabel":"مسیر عناصر","eleTitle":"%1 عنصر"},"contextmenu":{"options":"گزینه​های منوی زمینه"},"clipboard":{"copy":"رونوشت","copyError":"تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپی کردن را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+C).","cut":"برش","cutError":"تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+X).","paste":"چسباندن","pasteArea":"محل چسباندن","pasteMsg":"لطفا متن را با کلیدهای (<STRONG>Ctrl/Cmd+V</STRONG>) در این جعبهٴ متنی بچسبانید و <STRONG>پذیرش</STRONG> را بزنید.","securityMsg":"به خاطر تنظیمات امنیتی مرورگر شما، ویرایشگر نمیتواند دسترسی مستقیم به دادههای clipboard داشته باشد. شما باید دوباره آنرا در این پنجره بچسبانید.","title":"چسباندن"},"button":{"selectedLabel":"%1 (انتخاب شده)"},"blockquote":{"toolbar":"بلوک نقل قول"},"basicstyles":{"bold":"درشت","italic":"خمیده","strike":"خط‌خورده","subscript":"زیرنویس","superscript":"بالانویس","underline":"زیرخط‌دار"},"about":{"copy":"حق نشر &copy; $1. کلیه حقوق محفوظ است.","dlgTitle":"درباره CKEditor","help":" برای راهنمایی $1 را ملاحظه کنید.","moreInfo":"برای کسب اطلاعات مجوز لطفا به وب سایت ما مراجعه کنید:","title":"درباره CKEditor","userGuide":"راهنمای کاربران CKEditor"},"editor":"ویرایش‌گر متن غنی","editorPanel":"پنل ویرایشگر متن غنی","common":{"editorHelp":"کلید Alt+0 را برای راهنمایی بفشارید","browseServer":"فهرست​نمایی سرور","url":"URL","protocol":"قرارداد","upload":"بالاگذاری","uploadSubmit":"به سرور بفرست","image":"تصویر","flash":"فلش","form":"فرم","checkbox":"چک‌باکس","radio":"دکمه‌ی رادیویی","textField":"فیلد متنی","textarea":"ناحیهٴ متنی","hiddenField":"فیلد پنهان","button":"دکمه","select":"فیلد انتخاب چند گزینه​ای","imageButton":"دکمه‌ی تصویری","notSet":"<تعیین‌نشده>","id":"شناسه","name":"نام","langDir":"جهت زبان","langDirLtr":"چپ به راست","langDirRtl":"راست به چپ","langCode":"کد زبان","longDescr":"URL توصیف طولانی","cssClass":"کلاس​های شیوه​نامه (Stylesheet)","advisoryTitle":"عنوان کمکی","cssStyle":"سبک","ok":"پذیرش","cancel":"انصراف","close":"بستن","preview":"پیش‌نمایش","resize":"تغییر اندازه","generalTab":"عمومی","advancedTab":"پیش‌رفته","validateNumberFailed":"این مقدار یک عدد نیست.","confirmNewPage":"هر تغییر ایجاد شده​ی ذخیره نشده از بین خواهد رفت. آیا اطمینان دارید که قصد بارگیری صفحه جدیدی را دارید؟","confirmCancel":"برخی از گزینه‌ها تغییر کرده‌اند. آیا واقعا قصد بستن این پنجره را دارید؟","options":"گزینه​ها","target":"مقصد","targetNew":"پنجره جدید","targetTop":"بالاترین پنجره","targetSelf":"همان پنجره","targetParent":"پنجره والد","langDirLTR":"چپ به راست","langDirRTL":"راست به چپ","styles":"سبک","cssClasses":"کلاس‌های سبک‌نامه","width":"عرض","height":"طول","align":"چینش","alignLeft":"چپ","alignRight":"راست","alignCenter":"وسط","alignJustify":"بلوک چین","alignTop":"بالا","alignMiddle":"میانه","alignBottom":"پائین","alignNone":"هیچ","invalidValue":"مقدار نامعتبر.","invalidHeight":"ارتفاع باید یک عدد باشد.","invalidWidth":"عرض باید یک عدد باشد.","invalidCssLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری CSS معتبر باشد (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری HTML معتبر باشد (px or %).","invalidInlineStyle":"عدد تعیین شده برای سبک درون​خطی -Inline Style- باید دارای یک یا چند چندتایی با شکلی شبیه \"name : value\" که باید با یک \";\" از هم جدا شوند.","cssLengthTooltip":"یک عدد برای یک مقدار بر حسب پیکسل و یا یک عدد با یک واحد CSS معتبر وارد کنید (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">، غیر قابل دسترس</span>"}};
\ No newline at end of file
+CKEDITOR.lang['fa']={"widget":{"move":"کلیک و کشیدن برای جابجایی"},"undo":{"redo":"بازچیدن","undo":"واچیدن"},"toolbar":{"toolbarCollapse":"بستن نوار ابزار","toolbarExpand":"بازکردن نوار ابزار","toolbarGroups":{"document":"سند","clipboard":"حافظه موقت/برگشت","editing":"در حال ویرایش","forms":"فرم​ها","basicstyles":"سبک‌های پایه","paragraph":"بند","links":"پیوندها","insert":"ورود","styles":"سبک‌ها","colors":"رنگ​ها","tools":"ابزارها"},"toolbars":"نوار ابزارهای ویرایش‌گر"},"table":{"border":"اندازهٴ لبه","caption":"عنوان","cell":{"menu":"سلول","insertBefore":"افزودن سلول قبل از","insertAfter":"افزودن سلول بعد از","deleteCell":"حذف سلولها","merge":"ادغام سلولها","mergeRight":"ادغام به راست","mergeDown":"ادغام به پایین","splitHorizontal":"جدا کردن افقی سلول","splitVertical":"جدا کردن عمودی سلول","title":"ویژگیهای سلول","cellType":"نوع سلول","rowSpan":"محدوده ردیفها","colSpan":"محدوده ستونها","wordWrap":"شکستن کلمه","hAlign":"چینش افقی","vAlign":"چینش عمودی","alignBaseline":"خط مبنا","bgColor":"رنگ زمینه","borderColor":"رنگ خطوط","data":"اطلاعات","header":"سرنویس","yes":"بله","no":"خیر","invalidWidth":"عرض سلول باید یک عدد باشد.","invalidHeight":"ارتفاع سلول باید عدد باشد.","invalidRowSpan":"مقدار محدوده ردیفها باید یک عدد باشد.","invalidColSpan":"مقدار محدوده ستونها باید یک عدد باشد.","chooseColor":"انتخاب"},"cellPad":"فاصلهٴ پرشده در سلول","cellSpace":"فاصلهٴ میان سلولها","column":{"menu":"ستون","insertBefore":"افزودن ستون قبل از","insertAfter":"افزودن ستون بعد از","deleteColumn":"حذف ستونها"},"columns":"ستونها","deleteTable":"پاک کردن جدول","headers":"سرنویسها","headersBoth":"هردو","headersColumn":"اولین ستون","headersNone":"هیچ","headersRow":"اولین ردیف","invalidBorder":"مقدار اندازه خطوط باید یک عدد باشد.","invalidCellPadding":"بالشتک سلول باید یک عدد باشد.","invalidCellSpacing":"مقدار فاصلهگذاری سلول باید یک عدد باشد.","invalidCols":"تعداد ستونها باید یک عدد بزرگتر از 0 باشد.","invalidHeight":"مقدار ارتفاع  جدول باید یک عدد باشد.","invalidRows":"تعداد ردیفها باید یک عدد بزرگتر از 0 باشد.","invalidWidth":"مقدار پهنای جدول باید یک عدد باشد.","menu":"ویژگیهای جدول","row":{"menu":"سطر","insertBefore":"افزودن سطر قبل از","insertAfter":"افزودن سطر بعد از","deleteRow":"حذف سطرها"},"rows":"سطرها","summary":"خلاصه","title":"ویژگیهای جدول","toolbar":"جدول","widthPc":"درصد","widthPx":"پیکسل","widthUnit":"واحد پهنا"},"stylescombo":{"label":"سبک","panelTitle":"سبکهای قالببندی","panelTitle1":"سبکهای بلوک","panelTitle2":"سبکهای درونخطی","panelTitle3":"سبکهای شیء"},"specialchar":{"options":"گزینه‌های نویسه‌های ویژه","title":"گزینش نویسه‌ی ویژه","toolbar":"گنجاندن نویسه‌ی ویژه"},"sourcedialog":{"toolbar":"منبع","title":"منبع"},"sourcearea":{"toolbar":"منبع"},"showblocks":{"toolbar":"نمایش بلوک‌ها"},"removeformat":{"toolbar":"برداشتن فرمت"},"pastetext":{"button":"چسباندن به عنوان متن ساده","title":"چسباندن به عنوان متن ساده"},"pastefromword":{"confirmCleanup":"متنی که میخواهید بچسبانید به نظر میرسد که از Word کپی شده است. آیا میخواهید قبل از چسباندن آن را پاکسازی کنید؟","error":"به دلیل بروز خطای داخلی امکان پاکسازی اطلاعات بازنشانی شده وجود ندارد.","title":"چسباندن از Word","toolbar":"چسباندن از Word"},"maximize":{"maximize":"بیشنه کردن","minimize":"کمینه کردن"},"magicline":{"title":"قرار دادن بند در اینجا"},"list":{"bulletedlist":"فهرست نقطه​ای","numberedlist":"فهرست شماره​دار"},"language":{"button":"تعیین زبان","remove":"حذف زبان"},"justify":{"block":"بلوک چین","center":"میان چین","left":"چپ چین","right":"راست چین"},"indent":{"indent":"افزایش تورفتگی","outdent":"کاهش تورفتگی"},"image2":{"alt":"متن جایگزین","btnUpload":"به سرور بفرست","captioned":"تصویر زیرنویس شده","captionPlaceholder":"عنوان","infoTab":"اطلاعات تصویر","lockRatio":"قفل کردن نسبت","menu":"ویژگی​های تصویر","pathName":"تصویر","pathNameCaption":"عنوان","resetSize":"بازنشانی اندازه","resizer":"کلیک و کشیدن برای تغییر اندازه","title":"ویژگی​های تصویر","uploadTab":"بالاگذاری","urlMissing":"آدرس URL اصلی تصویر یافت نشد."},"horizontalrule":{"toolbar":"گنجاندن خط افقی"},"format":{"label":"قالب","panelTitle":"قالب بند","tag_address":"نشانی","tag_div":"بند","tag_h1":"سرنویس ۱","tag_h2":"سرنویس ۲","tag_h3":"سرنویس ۳","tag_h4":"سرنویس ۴","tag_h5":"سرنویس ۵","tag_h6":"سرنویس ۶","tag_p":"معمولی","tag_pre":"قالب‌دار"},"elementspath":{"eleLabel":"مسیر عناصر","eleTitle":"%1 عنصر"},"contextmenu":{"options":"گزینه​های منوی زمینه"},"clipboard":{"copy":"رونوشت","copyError":"تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپی کردن را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+C).","cut":"برش","cutError":"تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+X).","paste":"چسباندن","pasteArea":"محل چسباندن","pasteMsg":"لطفا متن را با کلیدهای (<STRONG>Ctrl/Cmd+V</STRONG>) در این جعبهٴ متنی بچسبانید و <STRONG>پذیرش</STRONG> را بزنید.","securityMsg":"به خاطر تنظیمات امنیتی مرورگر شما، ویرایشگر نمیتواند دسترسی مستقیم به دادههای clipboard داشته باشد. شما باید دوباره آنرا در این پنجره بچسبانید.","title":"چسباندن"},"button":{"selectedLabel":"%1 (انتخاب شده)"},"blockquote":{"toolbar":"بلوک نقل قول"},"basicstyles":{"bold":"درشت","italic":"خمیده","strike":"خط‌خورده","subscript":"زیرنویس","superscript":"بالانویس","underline":"زیرخط‌دار"},"about":{"copy":"حق نشر &copy; $1. کلیه حقوق محفوظ است.","dlgTitle":"درباره CKEditor","help":" برای راهنمایی $1 را ملاحظه کنید.","moreInfo":"برای کسب اطلاعات مجوز لطفا به وب سایت ما مراجعه کنید:","title":"درباره CKEditor","userGuide":"راهنمای کاربران CKEditor"},"editor":"ویرایش‌گر متن غنی","editorPanel":"پنل ویرایشگر متن غنی","common":{"editorHelp":"کلید Alt+0 را برای راهنمایی بفشارید","browseServer":"فهرست​نمایی سرور","url":"URL","protocol":"قرارداد","upload":"بالاگذاری","uploadSubmit":"به سرور بفرست","image":"تصویر","flash":"فلش","form":"فرم","checkbox":"چک‌باکس","radio":"دکمه‌ی رادیویی","textField":"فیلد متنی","textarea":"ناحیهٴ متنی","hiddenField":"فیلد پنهان","button":"دکمه","select":"فیلد انتخاب چند گزینه​ای","imageButton":"دکمه‌ی تصویری","notSet":"<تعیین‌نشده>","id":"شناسه","name":"نام","langDir":"جهت زبان","langDirLtr":"چپ به راست","langDirRtl":"راست به چپ","langCode":"کد زبان","longDescr":"URL توصیف طولانی","cssClass":"کلاس​های شیوه​نامه (Stylesheet)","advisoryTitle":"عنوان کمکی","cssStyle":"سبک","ok":"پذیرش","cancel":"انصراف","close":"بستن","preview":"پیش‌نمایش","resize":"تغییر اندازه","generalTab":"عمومی","advancedTab":"پیش‌رفته","validateNumberFailed":"این مقدار یک عدد نیست.","confirmNewPage":"هر تغییر ایجاد شده​ی ذخیره نشده از بین خواهد رفت. آیا اطمینان دارید که قصد بارگیری صفحه جدیدی را دارید؟","confirmCancel":"برخی از گزینه‌ها تغییر کرده‌اند. آیا واقعا قصد بستن این پنجره را دارید؟","options":"گزینه​ها","target":"مقصد","targetNew":"پنجره جدید","targetTop":"بالاترین پنجره","targetSelf":"همان پنجره","targetParent":"پنجره والد","langDirLTR":"چپ به راست","langDirRTL":"راست به چپ","styles":"سبک","cssClasses":"کلاس‌های سبک‌نامه","width":"عرض","height":"طول","align":"چینش","alignLeft":"چپ","alignRight":"راست","alignCenter":"وسط","alignJustify":"بلوک چین","alignTop":"بالا","alignMiddle":"میانه","alignBottom":"پائین","alignNone":"هیچ","invalidValue":"مقدار نامعتبر.","invalidHeight":"ارتفاع باید یک عدد باشد.","invalidWidth":"عرض باید یک عدد باشد.","invalidCssLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری CSS معتبر باشد (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"عدد تعیین شده برای فیلد \"%1\" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری HTML معتبر باشد (px or %).","invalidInlineStyle":"عدد تعیین شده برای سبک درون​خطی -Inline Style- باید دارای یک یا چند چندتایی با شکلی شبیه \"name : value\" که باید با یک \";\" از هم جدا شوند.","cssLengthTooltip":"یک عدد برای یک مقدار بر حسب پیکسل و یا یک عدد با یک واحد CSS معتبر وارد کنید (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">، غیر قابل دسترس</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/fi.js b/core/assets/vendor/ckeditor/lang/fi.js
index b9d94e6..42d0ae6 100644
--- a/core/assets/vendor/ckeditor/lang/fi.js
+++ b/core/assets/vendor/ckeditor/lang/fi.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['fi']={"widget":{"move":"Siirrä klikkaamalla ja raahaamalla","label":"%1 widget"},"undo":{"redo":"Toista","undo":"Kumoa"},"toolbar":{"toolbarCollapse":"Kutista työkalupalkki","toolbarExpand":"Laajenna työkalupalkki","toolbarGroups":{"document":"Dokumentti","clipboard":"Leikepöytä/Kumoa","editing":"Muokkaus","forms":"Lomakkeet","basicstyles":"Perustyylit","paragraph":"Kappale","links":"Linkit","insert":"Lisää","styles":"Tyylit","colors":"Värit","tools":"Työkalut"},"toolbars":"Editorin työkalupalkit"},"table":{"border":"Rajan paksuus","caption":"Otsikko","cell":{"menu":"Solu","insertBefore":"Lisää solu eteen","insertAfter":"Lisää solu perään","deleteCell":"Poista solut","merge":"Yhdistä solut","mergeRight":"Yhdistä oikealla olevan kanssa","mergeDown":"Yhdistä alla olevan kanssa","splitHorizontal":"Jaa solu vaakasuunnassa","splitVertical":"Jaa solu pystysuunnassa","title":"Solun ominaisuudet","cellType":"Solun tyyppi","rowSpan":"Rivin jatkuvuus","colSpan":"Solun jatkuvuus","wordWrap":"Rivitys","hAlign":"Horisontaali kohdistus","vAlign":"Vertikaali kohdistus","alignBaseline":"Alas (teksti)","bgColor":"Taustan väri","borderColor":"Reunan väri","data":"Data","header":"Ylätunniste","yes":"Kyllä","no":"Ei","invalidWidth":"Solun leveyden täytyy olla numero.","invalidHeight":"Solun korkeuden täytyy olla numero.","invalidRowSpan":"Rivin jatkuvuuden täytyy olla kokonaisluku.","invalidColSpan":"Solun jatkuvuuden täytyy olla kokonaisluku.","chooseColor":"Valitse"},"cellPad":"Solujen sisennys","cellSpace":"Solujen väli","column":{"menu":"Sarake","insertBefore":"Lisää sarake vasemmalle","insertAfter":"Lisää sarake oikealle","deleteColumn":"Poista sarakkeet"},"columns":"Sarakkeet","deleteTable":"Poista taulu","headers":"Ylätunnisteet","headersBoth":"Molemmat","headersColumn":"Ensimmäinen sarake","headersNone":"Ei","headersRow":"Ensimmäinen rivi","invalidBorder":"Reunan koon täytyy olla numero.","invalidCellPadding":"Solujen sisennyksen täytyy olla numero.","invalidCellSpacing":"Solujen välin täytyy olla numero.","invalidCols":"Sarakkeiden määrän täytyy olla suurempi kuin 0.","invalidHeight":"Taulun korkeuden täytyy olla numero.","invalidRows":"Rivien määrän täytyy olla suurempi kuin 0.","invalidWidth":"Taulun leveyden täytyy olla numero.","menu":"Taulun ominaisuudet","row":{"menu":"Rivi","insertBefore":"Lisää rivi yläpuolelle","insertAfter":"Lisää rivi alapuolelle","deleteRow":"Poista rivit"},"rows":"Rivit","summary":"Yhteenveto","title":"Taulun ominaisuudet","toolbar":"Taulu","widthPc":"prosenttia","widthPx":"pikseliä","widthUnit":"leveysyksikkö"},"stylescombo":{"label":"Tyyli","panelTitle":"Muotoilujen tyylit","panelTitle1":"Lohkojen tyylit","panelTitle2":"Rivinsisäiset tyylit","panelTitle3":"Objektien tyylit"},"specialchar":{"options":"Erikoismerkin ominaisuudet","title":"Valitse erikoismerkki","toolbar":"Lisää erikoismerkki"},"sourcedialog":{"toolbar":"Koodi","title":"Koodi"},"sourcearea":{"toolbar":"Koodi"},"showblocks":{"toolbar":"Näytä elementit"},"removeformat":{"toolbar":"Poista muotoilu"},"pastetext":{"button":"Liitä tekstinä","title":"Liitä tekstinä"},"pastefromword":{"confirmCleanup":"Liittämäsi teksti näyttäisi olevan Word-dokumentista. Haluatko siivota sen ennen liittämistä? (Suositus: Kyllä)","error":"Liitetyn tiedon siivoaminen ei onnistunut sisäisen virheen takia","title":"Liitä Word-dokumentista","toolbar":"Liitä Word-dokumentista"},"maximize":{"maximize":"Suurenna","minimize":"Pienennä"},"magicline":{"title":"Lisää kappale tähän."},"list":{"bulletedlist":"Luettelomerkit","numberedlist":"Numerointi"},"language":{"button":"Aseta kieli","remove":"Poista kieli"},"justify":{"block":"Tasaa molemmat reunat","center":"Keskitä","left":"Tasaa vasemmat reunat","right":"Tasaa oikeat reunat"},"indent":{"indent":"Suurenna sisennystä","outdent":"Pienennä sisennystä"},"image2":{"alt":"Vaihtoehtoinen teksti","btnUpload":"Lähetä palvelimelle","captioned":"Kuva kuvatekstillä","captionPlaceholder":"Kuvateksti","infoTab":"Kuvan tiedot","lockRatio":"Lukitse suhteet","menu":"Kuvan ominaisuudet","pathName":"kuva","pathNameCaption":"kuvateksti","resetSize":"Alkuperäinen koko","resizer":"Klikkaa ja raahaa muuttaaksesi kokoa","title":"Kuvan ominaisuudet","uploadTab":"Lisää tiedosto","urlMissing":"Kuvan lähdeosoite puuttuu."},"horizontalrule":{"toolbar":"Lisää murtoviiva"},"format":{"label":"Muotoilu","panelTitle":"Muotoilu","tag_address":"Osoite","tag_div":"Normaali (DIV)","tag_h1":"Otsikko 1","tag_h2":"Otsikko 2","tag_h3":"Otsikko 3","tag_h4":"Otsikko 4","tag_h5":"Otsikko 5","tag_h6":"Otsikko 6","tag_p":"Normaali","tag_pre":"Muotoiltu"},"elementspath":{"eleLabel":"Elementin polku","eleTitle":"%1 elementti"},"contextmenu":{"options":"Pikavalikon ominaisuudet"},"clipboard":{"copy":"Kopioi","copyError":"Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).","cut":"Leikkaa","cutError":"Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).","paste":"Liitä","pasteArea":"Leikealue","pasteMsg":"Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.","securityMsg":"Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.","title":"Liitä"},"button":{"selectedLabel":"%1 (Valittu)"},"blockquote":{"toolbar":"Lainaus"},"basicstyles":{"bold":"Lihavoitu","italic":"Kursivoitu","strike":"Yliviivattu","subscript":"Alaindeksi","superscript":"Yläindeksi","underline":"Alleviivattu"},"about":{"copy":"Copyright &copy; $1. Kaikki oikeuden pidätetään.","dlgTitle":"Tietoa CKEditorista","help":"Katso ohjeet: $1.","moreInfo":"Lisenssitiedot löytyvät kotisivuiltamme:","title":"Tietoa CKEditorista","userGuide":"CKEditorin käyttäjäopas"},"editor":"Rikastekstieditori","editorPanel":"Rikastekstieditoripaneeli","common":{"editorHelp":"Paina ALT 0 nähdäksesi ohjeen","browseServer":"Selaa palvelinta","url":"Osoite","protocol":"Protokolla","upload":"Lisää tiedosto","uploadSubmit":"Lähetä palvelimelle","image":"Kuva","flash":"Flash-animaatio","form":"Lomake","checkbox":"Valintaruutu","radio":"Radiopainike","textField":"Tekstikenttä","textarea":"Tekstilaatikko","hiddenField":"Piilokenttä","button":"Painike","select":"Valintakenttä","imageButton":"Kuvapainike","notSet":"<ei asetettu>","id":"Tunniste","name":"Nimi","langDir":"Kielen suunta","langDirLtr":"Vasemmalta oikealle (LTR)","langDirRtl":"Oikealta vasemmalle (RTL)","langCode":"Kielikoodi","longDescr":"Pitkän kuvauksen URL","cssClass":"Tyyliluokat","advisoryTitle":"Avustava otsikko","cssStyle":"Tyyli","ok":"OK","cancel":"Peruuta","close":"Sulje","preview":"Esikatselu","resize":"Raahaa muuttaaksesi kokoa","generalTab":"Yleinen","advancedTab":"Lisäominaisuudet","validateNumberFailed":"Arvon pitää olla numero.","confirmNewPage":"Kaikki tallentamattomat muutokset tähän sisältöön menetetään. Oletko varma, että haluat ladata uuden sivun?","confirmCancel":"Jotkut asetuksista on muuttuneet. Oletko varma, että haluat sulkea valintaikkunan?","options":"Asetukset","target":"Kohde","targetNew":"Uusi ikkuna (_blank)","targetTop":"Päällimmäinen ikkuna (_top)","targetSelf":"Sama ikkuna (_self)","targetParent":"Ylemmän tason ikkuna (_parent)","langDirLTR":"Vasemmalta oikealle (LTR)","langDirRTL":"Oikealta vasemmalle (RTL)","styles":"Tyyli","cssClasses":"Tyylitiedoston luokat","width":"Leveys","height":"Korkeus","align":"Kohdistus","alignLeft":"Vasemmalle","alignRight":"Oikealle","alignCenter":"Keskelle","alignJustify":"Tasaa molemmat reunat","alignTop":"Ylös","alignMiddle":"Keskelle","alignBottom":"Alas","alignNone":"Ei asetettu","invalidValue":"Virheellinen arvo.","invalidHeight":"Korkeuden täytyy olla numero.","invalidWidth":"Leveyden täytyy olla numero.","invalidCssLength":"Kentän \"%1\" arvon täytyy olla positiivinen luku CSS mittayksikön (px, %, in, cm, mm, em, ex, pt tai pc) kanssa tai ilman.","invalidHtmlLength":"Kentän \"%1\" arvon täytyy olla positiivinen luku HTML mittayksikön (px tai %) kanssa tai ilman.","invalidInlineStyle":"Tyylille annetun arvon täytyy koostua yhdestä tai useammasta \"nimi : arvo\" parista, jotka ovat eroteltuna toisistaan puolipisteillä.","cssLengthTooltip":"Anna numeroarvo pikseleinä tai numeroarvo CSS mittayksikön kanssa (px, %, in, cm, mm, em, ex, pt, tai pc).","unavailable":"%1<span class=\"cke_accessibility\">, ei saatavissa</span>"}};
\ No newline at end of file
+CKEDITOR.lang['fi']={"widget":{"move":"Siirrä klikkaamalla ja raahaamalla"},"undo":{"redo":"Toista","undo":"Kumoa"},"toolbar":{"toolbarCollapse":"Kutista työkalupalkki","toolbarExpand":"Laajenna työkalupalkki","toolbarGroups":{"document":"Dokumentti","clipboard":"Leikepöytä/Kumoa","editing":"Muokkaus","forms":"Lomakkeet","basicstyles":"Perustyylit","paragraph":"Kappale","links":"Linkit","insert":"Lisää","styles":"Tyylit","colors":"Värit","tools":"Työkalut"},"toolbars":"Editorin työkalupalkit"},"table":{"border":"Rajan paksuus","caption":"Otsikko","cell":{"menu":"Solu","insertBefore":"Lisää solu eteen","insertAfter":"Lisää solu perään","deleteCell":"Poista solut","merge":"Yhdistä solut","mergeRight":"Yhdistä oikealla olevan kanssa","mergeDown":"Yhdistä alla olevan kanssa","splitHorizontal":"Jaa solu vaakasuunnassa","splitVertical":"Jaa solu pystysuunnassa","title":"Solun ominaisuudet","cellType":"Solun tyyppi","rowSpan":"Rivin jatkuvuus","colSpan":"Solun jatkuvuus","wordWrap":"Rivitys","hAlign":"Horisontaali kohdistus","vAlign":"Vertikaali kohdistus","alignBaseline":"Alas (teksti)","bgColor":"Taustan väri","borderColor":"Reunan väri","data":"Data","header":"Ylätunniste","yes":"Kyllä","no":"Ei","invalidWidth":"Solun leveyden täytyy olla numero.","invalidHeight":"Solun korkeuden täytyy olla numero.","invalidRowSpan":"Rivin jatkuvuuden täytyy olla kokonaisluku.","invalidColSpan":"Solun jatkuvuuden täytyy olla kokonaisluku.","chooseColor":"Valitse"},"cellPad":"Solujen sisennys","cellSpace":"Solujen väli","column":{"menu":"Sarake","insertBefore":"Lisää sarake vasemmalle","insertAfter":"Lisää sarake oikealle","deleteColumn":"Poista sarakkeet"},"columns":"Sarakkeet","deleteTable":"Poista taulu","headers":"Ylätunnisteet","headersBoth":"Molemmat","headersColumn":"Ensimmäinen sarake","headersNone":"Ei","headersRow":"Ensimmäinen rivi","invalidBorder":"Reunan koon täytyy olla numero.","invalidCellPadding":"Solujen sisennyksen täytyy olla numero.","invalidCellSpacing":"Solujen välin täytyy olla numero.","invalidCols":"Sarakkeiden määrän täytyy olla suurempi kuin 0.","invalidHeight":"Taulun korkeuden täytyy olla numero.","invalidRows":"Rivien määrän täytyy olla suurempi kuin 0.","invalidWidth":"Taulun leveyden täytyy olla numero.","menu":"Taulun ominaisuudet","row":{"menu":"Rivi","insertBefore":"Lisää rivi yläpuolelle","insertAfter":"Lisää rivi alapuolelle","deleteRow":"Poista rivit"},"rows":"Rivit","summary":"Yhteenveto","title":"Taulun ominaisuudet","toolbar":"Taulu","widthPc":"prosenttia","widthPx":"pikseliä","widthUnit":"leveysyksikkö"},"stylescombo":{"label":"Tyyli","panelTitle":"Muotoilujen tyylit","panelTitle1":"Lohkojen tyylit","panelTitle2":"Rivinsisäiset tyylit","panelTitle3":"Objektien tyylit"},"specialchar":{"options":"Erikoismerkin ominaisuudet","title":"Valitse erikoismerkki","toolbar":"Lisää erikoismerkki"},"sourcedialog":{"toolbar":"Koodi","title":"Koodi"},"sourcearea":{"toolbar":"Koodi"},"showblocks":{"toolbar":"Näytä elementit"},"removeformat":{"toolbar":"Poista muotoilu"},"pastetext":{"button":"Liitä tekstinä","title":"Liitä tekstinä"},"pastefromword":{"confirmCleanup":"Liittämäsi teksti näyttäisi olevan Word-dokumentista. Haluatko siivota sen ennen liittämistä? (Suositus: Kyllä)","error":"Liitetyn tiedon siivoaminen ei onnistunut sisäisen virheen takia","title":"Liitä Word-dokumentista","toolbar":"Liitä Word-dokumentista"},"maximize":{"maximize":"Suurenna","minimize":"Pienennä"},"magicline":{"title":"Lisää kappale tähän."},"list":{"bulletedlist":"Luettelomerkit","numberedlist":"Numerointi"},"language":{"button":"Aseta kieli","remove":"Poista kieli"},"justify":{"block":"Tasaa molemmat reunat","center":"Keskitä","left":"Tasaa vasemmat reunat","right":"Tasaa oikeat reunat"},"indent":{"indent":"Suurenna sisennystä","outdent":"Pienennä sisennystä"},"image2":{"alt":"Vaihtoehtoinen teksti","btnUpload":"Lähetä palvelimelle","captioned":"Kuva kuvatekstillä","captionPlaceholder":"Kuvateksti","infoTab":"Kuvan tiedot","lockRatio":"Lukitse suhteet","menu":"Kuvan ominaisuudet","pathName":"kuva","pathNameCaption":"kuvateksti","resetSize":"Alkuperäinen koko","resizer":"Klikkaa ja raahaa muuttaaksesi kokoa","title":"Kuvan ominaisuudet","uploadTab":"Lisää tiedosto","urlMissing":"Kuvan lähdeosoite puuttuu."},"horizontalrule":{"toolbar":"Lisää murtoviiva"},"format":{"label":"Muotoilu","panelTitle":"Muotoilu","tag_address":"Osoite","tag_div":"Normaali (DIV)","tag_h1":"Otsikko 1","tag_h2":"Otsikko 2","tag_h3":"Otsikko 3","tag_h4":"Otsikko 4","tag_h5":"Otsikko 5","tag_h6":"Otsikko 6","tag_p":"Normaali","tag_pre":"Muotoiltu"},"elementspath":{"eleLabel":"Elementin polku","eleTitle":"%1 elementti"},"contextmenu":{"options":"Pikavalikon ominaisuudet"},"clipboard":{"copy":"Kopioi","copyError":"Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).","cut":"Leikkaa","cutError":"Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).","paste":"Liitä","pasteArea":"Leikealue","pasteMsg":"Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.","securityMsg":"Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.","title":"Liitä"},"button":{"selectedLabel":"%1 (Valittu)"},"blockquote":{"toolbar":"Lainaus"},"basicstyles":{"bold":"Lihavoitu","italic":"Kursivoitu","strike":"Yliviivattu","subscript":"Alaindeksi","superscript":"Yläindeksi","underline":"Alleviivattu"},"about":{"copy":"Copyright &copy; $1. Kaikki oikeuden pidätetään.","dlgTitle":"Tietoa CKEditorista","help":"Katso ohjeet: $1.","moreInfo":"Lisenssitiedot löytyvät kotisivuiltamme:","title":"Tietoa CKEditorista","userGuide":"CKEditorin käyttäjäopas"},"editor":"Rikastekstieditori","editorPanel":"Rikastekstieditoripaneeli","common":{"editorHelp":"Paina ALT 0 nähdäksesi ohjeen","browseServer":"Selaa palvelinta","url":"Osoite","protocol":"Protokolla","upload":"Lisää tiedosto","uploadSubmit":"Lähetä palvelimelle","image":"Kuva","flash":"Flash-animaatio","form":"Lomake","checkbox":"Valintaruutu","radio":"Radiopainike","textField":"Tekstikenttä","textarea":"Tekstilaatikko","hiddenField":"Piilokenttä","button":"Painike","select":"Valintakenttä","imageButton":"Kuvapainike","notSet":"<ei asetettu>","id":"Tunniste","name":"Nimi","langDir":"Kielen suunta","langDirLtr":"Vasemmalta oikealle (LTR)","langDirRtl":"Oikealta vasemmalle (RTL)","langCode":"Kielikoodi","longDescr":"Pitkän kuvauksen URL","cssClass":"Tyyliluokat","advisoryTitle":"Avustava otsikko","cssStyle":"Tyyli","ok":"OK","cancel":"Peruuta","close":"Sulje","preview":"Esikatselu","resize":"Raahaa muuttaaksesi kokoa","generalTab":"Yleinen","advancedTab":"Lisäominaisuudet","validateNumberFailed":"Arvon pitää olla numero.","confirmNewPage":"Kaikki tallentamattomat muutokset tähän sisältöön menetetään. Oletko varma, että haluat ladata uuden sivun?","confirmCancel":"Jotkut asetuksista on muuttuneet. Oletko varma, että haluat sulkea valintaikkunan?","options":"Asetukset","target":"Kohde","targetNew":"Uusi ikkuna (_blank)","targetTop":"Päällimmäinen ikkuna (_top)","targetSelf":"Sama ikkuna (_self)","targetParent":"Ylemmän tason ikkuna (_parent)","langDirLTR":"Vasemmalta oikealle (LTR)","langDirRTL":"Oikealta vasemmalle (RTL)","styles":"Tyyli","cssClasses":"Tyylitiedoston luokat","width":"Leveys","height":"Korkeus","align":"Kohdistus","alignLeft":"Vasemmalle","alignRight":"Oikealle","alignCenter":"Keskelle","alignJustify":"Tasaa molemmat reunat","alignTop":"Ylös","alignMiddle":"Keskelle","alignBottom":"Alas","alignNone":"Ei asetettu","invalidValue":"Virheellinen arvo.","invalidHeight":"Korkeuden täytyy olla numero.","invalidWidth":"Leveyden täytyy olla numero.","invalidCssLength":"Kentän \"%1\" arvon täytyy olla positiivinen luku CSS mittayksikön (px, %, in, cm, mm, em, ex, pt tai pc) kanssa tai ilman.","invalidHtmlLength":"Kentän \"%1\" arvon täytyy olla positiivinen luku HTML mittayksikön (px tai %) kanssa tai ilman.","invalidInlineStyle":"Tyylille annetun arvon täytyy koostua yhdestä tai useammasta \"nimi : arvo\" parista, jotka ovat eroteltuna toisistaan puolipisteillä.","cssLengthTooltip":"Anna numeroarvo pikseleinä tai numeroarvo CSS mittayksikön kanssa (px, %, in, cm, mm, em, ex, pt, tai pc).","unavailable":"%1<span class=\"cke_accessibility\">, ei saatavissa</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/fo.js b/core/assets/vendor/ckeditor/lang/fo.js
index 4cf6268..07bcebc 100644
--- a/core/assets/vendor/ckeditor/lang/fo.js
+++ b/core/assets/vendor/ckeditor/lang/fo.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['fo']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Vend aftur","undo":"Angra"},"toolbar":{"toolbarCollapse":"Lat Toolbar aftur","toolbarExpand":"Vís Toolbar","toolbarGroups":{"document":"Dokument","clipboard":"Clipboard/Undo","editing":"Editering","forms":"Formar","basicstyles":"Grundleggjandi Styles","paragraph":"Reglubrot","links":"Leinkjur","insert":"Set inn","styles":"Styles","colors":"Litir","tools":"Tól"},"toolbars":"Editor toolbars"},"table":{"border":"Bordabreidd","caption":"Tabellfrágreiðing","cell":{"menu":"Meski","insertBefore":"Set meska inn áðrenn","insertAfter":"Set meska inn aftaná","deleteCell":"Strika meskar","merge":"Flætta meskar","mergeRight":"Flætta meskar til høgru","mergeDown":"Flætta saman","splitHorizontal":"Kloyv meska vatnrætt","splitVertical":"Kloyv meska loddrætt","title":"Mesku eginleikar","cellType":"Mesku slag","rowSpan":"Ræð spenni","colSpan":"Kolonnu spenni","wordWrap":"Orðkloyving","hAlign":"Horisontal plasering","vAlign":"Loddrøtt plasering","alignBaseline":"Basislinja","bgColor":"Bakgrundslitur","borderColor":"Bordalitur","data":"Data","header":"Header","yes":"Ja","no":"Nei","invalidWidth":"Meskubreidd má vera eitt tal.","invalidHeight":"Meskuhædd má vera eitt tal.","invalidRowSpan":"Raðspennið má vera eitt heiltal.","invalidColSpan":"Kolonnuspennið má vera eitt heiltal.","chooseColor":"Vel"},"cellPad":"Meskubreddi","cellSpace":"Fjarstøða millum meskar","column":{"menu":"Kolonna","insertBefore":"Set kolonnu inn áðrenn","insertAfter":"Set kolonnu inn aftaná","deleteColumn":"Strika kolonnur"},"columns":"Kolonnur","deleteTable":"Strika tabell","headers":"Yvirskriftir","headersBoth":"Báðir","headersColumn":"Fyrsta kolonna","headersNone":"Eingin","headersRow":"Fyrsta rað","invalidBorder":"Borda-stødd má vera eitt tal.","invalidCellPadding":"Cell padding má vera eitt tal.","invalidCellSpacing":"Cell spacing má vera eitt tal.","invalidCols":"Talið av kolonnum má vera eitt tal størri enn 0.","invalidHeight":"Tabell-hædd má vera eitt tal.","invalidRows":"Talið av røðum má vera eitt tal størri enn 0.","invalidWidth":"Tabell-breidd má vera eitt tal.","menu":"Eginleikar fyri tabell","row":{"menu":"Rað","insertBefore":"Set rað inn áðrenn","insertAfter":"Set rað inn aftaná","deleteRow":"Strika røðir"},"rows":"Røðir","summary":"Samandráttur","title":"Eginleikar fyri tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"pixels","widthUnit":"breiddar unit"},"stylescombo":{"label":"Typografi","panelTitle":"Formatterings stílir","panelTitle1":"Blokk stílir","panelTitle2":"Inline stílir","panelTitle3":"Object stílir"},"specialchar":{"options":"Møguleikar við serteknum","title":"Vel sertekn","toolbar":"Set inn sertekn"},"sourcedialog":{"toolbar":"Kelda","title":"Kelda"},"sourcearea":{"toolbar":"Kelda"},"showblocks":{"toolbar":"Vís blokkar"},"removeformat":{"toolbar":"Strika sniðgeving"},"pastetext":{"button":"Innrita som reinan tekst","title":"Innrita som reinan tekst"},"pastefromword":{"confirmCleanup":"Teksturin, tú roynir at seta inn, sýnist at stava frá Word. Skal teksturin reinsast fyrst?","error":"Tað eydnaðist ikki at reinsa tekstin vegna ein internan feil","title":"Innrita frá Word","toolbar":"Innrita frá Word"},"maximize":{"maximize":"Maksimera","minimize":"Minimera"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Punktmerktur listi","numberedlist":"Talmerktur listi"},"language":{"button":"Velja tungumál","remove":"Remove language"},"justify":{"block":"Javnir tekstkantar","center":"Miðsett","left":"Vinstrasett","right":"Høgrasett"},"indent":{"indent":"Økja reglubrotarinntriv","outdent":"Minka reglubrotarinntriv"},"image2":{"alt":"Alternativur tekstur","btnUpload":"Send til ambætaran","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Myndaupplýsingar","lockRatio":"Læs lutfallið","menu":"Myndaeginleikar","pathName":"image","pathNameCaption":"caption","resetSize":"Upprunastødd","resizer":"Click and drag to resize","title":"Myndaeginleikar","uploadTab":"Send til ambætaran","urlMissing":"URL til mynd manglar."},"horizontalrule":{"toolbar":"Ger vatnrætta linju"},"format":{"label":"Skriftsnið","panelTitle":"Skriftsnið","tag_address":"Adressa","tag_div":"Vanligt (DIV)","tag_h1":"Yvirskrift 1","tag_h2":"Yvirskrift 2","tag_h3":"Yvirskrift 3","tag_h4":"Yvirskrift 4","tag_h5":"Yvirskrift 5","tag_h6":"Yvirskrift 6","tag_p":"Vanligt","tag_pre":"Sniðgivið"},"elementspath":{"eleLabel":"Slóð til elementir","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Avrita","copyError":"Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).","cut":"Kvett","cutError":"Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).","paste":"Innrita","pasteArea":"Avritingarumráði","pasteMsg":"Vinarliga koyr tekstin í hendan rútin við knappaborðinum (<strong>Ctrl/Cmd+V</strong>) og klikk á <strong>Góðtak</strong>.","securityMsg":"Trygdaruppseting alnótskagans forðar tekstviðgeranum í beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur í hesum rútinum.","title":"Innrita"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Blockquote"},"basicstyles":{"bold":"Feit skrift","italic":"Skráskrift","strike":"Yvirstrikað","subscript":"Lækkað skrift","superscript":"Hækkað skrift","underline":"Undirstrikað"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"Um CKEditor","help":"Kekka $1 fyri hjálp.","moreInfo":"Licens upplýsingar finnast á heimasíðu okkara:","title":"Um CKEditor","userGuide":"CKEditor Brúkaravegleiðing"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Trýst ALT og 0 fyri vegleiðing","browseServer":"Ambætarakagi","url":"URL","protocol":"Protokoll","upload":"Send til ambætaran","uploadSubmit":"Send til ambætaran","image":"Myndir","flash":"Flash","form":"Formur","checkbox":"Flugubein","radio":"Radioknøttur","textField":"Tekstteigur","textarea":"Tekstumráði","hiddenField":"Fjaldur teigur","button":"Knøttur","select":"Valskrá","imageButton":"Myndaknøttur","notSet":"<ikki sett>","id":"Id","name":"Navn","langDir":"Tekstkós","langDirLtr":"Frá vinstru til høgru (LTR)","langDirRtl":"Frá høgru til vinstru (RTL)","langCode":"Málkoda","longDescr":"Víðkað URL frágreiðing","cssClass":"Typografi klassar","advisoryTitle":"Vegleiðandi heiti","cssStyle":"Typografi","ok":"Góðkent","cancel":"Avlýs","close":"Lat aftur","preview":"Frumsýn","resize":"Drag fyri at broyta stødd","generalTab":"Generelt","advancedTab":"Fjølbroytt","validateNumberFailed":"Hetta er ikki eitt tal.","confirmNewPage":"Allar ikki goymdar broytingar í hesum innihaldið hvørva. Skal nýggj síða lesast kortini?","confirmCancel":"Nakrir valmøguleikar eru broyttir. Ert tú vísur í, at dialogurin skal latast aftur?","options":"Options","target":"Target","targetNew":"Nýtt vindeyga (_blank)","targetTop":"Vindeyga ovast (_top)","targetSelf":"Sama vindeyga (_self)","targetParent":"Upphavligt vindeyga (_parent)","langDirLTR":"Frá vinstru til høgru (LTR)","langDirRTL":"Frá høgru til vinstru (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Breidd","height":"Hædd","align":"Justering","alignLeft":"Vinstra","alignRight":"Høgra","alignCenter":"Miðsett","alignJustify":"Javnir tekstkantar","alignTop":"Ovast","alignMiddle":"Miðja","alignBottom":"Botnur","alignNone":"Eingin","invalidValue":"Invalid value.","invalidHeight":"Hædd má vera eitt tal.","invalidWidth":"Breidd má vera eitt tal.","invalidCssLength":"Virðið sett í \"%1\" feltið má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px, %, in, cm, mm, em, ex, pt, ella pc).","invalidHtmlLength":"Virðið sett í \"%1\" feltiðield má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px ella %).","invalidInlineStyle":"Virði specifiserað fyri inline style má hava eitt ella fleiri pør (tuples) skrivað sum \"name : value\", hvørt parið sundurskilt við semi-colon.","cssLengthTooltip":"Skriva eitt tal fyri eitt virði í pixels ella eitt tal við gyldigum CSS eind (px, %, in, cm, mm, em, ex, pt, ella pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikki tøkt</span>"}};
\ No newline at end of file
+CKEDITOR.lang['fo']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Vend aftur","undo":"Angra"},"toolbar":{"toolbarCollapse":"Lat Toolbar aftur","toolbarExpand":"Vís Toolbar","toolbarGroups":{"document":"Dokument","clipboard":"Clipboard/Undo","editing":"Editering","forms":"Formar","basicstyles":"Grundleggjandi Styles","paragraph":"Reglubrot","links":"Leinkjur","insert":"Set inn","styles":"Styles","colors":"Litir","tools":"Tól"},"toolbars":"Editor toolbars"},"table":{"border":"Bordabreidd","caption":"Tabellfrágreiðing","cell":{"menu":"Meski","insertBefore":"Set meska inn áðrenn","insertAfter":"Set meska inn aftaná","deleteCell":"Strika meskar","merge":"Flætta meskar","mergeRight":"Flætta meskar til høgru","mergeDown":"Flætta saman","splitHorizontal":"Kloyv meska vatnrætt","splitVertical":"Kloyv meska loddrætt","title":"Mesku eginleikar","cellType":"Mesku slag","rowSpan":"Ræð spenni","colSpan":"Kolonnu spenni","wordWrap":"Orðkloyving","hAlign":"Horisontal plasering","vAlign":"Loddrøtt plasering","alignBaseline":"Basislinja","bgColor":"Bakgrundslitur","borderColor":"Bordalitur","data":"Data","header":"Header","yes":"Ja","no":"Nei","invalidWidth":"Meskubreidd má vera eitt tal.","invalidHeight":"Meskuhædd má vera eitt tal.","invalidRowSpan":"Raðspennið má vera eitt heiltal.","invalidColSpan":"Kolonnuspennið má vera eitt heiltal.","chooseColor":"Vel"},"cellPad":"Meskubreddi","cellSpace":"Fjarstøða millum meskar","column":{"menu":"Kolonna","insertBefore":"Set kolonnu inn áðrenn","insertAfter":"Set kolonnu inn aftaná","deleteColumn":"Strika kolonnur"},"columns":"Kolonnur","deleteTable":"Strika tabell","headers":"Yvirskriftir","headersBoth":"Báðir","headersColumn":"Fyrsta kolonna","headersNone":"Eingin","headersRow":"Fyrsta rað","invalidBorder":"Borda-stødd má vera eitt tal.","invalidCellPadding":"Cell padding má vera eitt tal.","invalidCellSpacing":"Cell spacing má vera eitt tal.","invalidCols":"Talið av kolonnum má vera eitt tal størri enn 0.","invalidHeight":"Tabell-hædd má vera eitt tal.","invalidRows":"Talið av røðum má vera eitt tal størri enn 0.","invalidWidth":"Tabell-breidd má vera eitt tal.","menu":"Eginleikar fyri tabell","row":{"menu":"Rað","insertBefore":"Set rað inn áðrenn","insertAfter":"Set rað inn aftaná","deleteRow":"Strika røðir"},"rows":"Røðir","summary":"Samandráttur","title":"Eginleikar fyri tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"pixels","widthUnit":"breiddar unit"},"stylescombo":{"label":"Typografi","panelTitle":"Formatterings stílir","panelTitle1":"Blokk stílir","panelTitle2":"Inline stílir","panelTitle3":"Object stílir"},"specialchar":{"options":"Møguleikar við serteknum","title":"Vel sertekn","toolbar":"Set inn sertekn"},"sourcedialog":{"toolbar":"Kelda","title":"Kelda"},"sourcearea":{"toolbar":"Kelda"},"showblocks":{"toolbar":"Vís blokkar"},"removeformat":{"toolbar":"Strika sniðgeving"},"pastetext":{"button":"Innrita som reinan tekst","title":"Innrita som reinan tekst"},"pastefromword":{"confirmCleanup":"Teksturin, tú roynir at seta inn, sýnist at stava frá Word. Skal teksturin reinsast fyrst?","error":"Tað eydnaðist ikki at reinsa tekstin vegna ein internan feil","title":"Innrita frá Word","toolbar":"Innrita frá Word"},"maximize":{"maximize":"Maksimera","minimize":"Minimera"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Punktmerktur listi","numberedlist":"Talmerktur listi"},"language":{"button":"Velja tungumál","remove":"Remove language"},"justify":{"block":"Javnir tekstkantar","center":"Miðsett","left":"Vinstrasett","right":"Høgrasett"},"indent":{"indent":"Økja reglubrotarinntriv","outdent":"Minka reglubrotarinntriv"},"image2":{"alt":"Alternativur tekstur","btnUpload":"Send til ambætaran","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Myndaupplýsingar","lockRatio":"Læs lutfallið","menu":"Myndaeginleikar","pathName":"image","pathNameCaption":"caption","resetSize":"Upprunastødd","resizer":"Click and drag to resize","title":"Myndaeginleikar","uploadTab":"Send til ambætaran","urlMissing":"URL til mynd manglar."},"horizontalrule":{"toolbar":"Ger vatnrætta linju"},"format":{"label":"Skriftsnið","panelTitle":"Skriftsnið","tag_address":"Adressa","tag_div":"Vanligt (DIV)","tag_h1":"Yvirskrift 1","tag_h2":"Yvirskrift 2","tag_h3":"Yvirskrift 3","tag_h4":"Yvirskrift 4","tag_h5":"Yvirskrift 5","tag_h6":"Yvirskrift 6","tag_p":"Vanligt","tag_pre":"Sniðgivið"},"elementspath":{"eleLabel":"Slóð til elementir","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Avrita","copyError":"Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).","cut":"Kvett","cutError":"Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).","paste":"Innrita","pasteArea":"Avritingarumráði","pasteMsg":"Vinarliga koyr tekstin í hendan rútin við knappaborðinum (<strong>Ctrl/Cmd+V</strong>) og klikk á <strong>Góðtak</strong>.","securityMsg":"Trygdaruppseting alnótskagans forðar tekstviðgeranum í beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur í hesum rútinum.","title":"Innrita"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Blockquote"},"basicstyles":{"bold":"Feit skrift","italic":"Skráskrift","strike":"Yvirstrikað","subscript":"Lækkað skrift","superscript":"Hækkað skrift","underline":"Undirstrikað"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"Um CKEditor","help":"Kekka $1 fyri hjálp.","moreInfo":"Licens upplýsingar finnast á heimasíðu okkara:","title":"Um CKEditor","userGuide":"CKEditor Brúkaravegleiðing"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Trýst ALT og 0 fyri vegleiðing","browseServer":"Ambætarakagi","url":"URL","protocol":"Protokoll","upload":"Send til ambætaran","uploadSubmit":"Send til ambætaran","image":"Myndir","flash":"Flash","form":"Formur","checkbox":"Flugubein","radio":"Radioknøttur","textField":"Tekstteigur","textarea":"Tekstumráði","hiddenField":"Fjaldur teigur","button":"Knøttur","select":"Valskrá","imageButton":"Myndaknøttur","notSet":"<ikki sett>","id":"Id","name":"Navn","langDir":"Tekstkós","langDirLtr":"Frá vinstru til høgru (LTR)","langDirRtl":"Frá høgru til vinstru (RTL)","langCode":"Málkoda","longDescr":"Víðkað URL frágreiðing","cssClass":"Typografi klassar","advisoryTitle":"Vegleiðandi heiti","cssStyle":"Typografi","ok":"Góðkent","cancel":"Avlýs","close":"Lat aftur","preview":"Frumsýn","resize":"Drag fyri at broyta stødd","generalTab":"Generelt","advancedTab":"Fjølbroytt","validateNumberFailed":"Hetta er ikki eitt tal.","confirmNewPage":"Allar ikki goymdar broytingar í hesum innihaldið hvørva. Skal nýggj síða lesast kortini?","confirmCancel":"Nakrir valmøguleikar eru broyttir. Ert tú vísur í, at dialogurin skal latast aftur?","options":"Options","target":"Target","targetNew":"Nýtt vindeyga (_blank)","targetTop":"Vindeyga ovast (_top)","targetSelf":"Sama vindeyga (_self)","targetParent":"Upphavligt vindeyga (_parent)","langDirLTR":"Frá vinstru til høgru (LTR)","langDirRTL":"Frá høgru til vinstru (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Breidd","height":"Hædd","align":"Justering","alignLeft":"Vinstra","alignRight":"Høgra","alignCenter":"Miðsett","alignJustify":"Javnir tekstkantar","alignTop":"Ovast","alignMiddle":"Miðja","alignBottom":"Botnur","alignNone":"Eingin","invalidValue":"Invalid value.","invalidHeight":"Hædd má vera eitt tal.","invalidWidth":"Breidd má vera eitt tal.","invalidCssLength":"Virðið sett í \"%1\" feltið má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px, %, in, cm, mm, em, ex, pt, ella pc).","invalidHtmlLength":"Virðið sett í \"%1\" feltiðield má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px ella %).","invalidInlineStyle":"Virði specifiserað fyri inline style má hava eitt ella fleiri pør (tuples) skrivað sum \"name : value\", hvørt parið sundurskilt við semi-colon.","cssLengthTooltip":"Skriva eitt tal fyri eitt virði í pixels ella eitt tal við gyldigum CSS eind (px, %, in, cm, mm, em, ex, pt, ella pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikki tøkt</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/fr-ca.js b/core/assets/vendor/ckeditor/lang/fr-ca.js
index 58a8f30..f015aef 100644
--- a/core/assets/vendor/ckeditor/lang/fr-ca.js
+++ b/core/assets/vendor/ckeditor/lang/fr-ca.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['fr-ca']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Refaire","undo":"Annuler"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse papier/Annuler","editing":"Édition","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barre d'outils de l'éditeur"},"table":{"border":"Taille de la bordure","caption":"Titre","cell":{"menu":"Cellule","insertBefore":"Insérer une cellule avant","insertAfter":"Insérer une cellule après","deleteCell":"Supprimer des cellules","merge":"Fusionner les cellules","mergeRight":"Fusionner à droite","mergeDown":"Fusionner en bas","splitHorizontal":"Scinder la cellule horizontalement","splitVertical":"Scinder la cellule verticalement","title":"Propriétés de la cellule","cellType":"Type de cellule","rowSpan":"Fusion de lignes","colSpan":"Fusion de colonnes","wordWrap":"Retour à la ligne","hAlign":"Alignement horizontal","vAlign":"Alignement vertical","alignBaseline":"Bas du texte","bgColor":"Couleur d'arrière plan","borderColor":"Couleur de bordure","data":"Données","header":"En-tête","yes":"Oui","no":"Non","invalidWidth":"La largeur de cellule doit être un nombre.","invalidHeight":"La hauteur de cellule doit être un nombre.","invalidRowSpan":"La fusion de lignes doit être un nombre entier.","invalidColSpan":"La fusion de colonnes doit être un nombre entier.","chooseColor":"Sélectionner"},"cellPad":"Marge interne des cellules","cellSpace":"Espacement des cellules","column":{"menu":"Colonne","insertBefore":"Insérer une colonne avant","insertAfter":"Insérer une colonne après","deleteColumn":"Supprimer des colonnes"},"columns":"Colonnes","deleteTable":"Supprimer le tableau","headers":"En-têtes","headersBoth":"Les deux.","headersColumn":"Première colonne","headersNone":"Aucun","headersRow":"Première ligne","invalidBorder":"La taille de bordure doit être un nombre.","invalidCellPadding":"La marge interne des cellules doit être un nombre positif.","invalidCellSpacing":"L'espacement des cellules doit être un nombre positif.","invalidCols":"Le nombre de colonnes doit être supérieur à 0.","invalidHeight":"La hauteur du tableau doit être un nombre.","invalidRows":"Le nombre de lignes doit être supérieur à 0.","invalidWidth":"La largeur du tableau doit être un nombre.","menu":"Propriétés du tableau","row":{"menu":"Ligne","insertBefore":"Insérer une ligne avant","insertAfter":"Insérer une ligne après","deleteRow":"Supprimer des lignes"},"rows":"Lignes","summary":"Résumé","title":"Propriétés du tableau","toolbar":"Tableau","widthPc":"pourcentage","widthPx":"pixels","widthUnit":"unité de largeur"},"stylescombo":{"label":"Styles","panelTitle":"Styles de formattage","panelTitle1":"Styles de block","panelTitle2":"Styles en ligne","panelTitle3":"Styles d'objet"},"specialchar":{"options":"Option des caractères spéciaux","title":"Sélectionner un caractère spécial","toolbar":"Insérer un caractère spécial"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Afficher les blocs"},"removeformat":{"toolbar":"Supprimer le formatage"},"pastetext":{"button":"Coller comme texte","title":"Coller comme texte"},"pastefromword":{"confirmCleanup":"Le texte que vous tentez de coller semble provenir de Word.  Désirez vous le nettoyer avant de coller?","error":"Il n'a pas été possible de nettoyer les données collées du à une erreur interne","title":"Coller de Word","toolbar":"Coller de Word"},"maximize":{"maximize":"Maximizer","minimize":"Minimizer"},"magicline":{"title":"Insérer le paragraphe ici"},"list":{"bulletedlist":"Liste à puces","numberedlist":"Liste numérotée"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justifié","center":"Centré","left":"Aligner à gauche","right":"Aligner à Droite"},"indent":{"indent":"Augmenter le retrait","outdent":"Diminuer le retrait"},"image2":{"alt":"Texte alternatif","btnUpload":"Envoyer sur le serveur","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Informations sur l'image2","lockRatio":"Verrouiller les proportions","menu":"Propriétés de l'image2","pathName":"image","pathNameCaption":"caption","resetSize":"Taille originale","resizer":"Click and drag to resize","title":"Propriétés de l'image2","uploadTab":"Téléverser","urlMissing":"L'URL de la source de l'image est manquant."},"horizontalrule":{"toolbar":"Insérer un séparateur horizontale"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"En-tête 1","tag_h2":"En-tête 2","tag_h3":"En-tête 3","tag_h4":"En-tête 4","tag_h5":"En-tête 5","tag_h6":"En-tête 6","tag_p":"Normal","tag_pre":"Formaté"},"elementspath":{"eleLabel":"Chemin d'éléments","eleTitle":"element %1"},"contextmenu":{"options":"Options du menu contextuel"},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).","paste":"Coller","pasteArea":"Coller la zone","pasteMsg":"Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl/Cmd+V</STRONG>) et appuyer sur <STRONG>OK</STRONG>.","securityMsg":"A cause des paramètres de sécurité de votre navigateur, l'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.","title":"Coller"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Citation"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"about":{"copy":"Copyright &copy; $1. Tous droits réservés.","dlgTitle":"À propos de CKEditor","help":"Consulter $1 pour l'aide.","moreInfo":"Pour les informations de licence, consulter notre site internet:","title":"À propos de CKEditor","userGuide":"Guide utilisateur de CKEditor"},"editor":"Éditeur de texte enrichi","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Appuyez sur 0 pour de l'aide","browseServer":"Parcourir le serveur","url":"URL","protocol":"Protocole","upload":"Envoyer","uploadSubmit":"Envoyer au serveur","image":"Image","flash":"Animation Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ caché","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton image","notSet":"<Par défaut>","id":"Id","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"De gauche à droite (LTR)","langDirRtl":"De droite à gauche (RTL)","langCode":"Code langue","longDescr":"URL de description longue","cssClass":"Classes CSS","advisoryTitle":"Titre","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Redimensionner","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous certain de vouloir charger une nouvelle page?","confirmCancel":"Certaines options ont été modifiées.  Êtes-vous certain de vouloir fermer?","options":"Options","target":"Cible","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieur (_top)","targetSelf":"Cette fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"De gauche à droite (LTR)","langDirRTL":"De droite à gauche (RTL)","styles":"Style","cssClasses":"Classe CSS","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centré","alignJustify":"Justifié","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"None","invalidValue":"Valeur invalide.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style intégré doit être composée d'un ou plusieurs couples de valeur au format \"nom : valeur\", separés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour la valeur en pixel ou un nombre avec une unité CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>"}};
\ No newline at end of file
+CKEDITOR.lang['fr-ca']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Refaire","undo":"Annuler"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse papier/Annuler","editing":"Édition","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barre d'outils de l'éditeur"},"table":{"border":"Taille de la bordure","caption":"Titre","cell":{"menu":"Cellule","insertBefore":"Insérer une cellule avant","insertAfter":"Insérer une cellule après","deleteCell":"Supprimer des cellules","merge":"Fusionner les cellules","mergeRight":"Fusionner à droite","mergeDown":"Fusionner en bas","splitHorizontal":"Scinder la cellule horizontalement","splitVertical":"Scinder la cellule verticalement","title":"Propriétés de la cellule","cellType":"Type de cellule","rowSpan":"Fusion de lignes","colSpan":"Fusion de colonnes","wordWrap":"Retour à la ligne","hAlign":"Alignement horizontal","vAlign":"Alignement vertical","alignBaseline":"Bas du texte","bgColor":"Couleur d'arrière plan","borderColor":"Couleur de bordure","data":"Données","header":"En-tête","yes":"Oui","no":"Non","invalidWidth":"La largeur de cellule doit être un nombre.","invalidHeight":"La hauteur de cellule doit être un nombre.","invalidRowSpan":"La fusion de lignes doit être un nombre entier.","invalidColSpan":"La fusion de colonnes doit être un nombre entier.","chooseColor":"Sélectionner"},"cellPad":"Marge interne des cellules","cellSpace":"Espacement des cellules","column":{"menu":"Colonne","insertBefore":"Insérer une colonne avant","insertAfter":"Insérer une colonne après","deleteColumn":"Supprimer des colonnes"},"columns":"Colonnes","deleteTable":"Supprimer le tableau","headers":"En-têtes","headersBoth":"Les deux.","headersColumn":"Première colonne","headersNone":"Aucun","headersRow":"Première ligne","invalidBorder":"La taille de bordure doit être un nombre.","invalidCellPadding":"La marge interne des cellules doit être un nombre positif.","invalidCellSpacing":"L'espacement des cellules doit être un nombre positif.","invalidCols":"Le nombre de colonnes doit être supérieur à 0.","invalidHeight":"La hauteur du tableau doit être un nombre.","invalidRows":"Le nombre de lignes doit être supérieur à 0.","invalidWidth":"La largeur du tableau doit être un nombre.","menu":"Propriétés du tableau","row":{"menu":"Ligne","insertBefore":"Insérer une ligne avant","insertAfter":"Insérer une ligne après","deleteRow":"Supprimer des lignes"},"rows":"Lignes","summary":"Résumé","title":"Propriétés du tableau","toolbar":"Tableau","widthPc":"pourcentage","widthPx":"pixels","widthUnit":"unité de largeur"},"stylescombo":{"label":"Styles","panelTitle":"Styles de formattage","panelTitle1":"Styles de block","panelTitle2":"Styles en ligne","panelTitle3":"Styles d'objet"},"specialchar":{"options":"Option des caractères spéciaux","title":"Sélectionner un caractère spécial","toolbar":"Insérer un caractère spécial"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Afficher les blocs"},"removeformat":{"toolbar":"Supprimer le formatage"},"pastetext":{"button":"Coller comme texte","title":"Coller comme texte"},"pastefromword":{"confirmCleanup":"Le texte que vous tentez de coller semble provenir de Word.  Désirez vous le nettoyer avant de coller?","error":"Il n'a pas été possible de nettoyer les données collées du à une erreur interne","title":"Coller de Word","toolbar":"Coller de Word"},"maximize":{"maximize":"Maximizer","minimize":"Minimizer"},"magicline":{"title":"Insérer le paragraphe ici"},"list":{"bulletedlist":"Liste à puces","numberedlist":"Liste numérotée"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justifié","center":"Centré","left":"Aligner à gauche","right":"Aligner à Droite"},"indent":{"indent":"Augmenter le retrait","outdent":"Diminuer le retrait"},"image2":{"alt":"Texte alternatif","btnUpload":"Envoyer sur le serveur","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Informations sur l'image2","lockRatio":"Verrouiller les proportions","menu":"Propriétés de l'image2","pathName":"image","pathNameCaption":"caption","resetSize":"Taille originale","resizer":"Click and drag to resize","title":"Propriétés de l'image2","uploadTab":"Téléverser","urlMissing":"L'URL de la source de l'image est manquant."},"horizontalrule":{"toolbar":"Insérer un séparateur horizontale"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"En-tête 1","tag_h2":"En-tête 2","tag_h3":"En-tête 3","tag_h4":"En-tête 4","tag_h5":"En-tête 5","tag_h6":"En-tête 6","tag_p":"Normal","tag_pre":"Formaté"},"elementspath":{"eleLabel":"Chemin d'éléments","eleTitle":"element %1"},"contextmenu":{"options":"Options du menu contextuel"},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).","paste":"Coller","pasteArea":"Coller la zone","pasteMsg":"Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl/Cmd+V</STRONG>) et appuyer sur <STRONG>OK</STRONG>.","securityMsg":"A cause des paramètres de sécurité de votre navigateur, l'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.","title":"Coller"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Citation"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"about":{"copy":"Copyright &copy; $1. Tous droits réservés.","dlgTitle":"À propos de CKEditor","help":"Consulter $1 pour l'aide.","moreInfo":"Pour les informations de licence, consulter notre site internet:","title":"À propos de CKEditor","userGuide":"Guide utilisateur de CKEditor"},"editor":"Éditeur de texte enrichi","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Appuyez sur 0 pour de l'aide","browseServer":"Parcourir le serveur","url":"URL","protocol":"Protocole","upload":"Envoyer","uploadSubmit":"Envoyer au serveur","image":"Image","flash":"Animation Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ caché","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton image","notSet":"<Par défaut>","id":"Id","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"De gauche à droite (LTR)","langDirRtl":"De droite à gauche (RTL)","langCode":"Code langue","longDescr":"URL de description longue","cssClass":"Classes CSS","advisoryTitle":"Titre","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Redimensionner","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous certain de vouloir charger une nouvelle page?","confirmCancel":"Certaines options ont été modifiées.  Êtes-vous certain de vouloir fermer?","options":"Options","target":"Cible","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieur (_top)","targetSelf":"Cette fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"De gauche à droite (LTR)","langDirRTL":"De droite à gauche (RTL)","styles":"Style","cssClasses":"Classe CSS","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centré","alignJustify":"Justifié","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"None","invalidValue":"Valeur invalide.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style intégré doit être composée d'un ou plusieurs couples de valeur au format \"nom : valeur\", separés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour la valeur en pixel ou un nombre avec une unité CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/fr.js b/core/assets/vendor/ckeditor/lang/fr.js
index 55dd50a..c13f532 100644
--- a/core/assets/vendor/ckeditor/lang/fr.js
+++ b/core/assets/vendor/ckeditor/lang/fr.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['fr']={"widget":{"move":"Cliquer et glisser pour déplacer","label":"Élément %1"},"undo":{"redo":"Rétablir","undo":"Annuler"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse-papier/Défaire","editing":"Édition","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barres d'outils de l'éditeur"},"table":{"border":"Taille de la bordure","caption":"Titre du tableau","cell":{"menu":"Cellule","insertBefore":"Insérer une cellule avant","insertAfter":"Insérer une cellule après","deleteCell":"Supprimer les cellules","merge":"Fusionner les cellules","mergeRight":"Fusionner à droite","mergeDown":"Fusionner en bas","splitHorizontal":"Scinder la cellule horizontalement","splitVertical":"Scinder la cellule verticalement","title":"Propriétés de la cellule","cellType":"Type de cellule","rowSpan":"Lignes occupées","colSpan":"Colonnes occupées","wordWrap":"Césure","hAlign":"Alignement horizontal","vAlign":"Alignement vertical","alignBaseline":"Ligne de base","bgColor":"Couleur d'arrière-plan","borderColor":"Couleur de bordure","data":"Données","header":"En-tête","yes":"Oui","no":"Non","invalidWidth":"La largeur de la cellule doit être un nombre.","invalidHeight":"La hauteur de la cellule doit être un nombre.","invalidRowSpan":"Le nombre de colonnes occupées doit être un nombre entier.","invalidColSpan":"Le nombre de colonnes occupées doit être un nombre entier.","chooseColor":"Choisir"},"cellPad":"Marge interne des cellules","cellSpace":"Espacement entre les cellules","column":{"menu":"Colonne","insertBefore":"Insérer une colonne avant","insertAfter":"Insérer une colonne après","deleteColumn":"Supprimer les colonnes"},"columns":"Colonnes","deleteTable":"Supprimer le tableau","headers":"En-têtes","headersBoth":"Les deux","headersColumn":"Première colonne","headersNone":"Aucun","headersRow":"Première ligne","invalidBorder":"La taille de la bordure doit être un nombre.","invalidCellPadding":"La marge interne des cellules doit être un nombre positif.","invalidCellSpacing":"L'espacement entre les cellules doit être un nombre positif.","invalidCols":"Le nombre de colonnes doit être supérieur à 0.","invalidHeight":"La hauteur du tableau doit être un nombre.","invalidRows":"Le nombre de lignes doit être supérieur à 0.","invalidWidth":"La largeur du tableau doit être un nombre.","menu":"Propriétés du tableau","row":{"menu":"Ligne","insertBefore":"Insérer une ligne avant","insertAfter":"Insérer une ligne après","deleteRow":"Supprimer les lignes"},"rows":"Lignes","summary":"Résumé (description)","title":"Propriétés du tableau","toolbar":"Tableau","widthPc":"pour cent","widthPx":"pixels","widthUnit":"unité de largeur"},"stylescombo":{"label":"Styles","panelTitle":"Styles de mise en forme","panelTitle1":"Styles de bloc","panelTitle2":"Styles en ligne","panelTitle3":"Styles d'objet"},"specialchar":{"options":"Options des caractères spéciaux","title":"Sélectionner un caractère","toolbar":"Insérer un caractère spécial"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Afficher les blocs"},"removeformat":{"toolbar":"Supprimer la mise en forme"},"pastetext":{"button":"Coller comme texte brut","title":"Coller comme texte brut"},"pastefromword":{"confirmCleanup":"Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller ?","error":"Les données collées n'ont pas pu être nettoyées à cause d'une erreur interne.","title":"Coller depuis Word","toolbar":"Coller depuis Word"},"maximize":{"maximize":"Agrandir","minimize":"Réduire"},"magicline":{"title":"Insérer un paragraphe ici"},"list":{"bulletedlist":"Insérer/Supprimer une liste à puces","numberedlist":"Insérer/Supprimer une liste numérotée"},"language":{"button":"Définir la langue","remove":"Supprimer la langue"},"justify":{"block":"Justifier","center":"Centrer","left":"Aligner à gauche","right":"Aligner à droite"},"indent":{"indent":"Augmenter le retrait","outdent":"Diminuer le retrait"},"image2":{"alt":"Texte alternatif","btnUpload":"Envoyer sur le serveur","captioned":"Image légendée","captionPlaceholder":"Légende","infoTab":"Informations sur l'image","lockRatio":"Conserver les proportions","menu":"Propriétés de l'image","pathName":"image","pathNameCaption":"légende","resetSize":"Réinitialiser la taille","resizer":"Cliquer et glisser pour redimensionner","title":"Propriétés de l'image","uploadTab":"Téléverser","urlMissing":"L'URL source de l'image est manquante."},"horizontalrule":{"toolbar":"Ligne horizontale"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Division","tag_h1":"Titre 1","tag_h2":"Titre 2","tag_h3":"Titre 3","tag_h4":"Titre 4","tag_h5":"Titre 5","tag_h6":"Titre 6","tag_p":"Normal","tag_pre":"Préformaté"},"elementspath":{"eleLabel":"Chemin des éléments","eleTitle":"Élément %1"},"contextmenu":{"options":"Options du menu contextuel"},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur n'autorisent pas l'éditeur à exécuter automatiquement l'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur n'autorisent pas l'éditeur à exécuter automatiquement l'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).","paste":"Coller","pasteArea":"Coller la zone","pasteMsg":"Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK.","securityMsg":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur d'accéder directement aux données du presse-papier. Vous devez les coller à nouveau dans cette fenêtre.","title":"Coller"},"button":{"selectedLabel":"%1 (Sélectionné)"},"blockquote":{"toolbar":"Citation"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"about":{"copy":"Copyright &copy; $1. Tous droits réservés.","dlgTitle":"À propos de CKEditor","help":"Consulter $1 pour obtenir de l'aide.","moreInfo":"Pour les informations de licence, veuillez visiter notre site web :","title":"À propos de CKEditor","userGuide":"Guide de l'utilisateur CKEditor (en anglais)"},"editor":"Éditeur de texte enrichi","editorPanel":"Tableau de bord de l'éditeur de texte enrichi","common":{"editorHelp":"Utilisez le raccourci Alt-0 pour obtenir de l'aide","browseServer":"Parcourir le serveur","url":"URL","protocol":"Protocole","upload":"Téléverser","uploadSubmit":"Envoyer sur le serveur","image":"Image","flash":"Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ invisible","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton avec image","notSet":"<indéfini>","id":"ID","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"Gauche à droite (LTR)","langDirRtl":"Droite à gauche (RTL)","langCode":"Code de langue","longDescr":"URL de description longue","cssClass":"Classes de style","advisoryTitle":"Infobulle","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Redimensionner","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page ?","confirmCancel":"Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer ?","options":"Options","target":"Cible","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieure (_top)","targetSelf":"Même fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"Gauche à droite (LTR)","langDirRTL":"Droite à gauche (RTL)","styles":"Style","cssClasses":"Classes de style","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centrer","alignJustify":"Justifier","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"Aucun","invalidValue":"Valeur invalide.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style en ligne doit être composée d'un ou plusieurs couples au format « nom : valeur », séparés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>"}};
\ No newline at end of file
+CKEDITOR.lang['fr']={"widget":{"move":"Cliquer et glisser pour déplacer"},"undo":{"redo":"Rétablir","undo":"Annuler"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse-papier/Défaire","editing":"Editer","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barre d'outils de l'éditeur"},"table":{"border":"Taille de la bordure","caption":"Titre du tableau","cell":{"menu":"Cellule","insertBefore":"Insérer une cellule avant","insertAfter":"Insérer une cellule après","deleteCell":"Supprimer les cellules","merge":"Fusionner les cellules","mergeRight":"Fusionner à droite","mergeDown":"Fusionner en bas","splitHorizontal":"Fractionner horizontalement","splitVertical":"Fractionner verticalement","title":"Propriétés de la cellule","cellType":"Type de cellule","rowSpan":"Fusion de lignes","colSpan":"Fusion de colonnes","wordWrap":"Césure","hAlign":"Alignement Horizontal","vAlign":"Alignement Vertical","alignBaseline":"Bas du texte","bgColor":"Couleur d'arrière-plan","borderColor":"Couleur de Bordure","data":"Données","header":"Entête","yes":"Oui","no":"Non","invalidWidth":"La Largeur de Cellule doit être un nombre.","invalidHeight":"La Hauteur de Cellule doit être un nombre.","invalidRowSpan":"La fusion de lignes doit être un nombre entier.","invalidColSpan":"La fusion de colonnes doit être un nombre entier.","chooseColor":"Choisissez"},"cellPad":"Marge interne des cellules","cellSpace":"Espacement des cellules","column":{"menu":"Colonnes","insertBefore":"Insérer une colonne avant","insertAfter":"Insérer une colonne après","deleteColumn":"Supprimer les colonnes"},"columns":"Colonnes","deleteTable":"Supprimer le tableau","headers":"En-Têtes","headersBoth":"Les deux","headersColumn":"Première colonne","headersNone":"Aucunes","headersRow":"Première ligne","invalidBorder":"La taille de la bordure doit être un nombre.","invalidCellPadding":"La marge intérieure des cellules doit être un nombre positif.","invalidCellSpacing":"L'espacement des cellules doit être un nombre positif.","invalidCols":"Le nombre de colonnes doit être supérieur à 0.","invalidHeight":"La hauteur du tableau doit être un nombre.","invalidRows":"Le nombre de lignes doit être supérieur à 0.","invalidWidth":"La largeur du tableau doit être un nombre.","menu":"Propriétés du tableau","row":{"menu":"Ligne","insertBefore":"Insérer une ligne avant","insertAfter":"Insérer une ligne après","deleteRow":"Supprimer les lignes"},"rows":"Lignes","summary":"Résumé (description)","title":"Propriétés du tableau","toolbar":"Tableau","widthPc":"% pourcents","widthPx":"pixels","widthUnit":"unité de largeur"},"stylescombo":{"label":"Styles","panelTitle":"Styles de mise en page","panelTitle1":"Styles de blocs","panelTitle2":"Styles en ligne","panelTitle3":"Styles d'objet"},"specialchar":{"options":"Options des caractères spéciaux","title":"Sélectionnez un caractère","toolbar":"Insérer un caractère spécial"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Afficher les blocs"},"removeformat":{"toolbar":"Supprimer la mise en forme"},"pastetext":{"button":"Coller comme texte sans mise en forme","title":"Coller comme texte sans mise en forme"},"pastefromword":{"confirmCleanup":"Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?","error":"Il n'a pas été possible de nettoyer les données collées à la suite d'une erreur interne.","title":"Coller depuis Word","toolbar":"Coller depuis Word"},"maximize":{"maximize":"Agrandir","minimize":"Minimiser"},"magicline":{"title":"Insérez un paragraphe ici"},"list":{"bulletedlist":"Insérer/Supprimer la liste à puces","numberedlist":"Insérer/Supprimer la liste numérotée"},"language":{"button":"Définir la langue","remove":"Supprimer la langue"},"justify":{"block":"Justifier","center":"Centrer","left":"Aligner à gauche","right":"Aligner à droite"},"indent":{"indent":"Augmenter le retrait (tabulation)","outdent":"Diminuer le retrait (tabulation)"},"image2":{"alt":"Texte de remplacement","btnUpload":"Envoyer sur le serveur","captioned":"Image légendée","captionPlaceholder":"Légende","infoTab":"Informations sur l'image2","lockRatio":"Conserver les proportions","menu":"Propriétés de l'image2","pathName":"image","pathNameCaption":"légende","resetSize":"Taille d'origine","resizer":"Cliquer et glisser pour redimensionner","title":"Propriétés de l'image2","uploadTab":"Envoyer","urlMissing":"L'adresse source de l'image est manquante."},"horizontalrule":{"toolbar":"Ligne horizontale"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Titre 1","tag_h2":"Titre 2","tag_h3":"Titre 3","tag_h4":"Titre 4","tag_h5":"Titre 5","tag_h6":"Titre 6","tag_p":"Normal","tag_pre":"Formaté"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 éléments"},"contextmenu":{"options":"Options du menu contextuel"},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur ne permettent pas à l'éditeur d'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur ne permettent pas à l'éditeur d'exécuter automatiquement l'opération \"couper\". Veuillez utiliser le raccourci clavier (Ctrl/Cmd+X).","paste":"Coller","pasteArea":"Coller la zone","pasteMsg":"Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK.","securityMsg":"A cause des paramètres de sécurité de votre navigateur, l'éditeur n'est pas en mesure d'accéder directement à vos données contenues dans le presse-papier. Vous devriez réessayer de coller les données dans la fenêtre.","title":"Coller"},"button":{"selectedLabel":"%1 (Sélectionné)"},"blockquote":{"toolbar":"Citation"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"about":{"copy":"Copyright &copy; $1. Tous droits réservés.","dlgTitle":"À propos de CKEditor","help":"Consulter $1 pour l'aide.","moreInfo":"Pour les informations de licence, veuillez visiter notre site web:","title":"À propos de CKEditor","userGuide":"Guide de l'utilisateur CKEditor en anglais"},"editor":"Éditeur de Texte Enrichi","editorPanel":"Tableau de bord de l'éditeur de texte enrichi","common":{"editorHelp":"Appuyez sur ALT-0 pour l'aide","browseServer":"Explorer le serveur","url":"URL","protocol":"Protocole","upload":"Télécharger","uploadSubmit":"Envoyer sur le serveur","image":"Image","flash":"Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton Radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ caché","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton image","notSet":"<non défini>","id":"Id","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"Gauche à droite (LTR)","langDirRtl":"Droite à gauche (RTL)","langCode":"Code de langue","longDescr":"URL de description longue (longdesc => malvoyant)","cssClass":"Classe CSS","advisoryTitle":"Description (title)","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Déplacer pour modifier la taille","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page?","confirmCancel":"Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer?","options":"Options","target":"Cible (Target)","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieure (_top)","targetSelf":"Même fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"Gauche à Droite (LTR)","langDirRTL":"Droite à Gauche (RTL)","styles":"Style","cssClasses":"Classes de style","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centré","alignJustify":"Justifier","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"Aucun","invalidValue":"Valeur incorrecte.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style inline doit être composée d'un ou plusieurs couples de valeur au format \"nom : valeur\", separés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, Indisponible</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/gl.js b/core/assets/vendor/ckeditor/lang/gl.js
index c376657..3a22ebc 100644
--- a/core/assets/vendor/ckeditor/lang/gl.js
+++ b/core/assets/vendor/ckeditor/lang/gl.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['gl']={"widget":{"move":"Prema e arrastre para mover","label":"%1 widget"},"undo":{"redo":"Refacer","undo":"Desfacer"},"toolbar":{"toolbarCollapse":"Contraer a barra de ferramentas","toolbarExpand":"Expandir a barra de ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeis/desfacer","editing":"Edición","forms":"Formularios","basicstyles":"Estilos básicos","paragraph":"Paragrafo","links":"Ligazóns","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Barras de ferramentas do editor"},"table":{"border":"Tamaño do bordo","caption":"Título","cell":{"menu":"Cela","insertBefore":"Inserir a cela á esquerda","insertAfter":"Inserir a cela á dereita","deleteCell":"Eliminar celas","merge":"Combinar celas","mergeRight":"Combinar á dereita","mergeDown":"Combinar cara abaixo","splitHorizontal":"Dividir a cela en horizontal","splitVertical":"Dividir a cela en vertical","title":"Propiedades da cela","cellType":"Tipo de cela","rowSpan":"Expandir filas","colSpan":"Expandir columnas","wordWrap":"Axustar ao contido","hAlign":"Aliñación horizontal","vAlign":"Aliñación vertical","alignBaseline":"Liña de base","bgColor":"Cor do fondo","borderColor":"Cor do bordo","data":"Datos","header":"Cabeceira","yes":"Si","no":"Non","invalidWidth":"O largo da cela debe ser un número.","invalidHeight":"O alto da cela debe ser un número.","invalidRowSpan":"A expansión de filas debe ser un número enteiro.","invalidColSpan":"A expansión de columnas debe ser un número enteiro.","chooseColor":"Escoller"},"cellPad":"Marxe interior da cela","cellSpace":"Marxe entre celas","column":{"menu":"Columna","insertBefore":"Inserir a columna á esquerda","insertAfter":"Inserir a columna á dereita","deleteColumn":"Borrar Columnas"},"columns":"Columnas","deleteTable":"Borrar Táboa","headers":"Cabeceiras","headersBoth":"Ambas","headersColumn":"Primeira columna","headersNone":"Ningún","headersRow":"Primeira fila","invalidBorder":"O tamaño do bordo debe ser un número.","invalidCellPadding":"A marxe interior debe ser un número positivo.","invalidCellSpacing":"A marxe entre celas debe ser un número positivo.","invalidCols":"O número de columnas debe ser un número maior que 0.","invalidHeight":"O alto da táboa debe ser un número.","invalidRows":"O número de filas debe ser un número maior que 0","invalidWidth":"O largo da táboa debe ser un número.","menu":"Propiedades da táboa","row":{"menu":"Fila","insertBefore":"Inserir a fila por riba","insertAfter":"Inserir a fila por baixo","deleteRow":"Eliminar filas"},"rows":"Filas","summary":"Resumo","title":"Propiedades da táboa","toolbar":"Taboa","widthPc":"porcentaxe","widthPx":"píxeles","widthUnit":"unidade do largo"},"stylescombo":{"label":"Estilos","panelTitle":"Estilos de formatando","panelTitle1":"Estilos de bloque","panelTitle2":"Estilos de liña","panelTitle3":"Estilos de obxecto"},"specialchar":{"options":"Opcións de caracteres especiais","title":"Seleccione un carácter especial","toolbar":"Inserir un carácter especial"},"sourcedialog":{"toolbar":"Orixe","title":"Orixe"},"sourcearea":{"toolbar":"Orixe"},"showblocks":{"toolbar":"Amosar os bloques"},"removeformat":{"toolbar":"Retirar o formato"},"pastetext":{"button":"Pegar como texto simple","title":"Pegar como texto simple"},"pastefromword":{"confirmCleanup":"O texto que quere pegar semella ser copiado desde o Word. Quere depuralo antes de pegalo?","error":"Non foi posíbel depurar os datos pegados por mor dun erro interno","title":"Pegar desde Word","toolbar":"Pegar desde Word"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Inserir aquí o parágrafo"},"list":{"bulletedlist":"Inserir/retirar lista viñeteada","numberedlist":"Inserir/retirar lista numerada"},"language":{"button":"Estabelezer o idioma","remove":"Retirar o idioma"},"justify":{"block":"Xustificado","center":"Centrado","left":"Aliñar á esquerda","right":"Aliñar á dereita"},"indent":{"indent":"Aumentar a sangría","outdent":"Reducir a sangría"},"image2":{"alt":"Texto alternativo","btnUpload":"Enviar ao servidor","captioned":"Imaxe con lenda","captionPlaceholder":"Lenda","infoTab":"Información da imaxe","lockRatio":"Proporcional","menu":"Propiedades da imaxe","pathName":"Imaxe","pathNameCaption":"lenda","resetSize":"Tamaño orixinal","resizer":"Prema e arrastre para axustar o tamaño","title":"Propiedades da imaxe","uploadTab":"Cargar","urlMissing":"Non se atopa o URL da imaxe."},"horizontalrule":{"toolbar":"Inserir unha liña horizontal"},"format":{"label":"Formato","panelTitle":"Formato do parágrafo","tag_address":"Enderezo","tag_div":"Normal  (DIV)","tag_h1":"Enacabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Formatado"},"elementspath":{"eleLabel":"Ruta dos elementos","eleTitle":"Elemento %1"},"contextmenu":{"options":"Opcións do menú contextual"},"clipboard":{"copy":"Copiar","copyError":"Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de copia. Use o teclado para iso (Ctrl/Cmd+C).","cut":"Cortar","cutError":"Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de corte. Use o teclado para iso (Ctrl/Cmd+X).","paste":"Pegar","pasteArea":"Zona de pegado","pasteMsg":"Pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e prema en Aceptar","securityMsg":"Por mor da configuración de seguranza do seu navegador, o editor non ten acceso ao portapapeis. É necesario pegalo novamente nesta xanela.","title":"Pegar"},"button":{"selectedLabel":"%1 (seleccionado)"},"blockquote":{"toolbar":"Cita"},"basicstyles":{"bold":"Negra","italic":"Cursiva","strike":"Riscado","subscript":"Subíndice","superscript":"Superíndice","underline":"Subliñado"},"about":{"copy":"Copyright &copy; $1. Todos os dereitos reservados.","dlgTitle":"Sobre o CKEditor","help":"Consulte $1 para obter axuda.","moreInfo":"Para obter  información sobre a licenza, visite o noso sitio web:","title":"Sobre o CKEditor","userGuide":"Guía do usuario do CKEditor"},"editor":"Editor de texto mellorado","editorPanel":"Panel do editor de texto mellorado","common":{"editorHelp":"Prema ALT 0 para obter axuda","browseServer":"Examinar o servidor","url":"URL","protocol":"Protocolo","upload":"Enviar","uploadSubmit":"Enviar ao servidor","image":"Imaxe","flash":"Flash","form":"Formulario","checkbox":"Caixa de selección","radio":"Botón de opción","textField":"Campo de texto","textarea":"Área de texto","hiddenField":"Campo agochado","button":"Botón","select":"Campo de selección","imageButton":"Botón de imaxe","notSet":"<sen estabelecer>","id":"ID","name":"Nome","langDir":"Dirección de escritura do idioma","langDirLtr":"Esquerda a dereita (LTR)","langDirRtl":"Dereita a esquerda (RTL)","langCode":"Código do idioma","longDescr":"Descrición completa do URL","cssClass":"Clases da folla de estilos","advisoryTitle":"Título","cssStyle":"Estilo","ok":"Aceptar","cancel":"Cancelar","close":"Pechar","preview":"Vista previa","resize":"Redimensionar","generalTab":"Xeral","advancedTab":"Avanzado","validateNumberFailed":"Este valor non é un número.","confirmNewPage":"Calquera cambio que non gardara neste contido perderase.\r\nConfirma que quere cargar unha páxina nova?","confirmCancel":"Algunhas das opcións foron cambiadas.\r\nConfirma que quere pechar o diálogo?","options":"Opcións","target":"Destino","targetNew":"Nova xanela (_blank)","targetTop":"Xanela principal (_top)","targetSelf":"Mesma xanela (_self)","targetParent":"Xanela superior (_parent)","langDirLTR":"Esquerda a dereita (LTR)","langDirRTL":"Dereita a esquerda (RTL)","styles":"Estilo","cssClasses":"Clases da folla de estilos","width":"Largo","height":"Alto","align":"Aliñamento","alignLeft":"Esquerda","alignRight":"Dereita","alignCenter":"Centro","alignJustify":"Xustificado","alignTop":"Arriba","alignMiddle":"Centro","alignBottom":"Abaixo","alignNone":"Ningún","invalidValue":"Valor incorrecto.","invalidHeight":"O alto debe ser un número.","invalidWidth":"O largo debe ser un número.","invalidCssLength":"O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida HTML correcta (px ou %).","invalidInlineStyle":"O valor especificado no estilo en liña debe consistir nunha ou máis tuplas co formato «nome : valor», separadas por punto e coma.","cssLengthTooltip":"Escriba un número para o valor en píxeles ou un número cunha unidade CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, non dispoñíbel</span>"}};
\ No newline at end of file
+CKEDITOR.lang['gl']={"widget":{"move":"Prema e arrastre para mover"},"undo":{"redo":"Refacer","undo":"Desfacer"},"toolbar":{"toolbarCollapse":"Contraer a barra de ferramentas","toolbarExpand":"Expandir a barra de ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeis/desfacer","editing":"Edición","forms":"Formularios","basicstyles":"Estilos básicos","paragraph":"Paragrafo","links":"Ligazóns","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Barras de ferramentas do editor"},"table":{"border":"Tamaño do bordo","caption":"Título","cell":{"menu":"Cela","insertBefore":"Inserir a cela á esquerda","insertAfter":"Inserir a cela á dereita","deleteCell":"Eliminar celas","merge":"Combinar celas","mergeRight":"Combinar á dereita","mergeDown":"Combinar cara abaixo","splitHorizontal":"Dividir a cela en horizontal","splitVertical":"Dividir a cela en vertical","title":"Propiedades da cela","cellType":"Tipo de cela","rowSpan":"Expandir filas","colSpan":"Expandir columnas","wordWrap":"Axustar ao contido","hAlign":"Aliñación horizontal","vAlign":"Aliñación vertical","alignBaseline":"Liña de base","bgColor":"Cor do fondo","borderColor":"Cor do bordo","data":"Datos","header":"Cabeceira","yes":"Si","no":"Non","invalidWidth":"O largo da cela debe ser un número.","invalidHeight":"O alto da cela debe ser un número.","invalidRowSpan":"A expansión de filas debe ser un número enteiro.","invalidColSpan":"A expansión de columnas debe ser un número enteiro.","chooseColor":"Escoller"},"cellPad":"Marxe interior da cela","cellSpace":"Marxe entre celas","column":{"menu":"Columna","insertBefore":"Inserir a columna á esquerda","insertAfter":"Inserir a columna á dereita","deleteColumn":"Borrar Columnas"},"columns":"Columnas","deleteTable":"Borrar Táboa","headers":"Cabeceiras","headersBoth":"Ambas","headersColumn":"Primeira columna","headersNone":"Ningún","headersRow":"Primeira fila","invalidBorder":"O tamaño do bordo debe ser un número.","invalidCellPadding":"A marxe interior debe ser un número positivo.","invalidCellSpacing":"A marxe entre celas debe ser un número positivo.","invalidCols":"O número de columnas debe ser un número maior que 0.","invalidHeight":"O alto da táboa debe ser un número.","invalidRows":"O número de filas debe ser un número maior que 0","invalidWidth":"O largo da táboa debe ser un número.","menu":"Propiedades da táboa","row":{"menu":"Fila","insertBefore":"Inserir a fila por riba","insertAfter":"Inserir a fila por baixo","deleteRow":"Eliminar filas"},"rows":"Filas","summary":"Resumo","title":"Propiedades da táboa","toolbar":"Taboa","widthPc":"porcentaxe","widthPx":"píxeles","widthUnit":"unidade do largo"},"stylescombo":{"label":"Estilos","panelTitle":"Estilos de formatando","panelTitle1":"Estilos de bloque","panelTitle2":"Estilos de liña","panelTitle3":"Estilos de obxecto"},"specialchar":{"options":"Opcións de caracteres especiais","title":"Seleccione un carácter especial","toolbar":"Inserir un carácter especial"},"sourcedialog":{"toolbar":"Orixe","title":"Orixe"},"sourcearea":{"toolbar":"Orixe"},"showblocks":{"toolbar":"Amosar os bloques"},"removeformat":{"toolbar":"Retirar o formato"},"pastetext":{"button":"Pegar como texto simple","title":"Pegar como texto simple"},"pastefromword":{"confirmCleanup":"O texto que quere pegar semella ser copiado desde o Word. Quere depuralo antes de pegalo?","error":"Non foi posíbel depurar os datos pegados por mor dun erro interno","title":"Pegar desde Word","toolbar":"Pegar desde Word"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Inserir aquí o parágrafo"},"list":{"bulletedlist":"Inserir/retirar lista viñeteada","numberedlist":"Inserir/retirar lista numerada"},"language":{"button":"Estabelezer o idioma","remove":"Retirar o idioma"},"justify":{"block":"Xustificado","center":"Centrado","left":"Aliñar á esquerda","right":"Aliñar á dereita"},"indent":{"indent":"Aumentar a sangría","outdent":"Reducir a sangría"},"image2":{"alt":"Texto alternativo","btnUpload":"Enviar ao servidor","captioned":"Imaxe con lenda","captionPlaceholder":"Lenda","infoTab":"Información da imaxe","lockRatio":"Proporcional","menu":"Propiedades da imaxe","pathName":"Imaxe","pathNameCaption":"lenda","resetSize":"Tamaño orixinal","resizer":"Prema e arrastre para axustar o tamaño","title":"Propiedades da imaxe","uploadTab":"Cargar","urlMissing":"Non se atopa o URL da imaxe."},"horizontalrule":{"toolbar":"Inserir unha liña horizontal"},"format":{"label":"Formato","panelTitle":"Formato do parágrafo","tag_address":"Enderezo","tag_div":"Normal  (DIV)","tag_h1":"Enacabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Formatado"},"elementspath":{"eleLabel":"Ruta dos elementos","eleTitle":"Elemento %1"},"contextmenu":{"options":"Opcións do menú contextual"},"clipboard":{"copy":"Copiar","copyError":"Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de copia. Use o teclado para iso (Ctrl/Cmd+C).","cut":"Cortar","cutError":"Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de corte. Use o teclado para iso (Ctrl/Cmd+X).","paste":"Pegar","pasteArea":"Zona de pegado","pasteMsg":"Pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e prema en Aceptar","securityMsg":"Por mor da configuración de seguranza do seu navegador, o editor non ten acceso ao portapapeis. É necesario pegalo novamente nesta xanela.","title":"Pegar"},"button":{"selectedLabel":"%1 (seleccionado)"},"blockquote":{"toolbar":"Cita"},"basicstyles":{"bold":"Negra","italic":"Cursiva","strike":"Riscado","subscript":"Subíndice","superscript":"Superíndice","underline":"Subliñado"},"about":{"copy":"Copyright &copy; $1. Todos os dereitos reservados.","dlgTitle":"Sobre o CKEditor","help":"Consulte $1 para obter axuda.","moreInfo":"Para obter  información sobre a licenza, visite o noso sitio web:","title":"Sobre o CKEditor","userGuide":"Guía do usuario do CKEditor"},"editor":"Editor de texto mellorado","editorPanel":"Panel do editor de texto mellorado","common":{"editorHelp":"Prema ALT 0 para obter axuda","browseServer":"Examinar o servidor","url":"URL","protocol":"Protocolo","upload":"Enviar","uploadSubmit":"Enviar ao servidor","image":"Imaxe","flash":"Flash","form":"Formulario","checkbox":"Caixa de selección","radio":"Botón de opción","textField":"Campo de texto","textarea":"Área de texto","hiddenField":"Campo agochado","button":"Botón","select":"Campo de selección","imageButton":"Botón de imaxe","notSet":"<sen estabelecer>","id":"ID","name":"Nome","langDir":"Dirección de escritura do idioma","langDirLtr":"Esquerda a dereita (LTR)","langDirRtl":"Dereita a esquerda (RTL)","langCode":"Código do idioma","longDescr":"Descrición completa do URL","cssClass":"Clases da folla de estilos","advisoryTitle":"Título","cssStyle":"Estilo","ok":"Aceptar","cancel":"Cancelar","close":"Pechar","preview":"Vista previa","resize":"Redimensionar","generalTab":"Xeral","advancedTab":"Avanzado","validateNumberFailed":"Este valor non é un número.","confirmNewPage":"Calquera cambio que non gardara neste contido perderase.\r\nConfirma que quere cargar unha páxina nova?","confirmCancel":"Algunhas das opcións foron cambiadas.\r\nConfirma que quere pechar o diálogo?","options":"Opcións","target":"Destino","targetNew":"Nova xanela (_blank)","targetTop":"Xanela principal (_top)","targetSelf":"Mesma xanela (_self)","targetParent":"Xanela superior (_parent)","langDirLTR":"Esquerda a dereita (LTR)","langDirRTL":"Dereita a esquerda (RTL)","styles":"Estilo","cssClasses":"Clases da folla de estilos","width":"Largo","height":"Alto","align":"Aliñamento","alignLeft":"Esquerda","alignRight":"Dereita","alignCenter":"Centro","alignJustify":"Xustificado","alignTop":"Arriba","alignMiddle":"Centro","alignBottom":"Abaixo","alignNone":"Ningún","invalidValue":"Valor incorrecto.","invalidHeight":"O alto debe ser un número.","invalidWidth":"O largo debe ser un número.","invalidCssLength":"O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida HTML correcta (px ou %).","invalidInlineStyle":"O valor especificado no estilo en liña debe consistir nunha ou máis tuplas co formato «nome : valor», separadas por punto e coma.","cssLengthTooltip":"Escriba un número para o valor en píxeles ou un número cunha unidade CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, non dispoñíbel</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/gu.js b/core/assets/vendor/ckeditor/lang/gu.js
index 213ec1c..6d9fa22 100644
--- a/core/assets/vendor/ckeditor/lang/gu.js
+++ b/core/assets/vendor/ckeditor/lang/gu.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['gu']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"રિડૂ; પછી હતી એવી સ્થિતિ પાછી લાવવી","undo":"રદ કરવું; પહેલાં હતી એવી સ્થિતિ પાછી લાવવી"},"toolbar":{"toolbarCollapse":"ટૂલબાર નાનું કરવું","toolbarExpand":"ટૂલબાર મોટું કરવું","toolbarGroups":{"document":"દસ્તાવેજ","clipboard":"ક્લિપબોર્ડ/અન","editing":"એડીટ કરવું","forms":"ફોર્મ","basicstyles":"બેસિક્ સ્ટાઇલ","paragraph":"ફકરો","links":"લીંક","insert":"ઉમેરવું","styles":"સ્ટાઇલ","colors":"રંગ","tools":"ટૂલ્સ"},"toolbars":"એડીટર ટૂલ બાર"},"table":{"border":"કોઠાની બાજુ(બોર્ડર) સાઇઝ","caption":"મથાળું/કૅપ્શન ","cell":{"menu":"કોષના ખાના","insertBefore":"પહેલાં કોષ ઉમેરવો","insertAfter":"પછી કોષ ઉમેરવો","deleteCell":"કોષ ડિલીટ/કાઢી નાખવો","merge":"કોષ ભેગા કરવા","mergeRight":"જમણી બાજુ ભેગા કરવા","mergeDown":"નીચે ભેગા કરવા","splitHorizontal":"કોષને સમસ્તરીય વિભાજન કરવું","splitVertical":"કોષને સીધું ને ઊભું વિભાજન કરવું","title":"સેલના ગુણ","cellType":"સેલનો પ્રકાર","rowSpan":"આડી કટારની જગ્યા","colSpan":"ઊભી કતારની જગ્યા","wordWrap":"વર્ડ રેપ","hAlign":"સપાટ લાઈનદોરી","vAlign":"ઊભી લાઈનદોરી","alignBaseline":"બસે લાઈન","bgColor":"પાછાળનો રંગ","borderColor":"બોર્ડેર રંગ","data":"સ્વીકૃત માહિતી","header":"મથાળું","yes":"હા","no":"ના","invalidWidth":"સેલની પોહલાઈ આંકડો હોવો જોઈએ.","invalidHeight":"સેલની ઊંચાઈ આંકડો હોવો જોઈએ.","invalidRowSpan":"રો સ્પાન આંકડો હોવો જોઈએ.","invalidColSpan":"કોલમ સ્પાન આંકડો હોવો જોઈએ.","chooseColor":"પસંદ કરવું"},"cellPad":"સેલ પૅડિંગ","cellSpace":"સેલ અંતર","column":{"menu":"કૉલમ/ઊભી કટાર","insertBefore":"પહેલાં કૉલમ/ઊભી કટાર ઉમેરવી","insertAfter":"પછી કૉલમ/ઊભી કટાર ઉમેરવી","deleteColumn":"કૉલમ/ઊભી કટાર ડિલીટ/કાઢી નાખવી"},"columns":"કૉલમ/ઊભી કટાર","deleteTable":"કોઠો ડિલીટ/કાઢી નાખવું","headers":"મથાળા","headersBoth":"બેવું","headersColumn":"પહેલી ઊભી કટાર","headersNone":"નથી ","headersRow":"પહેલી  કટાર","invalidBorder":"બોર્ડર એક આંકડો હોવો જોઈએ","invalidCellPadding":"સેલની અંદરની જગ્યા સુન્ય કરતા વધારે હોવી જોઈએ.","invalidCellSpacing":"સેલ વચ્ચેની જગ્યા સુન્ય કરતા વધારે હોવી જોઈએ.","invalidCols":"ઉભી કટાર, 0 કરતા વધારે હોવી જોઈએ.","invalidHeight":"ટેબલની ઊંચાઈ આંકડો હોવો જોઈએ.","invalidRows":"આડી કટાર, 0 કરતા વધારે હોવી જોઈએ.","invalidWidth":"ટેબલની પોહલાઈ આંકડો હોવો જોઈએ.","menu":"ટેબલ, કોઠાનું મથાળું","row":{"menu":"પંક્તિના ખાના","insertBefore":"પહેલાં પંક્તિ ઉમેરવી","insertAfter":"પછી પંક્તિ ઉમેરવી","deleteRow":"પંક્તિઓ ડિલીટ/કાઢી નાખવી"},"rows":"પંક્તિના ખાના","summary":"ટૂંકો એહેવાલ","title":"ટેબલ, કોઠાનું મથાળું","toolbar":"ટેબલ, કોઠો","widthPc":"પ્રતિશત","widthPx":"પિકસલ","widthUnit":"પોહાલાઈ એકમ"},"stylescombo":{"label":"શૈલી/રીત","panelTitle":"ફોર્મેટ ","panelTitle1":"બ્લોક ","panelTitle2":"ઈનલાઈન ","panelTitle3":"ઓબ્જેક્ટ પદ્ધતિ"},"specialchar":{"options":"સ્પેશિઅલ કરેક્ટરના વિકલ્પો","title":"સ્પેશિઅલ વિશિષ્ટ અક્ષર પસંદ કરો","toolbar":"વિશિષ્ટ અક્ષર ઇન્સર્ટ/દાખલ કરવું"},"sourcedialog":{"toolbar":"મૂળ કે પ્રાથમિક દસ્તાવેજ","title":"મૂળ કે પ્રાથમિક દસ્તાવેજ"},"sourcearea":{"toolbar":"મૂળ કે પ્રાથમિક દસ્તાવેજ"},"showblocks":{"toolbar":"બ્લૉક બતાવવું"},"removeformat":{"toolbar":"ફૉર્મટ કાઢવું"},"pastetext":{"button":"પેસ્ટ (ટેક્સ્ટ)","title":"પેસ્ટ (ટેક્સ્ટ)"},"pastefromword":{"confirmCleanup":"તમે જે ટેક્ષ્ત્ કોપી કરી રહ્યા છો ટે વર્ડ ની છે. કોપી કરતા પેહલા સાફ કરવી છે?","error":"પેસ્ટ કરેલો ડેટા ઇન્ટરનલ એરર ના લીથે સાફ કરી શકાયો નથી.","title":"પેસ્ટ (વડૅ ટેક્સ્ટ)","toolbar":"પેસ્ટ (વડૅ ટેક્સ્ટ)"},"maximize":{"maximize":"મોટું કરવું","minimize":"નાનું કરવું"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"બુલેટ સૂચિ","numberedlist":"સંખ્યાંકન સૂચિ"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"બ્લૉક, અંતરાય જસ્ટિફાઇ","center":"સંકેંદ્રણ/સેંટરિંગ","left":"ડાબી બાજુએ/બાજુ તરફ","right":"જમણી બાજુએ/બાજુ તરફ"},"indent":{"indent":"ઇન્ડેન્ટ, લીટીના આરંભમાં જગ્યા વધારવી","outdent":"ઇન્ડેન્ટ લીટીના આરંભમાં જગ્યા ઘટાડવી"},"image2":{"alt":"ઑલ્ટર્નટ ટેક્સ્ટ","btnUpload":"આ સર્વરને મોકલવું","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"ચિત્ર ની જાણકારી","lockRatio":"લૉક ગુણોત્તર","menu":"ચિત્રના ગુણ","pathName":"image","pathNameCaption":"caption","resetSize":"રીસેટ સાઇઝ","resizer":"Click and drag to resize","title":"ચિત્રના ગુણ","uploadTab":"અપલોડ","urlMissing":"ઈમેજની મૂળ URL છે નહી."},"horizontalrule":{"toolbar":"સમસ્તરીય રેખા ઇન્સર્ટ/દાખલ કરવી"},"format":{"label":"ફૉન્ટ ફૉર્મટ, રચનાની શૈલી","panelTitle":"ફૉન્ટ ફૉર્મટ, રચનાની શૈલી","tag_address":"સરનામું","tag_div":"શીર્ષક (DIV)","tag_h1":"શીર્ષક 1","tag_h2":"શીર્ષક 2","tag_h3":"શીર્ષક 3","tag_h4":"શીર્ષક 4","tag_h5":"શીર્ષક 5","tag_h6":"શીર્ષક 6","tag_p":"સામાન્ય","tag_pre":"ફૉર્મટેડ"},"elementspath":{"eleLabel":"એલીમેન્ટ્સ નો ","eleTitle":"એલીમેન્ટ %1"},"contextmenu":{"options":"કોન્તેક્ષ્ત્ મેનુના વિકલ્પો"},"clipboard":{"copy":"નકલ","copyError":"તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી.  (Ctrl/Cmd+C) का प्रयोग करें।","cut":"કાપવું","cutError":"તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+X) નો ઉપયોગ કરો.","paste":"પેસ્ટ","pasteArea":"પેસ્ટ કરવાની જગ્યા","pasteMsg":"Ctrl/Cmd+V નો પ્રયોગ કરી પેસ્ટ કરો","securityMsg":"તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસના કારણે,એડિટર તમારા કિલ્પબોર્ડ ડેટા ને કોપી નથી કરી શકતો. તમારે આ વિન્ડોમાં ફરીથી પેસ્ટ કરવું પડશે.","title":"પેસ્ટ"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"બ્લૉક-કોટ, અવતરણચિહ્નો"},"basicstyles":{"bold":"બોલ્ડ/સ્પષ્ટ","italic":"ઇટેલિક, ત્રાંસા","strike":"છેકી નાખવું","subscript":"એક ચિહ્નની નીચે કરેલું બીજું ચિહ્ન","superscript":"એક ચિહ્ન ઉપર કરેલું બીજું ચિહ્ન.","underline":"અન્ડર્લાઇન, નીચે લીટી"},"about":{"copy":"કોપીરાઈટ &copy; $1. ઓલ રાઈટ્સ ","dlgTitle":"CKEditor વિષે","help":"મદદ માટે $1 તપાસો","moreInfo":"લાયસનસની માહિતી માટે અમારી વેબ સાઈટ","title":"CKEditor વિષે","userGuide":"CKEditor યુઝર્સ ગાઈડ"},"editor":"રીચ ટેક્ષ્ત્ એડીટર","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"પ્રેસ ALT 0 મદદ માટ","browseServer":"સર્વર બ્રાઉઝ કરો","url":"URL","protocol":"પ્રોટોકૉલ","upload":"અપલોડ","uploadSubmit":"આ સર્વરને મોકલવું","image":"ચિત્ર","flash":"ફ્લૅશ","form":"ફૉર્મ/પત્રક","checkbox":"ચેક બોક્સ","radio":"રેડિઓ બટન","textField":"ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્ર","textarea":"ટેક્સ્ટ એરિઆ, શબ્દ વિસ્તાર","hiddenField":"ગુપ્ત ક્ષેત્ર","button":"બટન","select":"પસંદગી ક્ષેત્ર","imageButton":"ચિત્ર બટન","notSet":"<સેટ નથી>","id":"Id","name":"નામ","langDir":"ભાષા લેખવાની પદ્ધતિ","langDirLtr":"ડાબે થી જમણે (LTR)","langDirRtl":"જમણે થી ડાબે (RTL)","langCode":"ભાષા કોડ","longDescr":"વધારે માહિતી માટે URL","cssClass":"સ્ટાઇલ-શીટ ક્લાસ","advisoryTitle":"મુખ્ય મથાળું","cssStyle":"સ્ટાઇલ","ok":"ઠીક છે","cancel":"રદ કરવું","close":"બંધ કરવું","preview":"જોવું","resize":"ખેંચી ને યોગ્ય કરવું","generalTab":"જનરલ","advancedTab":"અડ્વાન્સડ","validateNumberFailed":"આ રકમ આકડો નથી.","confirmNewPage":"સવે કાર્ય વગરનું ફકરો ખોવાઈ જશે. તમને ખાતરી છે કે તમને નવું પાનું ખોલવું છે?","confirmCancel":"ઘણા વિકલ્પો બદલાયા છે. તમારે આ બોક્ષ્ બંધ કરવું છે?","options":"વિકલ્પો","target":"લક્ષ્ય","targetNew":"નવી વિન્ડો (_blank)","targetTop":"ઉપરની વિન્ડો (_top)","targetSelf":"એજ વિન્ડો (_self)","targetParent":"પેરનટ વિન્ડો (_parent)","langDirLTR":"ડાબે થી જમણે (LTR)","langDirRTL":"જમણે થી ડાબે (RTL)","styles":"શૈલી","cssClasses":"શૈલી કલાસીસ","width":"પહોળાઈ","height":"ઊંચાઈ","align":"લાઇનદોરીમાં ગોઠવવું","alignLeft":"ડાબી બાજુ ગોઠવવું","alignRight":"જમણી","alignCenter":"મધ્ય સેન્ટર","alignJustify":"બ્લૉક, અંતરાય જસ્ટિફાઇ","alignTop":"ઉપર","alignMiddle":"વચ્ચે","alignBottom":"નીચે","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"ઉંચાઈ એક આંકડો હોવો જોઈએ.","invalidWidth":"પોહળ ઈ એક આંકડો હોવો જોઈએ.","invalidCssLength":"\"%1\" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc) વગર.","invalidHtmlLength":"\"%1\" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા HTML measurement unit (px or %) વગર.","invalidInlineStyle":"ઈનલાઈન  સ્ટાઈલ ની વેલ્યુ  \"name : value\" ના ફોર્મેટ માં હોવી જોઈએ, વચ્ચે સેમી-કોલોન જોઈએ.","cssLengthTooltip":"પિક્ષ્લ્ નો આંકડો CSS unit (px, %, in, cm, mm, em, ex, pt, or pc) માં નાખો.","unavailable":"%1<span class=\"cke_accessibility\">, નથી મળતું</span>"}};
\ No newline at end of file
+CKEDITOR.lang['gu']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"રિડૂ; પછી હતી એવી સ્થિતિ પાછી લાવવી","undo":"રદ કરવું; પહેલાં હતી એવી સ્થિતિ પાછી લાવવી"},"toolbar":{"toolbarCollapse":"ટૂલબાર નાનું કરવું","toolbarExpand":"ટૂલબાર મોટું કરવું","toolbarGroups":{"document":"દસ્તાવેજ","clipboard":"ક્લિપબોર્ડ/અન","editing":"એડીટ કરવું","forms":"ફોર્મ","basicstyles":"બેસિક્ સ્ટાઇલ","paragraph":"ફકરો","links":"લીંક","insert":"ઉમેરવું","styles":"સ્ટાઇલ","colors":"રંગ","tools":"ટૂલ્સ"},"toolbars":"એડીટર ટૂલ બાર"},"table":{"border":"કોઠાની બાજુ(બોર્ડર) સાઇઝ","caption":"મથાળું/કૅપ્શન ","cell":{"menu":"કોષના ખાના","insertBefore":"પહેલાં કોષ ઉમેરવો","insertAfter":"પછી કોષ ઉમેરવો","deleteCell":"કોષ ડિલીટ/કાઢી નાખવો","merge":"કોષ ભેગા કરવા","mergeRight":"જમણી બાજુ ભેગા કરવા","mergeDown":"નીચે ભેગા કરવા","splitHorizontal":"કોષને સમસ્તરીય વિભાજન કરવું","splitVertical":"કોષને સીધું ને ઊભું વિભાજન કરવું","title":"સેલના ગુણ","cellType":"સેલનો પ્રકાર","rowSpan":"આડી કટારની જગ્યા","colSpan":"ઊભી કતારની જગ્યા","wordWrap":"વર્ડ રેપ","hAlign":"સપાટ લાઈનદોરી","vAlign":"ઊભી લાઈનદોરી","alignBaseline":"બસે લાઈન","bgColor":"પાછાળનો રંગ","borderColor":"બોર્ડેર રંગ","data":"સ્વીકૃત માહિતી","header":"મથાળું","yes":"હા","no":"ના","invalidWidth":"સેલની પોહલાઈ આંકડો હોવો જોઈએ.","invalidHeight":"સેલની ઊંચાઈ આંકડો હોવો જોઈએ.","invalidRowSpan":"રો સ્પાન આંકડો હોવો જોઈએ.","invalidColSpan":"કોલમ સ્પાન આંકડો હોવો જોઈએ.","chooseColor":"પસંદ કરવું"},"cellPad":"સેલ પૅડિંગ","cellSpace":"સેલ અંતર","column":{"menu":"કૉલમ/ઊભી કટાર","insertBefore":"પહેલાં કૉલમ/ઊભી કટાર ઉમેરવી","insertAfter":"પછી કૉલમ/ઊભી કટાર ઉમેરવી","deleteColumn":"કૉલમ/ઊભી કટાર ડિલીટ/કાઢી નાખવી"},"columns":"કૉલમ/ઊભી કટાર","deleteTable":"કોઠો ડિલીટ/કાઢી નાખવું","headers":"મથાળા","headersBoth":"બેવું","headersColumn":"પહેલી ઊભી કટાર","headersNone":"નથી ","headersRow":"પહેલી  કટાર","invalidBorder":"બોર્ડર એક આંકડો હોવો જોઈએ","invalidCellPadding":"સેલની અંદરની જગ્યા સુન્ય કરતા વધારે હોવી જોઈએ.","invalidCellSpacing":"સેલ વચ્ચેની જગ્યા સુન્ય કરતા વધારે હોવી જોઈએ.","invalidCols":"ઉભી કટાર, 0 કરતા વધારે હોવી જોઈએ.","invalidHeight":"ટેબલની ઊંચાઈ આંકડો હોવો જોઈએ.","invalidRows":"આડી કટાર, 0 કરતા વધારે હોવી જોઈએ.","invalidWidth":"ટેબલની પોહલાઈ આંકડો હોવો જોઈએ.","menu":"ટેબલ, કોઠાનું મથાળું","row":{"menu":"પંક્તિના ખાના","insertBefore":"પહેલાં પંક્તિ ઉમેરવી","insertAfter":"પછી પંક્તિ ઉમેરવી","deleteRow":"પંક્તિઓ ડિલીટ/કાઢી નાખવી"},"rows":"પંક્તિના ખાના","summary":"ટૂંકો એહેવાલ","title":"ટેબલ, કોઠાનું મથાળું","toolbar":"ટેબલ, કોઠો","widthPc":"પ્રતિશત","widthPx":"પિકસલ","widthUnit":"પોહાલાઈ એકમ"},"stylescombo":{"label":"શૈલી/રીત","panelTitle":"ફોર્મેટ ","panelTitle1":"બ્લોક ","panelTitle2":"ઈનલાઈન ","panelTitle3":"ઓબ્જેક્ટ પદ્ધતિ"},"specialchar":{"options":"સ્પેશિઅલ કરેક્ટરના વિકલ્પો","title":"સ્પેશિઅલ વિશિષ્ટ અક્ષર પસંદ કરો","toolbar":"વિશિષ્ટ અક્ષર ઇન્સર્ટ/દાખલ કરવું"},"sourcedialog":{"toolbar":"મૂળ કે પ્રાથમિક દસ્તાવેજ","title":"મૂળ કે પ્રાથમિક દસ્તાવેજ"},"sourcearea":{"toolbar":"મૂળ કે પ્રાથમિક દસ્તાવેજ"},"showblocks":{"toolbar":"બ્લૉક બતાવવું"},"removeformat":{"toolbar":"ફૉર્મટ કાઢવું"},"pastetext":{"button":"પેસ્ટ (ટેક્સ્ટ)","title":"પેસ્ટ (ટેક્સ્ટ)"},"pastefromword":{"confirmCleanup":"તમે જે ટેક્ષ્ત્ કોપી કરી રહ્યા છો ટે વર્ડ ની છે. કોપી કરતા પેહલા સાફ કરવી છે?","error":"પેસ્ટ કરેલો ડેટા ઇન્ટરનલ એરર ના લીથે સાફ કરી શકાયો નથી.","title":"પેસ્ટ (વડૅ ટેક્સ્ટ)","toolbar":"પેસ્ટ (વડૅ ટેક્સ્ટ)"},"maximize":{"maximize":"મોટું કરવું","minimize":"નાનું કરવું"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"બુલેટ સૂચિ","numberedlist":"સંખ્યાંકન સૂચિ"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"બ્લૉક, અંતરાય જસ્ટિફાઇ","center":"સંકેંદ્રણ/સેંટરિંગ","left":"ડાબી બાજુએ/બાજુ તરફ","right":"જમણી બાજુએ/બાજુ તરફ"},"indent":{"indent":"ઇન્ડેન્ટ, લીટીના આરંભમાં જગ્યા વધારવી","outdent":"ઇન્ડેન્ટ લીટીના આરંભમાં જગ્યા ઘટાડવી"},"image2":{"alt":"ઑલ્ટર્નટ ટેક્સ્ટ","btnUpload":"આ સર્વરને મોકલવું","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"ચિત્ર ની જાણકારી","lockRatio":"લૉક ગુણોત્તર","menu":"ચિત્રના ગુણ","pathName":"image","pathNameCaption":"caption","resetSize":"રીસેટ સાઇઝ","resizer":"Click and drag to resize","title":"ચિત્રના ગુણ","uploadTab":"અપલોડ","urlMissing":"ઈમેજની મૂળ URL છે નહી."},"horizontalrule":{"toolbar":"સમસ્તરીય રેખા ઇન્સર્ટ/દાખલ કરવી"},"format":{"label":"ફૉન્ટ ફૉર્મટ, રચનાની શૈલી","panelTitle":"ફૉન્ટ ફૉર્મટ, રચનાની શૈલી","tag_address":"સરનામું","tag_div":"શીર્ષક (DIV)","tag_h1":"શીર્ષક 1","tag_h2":"શીર્ષક 2","tag_h3":"શીર્ષક 3","tag_h4":"શીર્ષક 4","tag_h5":"શીર્ષક 5","tag_h6":"શીર્ષક 6","tag_p":"સામાન્ય","tag_pre":"ફૉર્મટેડ"},"elementspath":{"eleLabel":"એલીમેન્ટ્સ નો ","eleTitle":"એલીમેન્ટ %1"},"contextmenu":{"options":"કોન્તેક્ષ્ત્ મેનુના વિકલ્પો"},"clipboard":{"copy":"નકલ","copyError":"તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી.  (Ctrl/Cmd+C) का प्रयोग करें।","cut":"કાપવું","cutError":"તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+X) નો ઉપયોગ કરો.","paste":"પેસ્ટ","pasteArea":"પેસ્ટ કરવાની જગ્યા","pasteMsg":"Ctrl/Cmd+V નો પ્રયોગ કરી પેસ્ટ કરો","securityMsg":"તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસના કારણે,એડિટર તમારા કિલ્પબોર્ડ ડેટા ને કોપી નથી કરી શકતો. તમારે આ વિન્ડોમાં ફરીથી પેસ્ટ કરવું પડશે.","title":"પેસ્ટ"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"બ્લૉક-કોટ, અવતરણચિહ્નો"},"basicstyles":{"bold":"બોલ્ડ/સ્પષ્ટ","italic":"ઇટેલિક, ત્રાંસા","strike":"છેકી નાખવું","subscript":"એક ચિહ્નની નીચે કરેલું બીજું ચિહ્ન","superscript":"એક ચિહ્ન ઉપર કરેલું બીજું ચિહ્ન.","underline":"અન્ડર્લાઇન, નીચે લીટી"},"about":{"copy":"કોપીરાઈટ &copy; $1. ઓલ રાઈટ્સ ","dlgTitle":"CKEditor વિષે","help":"મદદ માટે $1 તપાસો","moreInfo":"લાયસનસની માહિતી માટે અમારી વેબ સાઈટ","title":"CKEditor વિષે","userGuide":"CKEditor યુઝર્સ ગાઈડ"},"editor":"રીચ ટેક્ષ્ત્ એડીટર","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"પ્રેસ ALT 0 મદદ માટ","browseServer":"સર્વર બ્રાઉઝ કરો","url":"URL","protocol":"પ્રોટોકૉલ","upload":"અપલોડ","uploadSubmit":"આ સર્વરને મોકલવું","image":"ચિત્ર","flash":"ફ્લૅશ","form":"ફૉર્મ/પત્રક","checkbox":"ચેક બોક્સ","radio":"રેડિઓ બટન","textField":"ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્ર","textarea":"ટેક્સ્ટ એરિઆ, શબ્દ વિસ્તાર","hiddenField":"ગુપ્ત ક્ષેત્ર","button":"બટન","select":"પસંદગી ક્ષેત્ર","imageButton":"ચિત્ર બટન","notSet":"<સેટ નથી>","id":"Id","name":"નામ","langDir":"ભાષા લેખવાની પદ્ધતિ","langDirLtr":"ડાબે થી જમણે (LTR)","langDirRtl":"જમણે થી ડાબે (RTL)","langCode":"ભાષા કોડ","longDescr":"વધારે માહિતી માટે URL","cssClass":"સ્ટાઇલ-શીટ ક્લાસ","advisoryTitle":"મુખ્ય મથાળું","cssStyle":"સ્ટાઇલ","ok":"ઠીક છે","cancel":"રદ કરવું","close":"બંધ કરવું","preview":"જોવું","resize":"ખેંચી ને યોગ્ય કરવું","generalTab":"જનરલ","advancedTab":"અડ્વાન્સડ","validateNumberFailed":"આ રકમ આકડો નથી.","confirmNewPage":"સવે કાર્ય વગરનું ફકરો ખોવાઈ જશે. તમને ખાતરી છે કે તમને નવું પાનું ખોલવું છે?","confirmCancel":"ઘણા વિકલ્પો બદલાયા છે. તમારે આ બોક્ષ્ બંધ કરવું છે?","options":"વિકલ્પો","target":"લક્ષ્ય","targetNew":"નવી વિન્ડો (_blank)","targetTop":"ઉપરની વિન્ડો (_top)","targetSelf":"એજ વિન્ડો (_self)","targetParent":"પેરનટ વિન્ડો (_parent)","langDirLTR":"ડાબે થી જમણે (LTR)","langDirRTL":"જમણે થી ડાબે (RTL)","styles":"શૈલી","cssClasses":"શૈલી કલાસીસ","width":"પહોળાઈ","height":"ઊંચાઈ","align":"લાઇનદોરીમાં ગોઠવવું","alignLeft":"ડાબી બાજુ ગોઠવવું","alignRight":"જમણી","alignCenter":"મધ્ય સેન્ટર","alignJustify":"બ્લૉક, અંતરાય જસ્ટિફાઇ","alignTop":"ઉપર","alignMiddle":"વચ્ચે","alignBottom":"નીચે","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"ઉંચાઈ એક આંકડો હોવો જોઈએ.","invalidWidth":"પોહળ ઈ એક આંકડો હોવો જોઈએ.","invalidCssLength":"\"%1\" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc) વગર.","invalidHtmlLength":"\"%1\" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા HTML measurement unit (px or %) વગર.","invalidInlineStyle":"ઈનલાઈન  સ્ટાઈલ ની વેલ્યુ  \"name : value\" ના ફોર્મેટ માં હોવી જોઈએ, વચ્ચે સેમી-કોલોન જોઈએ.","cssLengthTooltip":"પિક્ષ્લ્ નો આંકડો CSS unit (px, %, in, cm, mm, em, ex, pt, or pc) માં નાખો.","unavailable":"%1<span class=\"cke_accessibility\">, નથી મળતું</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/he.js b/core/assets/vendor/ckeditor/lang/he.js
index 18f4e9e..1d48807 100644
--- a/core/assets/vendor/ckeditor/lang/he.js
+++ b/core/assets/vendor/ckeditor/lang/he.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['he']={"widget":{"move":"לחץ וגרור להזזה","label":"%1 widget"},"undo":{"redo":"חזרה על צעד אחרון","undo":"ביטול צעד אחרון"},"toolbar":{"toolbarCollapse":"מזעור סרגל כלים","toolbarExpand":"הרחבת סרגל כלים","toolbarGroups":{"document":"מסמך","clipboard":"לוח הגזירים (Clipboard)/צעד אחרון","editing":"עריכה","forms":"טפסים","basicstyles":"עיצוב בסיסי","paragraph":"פסקה","links":"קישורים","insert":"הכנסה","styles":"עיצוב","colors":"צבעים","tools":"כלים"},"toolbars":"סרגלי כלים של העורך"},"table":{"border":"גודל מסגרת","caption":"כיתוב","cell":{"menu":"מאפייני תא","insertBefore":"הוספת תא לפני","insertAfter":"הוספת תא אחרי","deleteCell":"מחיקת תאים","merge":"מיזוג תאים","mergeRight":"מזג ימינה","mergeDown":"מזג למטה","splitHorizontal":"פיצול תא אופקית","splitVertical":"פיצול תא אנכית","title":"תכונות התא","cellType":"סוג התא","rowSpan":"מתיחת השורות","colSpan":"מתיחת התאים","wordWrap":"מניעת גלישת שורות","hAlign":"יישור אופקי","vAlign":"יישור אנכי","alignBaseline":"שורת בסיס","bgColor":"צבע רקע","borderColor":"צבע מסגרת","data":"מידע","header":"כותרת","yes":"כן","no":"לא","invalidWidth":"שדה רוחב התא חייב להיות מספר.","invalidHeight":"שדה גובה התא חייב להיות מספר.","invalidRowSpan":"שדה מתיחת השורות חייב להיות מספר שלם.","invalidColSpan":"שדה מתיחת העמודות חייב להיות מספר שלם.","chooseColor":"בחר"},"cellPad":"ריפוד תא","cellSpace":"מרווח תא","column":{"menu":"עמודה","insertBefore":"הוספת עמודה לפני","insertAfter":"הוספת עמודה אחרי","deleteColumn":"מחיקת עמודות"},"columns":"עמודות","deleteTable":"מחק טבלה","headers":"כותרות","headersBoth":"שניהם","headersColumn":"עמודה ראשונה","headersNone":"אין","headersRow":"שורה ראשונה","invalidBorder":"שדה גודל המסגרת חייב להיות מספר.","invalidCellPadding":"שדה ריפוד התאים חייב להיות מספר חיובי.","invalidCellSpacing":"שדה ריווח התאים חייב להיות מספר חיובי.","invalidCols":"שדה מספר העמודות חייב להיות מספר גדול מ 0.","invalidHeight":"שדה גובה הטבלה חייב להיות מספר.","invalidRows":"שדה מספר השורות חייב להיות מספר גדול מ 0.","invalidWidth":"שדה רוחב הטבלה חייב להיות מספר.","menu":"מאפייני טבלה","row":{"menu":"שורה","insertBefore":"הוספת שורה לפני","insertAfter":"הוספת שורה אחרי","deleteRow":"מחיקת שורות"},"rows":"שורות","summary":"תקציר","title":"מאפייני טבלה","toolbar":"טבלה","widthPc":"אחוז","widthPx":"פיקסלים","widthUnit":"יחידת רוחב"},"stylescombo":{"label":"סגנון","panelTitle":"סגנונות פורמט","panelTitle1":"סגנונות בלוק","panelTitle2":"סגנונות רצף","panelTitle3":"סגנונות אובייקט"},"specialchar":{"options":"אפשרויות תווים מיוחדים","title":"בחירת תו מיוחד","toolbar":"הוספת תו מיוחד"},"sourcedialog":{"toolbar":"מקור","title":"מקור"},"sourcearea":{"toolbar":"מקור"},"showblocks":{"toolbar":"הצגת בלוקים"},"removeformat":{"toolbar":"הסרת העיצוב"},"pastetext":{"button":"הדבקה כטקסט פשוט","title":"הדבקה כטקסט פשוט"},"pastefromword":{"confirmCleanup":"נראה הטקסט שבכוונתך להדביק מקורו בקובץ וורד. האם ברצונך לנקות אותו טרם ההדבקה?","error":"לא ניתן היה לנקות את המידע בשל תקלה פנימית.","title":"הדבקה מ-Word","toolbar":"הדבקה מ-Word"},"maximize":{"maximize":"הגדלה למקסימום","minimize":"הקטנה למינימום"},"magicline":{"title":"הכנס פסקה כאן"},"list":{"bulletedlist":"רשימת נקודות","numberedlist":"רשימה ממוספרת"},"language":{"button":"צור שפה","remove":"הסר שפה"},"justify":{"block":"יישור לשוליים","center":"מרכוז","left":"יישור לשמאל","right":"יישור לימין"},"indent":{"indent":"הגדלת הזחה","outdent":"הקטנת הזחה"},"image2":{"alt":"טקסט חלופי","btnUpload":"שליחה לשרת","captioned":"כותרת תמונה","captionPlaceholder":"כותרת","infoTab":"מידע על התמונה","lockRatio":"נעילת היחס","menu":"תכונות התמונה","pathName":"תמונה","pathNameCaption":"כותרת","resetSize":"איפוס הגודל","resizer":"לחץ וגרור לשינוי הגודל","title":"מאפייני התמונה","uploadTab":"העלאה","urlMissing":"כתובת התמונה חסרה."},"horizontalrule":{"toolbar":"הוספת קו אופקי"},"format":{"label":"עיצוב","panelTitle":"עיצוב","tag_address":"כתובת","tag_div":"נורמלי (DIV)","tag_h1":"כותרת","tag_h2":"כותרת 2","tag_h3":"כותרת 3","tag_h4":"כותרת 4","tag_h5":"כותרת 5","tag_h6":"כותרת 6","tag_p":"נורמלי","tag_pre":"קוד"},"elementspath":{"eleLabel":"עץ האלמנטים","eleTitle":"%1 אלמנט"},"contextmenu":{"options":"אפשרויות תפריט ההקשר"},"clipboard":{"copy":"העתקה","copyError":"הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+C).","cut":"גזירה","cutError":"הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+X).","paste":"הדבקה","pasteArea":"איזור הדבקה","pasteMsg":"נא להדביק בתוך הקופסה באמצעות (<b>Ctrl/Cmd+V</b>) וללחוץ על <b>אישור</b>.","securityMsg":"עקב הגדרות אבטחה בדפדפן, לא ניתן לגשת אל לוח הגזירים (Clipboard) בצורה ישירה. נא להדביק שוב בחלון זה.","title":"הדבקה"},"button":{"selectedLabel":"1% (סומן)"},"blockquote":{"toolbar":"בלוק ציטוט"},"basicstyles":{"bold":"מודגש","italic":"נטוי","strike":"כתיב מחוק","subscript":"כתיב תחתון","superscript":"כתיב עליון","underline":"קו תחתון"},"about":{"copy":"Copyright &copy; $1. כל הזכויות שמורות.","dlgTitle":"אודות CKEditor","help":"היכנסו ל$1 לעזרה.","moreInfo":"למידע נוסף בקרו באתרנו:","title":"אודות CKEditor","userGuide":"מדריך המשתמש של CKEditor"},"editor":"עורך טקסט עשיר","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"לחץ אלט ALT + 0 לעזרה","browseServer":"סייר השרת","url":"כתובת (URL)","protocol":"פרוטוקול","upload":"העלאה","uploadSubmit":"שליחה לשרת","image":"תמונה","flash":"פלאש","form":"טופס","checkbox":"תיבת סימון","radio":"לחצן אפשרויות","textField":"שדה טקסט","textarea":"איזור טקסט","hiddenField":"שדה חבוי","button":"כפתור","select":"שדה בחירה","imageButton":"כפתור תמונה","notSet":"<לא נקבע>","id":"זיהוי (ID)","name":"שם","langDir":"כיוון שפה","langDirLtr":"שמאל לימין (LTR)","langDirRtl":"ימין לשמאל (RTL)","langCode":"קוד שפה","longDescr":"קישור לתיאור מפורט","cssClass":"מחלקת עיצוב (CSS Class)","advisoryTitle":"כותרת מוצעת","cssStyle":"סגנון","ok":"אישור","cancel":"ביטול","close":"סגירה","preview":"תצוגה מקדימה","resize":"יש לגרור בכדי לשנות את הגודל","generalTab":"כללי","advancedTab":"אפשרויות מתקדמות","validateNumberFailed":"הערך חייב להיות מספרי.","confirmNewPage":"כל השינויים שלא נשמרו יאבדו. האם להעלות דף חדש?","confirmCancel":"חלק מהאפשרויות שונו, האם לסגור את הדיאלוג?","options":"אפשרויות","target":"מטרה","targetNew":"חלון חדש (_blank)","targetTop":"החלון העליון ביותר (_top)","targetSelf":"אותו חלון (_self)","targetParent":"חלון האב (_parent)","langDirLTR":"שמאל לימין (LTR)","langDirRTL":"ימין לשמאל (RTL)","styles":"סגנון","cssClasses":"מחלקות גליונות סגנון","width":"רוחב","height":"גובה","align":"יישור","alignLeft":"לשמאל","alignRight":"לימין","alignCenter":"מרכז","alignJustify":"יישור לשוליים","alignTop":"למעלה","alignMiddle":"לאמצע","alignBottom":"לתחתית","alignNone":"None","invalidValue":"ערך לא חוקי.","invalidHeight":"הגובה חייב להיות מספר.","invalidWidth":"הרוחב חייב להיות מספר.","invalidCssLength":"הערך שצוין לשדה \"%1\" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של CSS (px, %, in, cm, mm, em, ex, pt, או pc).","invalidHtmlLength":"הערך שצוין לשדה \"%1\" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של HTML (px או %).","invalidInlineStyle":"הערך שצויין לשדה הסגנון חייב להכיל זוג ערכים אחד או יותר בפורמט \"שם : ערך\", מופרדים על ידי נקודה-פסיק.","cssLengthTooltip":"יש להכניס מספר המייצג פיקסלים או מספר עם יחידת גליונות סגנון תקינה (px, %, in, cm, mm, em, ex, pt, או pc).","unavailable":"%1<span class=\"cke_accessibility\">, לא זמין</span>"}};
\ No newline at end of file
+CKEDITOR.lang['he']={"widget":{"move":"לחץ וגרור להזזה"},"undo":{"redo":"חזרה על צעד אחרון","undo":"ביטול צעד אחרון"},"toolbar":{"toolbarCollapse":"מזעור סרגל כלים","toolbarExpand":"הרחבת סרגל כלים","toolbarGroups":{"document":"מסמך","clipboard":"לוח הגזירים (Clipboard)/צעד אחרון","editing":"עריכה","forms":"טפסים","basicstyles":"עיצוב בסיסי","paragraph":"פסקה","links":"קישורים","insert":"הכנסה","styles":"עיצוב","colors":"צבעים","tools":"כלים"},"toolbars":"סרגלי כלים של העורך"},"table":{"border":"גודל מסגרת","caption":"כיתוב","cell":{"menu":"מאפייני תא","insertBefore":"הוספת תא לפני","insertAfter":"הוספת תא אחרי","deleteCell":"מחיקת תאים","merge":"מיזוג תאים","mergeRight":"מזג ימינה","mergeDown":"מזג למטה","splitHorizontal":"פיצול תא אופקית","splitVertical":"פיצול תא אנכית","title":"תכונות התא","cellType":"סוג התא","rowSpan":"מתיחת השורות","colSpan":"מתיחת התאים","wordWrap":"מניעת גלישת שורות","hAlign":"יישור אופקי","vAlign":"יישור אנכי","alignBaseline":"שורת בסיס","bgColor":"צבע רקע","borderColor":"צבע מסגרת","data":"מידע","header":"כותרת","yes":"כן","no":"לא","invalidWidth":"שדה רוחב התא חייב להיות מספר.","invalidHeight":"שדה גובה התא חייב להיות מספר.","invalidRowSpan":"שדה מתיחת השורות חייב להיות מספר שלם.","invalidColSpan":"שדה מתיחת העמודות חייב להיות מספר שלם.","chooseColor":"בחר"},"cellPad":"ריפוד תא","cellSpace":"מרווח תא","column":{"menu":"עמודה","insertBefore":"הוספת עמודה לפני","insertAfter":"הוספת עמודה אחרי","deleteColumn":"מחיקת עמודות"},"columns":"עמודות","deleteTable":"מחק טבלה","headers":"כותרות","headersBoth":"שניהם","headersColumn":"עמודה ראשונה","headersNone":"אין","headersRow":"שורה ראשונה","invalidBorder":"שדה גודל המסגרת חייב להיות מספר.","invalidCellPadding":"שדה ריפוד התאים חייב להיות מספר חיובי.","invalidCellSpacing":"שדה ריווח התאים חייב להיות מספר חיובי.","invalidCols":"שדה מספר העמודות חייב להיות מספר גדול מ 0.","invalidHeight":"שדה גובה הטבלה חייב להיות מספר.","invalidRows":"שדה מספר השורות חייב להיות מספר גדול מ 0.","invalidWidth":"שדה רוחב הטבלה חייב להיות מספר.","menu":"מאפייני טבלה","row":{"menu":"שורה","insertBefore":"הוספת שורה לפני","insertAfter":"הוספת שורה אחרי","deleteRow":"מחיקת שורות"},"rows":"שורות","summary":"תקציר","title":"מאפייני טבלה","toolbar":"טבלה","widthPc":"אחוז","widthPx":"פיקסלים","widthUnit":"יחידת רוחב"},"stylescombo":{"label":"סגנון","panelTitle":"סגנונות פורמט","panelTitle1":"סגנונות בלוק","panelTitle2":"סגנונות רצף","panelTitle3":"סגנונות אובייקט"},"specialchar":{"options":"אפשרויות תווים מיוחדים","title":"בחירת תו מיוחד","toolbar":"הוספת תו מיוחד"},"sourcedialog":{"toolbar":"מקור","title":"מקור"},"sourcearea":{"toolbar":"מקור"},"showblocks":{"toolbar":"הצגת בלוקים"},"removeformat":{"toolbar":"הסרת העיצוב"},"pastetext":{"button":"הדבקה כטקסט פשוט","title":"הדבקה כטקסט פשוט"},"pastefromword":{"confirmCleanup":"נראה הטקסט שבכוונתך להדביק מקורו בקובץ וורד. האם ברצונך לנקות אותו טרם ההדבקה?","error":"לא ניתן היה לנקות את המידע בשל תקלה פנימית.","title":"הדבקה מ-Word","toolbar":"הדבקה מ-Word"},"maximize":{"maximize":"הגדלה למקסימום","minimize":"הקטנה למינימום"},"magicline":{"title":"הכנס פסקה כאן"},"list":{"bulletedlist":"רשימת נקודות","numberedlist":"רשימה ממוספרת"},"language":{"button":"צור שפה","remove":"הסר שפה"},"justify":{"block":"יישור לשוליים","center":"מרכוז","left":"יישור לשמאל","right":"יישור לימין"},"indent":{"indent":"הגדלת הזחה","outdent":"הקטנת הזחה"},"image2":{"alt":"טקסט חלופי","btnUpload":"שליחה לשרת","captioned":"כותרת תמונה","captionPlaceholder":"כותרת","infoTab":"מידע על התמונה","lockRatio":"נעילת היחס","menu":"תכונות התמונה","pathName":"תמונה","pathNameCaption":"כותרת","resetSize":"איפוס הגודל","resizer":"לחץ וגרור לשינוי הגודל","title":"מאפייני התמונה","uploadTab":"העלאה","urlMissing":"כתובת התמונה חסרה."},"horizontalrule":{"toolbar":"הוספת קו אופקי"},"format":{"label":"עיצוב","panelTitle":"עיצוב","tag_address":"כתובת","tag_div":"נורמלי (DIV)","tag_h1":"כותרת","tag_h2":"כותרת 2","tag_h3":"כותרת 3","tag_h4":"כותרת 4","tag_h5":"כותרת 5","tag_h6":"כותרת 6","tag_p":"נורמלי","tag_pre":"קוד"},"elementspath":{"eleLabel":"עץ האלמנטים","eleTitle":"%1 אלמנט"},"contextmenu":{"options":"אפשרויות תפריט ההקשר"},"clipboard":{"copy":"העתקה","copyError":"הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+C).","cut":"גזירה","cutError":"הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+X).","paste":"הדבקה","pasteArea":"איזור הדבקה","pasteMsg":"נא להדביק בתוך הקופסה באמצעות (<b>Ctrl/Cmd+V</b>) וללחוץ על <b>אישור</b>.","securityMsg":"עקב הגדרות אבטחה בדפדפן, לא ניתן לגשת אל לוח הגזירים (Clipboard) בצורה ישירה. נא להדביק שוב בחלון זה.","title":"הדבקה"},"button":{"selectedLabel":"1% (סומן)"},"blockquote":{"toolbar":"בלוק ציטוט"},"basicstyles":{"bold":"מודגש","italic":"נטוי","strike":"כתיב מחוק","subscript":"כתיב תחתון","superscript":"כתיב עליון","underline":"קו תחתון"},"about":{"copy":"Copyright &copy; $1. כל הזכויות שמורות.","dlgTitle":"אודות CKEditor","help":"היכנסו ל$1 לעזרה.","moreInfo":"למידע נוסף בקרו באתרנו:","title":"אודות CKEditor","userGuide":"מדריך המשתמש של CKEditor"},"editor":"עורך טקסט עשיר","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"לחץ אלט ALT + 0 לעזרה","browseServer":"סייר השרת","url":"כתובת (URL)","protocol":"פרוטוקול","upload":"העלאה","uploadSubmit":"שליחה לשרת","image":"תמונה","flash":"פלאש","form":"טופס","checkbox":"תיבת סימון","radio":"לחצן אפשרויות","textField":"שדה טקסט","textarea":"איזור טקסט","hiddenField":"שדה חבוי","button":"כפתור","select":"שדה בחירה","imageButton":"כפתור תמונה","notSet":"<לא נקבע>","id":"זיהוי (ID)","name":"שם","langDir":"כיוון שפה","langDirLtr":"שמאל לימין (LTR)","langDirRtl":"ימין לשמאל (RTL)","langCode":"קוד שפה","longDescr":"קישור לתיאור מפורט","cssClass":"מחלקת עיצוב (CSS Class)","advisoryTitle":"כותרת מוצעת","cssStyle":"סגנון","ok":"אישור","cancel":"ביטול","close":"סגירה","preview":"תצוגה מקדימה","resize":"יש לגרור בכדי לשנות את הגודל","generalTab":"כללי","advancedTab":"אפשרויות מתקדמות","validateNumberFailed":"הערך חייב להיות מספרי.","confirmNewPage":"כל השינויים שלא נשמרו יאבדו. האם להעלות דף חדש?","confirmCancel":"חלק מהאפשרויות שונו, האם לסגור את הדיאלוג?","options":"אפשרויות","target":"מטרה","targetNew":"חלון חדש (_blank)","targetTop":"החלון העליון ביותר (_top)","targetSelf":"אותו חלון (_self)","targetParent":"חלון האב (_parent)","langDirLTR":"שמאל לימין (LTR)","langDirRTL":"ימין לשמאל (RTL)","styles":"סגנון","cssClasses":"מחלקות גליונות סגנון","width":"רוחב","height":"גובה","align":"יישור","alignLeft":"לשמאל","alignRight":"לימין","alignCenter":"מרכז","alignJustify":"יישור לשוליים","alignTop":"למעלה","alignMiddle":"לאמצע","alignBottom":"לתחתית","alignNone":"None","invalidValue":"ערך לא חוקי.","invalidHeight":"הגובה חייב להיות מספר.","invalidWidth":"הרוחב חייב להיות מספר.","invalidCssLength":"הערך שצוין לשדה \"%1\" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של CSS (px, %, in, cm, mm, em, ex, pt, או pc).","invalidHtmlLength":"הערך שצוין לשדה \"%1\" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של HTML (px או %).","invalidInlineStyle":"הערך שצויין לשדה הסגנון חייב להכיל זוג ערכים אחד או יותר בפורמט \"שם : ערך\", מופרדים על ידי נקודה-פסיק.","cssLengthTooltip":"יש להכניס מספר המייצג פיקסלים או מספר עם יחידת גליונות סגנון תקינה (px, %, in, cm, mm, em, ex, pt, או pc).","unavailable":"%1<span class=\"cke_accessibility\">, לא זמין</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/hi.js b/core/assets/vendor/ckeditor/lang/hi.js
index 6b747b0..3d4806c 100644
--- a/core/assets/vendor/ckeditor/lang/hi.js
+++ b/core/assets/vendor/ckeditor/lang/hi.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['hi']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"रीडू","undo":"अन्डू"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"एडिटर टूलबार"},"table":{"border":"बॉर्डर साइज़","caption":"शीर्षक","cell":{"menu":"खाना","insertBefore":"पहले सैल डालें","insertAfter":"बाद में सैल डालें","deleteCell":"सैल डिलीट करें","merge":"सैल मिलायें","mergeRight":"बाँया विलय","mergeDown":"नीचे विलय करें","splitHorizontal":"सैल को क्षैतिज स्थिति में विभाजित करें","splitVertical":"सैल को लम्बाकार में विभाजित करें","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"सैल पैडिंग","cellSpace":"सैल अंतर","column":{"menu":"कालम","insertBefore":"पहले कालम डालें","insertAfter":"बाद में कालम डालें","deleteColumn":"कालम डिलीट करें"},"columns":"कालम","deleteTable":"टेबल डिलीट करें","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"टेबल प्रॉपर्टीज़","row":{"menu":"पंक्ति","insertBefore":"पहले पंक्ति डालें","insertAfter":"बाद में पंक्ति डालें","deleteRow":"पंक्तियाँ डिलीट करें"},"rows":"पंक्तियाँ","summary":"सारांश","title":"टेबल प्रॉपर्टीज़","toolbar":"टेबल","widthPc":"प्रतिशत","widthPx":"पिक्सैल","widthUnit":"width unit"},"stylescombo":{"label":"स्टाइल","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"विशेष चरित्र विकल्प","title":"विशेष करॅक्टर चुनें","toolbar":"विशेष करॅक्टर इन्सर्ट करें"},"sourcedialog":{"toolbar":"सोर्स","title":"सोर्स"},"sourcearea":{"toolbar":"सोर्स"},"showblocks":{"toolbar":"ब्लॉक दिखायें"},"removeformat":{"toolbar":"फ़ॉर्मैट हटायें"},"pastetext":{"button":"पेस्ट (सादा टॅक्स्ट)","title":"पेस्ट (सादा टॅक्स्ट)"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"पेस्ट (वर्ड से)","toolbar":"पेस्ट (वर्ड से)"},"maximize":{"maximize":"मेक्सिमाईज़","minimize":"मिनिमाईज़"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"बुलॅट सूची","numberedlist":"अंकीय सूची"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"ब्लॉक जस्टीफ़ाई","center":"बीच में","left":"बायीं तरफ","right":"दायीं तरफ"},"indent":{"indent":"इन्डॅन्ट बढ़ायें","outdent":"इन्डॅन्ट कम करें"},"image2":{"alt":"वैकल्पिक टेक्स्ट","btnUpload":"इसे सर्वर को भेजें","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"तस्वीर की जानकारी","lockRatio":"लॉक अनुपात","menu":"तस्वीर प्रॉपर्टीज़","pathName":"image","pathNameCaption":"caption","resetSize":"रीसॅट साइज़","resizer":"Click and drag to resize","title":"तस्वीर प्रॉपर्टीज़","uploadTab":"अपलोड","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"हॉरिज़ॉन्टल रेखा इन्सर्ट करें"},"format":{"label":"फ़ॉर्मैट","panelTitle":"फ़ॉर्मैट","tag_address":"पता","tag_div":"शीर्षक (DIV)","tag_h1":"शीर्षक 1","tag_h2":"शीर्षक 2","tag_h3":"शीर्षक 3","tag_h4":"शीर्षक 4","tag_h5":"शीर्षक 5","tag_h6":"शीर्षक 6","tag_p":"साधारण","tag_pre":"फ़ॉर्मैटॅड"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"कॉपी","copyError":"आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+C) का प्रयोग करें।","cut":"कट","cutError":"आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+X) का प्रयोग करें।","paste":"पेस्ट","pasteArea":"Paste Area","pasteMsg":"Ctrl/Cmd+V का प्रयोग करके पेस्ट करें और ठीक है करें.","securityMsg":"आपके ब्राउज़र की सुरक्षा आपके ब्राउज़र की सुरKश सैटिंग के कारण, एडिटर आपके क्लिपबोर्ड डेटा को नहीं पा सकता है. आपको उसे इस विन्डो में दोबारा पेस्ट करना होगा.","title":"पेस्ट"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"ब्लॉक-कोट"},"basicstyles":{"bold":"बोल्ड","italic":"इटैलिक","strike":"स्ट्राइक थ्रू","subscript":"अधोलेख","superscript":"अभिलेख","underline":"रेखांकण"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"रिच टेक्स्ट एडिटर","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"मदद के लिये ALT 0 दबाए","browseServer":"सर्वर ब्राउज़ करें","url":"URL","protocol":"प्रोटोकॉल","upload":"अपलोड","uploadSubmit":"इसे सर्वर को भेजें","image":"तस्वीर","flash":"फ़्लैश","form":"फ़ॉर्म","checkbox":"चॅक बॉक्स","radio":"रेडिओ बटन","textField":"टेक्स्ट फ़ील्ड","textarea":"टेक्स्ट एरिया","hiddenField":"गुप्त फ़ील्ड","button":"बटन","select":"चुनाव फ़ील्ड","imageButton":"तस्वीर बटन","notSet":"<सॅट नहीं>","id":"Id","name":"नाम","langDir":"भाषा लिखने की दिशा","langDirLtr":"बायें से दायें (LTR)","langDirRtl":"दायें से बायें (RTL)","langCode":"भाषा कोड","longDescr":"अधिक विवरण के लिए URL","cssClass":"स्टाइल-शीट क्लास","advisoryTitle":"परामर्श शीर्शक","cssStyle":"स्टाइल","ok":"ठीक है","cancel":"रद्द करें","close":"Close","preview":"प्रीव्यू","resize":"Resize","generalTab":"सामान्य","advancedTab":"ऍड्वान्स्ड","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"टार्गेट","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"बायें से दायें (LTR)","langDirRTL":"दायें से बायें (RTL)","styles":"स्टाइल","cssClasses":"स्टाइल-शीट क्लास","width":"चौड़ाई","height":"ऊँचाई","align":"ऍलाइन","alignLeft":"दायें","alignRight":"दायें","alignCenter":"बीच में","alignJustify":"ब्लॉक जस्टीफ़ाई","alignTop":"ऊपर","alignMiddle":"मध्य","alignBottom":"नीचे","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['hi']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"रीडू","undo":"अन्डू"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"एडिटर टूलबार"},"table":{"border":"बॉर्डर साइज़","caption":"शीर्षक","cell":{"menu":"खाना","insertBefore":"पहले सैल डालें","insertAfter":"बाद में सैल डालें","deleteCell":"सैल डिलीट करें","merge":"सैल मिलायें","mergeRight":"बाँया विलय","mergeDown":"नीचे विलय करें","splitHorizontal":"सैल को क्षैतिज स्थिति में विभाजित करें","splitVertical":"सैल को लम्बाकार में विभाजित करें","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"सैल पैडिंग","cellSpace":"सैल अंतर","column":{"menu":"कालम","insertBefore":"पहले कालम डालें","insertAfter":"बाद में कालम डालें","deleteColumn":"कालम डिलीट करें"},"columns":"कालम","deleteTable":"टेबल डिलीट करें","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"टेबल प्रॉपर्टीज़","row":{"menu":"पंक्ति","insertBefore":"पहले पंक्ति डालें","insertAfter":"बाद में पंक्ति डालें","deleteRow":"पंक्तियाँ डिलीट करें"},"rows":"पंक्तियाँ","summary":"सारांश","title":"टेबल प्रॉपर्टीज़","toolbar":"टेबल","widthPc":"प्रतिशत","widthPx":"पिक्सैल","widthUnit":"width unit"},"stylescombo":{"label":"स्टाइल","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"विशेष चरित्र विकल्प","title":"विशेष करॅक्टर चुनें","toolbar":"विशेष करॅक्टर इन्सर्ट करें"},"sourcedialog":{"toolbar":"सोर्स","title":"सोर्स"},"sourcearea":{"toolbar":"सोर्स"},"showblocks":{"toolbar":"ब्लॉक दिखायें"},"removeformat":{"toolbar":"फ़ॉर्मैट हटायें"},"pastetext":{"button":"पेस्ट (सादा टॅक्स्ट)","title":"पेस्ट (सादा टॅक्स्ट)"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"पेस्ट (वर्ड से)","toolbar":"पेस्ट (वर्ड से)"},"maximize":{"maximize":"मेक्सिमाईज़","minimize":"मिनिमाईज़"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"बुलॅट सूची","numberedlist":"अंकीय सूची"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"ब्लॉक जस्टीफ़ाई","center":"बीच में","left":"बायीं तरफ","right":"दायीं तरफ"},"indent":{"indent":"इन्डॅन्ट बढ़ायें","outdent":"इन्डॅन्ट कम करें"},"image2":{"alt":"वैकल्पिक टेक्स्ट","btnUpload":"इसे सर्वर को भेजें","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"तस्वीर की जानकारी","lockRatio":"लॉक अनुपात","menu":"तस्वीर प्रॉपर्टीज़","pathName":"image","pathNameCaption":"caption","resetSize":"रीसॅट साइज़","resizer":"Click and drag to resize","title":"तस्वीर प्रॉपर्टीज़","uploadTab":"अपलोड","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"हॉरिज़ॉन्टल रेखा इन्सर्ट करें"},"format":{"label":"फ़ॉर्मैट","panelTitle":"फ़ॉर्मैट","tag_address":"पता","tag_div":"शीर्षक (DIV)","tag_h1":"शीर्षक 1","tag_h2":"शीर्षक 2","tag_h3":"शीर्षक 3","tag_h4":"शीर्षक 4","tag_h5":"शीर्षक 5","tag_h6":"शीर्षक 6","tag_p":"साधारण","tag_pre":"फ़ॉर्मैटॅड"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"कॉपी","copyError":"आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+C) का प्रयोग करें।","cut":"कट","cutError":"आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+X) का प्रयोग करें।","paste":"पेस्ट","pasteArea":"Paste Area","pasteMsg":"Ctrl/Cmd+V का प्रयोग करके पेस्ट करें और ठीक है करें.","securityMsg":"आपके ब्राउज़र की सुरक्षा आपके ब्राउज़र की सुरKश सैटिंग के कारण, एडिटर आपके क्लिपबोर्ड डेटा को नहीं पा सकता है. आपको उसे इस विन्डो में दोबारा पेस्ट करना होगा.","title":"पेस्ट"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"ब्लॉक-कोट"},"basicstyles":{"bold":"बोल्ड","italic":"इटैलिक","strike":"स्ट्राइक थ्रू","subscript":"अधोलेख","superscript":"अभिलेख","underline":"रेखांकण"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"रिच टेक्स्ट एडिटर","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"मदद के लिये ALT 0 दबाए","browseServer":"सर्वर ब्राउज़ करें","url":"URL","protocol":"प्रोटोकॉल","upload":"अपलोड","uploadSubmit":"इसे सर्वर को भेजें","image":"तस्वीर","flash":"फ़्लैश","form":"फ़ॉर्म","checkbox":"चॅक बॉक्स","radio":"रेडिओ बटन","textField":"टेक्स्ट फ़ील्ड","textarea":"टेक्स्ट एरिया","hiddenField":"गुप्त फ़ील्ड","button":"बटन","select":"चुनाव फ़ील्ड","imageButton":"तस्वीर बटन","notSet":"<सॅट नहीं>","id":"Id","name":"नाम","langDir":"भाषा लिखने की दिशा","langDirLtr":"बायें से दायें (LTR)","langDirRtl":"दायें से बायें (RTL)","langCode":"भाषा कोड","longDescr":"अधिक विवरण के लिए URL","cssClass":"स्टाइल-शीट क्लास","advisoryTitle":"परामर्श शीर्शक","cssStyle":"स्टाइल","ok":"ठीक है","cancel":"रद्द करें","close":"Close","preview":"प्रीव्यू","resize":"Resize","generalTab":"सामान्य","advancedTab":"ऍड्वान्स्ड","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"टार्गेट","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"बायें से दायें (LTR)","langDirRTL":"दायें से बायें (RTL)","styles":"स्टाइल","cssClasses":"स्टाइल-शीट क्लास","width":"चौड़ाई","height":"ऊँचाई","align":"ऍलाइन","alignLeft":"दायें","alignRight":"दायें","alignCenter":"बीच में","alignJustify":"ब्लॉक जस्टीफ़ाई","alignTop":"ऊपर","alignMiddle":"मध्य","alignBottom":"नीचे","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/hr.js b/core/assets/vendor/ckeditor/lang/hr.js
index 6de6651..e0dc2c5 100644
--- a/core/assets/vendor/ckeditor/lang/hr.js
+++ b/core/assets/vendor/ckeditor/lang/hr.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['hr']={"widget":{"move":"Klikni i povuci da pomakneš","label":"%1 widget"},"undo":{"redo":"Ponovi","undo":"Poništi"},"toolbar":{"toolbarCollapse":"Smanji alatnu traku","toolbarExpand":"Proširi alatnu traku","toolbarGroups":{"document":"Dokument","clipboard":"Međuspremnik/Poništi","editing":"Uređivanje","forms":"Forme","basicstyles":"Osnovni stilovi","paragraph":"Paragraf","links":"Veze","insert":"Umetni","styles":"Stilovi","colors":"Boje","tools":"Alatke"},"toolbars":"Alatne trake uređivača teksta"},"table":{"border":"Veličina okvira","caption":"Naslov","cell":{"menu":"Ćelija","insertBefore":"Ubaci ćeliju prije","insertAfter":"Ubaci ćeliju poslije","deleteCell":"Izbriši ćelije","merge":"Spoji ćelije","mergeRight":"Spoji desno","mergeDown":"Spoji dolje","splitHorizontal":"Podijeli ćeliju vodoravno","splitVertical":"Podijeli ćeliju okomito","title":"Svojstva ćelije","cellType":"Vrsta ćelije","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Prelazak u novi red","hAlign":"Vodoravno poravnanje","vAlign":"Okomito poravnanje","alignBaseline":"Osnovna linija","bgColor":"Boja pozadine","borderColor":"Boja ruba","data":"Podatak","header":"Zaglavlje","yes":"Da","no":"ne","invalidWidth":"Širina ćelije mora biti broj.","invalidHeight":"Visina ćelije mora biti broj.","invalidRowSpan":"Rows span mora biti cijeli broj.","invalidColSpan":"Columns span mora biti cijeli broj.","chooseColor":"Odaberi"},"cellPad":"Razmak ćelija","cellSpace":"Prostornost ćelija","column":{"menu":"Kolona","insertBefore":"Ubaci kolonu prije","insertAfter":"Ubaci kolonu poslije","deleteColumn":"Izbriši kolone"},"columns":"Kolona","deleteTable":"Izbriši tablicu","headers":"Zaglavlje","headersBoth":"Oba","headersColumn":"Prva kolona","headersNone":"Ništa","headersRow":"Prvi red","invalidBorder":"Debljina ruba mora biti broj.","invalidCellPadding":"Razmak ćelija mora biti broj.","invalidCellSpacing":"Prostornost ćelija mora biti broj.","invalidCols":"Broj kolona mora biti broj veći od 0.","invalidHeight":"Visina tablice mora biti broj.","invalidRows":"Broj redova mora biti broj veći od 0.","invalidWidth":"Širina tablice mora biti broj.","menu":"Svojstva tablice","row":{"menu":"Red","insertBefore":"Ubaci red prije","insertAfter":"Ubaci red poslije","deleteRow":"Izbriši redove"},"rows":"Redova","summary":"Sažetak","title":"Svojstva tablice","toolbar":"Tablica","widthPc":"postotaka","widthPx":"piksela","widthUnit":"jedinica širine"},"stylescombo":{"label":"Stil","panelTitle":"Stilovi formatiranja","panelTitle1":"Block stilovi","panelTitle2":"Inline stilovi","panelTitle3":"Object stilovi"},"specialchar":{"options":"Opcije specijalnih znakova","title":"Odaberite posebni karakter","toolbar":"Ubaci posebne znakove"},"sourcedialog":{"toolbar":"Kôd","title":"Kôd"},"sourcearea":{"toolbar":"Kôd"},"showblocks":{"toolbar":"Prikaži blokove"},"removeformat":{"toolbar":"Ukloni formatiranje"},"pastetext":{"button":"Zalijepi kao čisti tekst","title":"Zalijepi kao čisti tekst"},"pastefromword":{"confirmCleanup":"Tekst koji želite zalijepiti čini se da je kopiran iz Worda. Želite li prije očistiti tekst?","error":"Nije moguće očistiti podatke za ljepljenje zbog interne greške","title":"Zalijepi iz Worda","toolbar":"Zalijepi iz Worda"},"maximize":{"maximize":"Povećaj","minimize":"Smanji"},"magicline":{"title":"Ubaci paragraf ovdje"},"list":{"bulletedlist":"Obična lista","numberedlist":"Brojčana lista"},"language":{"button":"Namjesti jezik","remove":"Makni jezik"},"justify":{"block":"Blok poravnanje","center":"Središnje poravnanje","left":"Lijevo poravnanje","right":"Desno poravnanje"},"indent":{"indent":"Pomakni udesno","outdent":"Pomakni ulijevo"},"image2":{"alt":"Alternativni tekst","btnUpload":"Pošalji na server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info slike","lockRatio":"Zaključaj odnos","menu":"Svojstva slika","pathName":"image","pathNameCaption":"caption","resetSize":"Obriši veličinu","resizer":"Click and drag to resize","title":"Svojstva slika","uploadTab":"Pošalji","urlMissing":"Nedostaje URL slike."},"horizontalrule":{"toolbar":"Ubaci vodoravnu liniju"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatirano"},"elementspath":{"eleLabel":"Putanja elemenata","eleTitle":"%1 element"},"contextmenu":{"options":"Opcije izbornika"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).","paste":"Zalijepi","pasteArea":"Prostor za ljepljenje","pasteMsg":"Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknite <STRONG>OK</STRONG>.","securityMsg":"Zbog sigurnosnih postavki Vašeg pretraživača, editor nema direktan pristup Vašem međuspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.","title":"Zalijepi"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Blockquote"},"basicstyles":{"bold":"Podebljaj","italic":"Ukosi","strike":"Precrtano","subscript":"Subscript","superscript":"Superscript","underline":"Potcrtano"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"O CKEditoru","help":"Provjeri $1 za pomoć.","moreInfo":"Za informacije o licencama posjetite našu web stranicu:","title":"O CKEditoru","userGuide":"Vodič za CKEditor korisnike"},"editor":"Bogati uređivač teksta, %1","editorPanel":"Ploča Bogatog Uređivača Teksta","common":{"editorHelp":"Pritisni ALT 0 za pomoć","browseServer":"Pretraži server","url":"URL","protocol":"Protokol","upload":"Pošalji","uploadSubmit":"Pošalji na server","image":"Slika","flash":"Flash","form":"Forma","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije postavljeno>","id":"Id","name":"Naziv","langDir":"Smjer jezika","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Kôd jezika","longDescr":"Dugački opis URL","cssClass":"Klase stilova","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"Poništi","close":"Zatvori","preview":"Pregledaj","resize":"Povuci za promjenu veličine","generalTab":"Općenito","advancedTab":"Napredno","validateNumberFailed":"Ova vrijednost nije broj.","confirmNewPage":"Sve napravljene promjene će biti izgubljene ukoliko ih niste snimili. Sigurno želite učitati novu stranicu?","confirmCancel":"Neke od opcija su promjenjene. Sigurno želite zatvoriti ovaj prozor?","options":"Opcije","target":"Odredište","targetNew":"Novi prozor (_blank)","targetTop":"Vršni prozor (_top)","targetSelf":"Isti prozor (_self)","targetParent":"Roditeljski prozor (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase stilova","width":"Širina","height":"Visina","align":"Poravnanje","alignLeft":"Lijevo","alignRight":"Desno","alignCenter":"Središnje","alignJustify":"Blok poravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dolje","alignNone":"None","invalidValue":"Neispravna vrijednost.","invalidHeight":"Visina mora biti broj.","invalidWidth":"Širina mora biti broj.","invalidCssLength":"Vrijednost određena za \"%1\" polje mora biti pozitivni broj sa ili bez važećih CSS mjernih jedinica (px, %, in, cm, mm, em, ex, pt ili pc).","invalidHtmlLength":"Vrijednost određena za \"%1\" polje mora biti pozitivni broj sa ili bez važećih HTML mjernih jedinica (px ili %).","invalidInlineStyle":"Vrijednost za linijski stil mora sadržavati jednu ili više definicija s formatom \"naziv:vrijednost\", odvojenih točka-zarezom.","cssLengthTooltip":"Unesite broj za vrijednost u pikselima ili broj s važećim CSS mjernim jedinicama (px, %, in, cm, mm, em, ex, pt ili pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupno</span>"}};
\ No newline at end of file
+CKEDITOR.lang['hr']={"widget":{"move":"Klikni i povuci da pomakneš"},"undo":{"redo":"Ponovi","undo":"Poništi"},"toolbar":{"toolbarCollapse":"Smanji alatnu traku","toolbarExpand":"Proširi alatnu traku","toolbarGroups":{"document":"Dokument","clipboard":"Međuspremnik/Poništi","editing":"Uređivanje","forms":"Forme","basicstyles":"Osnovni stilovi","paragraph":"Paragraf","links":"Veze","insert":"Umetni","styles":"Stilovi","colors":"Boje","tools":"Alatke"},"toolbars":"Alatne trake uređivača teksta"},"table":{"border":"Veličina okvira","caption":"Naslov","cell":{"menu":"Ćelija","insertBefore":"Ubaci ćeliju prije","insertAfter":"Ubaci ćeliju poslije","deleteCell":"Izbriši ćelije","merge":"Spoji ćelije","mergeRight":"Spoji desno","mergeDown":"Spoji dolje","splitHorizontal":"Podijeli ćeliju vodoravno","splitVertical":"Podijeli ćeliju okomito","title":"Svojstva ćelije","cellType":"Vrsta ćelije","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Prelazak u novi red","hAlign":"Vodoravno poravnanje","vAlign":"Okomito poravnanje","alignBaseline":"Osnovna linija","bgColor":"Boja pozadine","borderColor":"Boja ruba","data":"Podatak","header":"Zaglavlje","yes":"Da","no":"ne","invalidWidth":"Širina ćelije mora biti broj.","invalidHeight":"Visina ćelije mora biti broj.","invalidRowSpan":"Rows span mora biti cijeli broj.","invalidColSpan":"Columns span mora biti cijeli broj.","chooseColor":"Odaberi"},"cellPad":"Razmak ćelija","cellSpace":"Prostornost ćelija","column":{"menu":"Kolona","insertBefore":"Ubaci kolonu prije","insertAfter":"Ubaci kolonu poslije","deleteColumn":"Izbriši kolone"},"columns":"Kolona","deleteTable":"Izbriši tablicu","headers":"Zaglavlje","headersBoth":"Oba","headersColumn":"Prva kolona","headersNone":"Ništa","headersRow":"Prvi red","invalidBorder":"Debljina ruba mora biti broj.","invalidCellPadding":"Razmak ćelija mora biti broj.","invalidCellSpacing":"Prostornost ćelija mora biti broj.","invalidCols":"Broj kolona mora biti broj veći od 0.","invalidHeight":"Visina tablice mora biti broj.","invalidRows":"Broj redova mora biti broj veći od 0.","invalidWidth":"Širina tablice mora biti broj.","menu":"Svojstva tablice","row":{"menu":"Red","insertBefore":"Ubaci red prije","insertAfter":"Ubaci red poslije","deleteRow":"Izbriši redove"},"rows":"Redova","summary":"Sažetak","title":"Svojstva tablice","toolbar":"Tablica","widthPc":"postotaka","widthPx":"piksela","widthUnit":"jedinica širine"},"stylescombo":{"label":"Stil","panelTitle":"Stilovi formatiranja","panelTitle1":"Block stilovi","panelTitle2":"Inline stilovi","panelTitle3":"Object stilovi"},"specialchar":{"options":"Opcije specijalnih znakova","title":"Odaberite posebni karakter","toolbar":"Ubaci posebne znakove"},"sourcedialog":{"toolbar":"Kôd","title":"Kôd"},"sourcearea":{"toolbar":"Kôd"},"showblocks":{"toolbar":"Prikaži blokove"},"removeformat":{"toolbar":"Ukloni formatiranje"},"pastetext":{"button":"Zalijepi kao čisti tekst","title":"Zalijepi kao čisti tekst"},"pastefromword":{"confirmCleanup":"Tekst koji želite zalijepiti čini se da je kopiran iz Worda. Želite li prije očistiti tekst?","error":"Nije moguće očistiti podatke za ljepljenje zbog interne greške","title":"Zalijepi iz Worda","toolbar":"Zalijepi iz Worda"},"maximize":{"maximize":"Povećaj","minimize":"Smanji"},"magicline":{"title":"Ubaci paragraf ovdje"},"list":{"bulletedlist":"Obična lista","numberedlist":"Brojčana lista"},"language":{"button":"Namjesti jezik","remove":"Makni jezik"},"justify":{"block":"Blok poravnanje","center":"Središnje poravnanje","left":"Lijevo poravnanje","right":"Desno poravnanje"},"indent":{"indent":"Pomakni udesno","outdent":"Pomakni ulijevo"},"image2":{"alt":"Alternativni tekst","btnUpload":"Pošalji na server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info slike","lockRatio":"Zaključaj odnos","menu":"Svojstva slika","pathName":"image","pathNameCaption":"caption","resetSize":"Obriši veličinu","resizer":"Click and drag to resize","title":"Svojstva slika","uploadTab":"Pošalji","urlMissing":"Nedostaje URL slike."},"horizontalrule":{"toolbar":"Ubaci vodoravnu liniju"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatirano"},"elementspath":{"eleLabel":"Putanja elemenata","eleTitle":"%1 element"},"contextmenu":{"options":"Opcije izbornika"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).","paste":"Zalijepi","pasteArea":"Prostor za ljepljenje","pasteMsg":"Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknite <STRONG>OK</STRONG>.","securityMsg":"Zbog sigurnosnih postavki Vašeg pretraživača, editor nema direktan pristup Vašem međuspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.","title":"Zalijepi"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Blockquote"},"basicstyles":{"bold":"Podebljaj","italic":"Ukosi","strike":"Precrtano","subscript":"Subscript","superscript":"Superscript","underline":"Potcrtano"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"O CKEditoru","help":"Provjeri $1 za pomoć.","moreInfo":"Za informacije o licencama posjetite našu web stranicu:","title":"O CKEditoru","userGuide":"Vodič za CKEditor korisnike"},"editor":"Bogati uređivač teksta, %1","editorPanel":"Ploča Bogatog Uređivača Teksta","common":{"editorHelp":"Pritisni ALT 0 za pomoć","browseServer":"Pretraži server","url":"URL","protocol":"Protokol","upload":"Pošalji","uploadSubmit":"Pošalji na server","image":"Slika","flash":"Flash","form":"Forma","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije postavljeno>","id":"Id","name":"Naziv","langDir":"Smjer jezika","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Kôd jezika","longDescr":"Dugački opis URL","cssClass":"Klase stilova","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"Poništi","close":"Zatvori","preview":"Pregledaj","resize":"Povuci za promjenu veličine","generalTab":"Općenito","advancedTab":"Napredno","validateNumberFailed":"Ova vrijednost nije broj.","confirmNewPage":"Sve napravljene promjene će biti izgubljene ukoliko ih niste snimili. Sigurno želite učitati novu stranicu?","confirmCancel":"Neke od opcija su promjenjene. Sigurno želite zatvoriti ovaj prozor?","options":"Opcije","target":"Odredište","targetNew":"Novi prozor (_blank)","targetTop":"Vršni prozor (_top)","targetSelf":"Isti prozor (_self)","targetParent":"Roditeljski prozor (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase stilova","width":"Širina","height":"Visina","align":"Poravnanje","alignLeft":"Lijevo","alignRight":"Desno","alignCenter":"Središnje","alignJustify":"Blok poravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dolje","alignNone":"None","invalidValue":"Neispravna vrijednost.","invalidHeight":"Visina mora biti broj.","invalidWidth":"Širina mora biti broj.","invalidCssLength":"Vrijednost određena za \"%1\" polje mora biti pozitivni broj sa ili bez važećih CSS mjernih jedinica (px, %, in, cm, mm, em, ex, pt ili pc).","invalidHtmlLength":"Vrijednost određena za \"%1\" polje mora biti pozitivni broj sa ili bez važećih HTML mjernih jedinica (px ili %).","invalidInlineStyle":"Vrijednost za linijski stil mora sadržavati jednu ili više definicija s formatom \"naziv:vrijednost\", odvojenih točka-zarezom.","cssLengthTooltip":"Unesite broj za vrijednost u pikselima ili broj s važećim CSS mjernim jedinicama (px, %, in, cm, mm, em, ex, pt ili pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupno</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/hu.js b/core/assets/vendor/ckeditor/lang/hu.js
index 16114dc..448f4a1 100644
--- a/core/assets/vendor/ckeditor/lang/hu.js
+++ b/core/assets/vendor/ckeditor/lang/hu.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['hu']={"widget":{"move":"Kattints és húzd a mozgatáshoz","label":"%1 widget"},"undo":{"redo":"Ismétlés","undo":"Visszavonás"},"toolbar":{"toolbarCollapse":"Eszköztár összecsukása","toolbarExpand":"Eszköztár szétnyitása","toolbarGroups":{"document":"Dokumentum","clipboard":"Vágólap/Visszavonás","editing":"Szerkesztés","forms":"Űrlapok","basicstyles":"Alapstílusok","paragraph":"Bekezdés","links":"Hivatkozások","insert":"Beszúrás","styles":"Stílusok","colors":"Színek","tools":"Eszközök"},"toolbars":"Szerkesztő Eszköztár"},"table":{"border":"Szegélyméret","caption":"Felirat","cell":{"menu":"Cella","insertBefore":"Beszúrás balra","insertAfter":"Beszúrás jobbra","deleteCell":"Cellák törlése","merge":"Cellák egyesítése","mergeRight":"Cellák egyesítése jobbra","mergeDown":"Cellák egyesítése lefelé","splitHorizontal":"Cellák szétválasztása vízszintesen","splitVertical":"Cellák szétválasztása függőlegesen","title":"Cella tulajdonságai","cellType":"Cella típusa","rowSpan":"Függőleges egyesítés","colSpan":"Vízszintes egyesítés","wordWrap":"Hosszú sorok törése","hAlign":"Vízszintes igazítás","vAlign":"Függőleges igazítás","alignBaseline":"Alapvonalra","bgColor":"Háttér színe","borderColor":"Keret színe","data":"Adat","header":"Fejléc","yes":"Igen","no":"Nem","invalidWidth":"A szélesség mezőbe csak számokat írhat.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidRowSpan":"A függőleges egyesítés mezőbe csak számokat írhat.","invalidColSpan":"A vízszintes egyesítés mezőbe csak számokat írhat.","chooseColor":"Válasszon"},"cellPad":"Cella belső margó","cellSpace":"Cella térköz","column":{"menu":"Oszlop","insertBefore":"Beszúrás balra","insertAfter":"Beszúrás jobbra","deleteColumn":"Oszlopok törlése"},"columns":"Oszlopok","deleteTable":"Táblázat törlése","headers":"Fejlécek","headersBoth":"Mindkettő","headersColumn":"Első oszlop","headersNone":"Nincsenek","headersRow":"Első sor","invalidBorder":"A szegélyméret mezőbe csak számokat írhat.","invalidCellPadding":"A cella belső margó mezőbe csak számokat írhat.","invalidCellSpacing":"A cella térköz mezőbe csak számokat írhat.","invalidCols":"Az oszlopok számának nagyobbnak kell lenni mint 0.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidRows":"A sorok számának nagyobbnak kell lenni mint 0.","invalidWidth":"A szélesség mezőbe csak számokat írhat.","menu":"Táblázat tulajdonságai","row":{"menu":"Sor","insertBefore":"Beszúrás fölé","insertAfter":"Beszúrás alá","deleteRow":"Sorok törlése"},"rows":"Sorok","summary":"Leírás","title":"Táblázat tulajdonságai","toolbar":"Táblázat","widthPc":"százalék","widthPx":"képpont","widthUnit":"Szélesség egység"},"stylescombo":{"label":"Stílus","panelTitle":"Formázási stílusok","panelTitle1":"Blokk stílusok","panelTitle2":"Inline stílusok","panelTitle3":"Objektum stílusok"},"specialchar":{"options":"Speciális karakter opciók","title":"Speciális karakter választása","toolbar":"Speciális karakter beillesztése"},"sourcedialog":{"toolbar":"Forráskód","title":"Forráskód"},"sourcearea":{"toolbar":"Forráskód"},"showblocks":{"toolbar":"Blokkok megjelenítése"},"removeformat":{"toolbar":"Formázás eltávolítása"},"pastetext":{"button":"Beillesztés formázatlan szövegként","title":"Beillesztés formázatlan szövegként"},"pastefromword":{"confirmCleanup":"Úgy tűnik a beillesztett szöveget Word-ből másolt át. Meg szeretné tisztítani a szöveget? (ajánlott)","error":"Egy belső hiba miatt nem sikerült megtisztítani a szöveget","title":"Beillesztés Word-ből","toolbar":"Beillesztés Word-ből"},"maximize":{"maximize":"Teljes méret","minimize":"Kis méret"},"magicline":{"title":"Szúrja be a bekezdést ide"},"list":{"bulletedlist":"Felsorolás","numberedlist":"Számozás"},"language":{"button":"Nyelv beállítása","remove":"Nyelv eltávolítása"},"justify":{"block":"Sorkizárt","center":"Középre","left":"Balra","right":"Jobbra"},"indent":{"indent":"Behúzás növelése","outdent":"Behúzás csökkentése"},"image2":{"alt":"Buborék szöveg","btnUpload":"Küldés a szerverre","captioned":"Feliratozott kép","captionPlaceholder":"Képfelirat","infoTab":"Alaptulajdonságok","lockRatio":"Arány megtartása","menu":"Kép tulajdonságai","pathName":"kép","pathNameCaption":"felirat","resetSize":"Eredeti méret","resizer":"Kattints és húzz az átméretezéshez","title":"Kép tulajdonságai","uploadTab":"Feltöltés","urlMissing":"Hiányzik a kép URL-je"},"horizontalrule":{"toolbar":"Elválasztóvonal beillesztése"},"format":{"label":"Formátum","panelTitle":"Formátum","tag_address":"Címsor","tag_div":"Bekezdés (DIV)","tag_h1":"Fejléc 1","tag_h2":"Fejléc 2","tag_h3":"Fejléc 3","tag_h4":"Fejléc 4","tag_h5":"Fejléc 5","tag_h6":"Fejléc 6","tag_p":"Normál","tag_pre":"Formázott"},"elementspath":{"eleLabel":"Elem utak","eleTitle":"%1 elem"},"contextmenu":{"options":"Helyi menü opciók"},"clipboard":{"copy":"Másolás","copyError":"A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).","cut":"Kivágás","cutError":"A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).","paste":"Beillesztés","pasteArea":"Beszúrás mező","pasteMsg":"Másolja be az alábbi mezőbe a <STRONG>Ctrl/Cmd+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.","securityMsg":"A böngésző biztonsági beállításai miatt a szerkesztő nem képes hozzáférni a vágólap adataihoz. Illeszd be újra ebben az ablakban.","title":"Beillesztés"},"button":{"selectedLabel":"%1 (Kiválasztva)"},"blockquote":{"toolbar":"Idézet blokk"},"basicstyles":{"bold":"Félkövér","italic":"Dőlt","strike":"Áthúzott","subscript":"Alsó index","superscript":"Felső index","underline":"Aláhúzott"},"about":{"copy":"Copyright &copy; $1. Minden jog fenntartva.","dlgTitle":"CKEditor névjegy","help":"Itt találsz segítséget: $1","moreInfo":"Licenszelési információkért kérjük látogassa meg weboldalunkat:","title":"CKEditor névjegy","userGuide":"CKEditor Felhasználói útmutató"},"editor":"HTML szerkesztő","editorPanel":"Rich Text szerkesztő panel","common":{"editorHelp":"Segítségért nyomjon ALT 0","browseServer":"Böngészés a szerveren","url":"Hivatkozás","protocol":"Protokoll","upload":"Feltöltés","uploadSubmit":"Küldés a szerverre","image":"Kép","flash":"Flash","form":"Űrlap","checkbox":"Jelölőnégyzet","radio":"Választógomb","textField":"Szövegmező","textarea":"Szövegterület","hiddenField":"Rejtettmező","button":"Gomb","select":"Legördülő lista","imageButton":"Képgomb","notSet":"<nincs beállítva>","id":"Azonosító","name":"Név","langDir":"Írás iránya","langDirLtr":"Balról jobbra","langDirRtl":"Jobbról balra","langCode":"Nyelv kódja","longDescr":"Részletes leírás webcíme","cssClass":"Stíluskészlet","advisoryTitle":"Súgócimke","cssStyle":"Stílus","ok":"Rendben","cancel":"Mégsem","close":"Bezárás","preview":"Előnézet","resize":"Húzza az átméretezéshez","generalTab":"Általános","advancedTab":"További opciók","validateNumberFailed":"A mezőbe csak számokat írhat.","confirmNewPage":"Minden nem mentett változás el fog veszni! Biztosan be szeretné tölteni az oldalt?","confirmCancel":"Az űrlap tartalma megváltozott, ám a változásokat nem rögzítette. Biztosan be szeretné zárni az űrlapot?","options":"Beállítások","target":"Cél","targetNew":"Új ablak (_blank)","targetTop":"Legfelső ablak (_top)","targetSelf":"Aktuális ablakban (_self)","targetParent":"Szülő ablak (_parent)","langDirLTR":"Balról jobbra (LTR)","langDirRTL":"Jobbról balra (RTL)","styles":"Stílus","cssClasses":"Stíluslap osztály","width":"Szélesség","height":"Magasság","align":"Igazítás","alignLeft":"Bal","alignRight":"Jobbra","alignCenter":"Középre","alignJustify":"Sorkizárt","alignTop":"Tetejére","alignMiddle":"Középre","alignBottom":"Aljára","alignNone":"None","invalidValue":"Érvénytelen érték.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidWidth":"A szélesség mezőbe csak számokat írhat.","invalidCssLength":"\"%1\"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes CSS egységgel megjelölve(px, %, in, cm, mm, em, ex, pt vagy pc).","invalidHtmlLength":"\"%1\"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes HTML egységgel megjelölve(px vagy %).","invalidInlineStyle":"Az inline stílusnak megadott értéknek tartalmaznia kell egy vagy több rekordot a \"name : value\" formátumban, pontosvesszővel elválasztva.","cssLengthTooltip":"Adjon meg egy számot értéknek pixelekben vagy egy számot érvényes CSS mértékegységben (px, %, in, cm, mm, em, ex, pt, vagy pc).","unavailable":"%1<span class=\"cke_accessibility\">, nem elérhető</span>"}};
\ No newline at end of file
+CKEDITOR.lang['hu']={"widget":{"move":"Kattints és húzd a mozgatáshoz"},"undo":{"redo":"Ismétlés","undo":"Visszavonás"},"toolbar":{"toolbarCollapse":"Eszköztár összecsukása","toolbarExpand":"Eszköztár szétnyitása","toolbarGroups":{"document":"Dokumentum","clipboard":"Vágólap/Visszavonás","editing":"Szerkesztés","forms":"Űrlapok","basicstyles":"Alapstílusok","paragraph":"Bekezdés","links":"Hivatkozások","insert":"Beszúrás","styles":"Stílusok","colors":"Színek","tools":"Eszközök"},"toolbars":"Szerkesztő Eszköztár"},"table":{"border":"Szegélyméret","caption":"Felirat","cell":{"menu":"Cella","insertBefore":"Beszúrás balra","insertAfter":"Beszúrás jobbra","deleteCell":"Cellák törlése","merge":"Cellák egyesítése","mergeRight":"Cellák egyesítése jobbra","mergeDown":"Cellák egyesítése lefelé","splitHorizontal":"Cellák szétválasztása vízszintesen","splitVertical":"Cellák szétválasztása függőlegesen","title":"Cella tulajdonságai","cellType":"Cella típusa","rowSpan":"Függőleges egyesítés","colSpan":"Vízszintes egyesítés","wordWrap":"Hosszú sorok törése","hAlign":"Vízszintes igazítás","vAlign":"Függőleges igazítás","alignBaseline":"Alapvonalra","bgColor":"Háttér színe","borderColor":"Keret színe","data":"Adat","header":"Fejléc","yes":"Igen","no":"Nem","invalidWidth":"A szélesség mezőbe csak számokat írhat.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidRowSpan":"A függőleges egyesítés mezőbe csak számokat írhat.","invalidColSpan":"A vízszintes egyesítés mezőbe csak számokat írhat.","chooseColor":"Válasszon"},"cellPad":"Cella belső margó","cellSpace":"Cella térköz","column":{"menu":"Oszlop","insertBefore":"Beszúrás balra","insertAfter":"Beszúrás jobbra","deleteColumn":"Oszlopok törlése"},"columns":"Oszlopok","deleteTable":"Táblázat törlése","headers":"Fejlécek","headersBoth":"Mindkettő","headersColumn":"Első oszlop","headersNone":"Nincsenek","headersRow":"Első sor","invalidBorder":"A szegélyméret mezőbe csak számokat írhat.","invalidCellPadding":"A cella belső margó mezőbe csak számokat írhat.","invalidCellSpacing":"A cella térköz mezőbe csak számokat írhat.","invalidCols":"Az oszlopok számának nagyobbnak kell lenni mint 0.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidRows":"A sorok számának nagyobbnak kell lenni mint 0.","invalidWidth":"A szélesség mezőbe csak számokat írhat.","menu":"Táblázat tulajdonságai","row":{"menu":"Sor","insertBefore":"Beszúrás fölé","insertAfter":"Beszúrás alá","deleteRow":"Sorok törlése"},"rows":"Sorok","summary":"Leírás","title":"Táblázat tulajdonságai","toolbar":"Táblázat","widthPc":"százalék","widthPx":"képpont","widthUnit":"Szélesség egység"},"stylescombo":{"label":"Stílus","panelTitle":"Formázási stílusok","panelTitle1":"Blokk stílusok","panelTitle2":"Inline stílusok","panelTitle3":"Objektum stílusok"},"specialchar":{"options":"Speciális karakter opciók","title":"Speciális karakter választása","toolbar":"Speciális karakter beillesztése"},"sourcedialog":{"toolbar":"Forráskód","title":"Forráskód"},"sourcearea":{"toolbar":"Forráskód"},"showblocks":{"toolbar":"Blokkok megjelenítése"},"removeformat":{"toolbar":"Formázás eltávolítása"},"pastetext":{"button":"Beillesztés formázatlan szövegként","title":"Beillesztés formázatlan szövegként"},"pastefromword":{"confirmCleanup":"Úgy tűnik a beillesztett szöveget Word-ből másolt át. Meg szeretné tisztítani a szöveget? (ajánlott)","error":"Egy belső hiba miatt nem sikerült megtisztítani a szöveget","title":"Beillesztés Word-ből","toolbar":"Beillesztés Word-ből"},"maximize":{"maximize":"Teljes méret","minimize":"Kis méret"},"magicline":{"title":"Szúrja be a bekezdést ide"},"list":{"bulletedlist":"Felsorolás","numberedlist":"Számozás"},"language":{"button":"Nyelv beállítása","remove":"Nyelv eltávolítása"},"justify":{"block":"Sorkizárt","center":"Középre","left":"Balra","right":"Jobbra"},"indent":{"indent":"Behúzás növelése","outdent":"Behúzás csökkentése"},"image2":{"alt":"Buborék szöveg","btnUpload":"Küldés a szerverre","captioned":"Feliratozott kép","captionPlaceholder":"Képfelirat","infoTab":"Alaptulajdonságok","lockRatio":"Arány megtartása","menu":"Kép tulajdonságai","pathName":"kép","pathNameCaption":"felirat","resetSize":"Eredeti méret","resizer":"Kattints és húzz az átméretezéshez","title":"Kép tulajdonságai","uploadTab":"Feltöltés","urlMissing":"Hiányzik a kép URL-je"},"horizontalrule":{"toolbar":"Elválasztóvonal beillesztése"},"format":{"label":"Formátum","panelTitle":"Formátum","tag_address":"Címsor","tag_div":"Bekezdés (DIV)","tag_h1":"Fejléc 1","tag_h2":"Fejléc 2","tag_h3":"Fejléc 3","tag_h4":"Fejléc 4","tag_h5":"Fejléc 5","tag_h6":"Fejléc 6","tag_p":"Normál","tag_pre":"Formázott"},"elementspath":{"eleLabel":"Elem utak","eleTitle":"%1 elem"},"contextmenu":{"options":"Helyi menü opciók"},"clipboard":{"copy":"Másolás","copyError":"A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).","cut":"Kivágás","cutError":"A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).","paste":"Beillesztés","pasteArea":"Beszúrás mező","pasteMsg":"Másolja be az alábbi mezőbe a <STRONG>Ctrl/Cmd+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.","securityMsg":"A böngésző biztonsági beállításai miatt a szerkesztő nem képes hozzáférni a vágólap adataihoz. Illeszd be újra ebben az ablakban.","title":"Beillesztés"},"button":{"selectedLabel":"%1 (Kiválasztva)"},"blockquote":{"toolbar":"Idézet blokk"},"basicstyles":{"bold":"Félkövér","italic":"Dőlt","strike":"Áthúzott","subscript":"Alsó index","superscript":"Felső index","underline":"Aláhúzott"},"about":{"copy":"Copyright &copy; $1. Minden jog fenntartva.","dlgTitle":"CKEditor névjegy","help":"Itt találsz segítséget: $1","moreInfo":"Licenszelési információkért kérjük látogassa meg weboldalunkat:","title":"CKEditor névjegy","userGuide":"CKEditor Felhasználói útmutató"},"editor":"HTML szerkesztő","editorPanel":"Rich Text szerkesztő panel","common":{"editorHelp":"Segítségért nyomjon ALT 0","browseServer":"Böngészés a szerveren","url":"Hivatkozás","protocol":"Protokoll","upload":"Feltöltés","uploadSubmit":"Küldés a szerverre","image":"Kép","flash":"Flash","form":"Űrlap","checkbox":"Jelölőnégyzet","radio":"Választógomb","textField":"Szövegmező","textarea":"Szövegterület","hiddenField":"Rejtettmező","button":"Gomb","select":"Legördülő lista","imageButton":"Képgomb","notSet":"<nincs beállítva>","id":"Azonosító","name":"Név","langDir":"Írás iránya","langDirLtr":"Balról jobbra","langDirRtl":"Jobbról balra","langCode":"Nyelv kódja","longDescr":"Részletes leírás webcíme","cssClass":"Stíluskészlet","advisoryTitle":"Súgócimke","cssStyle":"Stílus","ok":"Rendben","cancel":"Mégsem","close":"Bezárás","preview":"Előnézet","resize":"Húzza az átméretezéshez","generalTab":"Általános","advancedTab":"További opciók","validateNumberFailed":"A mezőbe csak számokat írhat.","confirmNewPage":"Minden nem mentett változás el fog veszni! Biztosan be szeretné tölteni az oldalt?","confirmCancel":"Az űrlap tartalma megváltozott, ám a változásokat nem rögzítette. Biztosan be szeretné zárni az űrlapot?","options":"Beállítások","target":"Cél","targetNew":"Új ablak (_blank)","targetTop":"Legfelső ablak (_top)","targetSelf":"Aktuális ablakban (_self)","targetParent":"Szülő ablak (_parent)","langDirLTR":"Balról jobbra (LTR)","langDirRTL":"Jobbról balra (RTL)","styles":"Stílus","cssClasses":"Stíluslap osztály","width":"Szélesség","height":"Magasság","align":"Igazítás","alignLeft":"Bal","alignRight":"Jobbra","alignCenter":"Középre","alignJustify":"Sorkizárt","alignTop":"Tetejére","alignMiddle":"Középre","alignBottom":"Aljára","alignNone":"None","invalidValue":"Érvénytelen érték.","invalidHeight":"A magasság mezőbe csak számokat írhat.","invalidWidth":"A szélesség mezőbe csak számokat írhat.","invalidCssLength":"\"%1\"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes CSS egységgel megjelölve(px, %, in, cm, mm, em, ex, pt vagy pc).","invalidHtmlLength":"\"%1\"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes HTML egységgel megjelölve(px vagy %).","invalidInlineStyle":"Az inline stílusnak megadott értéknek tartalmaznia kell egy vagy több rekordot a \"name : value\" formátumban, pontosvesszővel elválasztva.","cssLengthTooltip":"Adjon meg egy számot értéknek pixelekben vagy egy számot érvényes CSS mértékegységben (px, %, in, cm, mm, em, ex, pt, vagy pc).","unavailable":"%1<span class=\"cke_accessibility\">, nem elérhető</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/id.js b/core/assets/vendor/ckeditor/lang/id.js
index b2fa2ee..36226f7 100644
--- a/core/assets/vendor/ckeditor/lang/id.js
+++ b/core/assets/vendor/ckeditor/lang/id.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['id']={"widget":{"move":"Tekan dan geser untuk memindahkan","label":"%1 widget"},"undo":{"redo":"Kembali lakukan","undo":"Batalkan perlakuan"},"toolbar":{"toolbarCollapse":"Ciutkan Toolbar","toolbarExpand":"Bentangkan Toolbar","toolbarGroups":{"document":"Dokumen","clipboard":"Papan klip / Kembalikan perlakuan","editing":"Sunting","forms":"Formulir","basicstyles":"Gaya Dasar","paragraph":"Paragraf","links":"Tautan","insert":"Sisip","styles":"Gaya","colors":"Warna","tools":"Alat"},"toolbars":"Toolbar Penyunting"},"table":{"border":"Ukuran batas","caption":"Judul halaman","cell":{"menu":"Sel","insertBefore":"Sisip Sel Sebelum","insertAfter":"Sisip Sel Setelah","deleteCell":"Hapus Sel","merge":"Gabungkan Sel","mergeRight":"Gabungkan ke Kanan","mergeDown":"Gabungkan ke Bawah","splitHorizontal":"Pisahkan Sel Secara Horisontal","splitVertical":"Pisahkan Sel Secara Vertikal","title":"Properti Sel","cellType":"Tipe Sel","rowSpan":"Rentang antar baris","colSpan":"Rentang antar kolom","wordWrap":"Word Wrap","hAlign":"Jajaran Horisontal","vAlign":"Jajaran Vertikal","alignBaseline":"Dasar","bgColor":"Warna Latar Belakang","borderColor":"Warna Batasan","data":"Data","header":"Header","yes":"Ya","no":"Tidak","invalidWidth":"Lebar sel harus sebuah angka.","invalidHeight":"Tinggi sel harus sebuah angka","invalidRowSpan":"Rentang antar baris harus angka seluruhnya.","invalidColSpan":"Rentang antar kolom harus angka seluruhnya","chooseColor":"Pilih"},"cellPad":"Sel spasi dalam","cellSpace":"Spasi antar sel","column":{"menu":"Kolom","insertBefore":"Sisip Kolom Sebelum","insertAfter":"Sisip Kolom Sesudah","deleteColumn":"Hapus Kolom"},"columns":"Kolom","deleteTable":"Hapus Tabel","headers":"Headers","headersBoth":"Keduanya","headersColumn":"Kolom pertama","headersNone":"Tidak ada","headersRow":"Baris Pertama","invalidBorder":"Ukuran batasan harus sebuah angka","invalidCellPadding":"'Spasi dalam' sel harus angka positif.","invalidCellSpacing":"Spasi antar sel harus angka positif.","invalidCols":"Jumlah kolom harus sebuah angka lebih besar dari 0","invalidHeight":"Tinggi tabel harus sebuah angka.","invalidRows":"Jumlah barus harus sebuah angka dan lebih besar dari 0.","invalidWidth":"Lebar tabel harus sebuah angka.","menu":"Properti Tabel","row":{"menu":"Baris","insertBefore":"Sisip Baris Sebelum","insertAfter":"Sisip Baris Sesudah","deleteRow":"Hapus Baris"},"rows":"Baris","summary":"Intisari","title":"Properti Tabel","toolbar":"Tabe","widthPc":"persen","widthPx":"piksel","widthUnit":"lebar satuan"},"stylescombo":{"label":"Gaya","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Opsi spesial karakter","title":"Pilih spesial karakter","toolbar":"Sisipkan spesial karakter"},"sourcedialog":{"toolbar":"Sumber","title":"Sumber"},"sourcearea":{"toolbar":"Sumber"},"showblocks":{"toolbar":"Perlihatkan Blok"},"removeformat":{"toolbar":"Hapus Format"},"pastetext":{"button":"Tempel sebagai teks polos","title":"Tempel sebagai Teks Polos"},"pastefromword":{"confirmCleanup":"Teks yang ingin anda tempel sepertinya di salin dari Word. Apakah anda mau membersihkannya sebelum menempel?","error":"Tidak mungkin membersihkan data yang ditempel dikerenakan kesalahan internal","title":"Tempel dari Word","toolbar":"Tempel dari Word"},"maximize":{"maximize":"Memperbesar","minimize":"Memperkecil"},"magicline":{"title":"Masukkan paragraf disini"},"list":{"bulletedlist":"Sisip/Hapus Daftar Bullet","numberedlist":"Sisip/Hapus Daftar Bernomor"},"language":{"button":"Atur Bahasa","remove":"Hapus Bahasa"},"justify":{"block":"Rata kiri-kanan","center":"Pusat","left":"Align Left","right":"Align Right"},"indent":{"indent":"Tingkatkan Lekuk","outdent":"Kurangi Lekuk"},"image2":{"alt":"Teks alternatif","btnUpload":"Kirim ke Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info Gambar","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Atur Ulang Ukuran","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Unggah","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Sisip Garis Horisontal"},"format":{"label":"Bentuk","panelTitle":"Bentuk Paragraf","tag_address":"Alamat","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Membentuk"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Opsi Konteks Pilihan"},"clipboard":{"copy":"Salin","copyError":"Pengaturan keamanan peramban anda tidak mengizinkan editor untuk mengeksekusi operasi menyalin secara otomatis. Mohon gunakan papan tuts (Ctrl/Cmd+C)","cut":"Potong","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Tempel","pasteArea":"Area Tempel","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Karena pengaturan keamanan peramban anda, editor tida dapat mengakses data clipboard anda secara langsung. Anda harus mem-paste kembali pada halaman ini","title":"Tempel"},"button":{"selectedLabel":"%1(Dipilih)"},"blockquote":{"toolbar":"Kutipan Blok"},"basicstyles":{"bold":"Huruf Tebal","italic":"Huruf Miring","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Garis Bawah"},"about":{"copy":"Hak cipta &copy; $1. All rights reserved.","dlgTitle":"Tentang CKEditor","help":"Cel $1 untuk bantuan.","moreInfo":"Untuk informasi lisensi silahkan kunjungi web site kami:","title":"Tentang CKEditor","userGuide":"Petunjuk Pengguna CKEditor"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Tekan ALT 0 untuk bantuan.","browseServer":"Jelajah Server","url":"URL","protocol":"Protokol","upload":"Unggah","uploadSubmit":"Kirim ke Server","image":"Gambar","flash":"Flash","form":"Formulir","checkbox":"Kotak Cek","radio":"Tombol Radio","textField":"Kolom Teks","textarea":"Area Teks","hiddenField":"Kolom Tersembunyi","button":"Tombol","select":"Kolom Seleksi","imageButton":"Tombol Gambar","notSet":"<tidak diatur>","id":"Id","name":"Nama","langDir":"Arah Bahasa","langDirLtr":"Kiri ke Kanan (LTR)","langDirRtl":"Kanan ke Kiri","langCode":"Kode Bahasa","longDescr":"Deskripsi URL Panjang","cssClass":"Kelas Stylesheet","advisoryTitle":"Penasehat Judul","cssStyle":"Gaya","ok":"OK","cancel":"Batal","close":"Tutup","preview":"Pratinjau","resize":"Ubah ukuran","generalTab":"Umum","advancedTab":"Advanced","validateNumberFailed":"Nilai ini tidak sebuah angka","confirmNewPage":"Semua perubahan yang tidak disimpan di konten ini akan hilang. Apakah anda yakin ingin memuat halaman baru?","confirmCancel":"Beberapa opsi telah berubah. Apakah anda yakin ingin menutup dialog?","options":"Opsi","target":"Sasaran","targetNew":"Jendela Baru (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Jendela yang Sama (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","styles":"Gaya","cssClasses":"Kelas Stylesheet","width":"Lebar","height":"Tinggi","align":"Penjajaran","alignLeft":"Kiri","alignRight":"Kanan","alignCenter":"Tengah","alignJustify":"Rata kiri-kanan","alignTop":"Atas","alignMiddle":"Tengah","alignBottom":"Bawah","alignNone":"None","invalidValue":"Nilai tidak sah.","invalidHeight":"Tinggi harus sebuah angka.","invalidWidth":"Lebar harus sebuah angka.","invalidCssLength":"Nilai untuk \"%1\" harus sebuah angkat positif dengan atau tanpa pengukuran unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Nilai yang dispesifikasian untuk kolom \"%1\" harus sebuah angka positif dengan atau tanpa sebuah unit pengukuran HTML (px atau %) yang valid.","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Masukkan sebuah angka untuk sebuah nilai dalam pixel atau sebuah angka dengan unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, tidak tersedia</span>"}};
\ No newline at end of file
+CKEDITOR.lang['id']={"widget":{"move":"Tekan dan geser untuk memindahkan"},"undo":{"redo":"Kembali lakukan","undo":"Batalkan perlakuan"},"toolbar":{"toolbarCollapse":"Ciutkan Toolbar","toolbarExpand":"Bentangkan Toolbar","toolbarGroups":{"document":"Dokumen","clipboard":"Papan klip / Kembalikan perlakuan","editing":"Sunting","forms":"Formulir","basicstyles":"Gaya Dasar","paragraph":"Paragraf","links":"Tautan","insert":"Sisip","styles":"Gaya","colors":"Warna","tools":"Alat"},"toolbars":"Toolbar Penyunting"},"table":{"border":"Ukuran batas","caption":"Judul halaman","cell":{"menu":"Sel","insertBefore":"Sisip Sel Sebelum","insertAfter":"Sisip Sel Setelah","deleteCell":"Hapus Sel","merge":"Gabungkan Sel","mergeRight":"Gabungkan ke Kanan","mergeDown":"Gabungkan ke Bawah","splitHorizontal":"Pisahkan Sel Secara Horisontal","splitVertical":"Pisahkan Sel Secara Vertikal","title":"Properti Sel","cellType":"Tipe Sel","rowSpan":"Rentang antar baris","colSpan":"Rentang antar kolom","wordWrap":"Word Wrap","hAlign":"Jajaran Horisontal","vAlign":"Jajaran Vertikal","alignBaseline":"Dasar","bgColor":"Warna Latar Belakang","borderColor":"Warna Batasan","data":"Data","header":"Header","yes":"Ya","no":"Tidak","invalidWidth":"Lebar sel harus sebuah angka.","invalidHeight":"Tinggi sel harus sebuah angka","invalidRowSpan":"Rentang antar baris harus angka seluruhnya.","invalidColSpan":"Rentang antar kolom harus angka seluruhnya","chooseColor":"Pilih"},"cellPad":"Sel spasi dalam","cellSpace":"Spasi antar sel","column":{"menu":"Kolom","insertBefore":"Sisip Kolom Sebelum","insertAfter":"Sisip Kolom Sesudah","deleteColumn":"Hapus Kolom"},"columns":"Kolom","deleteTable":"Hapus Tabel","headers":"Headers","headersBoth":"Keduanya","headersColumn":"Kolom pertama","headersNone":"Tidak ada","headersRow":"Baris Pertama","invalidBorder":"Ukuran batasan harus sebuah angka","invalidCellPadding":"'Spasi dalam' sel harus angka positif.","invalidCellSpacing":"Spasi antar sel harus angka positif.","invalidCols":"Jumlah kolom harus sebuah angka lebih besar dari 0","invalidHeight":"Tinggi tabel harus sebuah angka.","invalidRows":"Jumlah barus harus sebuah angka dan lebih besar dari 0.","invalidWidth":"Lebar tabel harus sebuah angka.","menu":"Properti Tabel","row":{"menu":"Baris","insertBefore":"Sisip Baris Sebelum","insertAfter":"Sisip Baris Sesudah","deleteRow":"Hapus Baris"},"rows":"Baris","summary":"Intisari","title":"Properti Tabel","toolbar":"Tabe","widthPc":"persen","widthPx":"piksel","widthUnit":"lebar satuan"},"stylescombo":{"label":"Gaya","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Opsi spesial karakter","title":"Pilih spesial karakter","toolbar":"Sisipkan spesial karakter"},"sourcedialog":{"toolbar":"Sumber","title":"Sumber"},"sourcearea":{"toolbar":"Sumber"},"showblocks":{"toolbar":"Perlihatkan Blok"},"removeformat":{"toolbar":"Hapus Format"},"pastetext":{"button":"Tempel sebagai teks polos","title":"Tempel sebagai Teks Polos"},"pastefromword":{"confirmCleanup":"Teks yang ingin anda tempel sepertinya di salin dari Word. Apakah anda mau membersihkannya sebelum menempel?","error":"Tidak mungkin membersihkan data yang ditempel dikerenakan kesalahan internal","title":"Tempel dari Word","toolbar":"Tempel dari Word"},"maximize":{"maximize":"Memperbesar","minimize":"Memperkecil"},"magicline":{"title":"Masukkan paragraf disini"},"list":{"bulletedlist":"Sisip/Hapus Daftar Bullet","numberedlist":"Sisip/Hapus Daftar Bernomor"},"language":{"button":"Atur Bahasa","remove":"Hapus Bahasa"},"justify":{"block":"Rata kiri-kanan","center":"Pusat","left":"Align Left","right":"Align Right"},"indent":{"indent":"Tingkatkan Lekuk","outdent":"Kurangi Lekuk"},"image2":{"alt":"Teks alternatif","btnUpload":"Kirim ke Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info Gambar","lockRatio":"Lock Ratio","menu":"Image Properties","pathName":"image","pathNameCaption":"caption","resetSize":"Atur Ulang Ukuran","resizer":"Click and drag to resize","title":"Image Properties","uploadTab":"Unggah","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Sisip Garis Horisontal"},"format":{"label":"Bentuk","panelTitle":"Bentuk Paragraf","tag_address":"Alamat","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Membentuk"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Opsi Konteks Pilihan"},"clipboard":{"copy":"Salin","copyError":"Pengaturan keamanan peramban anda tidak mengizinkan editor untuk mengeksekusi operasi menyalin secara otomatis. Mohon gunakan papan tuts (Ctrl/Cmd+C)","cut":"Potong","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Tempel","pasteArea":"Area Tempel","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Karena pengaturan keamanan peramban anda, editor tida dapat mengakses data clipboard anda secara langsung. Anda harus mem-paste kembali pada halaman ini","title":"Tempel"},"button":{"selectedLabel":"%1(Dipilih)"},"blockquote":{"toolbar":"Kutipan Blok"},"basicstyles":{"bold":"Huruf Tebal","italic":"Huruf Miring","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Garis Bawah"},"about":{"copy":"Hak cipta &copy; $1. All rights reserved.","dlgTitle":"Tentang CKEditor","help":"Cel $1 untuk bantuan.","moreInfo":"Untuk informasi lisensi silahkan kunjungi web site kami:","title":"Tentang CKEditor","userGuide":"Petunjuk Pengguna CKEditor"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Tekan ALT 0 untuk bantuan.","browseServer":"Jelajah Server","url":"URL","protocol":"Protokol","upload":"Unggah","uploadSubmit":"Kirim ke Server","image":"Gambar","flash":"Flash","form":"Formulir","checkbox":"Kotak Cek","radio":"Tombol Radio","textField":"Kolom Teks","textarea":"Area Teks","hiddenField":"Kolom Tersembunyi","button":"Tombol","select":"Kolom Seleksi","imageButton":"Tombol Gambar","notSet":"<tidak diatur>","id":"Id","name":"Nama","langDir":"Arah Bahasa","langDirLtr":"Kiri ke Kanan (LTR)","langDirRtl":"Kanan ke Kiri","langCode":"Kode Bahasa","longDescr":"Deskripsi URL Panjang","cssClass":"Kelas Stylesheet","advisoryTitle":"Penasehat Judul","cssStyle":"Gaya","ok":"OK","cancel":"Batal","close":"Tutup","preview":"Pratinjau","resize":"Ubah ukuran","generalTab":"Umum","advancedTab":"Advanced","validateNumberFailed":"Nilai ini tidak sebuah angka","confirmNewPage":"Semua perubahan yang tidak disimpan di konten ini akan hilang. Apakah anda yakin ingin memuat halaman baru?","confirmCancel":"Beberapa opsi telah berubah. Apakah anda yakin ingin menutup dialog?","options":"Opsi","target":"Sasaran","targetNew":"Jendela Baru (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Jendela yang Sama (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","styles":"Gaya","cssClasses":"Kelas Stylesheet","width":"Lebar","height":"Tinggi","align":"Penjajaran","alignLeft":"Kiri","alignRight":"Kanan","alignCenter":"Tengah","alignJustify":"Rata kiri-kanan","alignTop":"Atas","alignMiddle":"Tengah","alignBottom":"Bawah","alignNone":"None","invalidValue":"Nilai tidak sah.","invalidHeight":"Tinggi harus sebuah angka.","invalidWidth":"Lebar harus sebuah angka.","invalidCssLength":"Nilai untuk \"%1\" harus sebuah angkat positif dengan atau tanpa pengukuran unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Nilai yang dispesifikasian untuk kolom \"%1\" harus sebuah angka positif dengan atau tanpa sebuah unit pengukuran HTML (px atau %) yang valid.","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Masukkan sebuah angka untuk sebuah nilai dalam pixel atau sebuah angka dengan unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, tidak tersedia</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/is.js b/core/assets/vendor/ckeditor/lang/is.js
index a47d043..de5bcf7 100644
--- a/core/assets/vendor/ckeditor/lang/is.js
+++ b/core/assets/vendor/ckeditor/lang/is.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['is']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Hætta við afturköllun","undo":"Afturkalla"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Breidd ramma","caption":"Titill","cell":{"menu":"Reitur","insertBefore":"Skjóta inn reiti fyrir aftan","insertAfter":"Skjóta inn reiti fyrir framan","deleteCell":"Fella reit","merge":"Sameina reiti","mergeRight":"Sameina til hægri","mergeDown":"Sameina niður á við","splitHorizontal":"Kljúfa reit lárétt","splitVertical":"Kljúfa reit lóðrétt","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Reitaspássía","cellSpace":"Bil milli reita","column":{"menu":"Dálkur","insertBefore":"Skjóta inn dálki vinstra megin","insertAfter":"Skjóta inn dálki hægra megin","deleteColumn":"Fella dálk"},"columns":"Dálkar","deleteTable":"Fella töflu","headers":"Fyrirsagnir","headersBoth":"Hvort tveggja","headersColumn":"Fyrsti dálkur","headersNone":"Engar","headersRow":"Fyrsta röð","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Eigindi töflu","row":{"menu":"Röð","insertBefore":"Skjóta inn röð fyrir ofan","insertAfter":"Skjóta inn röð fyrir neðan","deleteRow":"Eyða röð"},"rows":"Raðir","summary":"Áfram","title":"Eigindi töflu","toolbar":"Tafla","widthPc":"prósent","widthPx":"myndeindir","widthUnit":"width unit"},"stylescombo":{"label":"Stílflokkur","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Velja tákn","toolbar":"Setja inn merki"},"sourcedialog":{"toolbar":"Kóði","title":"Kóði"},"sourcearea":{"toolbar":"Kóði"},"showblocks":{"toolbar":"Sýna blokkir"},"removeformat":{"toolbar":"Fjarlægja snið"},"pastetext":{"button":"Líma sem ósniðinn texta","title":"Líma sem ósniðinn texta"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Líma úr Word","toolbar":"Líma úr Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Punktalisti","numberedlist":"Númeraður listi"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Jafna báðum megin","center":"Miðja texta","left":"Vinstrijöfnun","right":"Hægrijöfnun"},"indent":{"indent":"Minnka inndrátt","outdent":"Auka inndrátt"},"image2":{"alt":"Baklægur texti","btnUpload":"Hlaða upp","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Almennt","lockRatio":"Festa stærðarhlutfall","menu":"Eigindi myndar","pathName":"image","pathNameCaption":"caption","resetSize":"Reikna stærð","resizer":"Click and drag to resize","title":"Eigindi myndar","uploadTab":"Senda upp","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Lóðrétt lína"},"format":{"label":"Stílsnið","panelTitle":"Stílsnið","tag_address":"Vistfang","tag_div":"Venjulegt (DIV)","tag_h1":"Fyrirsögn 1","tag_h2":"Fyrirsögn 2","tag_h3":"Fyrirsögn 3","tag_h4":"Fyrirsögn 4","tag_h5":"Fyrirsögn 5","tag_h6":"Fyrirsögn 6","tag_p":"Venjulegt letur","tag_pre":"Forsniðið"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Afrita","copyError":"Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl/Cmd+C).","cut":"Klippa","cutError":"Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl/Cmd+X).","paste":"Líma","pasteArea":"Paste Area","pasteMsg":"Límdu í svæðið hér að neðan og (<STRONG>Ctrl/Cmd+V</STRONG>) og smelltu á <STRONG>OK</STRONG>.","securityMsg":"Vegna öryggisstillinga í vafranum þínum fær ritillinn ekki beinan aðgang að klippuborðinu. Þú verður að líma innihaldið aftur inn í þennan glugga.","title":"Líma"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Inndráttur"},"basicstyles":{"bold":"Feitletrað","italic":"Skáletrað","strike":"Yfirstrikað","subscript":"Niðurskrifað","superscript":"Uppskrifað","underline":"Undirstrikað"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Fletta í skjalasafni","url":"Vefslóð","protocol":"Samskiptastaðall","upload":"Senda upp","uploadSubmit":"Hlaða upp","image":"Setja inn mynd","flash":"Flash","form":"Setja inn innsláttarform","checkbox":"Setja inn hökunarreit","radio":"Setja inn valhnapp","textField":"Setja inn textareit","textarea":"Setja inn textasvæði","hiddenField":"Setja inn falið svæði","button":"Setja inn hnapp","select":"Setja inn lista","imageButton":"Setja inn myndahnapp","notSet":"<ekkert valið>","id":"Auðkenni","name":"Nafn","langDir":"Lesstefna","langDirLtr":"Frá vinstri til hægri (LTR)","langDirRtl":"Frá hægri til vinstri (RTL)","langCode":"Tungumálakóði","longDescr":"Nánari lýsing","cssClass":"Stílsniðsflokkur","advisoryTitle":"Titill","cssStyle":"Stíll","ok":"Í lagi","cancel":"Hætta við","close":"Close","preview":"Forskoða","resize":"Resize","generalTab":"Almennt","advancedTab":"Tæknilegt","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Mark","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Frá vinstri til hægri (LTR)","langDirRTL":"Frá hægri til vinstri (RTL)","styles":"Stíll","cssClasses":"Stílsniðsflokkur","width":"Breidd","height":"Hæð","align":"Jöfnun","alignLeft":"Vinstri","alignRight":"Hægri","alignCenter":"Miðjað","alignJustify":"Jafna báðum megin","alignTop":"Efst","alignMiddle":"Miðjuð","alignBottom":"Neðst","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['is']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Hætta við afturköllun","undo":"Afturkalla"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Breidd ramma","caption":"Titill","cell":{"menu":"Reitur","insertBefore":"Skjóta inn reiti fyrir aftan","insertAfter":"Skjóta inn reiti fyrir framan","deleteCell":"Fella reit","merge":"Sameina reiti","mergeRight":"Sameina til hægri","mergeDown":"Sameina niður á við","splitHorizontal":"Kljúfa reit lárétt","splitVertical":"Kljúfa reit lóðrétt","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Reitaspássía","cellSpace":"Bil milli reita","column":{"menu":"Dálkur","insertBefore":"Skjóta inn dálki vinstra megin","insertAfter":"Skjóta inn dálki hægra megin","deleteColumn":"Fella dálk"},"columns":"Dálkar","deleteTable":"Fella töflu","headers":"Fyrirsagnir","headersBoth":"Hvort tveggja","headersColumn":"Fyrsti dálkur","headersNone":"Engar","headersRow":"Fyrsta röð","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Eigindi töflu","row":{"menu":"Röð","insertBefore":"Skjóta inn röð fyrir ofan","insertAfter":"Skjóta inn röð fyrir neðan","deleteRow":"Eyða röð"},"rows":"Raðir","summary":"Áfram","title":"Eigindi töflu","toolbar":"Tafla","widthPc":"prósent","widthPx":"myndeindir","widthUnit":"width unit"},"stylescombo":{"label":"Stílflokkur","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Velja tákn","toolbar":"Setja inn merki"},"sourcedialog":{"toolbar":"Kóði","title":"Kóði"},"sourcearea":{"toolbar":"Kóði"},"showblocks":{"toolbar":"Sýna blokkir"},"removeformat":{"toolbar":"Fjarlægja snið"},"pastetext":{"button":"Líma sem ósniðinn texta","title":"Líma sem ósniðinn texta"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Líma úr Word","toolbar":"Líma úr Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Punktalisti","numberedlist":"Númeraður listi"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Jafna báðum megin","center":"Miðja texta","left":"Vinstrijöfnun","right":"Hægrijöfnun"},"indent":{"indent":"Minnka inndrátt","outdent":"Auka inndrátt"},"image2":{"alt":"Baklægur texti","btnUpload":"Hlaða upp","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Almennt","lockRatio":"Festa stærðarhlutfall","menu":"Eigindi myndar","pathName":"image","pathNameCaption":"caption","resetSize":"Reikna stærð","resizer":"Click and drag to resize","title":"Eigindi myndar","uploadTab":"Senda upp","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Lóðrétt lína"},"format":{"label":"Stílsnið","panelTitle":"Stílsnið","tag_address":"Vistfang","tag_div":"Venjulegt (DIV)","tag_h1":"Fyrirsögn 1","tag_h2":"Fyrirsögn 2","tag_h3":"Fyrirsögn 3","tag_h4":"Fyrirsögn 4","tag_h5":"Fyrirsögn 5","tag_h6":"Fyrirsögn 6","tag_p":"Venjulegt letur","tag_pre":"Forsniðið"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Afrita","copyError":"Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl/Cmd+C).","cut":"Klippa","cutError":"Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl/Cmd+X).","paste":"Líma","pasteArea":"Paste Area","pasteMsg":"Límdu í svæðið hér að neðan og (<STRONG>Ctrl/Cmd+V</STRONG>) og smelltu á <STRONG>OK</STRONG>.","securityMsg":"Vegna öryggisstillinga í vafranum þínum fær ritillinn ekki beinan aðgang að klippuborðinu. Þú verður að líma innihaldið aftur inn í þennan glugga.","title":"Líma"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Inndráttur"},"basicstyles":{"bold":"Feitletrað","italic":"Skáletrað","strike":"Yfirstrikað","subscript":"Niðurskrifað","superscript":"Uppskrifað","underline":"Undirstrikað"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Fletta í skjalasafni","url":"Vefslóð","protocol":"Samskiptastaðall","upload":"Senda upp","uploadSubmit":"Hlaða upp","image":"Setja inn mynd","flash":"Flash","form":"Setja inn innsláttarform","checkbox":"Setja inn hökunarreit","radio":"Setja inn valhnapp","textField":"Setja inn textareit","textarea":"Setja inn textasvæði","hiddenField":"Setja inn falið svæði","button":"Setja inn hnapp","select":"Setja inn lista","imageButton":"Setja inn myndahnapp","notSet":"<ekkert valið>","id":"Auðkenni","name":"Nafn","langDir":"Lesstefna","langDirLtr":"Frá vinstri til hægri (LTR)","langDirRtl":"Frá hægri til vinstri (RTL)","langCode":"Tungumálakóði","longDescr":"Nánari lýsing","cssClass":"Stílsniðsflokkur","advisoryTitle":"Titill","cssStyle":"Stíll","ok":"Í lagi","cancel":"Hætta við","close":"Close","preview":"Forskoða","resize":"Resize","generalTab":"Almennt","advancedTab":"Tæknilegt","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Mark","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Frá vinstri til hægri (LTR)","langDirRTL":"Frá hægri til vinstri (RTL)","styles":"Stíll","cssClasses":"Stílsniðsflokkur","width":"Breidd","height":"Hæð","align":"Jöfnun","alignLeft":"Vinstri","alignRight":"Hægri","alignCenter":"Miðjað","alignJustify":"Jafna báðum megin","alignTop":"Efst","alignMiddle":"Miðjuð","alignBottom":"Neðst","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/it.js b/core/assets/vendor/ckeditor/lang/it.js
index 84ea999..a144a90 100644
--- a/core/assets/vendor/ckeditor/lang/it.js
+++ b/core/assets/vendor/ckeditor/lang/it.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['it']={"widget":{"move":"Fare clic e trascinare per spostare","label":"Widget %1"},"undo":{"redo":"Ripristina","undo":"Annulla"},"toolbar":{"toolbarCollapse":"Minimizza Toolbar","toolbarExpand":"Espandi Toolbar","toolbarGroups":{"document":"Documento","clipboard":"Copia negli appunti/Annulla","editing":"Modifica","forms":"Form","basicstyles":"Stili di base","paragraph":"Paragrafo","links":"Link","insert":"Inserisci","styles":"Stili","colors":"Colori","tools":"Strumenti"},"toolbars":"Editor toolbar"},"table":{"border":"Dimensione bordo","caption":"Intestazione","cell":{"menu":"Cella","insertBefore":"Inserisci Cella Prima","insertAfter":"Inserisci Cella Dopo","deleteCell":"Elimina celle","merge":"Unisce celle","mergeRight":"Unisci a Destra","mergeDown":"Unisci in Basso","splitHorizontal":"Dividi Cella Orizzontalmente","splitVertical":"Dividi Cella Verticalmente","title":"Proprietà della cella","cellType":"Tipo di cella","rowSpan":"Su più righe","colSpan":"Su più colonne","wordWrap":"Ritorno a capo","hAlign":"Allineamento orizzontale","vAlign":"Allineamento verticale","alignBaseline":"Linea Base","bgColor":"Colore di Sfondo","borderColor":"Colore del Bordo","data":"Dati","header":"Intestazione","yes":"Si","no":"No","invalidWidth":"La larghezza della cella dev'essere un numero.","invalidHeight":"L'altezza della cella dev'essere un numero.","invalidRowSpan":"Il numero di righe dev'essere un numero intero.","invalidColSpan":"Il numero di colonne dev'essere un numero intero.","chooseColor":"Scegli"},"cellPad":"Padding celle","cellSpace":"Spaziatura celle","column":{"menu":"Colonna","insertBefore":"Inserisci Colonna Prima","insertAfter":"Inserisci Colonna Dopo","deleteColumn":"Elimina colonne"},"columns":"Colonne","deleteTable":"Cancella Tabella","headers":"Intestazione","headersBoth":"Entrambe","headersColumn":"Prima Colonna","headersNone":"Nessuna","headersRow":"Prima Riga","invalidBorder":"La dimensione del bordo dev'essere un numero.","invalidCellPadding":"Il paging delle celle dev'essere un numero","invalidCellSpacing":"La spaziatura tra le celle dev'essere un numero.","invalidCols":"Il numero di colonne dev'essere un numero maggiore di 0.","invalidHeight":"L'altezza della tabella dev'essere un numero.","invalidRows":"Il numero di righe dev'essere un numero maggiore di 0.","invalidWidth":"La larghezza della tabella dev'essere un numero.","menu":"Proprietà tabella","row":{"menu":"Riga","insertBefore":"Inserisci Riga Prima","insertAfter":"Inserisci Riga Dopo","deleteRow":"Elimina righe"},"rows":"Righe","summary":"Indice","title":"Proprietà tabella","toolbar":"Tabella","widthPc":"percento","widthPx":"pixel","widthUnit":"unità larghezza"},"stylescombo":{"label":"Stili","panelTitle":"Stili di formattazione","panelTitle1":"Stili per blocchi","panelTitle2":"Stili in linea","panelTitle3":"Stili per oggetti"},"specialchar":{"options":"Opzioni carattere speciale","title":"Seleziona carattere speciale","toolbar":"Inserisci carattere speciale"},"sourcedialog":{"toolbar":"Sorgente","title":"Sorgente"},"sourcearea":{"toolbar":"Sorgente"},"showblocks":{"toolbar":"Visualizza Blocchi"},"removeformat":{"toolbar":"Elimina formattazione"},"pastetext":{"button":"Incolla come testo semplice","title":"Incolla come testo semplice"},"pastefromword":{"confirmCleanup":"Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?","error":"Non è stato possibile eliminare il testo incollato a causa di un errore interno.","title":"Incolla da Word","toolbar":"Incolla da Word"},"maximize":{"maximize":"Massimizza","minimize":"Minimizza"},"magicline":{"title":"Inserisci paragrafo qui"},"list":{"bulletedlist":"Inserisci/Rimuovi Elenco Puntato","numberedlist":"Inserisci/Rimuovi Elenco Numerato"},"language":{"button":"Imposta lingua","remove":"Rimuovi lingua"},"justify":{"block":"Giustifica","center":"Centra","left":"Allinea a sinistra","right":"Allinea a destra"},"indent":{"indent":"Aumenta rientro","outdent":"Riduci rientro"},"image2":{"alt":"Testo alternativo","btnUpload":"Invia al server","captioned":"Immagine con didascalia","captionPlaceholder":"Didascalia","infoTab":"Informazioni immagine","lockRatio":"Blocca rapporto","menu":"Proprietà immagine","pathName":"immagine","pathNameCaption":"didascalia","resetSize":"Reimposta dimensione","resizer":"Fare clic e trascinare per ridimensionare","title":"Proprietà immagine","uploadTab":"Carica","urlMissing":"Manca l'URL dell'immagine."},"horizontalrule":{"toolbar":"Inserisci riga orizzontale"},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Indirizzo","tag_div":"Paragrafo (DIV)","tag_h1":"Titolo 1","tag_h2":"Titolo 2","tag_h3":"Titolo 3","tag_h4":"Titolo 4","tag_h5":"Titolo 5","tag_h6":"Titolo 6","tag_p":"Normale","tag_pre":"Formattato"},"elementspath":{"eleLabel":"Percorso degli elementi","eleTitle":"%1 elemento"},"contextmenu":{"options":"Opzioni del menù contestuale"},"clipboard":{"copy":"Copia","copyError":"Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).","cut":"Taglia","cutError":"Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).","paste":"Incolla","pasteArea":"Incolla","pasteMsg":"Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl/Cmd+V</STRONG>) e premi <STRONG>OK</STRONG>.","securityMsg":"A causa delle impostazioni di sicurezza del browser,l'editor non è in grado di accedere direttamente agli appunti. E' pertanto necessario incollarli di nuovo in questa finestra.","title":"Incolla"},"button":{"selectedLabel":"%1 (selezionato)"},"blockquote":{"toolbar":"Citazione"},"basicstyles":{"bold":"Grassetto","italic":"Corsivo","strike":"Barrato","subscript":"Pedice","superscript":"Apice","underline":"Sottolineato"},"about":{"copy":"Copyright &copy; $1. Tutti i diritti riservati.","dlgTitle":"Riguardo CKEditor","help":"Vedi $1 per l'aiuto.","moreInfo":"Per le informazioni sulla licenza si prega di visitare il nostro sito:","title":"Riguardo CKEditor","userGuide":"Guida Utente CKEditor"},"editor":"Rich Text Editor","editorPanel":"Pannello Rich Text Editor","common":{"editorHelp":"Premi ALT 0 per aiuto","browseServer":"Cerca sul server","url":"URL","protocol":"Protocollo","upload":"Carica","uploadSubmit":"Invia al server","image":"Immagine","flash":"Oggetto Flash","form":"Modulo","checkbox":"Checkbox","radio":"Radio Button","textField":"Campo di testo","textarea":"Area di testo","hiddenField":"Campo nascosto","button":"Bottone","select":"Menu di selezione","imageButton":"Bottone immagine","notSet":"<non impostato>","id":"Id","name":"Nome","langDir":"Direzione scrittura","langDirLtr":"Da Sinistra a Destra (LTR)","langDirRtl":"Da Destra a Sinistra (RTL)","langCode":"Codice Lingua","longDescr":"URL descrizione estesa","cssClass":"Nome classe CSS","advisoryTitle":"Titolo","cssStyle":"Stile","ok":"OK","cancel":"Annulla","close":"Chiudi","preview":"Anteprima","resize":"Trascina per ridimensionare","generalTab":"Generale","advancedTab":"Avanzate","validateNumberFailed":"Il valore inserito non è un numero.","confirmNewPage":"Ogni modifica non salvata sarà persa. Sei sicuro di voler caricare una nuova pagina?","confirmCancel":"Alcune delle opzioni sono state cambiate. Sei sicuro di voler chiudere la finestra di dialogo?","options":"Opzioni","target":"Destinazione","targetNew":"Nuova finestra (_blank)","targetTop":"Finestra in primo piano (_top)","targetSelf":"Stessa finestra (_self)","targetParent":"Finestra Padre (_parent)","langDirLTR":"Da sinistra a destra (LTR)","langDirRTL":"Da destra a sinistra (RTL)","styles":"Stile","cssClasses":"Classi di stile","width":"Larghezza","height":"Altezza","align":"Allineamento","alignLeft":"Sinistra","alignRight":"Destra","alignCenter":"Centrato","alignJustify":"Giustifica","alignTop":"In Alto","alignMiddle":"Centrato","alignBottom":"In Basso","alignNone":"Nessuno","invalidValue":"Valore non valido.","invalidHeight":"L'altezza dev'essere un numero","invalidWidth":"La Larghezza dev'essere un numero","invalidCssLength":"Il valore indicato per il campo \"%1\" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le classi CSS (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"Il valore indicato per il campo \"%1\" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le pagine HTML (px o %).","invalidInlineStyle":"Il valore specificato per lo stile inline deve consistere in una o più tuple con il formato di \"name : value\", separati da semicolonne.","cssLengthTooltip":"Inserisci un numero per il valore in pixel oppure un numero con una valida unità CSS (px, %, in, cm, mm, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, non disponibile</span>"}};
\ No newline at end of file
+CKEDITOR.lang['it']={"widget":{"move":"Fare clic e trascinare per spostare"},"undo":{"redo":"Ripristina","undo":"Annulla"},"toolbar":{"toolbarCollapse":"Minimizza Toolbar","toolbarExpand":"Espandi Toolbar","toolbarGroups":{"document":"Documento","clipboard":"Copia negli appunti/Annulla","editing":"Modifica","forms":"Form","basicstyles":"Stili di base","paragraph":"Paragrafo","links":"Link","insert":"Inserisci","styles":"Stili","colors":"Colori","tools":"Strumenti"},"toolbars":"Editor toolbar"},"table":{"border":"Dimensione bordo","caption":"Intestazione","cell":{"menu":"Cella","insertBefore":"Inserisci Cella Prima","insertAfter":"Inserisci Cella Dopo","deleteCell":"Elimina celle","merge":"Unisce celle","mergeRight":"Unisci a Destra","mergeDown":"Unisci in Basso","splitHorizontal":"Dividi Cella Orizzontalmente","splitVertical":"Dividi Cella Verticalmente","title":"Proprietà della cella","cellType":"Tipo di cella","rowSpan":"Su più righe","colSpan":"Su più colonne","wordWrap":"Ritorno a capo","hAlign":"Allineamento orizzontale","vAlign":"Allineamento verticale","alignBaseline":"Linea Base","bgColor":"Colore di Sfondo","borderColor":"Colore del Bordo","data":"Dati","header":"Intestazione","yes":"Si","no":"No","invalidWidth":"La larghezza della cella dev'essere un numero.","invalidHeight":"L'altezza della cella dev'essere un numero.","invalidRowSpan":"Il numero di righe dev'essere un numero intero.","invalidColSpan":"Il numero di colonne dev'essere un numero intero.","chooseColor":"Scegli"},"cellPad":"Padding celle","cellSpace":"Spaziatura celle","column":{"menu":"Colonna","insertBefore":"Inserisci Colonna Prima","insertAfter":"Inserisci Colonna Dopo","deleteColumn":"Elimina colonne"},"columns":"Colonne","deleteTable":"Cancella Tabella","headers":"Intestazione","headersBoth":"Entrambe","headersColumn":"Prima Colonna","headersNone":"Nessuna","headersRow":"Prima Riga","invalidBorder":"La dimensione del bordo dev'essere un numero.","invalidCellPadding":"Il paging delle celle dev'essere un numero","invalidCellSpacing":"La spaziatura tra le celle dev'essere un numero.","invalidCols":"Il numero di colonne dev'essere un numero maggiore di 0.","invalidHeight":"L'altezza della tabella dev'essere un numero.","invalidRows":"Il numero di righe dev'essere un numero maggiore di 0.","invalidWidth":"La larghezza della tabella dev'essere un numero.","menu":"Proprietà tabella","row":{"menu":"Riga","insertBefore":"Inserisci Riga Prima","insertAfter":"Inserisci Riga Dopo","deleteRow":"Elimina righe"},"rows":"Righe","summary":"Indice","title":"Proprietà tabella","toolbar":"Tabella","widthPc":"percento","widthPx":"pixel","widthUnit":"unità larghezza"},"stylescombo":{"label":"Stili","panelTitle":"Stili di formattazione","panelTitle1":"Stili per blocchi","panelTitle2":"Stili in linea","panelTitle3":"Stili per oggetti"},"specialchar":{"options":"Opzioni carattere speciale","title":"Seleziona carattere speciale","toolbar":"Inserisci carattere speciale"},"sourcedialog":{"toolbar":"Sorgente","title":"Sorgente"},"sourcearea":{"toolbar":"Sorgente"},"showblocks":{"toolbar":"Visualizza Blocchi"},"removeformat":{"toolbar":"Elimina formattazione"},"pastetext":{"button":"Incolla come testo semplice","title":"Incolla come testo semplice"},"pastefromword":{"confirmCleanup":"Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?","error":"Non è stato possibile eliminare il testo incollato a causa di un errore interno.","title":"Incolla da Word","toolbar":"Incolla da Word"},"maximize":{"maximize":"Massimizza","minimize":"Minimizza"},"magicline":{"title":"Inserisci paragrafo qui"},"list":{"bulletedlist":"Inserisci/Rimuovi Elenco Puntato","numberedlist":"Inserisci/Rimuovi Elenco Numerato"},"language":{"button":"Imposta lingua","remove":"Rimuovi lingua"},"justify":{"block":"Giustifica","center":"Centra","left":"Allinea a sinistra","right":"Allinea a destra"},"indent":{"indent":"Aumenta rientro","outdent":"Riduci rientro"},"image2":{"alt":"Testo alternativo","btnUpload":"Invia al server","captioned":"Immagine con didascalia","captionPlaceholder":"Didascalia","infoTab":"Informazioni immagine","lockRatio":"Blocca rapporto","menu":"Proprietà immagine","pathName":"immagine","pathNameCaption":"didascalia","resetSize":"Reimposta dimensione","resizer":"Fare clic e trascinare per ridimensionare","title":"Proprietà immagine","uploadTab":"Carica","urlMissing":"Manca l'URL dell'immagine."},"horizontalrule":{"toolbar":"Inserisci riga orizzontale"},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Indirizzo","tag_div":"Paragrafo (DIV)","tag_h1":"Titolo 1","tag_h2":"Titolo 2","tag_h3":"Titolo 3","tag_h4":"Titolo 4","tag_h5":"Titolo 5","tag_h6":"Titolo 6","tag_p":"Normale","tag_pre":"Formattato"},"elementspath":{"eleLabel":"Percorso degli elementi","eleTitle":"%1 elemento"},"contextmenu":{"options":"Opzioni del menù contestuale"},"clipboard":{"copy":"Copia","copyError":"Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).","cut":"Taglia","cutError":"Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).","paste":"Incolla","pasteArea":"Incolla","pasteMsg":"Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl/Cmd+V</STRONG>) e premi <STRONG>OK</STRONG>.","securityMsg":"A causa delle impostazioni di sicurezza del browser,l'editor non è in grado di accedere direttamente agli appunti. E' pertanto necessario incollarli di nuovo in questa finestra.","title":"Incolla"},"button":{"selectedLabel":"%1 (selezionato)"},"blockquote":{"toolbar":"Citazione"},"basicstyles":{"bold":"Grassetto","italic":"Corsivo","strike":"Barrato","subscript":"Pedice","superscript":"Apice","underline":"Sottolineato"},"about":{"copy":"Copyright &copy; $1. Tutti i diritti riservati.","dlgTitle":"Riguardo CKEditor","help":"Vedi $1 per l'aiuto.","moreInfo":"Per le informazioni sulla licenza si prega di visitare il nostro sito:","title":"Riguardo CKEditor","userGuide":"Guida Utente CKEditor"},"editor":"Rich Text Editor","editorPanel":"Pannello Rich Text Editor","common":{"editorHelp":"Premi ALT 0 per aiuto","browseServer":"Cerca sul server","url":"URL","protocol":"Protocollo","upload":"Carica","uploadSubmit":"Invia al server","image":"Immagine","flash":"Oggetto Flash","form":"Modulo","checkbox":"Checkbox","radio":"Radio Button","textField":"Campo di testo","textarea":"Area di testo","hiddenField":"Campo nascosto","button":"Bottone","select":"Menu di selezione","imageButton":"Bottone immagine","notSet":"<non impostato>","id":"Id","name":"Nome","langDir":"Direzione scrittura","langDirLtr":"Da Sinistra a Destra (LTR)","langDirRtl":"Da Destra a Sinistra (RTL)","langCode":"Codice Lingua","longDescr":"URL descrizione estesa","cssClass":"Nome classe CSS","advisoryTitle":"Titolo","cssStyle":"Stile","ok":"OK","cancel":"Annulla","close":"Chiudi","preview":"Anteprima","resize":"Trascina per ridimensionare","generalTab":"Generale","advancedTab":"Avanzate","validateNumberFailed":"Il valore inserito non è un numero.","confirmNewPage":"Ogni modifica non salvata sarà persa. Sei sicuro di voler caricare una nuova pagina?","confirmCancel":"Alcune delle opzioni sono state cambiate. Sei sicuro di voler chiudere la finestra di dialogo?","options":"Opzioni","target":"Destinazione","targetNew":"Nuova finestra (_blank)","targetTop":"Finestra in primo piano (_top)","targetSelf":"Stessa finestra (_self)","targetParent":"Finestra Padre (_parent)","langDirLTR":"Da sinistra a destra (LTR)","langDirRTL":"Da destra a sinistra (RTL)","styles":"Stile","cssClasses":"Classi di stile","width":"Larghezza","height":"Altezza","align":"Allineamento","alignLeft":"Sinistra","alignRight":"Destra","alignCenter":"Centrato","alignJustify":"Giustifica","alignTop":"In Alto","alignMiddle":"Centrato","alignBottom":"In Basso","alignNone":"Nessuno","invalidValue":"Valore non valido.","invalidHeight":"L'altezza dev'essere un numero","invalidWidth":"La Larghezza dev'essere un numero","invalidCssLength":"Il valore indicato per il campo \"%1\" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le classi CSS (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"Il valore indicato per il campo \"%1\" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le pagine HTML (px o %).","invalidInlineStyle":"Il valore specificato per lo stile inline deve consistere in una o più tuple con il formato di \"name : value\", separati da semicolonne.","cssLengthTooltip":"Inserisci un numero per il valore in pixel oppure un numero con una valida unità CSS (px, %, in, cm, mm, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, non disponibile</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/ja.js b/core/assets/vendor/ckeditor/lang/ja.js
index 77875c6..d2696b9 100644
--- a/core/assets/vendor/ckeditor/lang/ja.js
+++ b/core/assets/vendor/ckeditor/lang/ja.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['ja']={"widget":{"move":"ドラッグして移動","label":"%1 widget"},"undo":{"redo":"やり直す","undo":"元に戻す"},"toolbar":{"toolbarCollapse":"ツールバーを閉じる","toolbarExpand":"ツールバーを開く","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"編集ツールバー"},"table":{"border":"枠線の幅","caption":"キャプション","cell":{"menu":"セル","insertBefore":"セルを前に挿入","insertAfter":"セルを後に挿入","deleteCell":"セルを削除","merge":"セルを結合","mergeRight":"右に結合","mergeDown":"下に結合","splitHorizontal":"セルを水平方向に分割","splitVertical":"セルを垂直方向に分割","title":"セルのプロパティ","cellType":"セルの種類","rowSpan":"行の結合数","colSpan":"列の結合数","wordWrap":"単語の折り返し","hAlign":"水平方向の配置","vAlign":"垂直方向の配置","alignBaseline":"ベースライン","bgColor":"背景色","borderColor":"ボーダーカラー","data":"テーブルデータ (td)","header":"ヘッダ","yes":"はい","no":"いいえ","invalidWidth":"セル幅は数値で入力してください。","invalidHeight":"セル高さは数値で入力してください。","invalidRowSpan":"縦幅(行数)は数値で入力してください。","invalidColSpan":"横幅(列数)は数値で入力してください。","chooseColor":"色の選択"},"cellPad":"セル内間隔","cellSpace":"セル内余白","column":{"menu":"列","insertBefore":"列を左に挿入","insertAfter":"列を右に挿入","deleteColumn":"列を削除"},"columns":"列数","deleteTable":"表を削除","headers":"ヘッダ (th)","headersBoth":"両方","headersColumn":"最初の列のみ","headersNone":"なし","headersRow":"最初の行のみ","invalidBorder":"枠線の幅は数値で入力してください。","invalidCellPadding":"セル内余白は数値で入力してください。","invalidCellSpacing":"セル間余白は数値で入力してください。","invalidCols":"列数は0より大きな数値を入力してください。","invalidHeight":"高さは数値で入力してください。","invalidRows":"行数は0より大きな数値を入力してください。","invalidWidth":"幅は数値で入力してください。","menu":"表のプロパティ","row":{"menu":"行","insertBefore":"行を上に挿入","insertAfter":"行を下に挿入","deleteRow":"行を削除"},"rows":"行数","summary":"表の概要","title":"表のプロパティ","toolbar":"表","widthPc":"パーセント","widthPx":"ピクセル","widthUnit":"幅の単位"},"stylescombo":{"label":"スタイル","panelTitle":"スタイル","panelTitle1":"ブロックスタイル","panelTitle2":"インラインスタイル","panelTitle3":"オブジェクトスタイル"},"specialchar":{"options":"特殊文字オプション","title":"特殊文字の選択","toolbar":"特殊文字を挿入"},"sourcedialog":{"toolbar":"ソース","title":"ソース"},"sourcearea":{"toolbar":"ソース"},"showblocks":{"toolbar":"ブロック表示"},"removeformat":{"toolbar":"書式を解除"},"pastetext":{"button":"プレーンテキストとして貼り付け","title":"プレーンテキストとして貼り付け"},"pastefromword":{"confirmCleanup":"貼り付けを行うテキストはワード文章からコピーされようとしています。貼り付ける前にクリーニングを行いますか？","error":"内部エラーにより貼り付けたデータをクリアできませんでした","title":"ワード文章から貼り付け","toolbar":"ワード文章から貼り付け"},"maximize":{"maximize":"最大化","minimize":"最小化"},"magicline":{"title":"ここに段落を挿入"},"list":{"bulletedlist":"番号無しリスト","numberedlist":"番号付きリスト"},"language":{"button":"言語を設定","remove":"言語を削除"},"justify":{"block":"両端揃え","center":"中央揃え","left":"左揃え","right":"右揃え"},"indent":{"indent":"インデント","outdent":"インデント解除"},"image2":{"alt":"代替テキスト","btnUpload":"サーバーに送信","captioned":"キャプションを付ける","captionPlaceholder":"キャプション","infoTab":"画像情報","lockRatio":"比率を固定","menu":"画像のプロパティ","pathName":"image","pathNameCaption":"caption","resetSize":"サイズをリセット","resizer":"ドラッグしてリサイズ","title":"画像のプロパティ","uploadTab":"アップロード","urlMissing":"画像のURLを入力してください。"},"horizontalrule":{"toolbar":"水平線"},"format":{"label":"書式","panelTitle":"段落の書式","tag_address":"アドレス","tag_div":"標準 (DIV)","tag_h1":"見出し 1","tag_h2":"見出し 2","tag_h3":"見出し 3","tag_h4":"見出し 4","tag_h5":"見出し 5","tag_h6":"見出し 6","tag_p":"標準","tag_pre":"書式付き"},"elementspath":{"eleLabel":"要素パス","eleTitle":"%1 要素"},"contextmenu":{"options":"コンテキストメニューオプション"},"clipboard":{"copy":"コピー","copyError":"ブラウザーのセキュリティ設定によりエディタのコピー操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+C)を使用してください。","cut":"切り取り","cutError":"ブラウザーのセキュリティ設定によりエディタの切り取り操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+X)を使用してください。","paste":"貼り付け","pasteArea":"貼り付け場所","pasteMsg":"キーボード(<STRONG>Ctrl/Cmd+V</STRONG>)を使用して、次の入力エリア内で貼り付けて、<STRONG>OK</STRONG>を押してください。","securityMsg":"ブラウザのセキュリティ設定により、エディタはクリップボードデータに直接アクセスすることができません。このウィンドウは貼り付け操作を行う度に表示されます。","title":"貼り付け"},"button":{"selectedLabel":"%1 (選択中)"},"blockquote":{"toolbar":"ブロック引用文"},"basicstyles":{"bold":"太字","italic":"斜体","strike":"打ち消し線","subscript":"下付き","superscript":"上付き","underline":"下線"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"CKEditorについて","help":"$1 のヘルプを見てください。","moreInfo":"ライセンス情報の詳細はウェブサイトにて確認してください:","title":"CKEditorについて","userGuide":"CKEditor User's Guide"},"editor":"リッチテキストエディタ","editorPanel":"リッチテキストエディタパネル","common":{"editorHelp":"ヘルプは ALT 0 を押してください","browseServer":"サーバブラウザ","url":"URL","protocol":"プロトコル","upload":"アップロード","uploadSubmit":"サーバーに送信","image":"イメージ","flash":"Flash","form":"フォーム","checkbox":"チェックボックス","radio":"ラジオボタン","textField":"１行テキスト","textarea":"テキストエリア","hiddenField":"不可視フィールド","button":"ボタン","select":"選択フィールド","imageButton":"画像ボタン","notSet":"<なし>","id":"Id","name":"Name属性","langDir":"文字表記の方向","langDirLtr":"左から右 (LTR)","langDirRtl":"右から左 (RTL)","langCode":"言語コード","longDescr":"longdesc属性(長文説明)","cssClass":"スタイルシートクラス","advisoryTitle":"Title属性","cssStyle":"スタイルシート","ok":"OK","cancel":"キャンセル","close":"閉じる","preview":"プレビュー","resize":"ドラッグしてリサイズ","generalTab":"全般","advancedTab":"高度な設定","validateNumberFailed":"値が数ではありません","confirmNewPage":"変更内容を保存せず、 新しいページを開いてもよろしいでしょうか？","confirmCancel":"オプション設定を変更しました。ダイアログを閉じてもよろしいでしょうか？","options":"オプション","target":"ターゲット","targetNew":"新しいウインドウ (_blank)","targetTop":"最上部ウィンドウ (_top)","targetSelf":"同じウィンドウ (_self)","targetParent":"親ウィンドウ (_parent)","langDirLTR":"左から右 (LTR)","langDirRTL":"右から左 (RTL)","styles":"スタイル","cssClasses":"スタイルシートクラス","width":"幅","height":"高さ","align":"行揃え","alignLeft":"左","alignRight":"右","alignCenter":"中央","alignJustify":"両端揃え","alignTop":"上","alignMiddle":"中央","alignBottom":"下","alignNone":"なし","invalidValue":"不正な値です。","invalidHeight":"高さは数値で入力してください。","invalidWidth":"幅は数値で入力してください。","invalidCssLength":"入力された \"%1\" 項目の値は、CSSの大きさ(px, %, in, cm, mm, em, ex, pt, または pc)が正しいものである/ないに関わらず、正の値である必要があります。","invalidHtmlLength":"入力された \"%1\" 項目の値は、HTMLの大きさ(px または %)が正しいものである/ないに関わらず、正の値である必要があります。","invalidInlineStyle":"入力されたインラインスタイルの値は、\"名前 : 値\" のフォーマットのセットで、複数の場合はセミコロンで区切られている形式である必要があります。","cssLengthTooltip":"ピクセル数もしくはCSSにセットできる数値を入力してください。(px,%,in,cm,mm,em,ex,pt,or pc)","unavailable":"%1<span class=\"cke_accessibility\">, 利用不可能</span>"}};
\ No newline at end of file
+CKEDITOR.lang['ja']={"widget":{"move":"ドラッグして移動"},"undo":{"redo":"やり直す","undo":"元に戻す"},"toolbar":{"toolbarCollapse":"ツールバーを閉じる","toolbarExpand":"ツールバーを開く","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"編集ツールバー"},"table":{"border":"枠線の幅","caption":"キャプション","cell":{"menu":"セル","insertBefore":"セルを前に挿入","insertAfter":"セルを後に挿入","deleteCell":"セルを削除","merge":"セルを結合","mergeRight":"右に結合","mergeDown":"下に結合","splitHorizontal":"セルを水平方向に分割","splitVertical":"セルを垂直方向に分割","title":"セルのプロパティ","cellType":"セルの種類","rowSpan":"行の結合数","colSpan":"列の結合数","wordWrap":"単語の折り返し","hAlign":"水平方向の配置","vAlign":"垂直方向の配置","alignBaseline":"ベースライン","bgColor":"背景色","borderColor":"ボーダーカラー","data":"テーブルデータ (td)","header":"ヘッダ","yes":"はい","no":"いいえ","invalidWidth":"セル幅は数値で入力してください。","invalidHeight":"セル高さは数値で入力してください。","invalidRowSpan":"縦幅(行数)は数値で入力してください。","invalidColSpan":"横幅(列数)は数値で入力してください。","chooseColor":"色の選択"},"cellPad":"セル内間隔","cellSpace":"セル内余白","column":{"menu":"列","insertBefore":"列を左に挿入","insertAfter":"列を右に挿入","deleteColumn":"列を削除"},"columns":"列数","deleteTable":"表を削除","headers":"ヘッダ (th)","headersBoth":"両方","headersColumn":"最初の列のみ","headersNone":"なし","headersRow":"最初の行のみ","invalidBorder":"枠線の幅は数値で入力してください。","invalidCellPadding":"セル内余白は数値で入力してください。","invalidCellSpacing":"セル間余白は数値で入力してください。","invalidCols":"列数は0より大きな数値を入力してください。","invalidHeight":"高さは数値で入力してください。","invalidRows":"行数は0より大きな数値を入力してください。","invalidWidth":"幅は数値で入力してください。","menu":"表のプロパティ","row":{"menu":"行","insertBefore":"行を上に挿入","insertAfter":"行を下に挿入","deleteRow":"行を削除"},"rows":"行数","summary":"表の概要","title":"表のプロパティ","toolbar":"表","widthPc":"パーセント","widthPx":"ピクセル","widthUnit":"幅の単位"},"stylescombo":{"label":"スタイル","panelTitle":"スタイル","panelTitle1":"ブロックスタイル","panelTitle2":"インラインスタイル","panelTitle3":"オブジェクトスタイル"},"specialchar":{"options":"特殊文字オプション","title":"特殊文字の選択","toolbar":"特殊文字を挿入"},"sourcedialog":{"toolbar":"ソース","title":"ソース"},"sourcearea":{"toolbar":"ソース"},"showblocks":{"toolbar":"ブロック表示"},"removeformat":{"toolbar":"書式を解除"},"pastetext":{"button":"プレーンテキストとして貼り付け","title":"プレーンテキストとして貼り付け"},"pastefromword":{"confirmCleanup":"貼り付けを行うテキストはワード文章からコピーされようとしています。貼り付ける前にクリーニングを行いますか？","error":"内部エラーにより貼り付けたデータをクリアできませんでした","title":"ワード文章から貼り付け","toolbar":"ワード文章から貼り付け"},"maximize":{"maximize":"最大化","minimize":"最小化"},"magicline":{"title":"ここに段落を挿入"},"list":{"bulletedlist":"番号無しリスト","numberedlist":"番号付きリスト"},"language":{"button":"言語を設定","remove":"言語を削除"},"justify":{"block":"両端揃え","center":"中央揃え","left":"左揃え","right":"右揃え"},"indent":{"indent":"インデント","outdent":"インデント解除"},"image2":{"alt":"代替テキスト","btnUpload":"サーバーに送信","captioned":"キャプションを付ける","captionPlaceholder":"キャプション","infoTab":"画像情報","lockRatio":"比率を固定","menu":"画像のプロパティ","pathName":"image","pathNameCaption":"caption","resetSize":"サイズをリセット","resizer":"ドラッグしてリサイズ","title":"画像のプロパティ","uploadTab":"アップロード","urlMissing":"画像のURLを入力してください。"},"horizontalrule":{"toolbar":"水平線"},"format":{"label":"書式","panelTitle":"段落の書式","tag_address":"アドレス","tag_div":"標準 (DIV)","tag_h1":"見出し 1","tag_h2":"見出し 2","tag_h3":"見出し 3","tag_h4":"見出し 4","tag_h5":"見出し 5","tag_h6":"見出し 6","tag_p":"標準","tag_pre":"書式付き"},"elementspath":{"eleLabel":"要素パス","eleTitle":"%1 要素"},"contextmenu":{"options":"コンテキストメニューオプション"},"clipboard":{"copy":"コピー","copyError":"ブラウザーのセキュリティ設定によりエディタのコピー操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+C)を使用してください。","cut":"切り取り","cutError":"ブラウザーのセキュリティ設定によりエディタの切り取り操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+X)を使用してください。","paste":"貼り付け","pasteArea":"貼り付け場所","pasteMsg":"キーボード(<STRONG>Ctrl/Cmd+V</STRONG>)を使用して、次の入力エリア内で貼り付けて、<STRONG>OK</STRONG>を押してください。","securityMsg":"ブラウザのセキュリティ設定により、エディタはクリップボードデータに直接アクセスすることができません。このウィンドウは貼り付け操作を行う度に表示されます。","title":"貼り付け"},"button":{"selectedLabel":"%1 (選択中)"},"blockquote":{"toolbar":"ブロック引用文"},"basicstyles":{"bold":"太字","italic":"斜体","strike":"打ち消し線","subscript":"下付き","superscript":"上付き","underline":"下線"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"CKEditorについて","help":"$1 のヘルプを見てください。","moreInfo":"ライセンス情報の詳細はウェブサイトにて確認してください:","title":"CKEditorについて","userGuide":"CKEditor User's Guide"},"editor":"リッチテキストエディタ","editorPanel":"リッチテキストエディタパネル","common":{"editorHelp":"ヘルプは ALT 0 を押してください","browseServer":"サーバブラウザ","url":"URL","protocol":"プロトコル","upload":"アップロード","uploadSubmit":"サーバーに送信","image":"イメージ","flash":"Flash","form":"フォーム","checkbox":"チェックボックス","radio":"ラジオボタン","textField":"１行テキスト","textarea":"テキストエリア","hiddenField":"不可視フィールド","button":"ボタン","select":"選択フィールド","imageButton":"画像ボタン","notSet":"<なし>","id":"Id","name":"Name属性","langDir":"文字表記の方向","langDirLtr":"左から右 (LTR)","langDirRtl":"右から左 (RTL)","langCode":"言語コード","longDescr":"longdesc属性(長文説明)","cssClass":"スタイルシートクラス","advisoryTitle":"Title属性","cssStyle":"スタイルシート","ok":"OK","cancel":"キャンセル","close":"閉じる","preview":"プレビュー","resize":"ドラッグしてリサイズ","generalTab":"全般","advancedTab":"高度な設定","validateNumberFailed":"値が数ではありません","confirmNewPage":"変更内容を保存せず、 新しいページを開いてもよろしいでしょうか？","confirmCancel":"オプション設定を変更しました。ダイアログを閉じてもよろしいでしょうか？","options":"オプション","target":"ターゲット","targetNew":"新しいウインドウ (_blank)","targetTop":"最上部ウィンドウ (_top)","targetSelf":"同じウィンドウ (_self)","targetParent":"親ウィンドウ (_parent)","langDirLTR":"左から右 (LTR)","langDirRTL":"右から左 (RTL)","styles":"スタイル","cssClasses":"スタイルシートクラス","width":"幅","height":"高さ","align":"行揃え","alignLeft":"左","alignRight":"右","alignCenter":"中央","alignJustify":"両端揃え","alignTop":"上","alignMiddle":"中央","alignBottom":"下","alignNone":"なし","invalidValue":"不正な値です。","invalidHeight":"高さは数値で入力してください。","invalidWidth":"幅は数値で入力してください。","invalidCssLength":"入力された \"%1\" 項目の値は、CSSの大きさ(px, %, in, cm, mm, em, ex, pt, または pc)が正しいものである/ないに関わらず、正の値である必要があります。","invalidHtmlLength":"入力された \"%1\" 項目の値は、HTMLの大きさ(px または %)が正しいものである/ないに関わらず、正の値である必要があります。","invalidInlineStyle":"入力されたインラインスタイルの値は、\"名前 : 値\" のフォーマットのセットで、複数の場合はセミコロンで区切られている形式である必要があります。","cssLengthTooltip":"ピクセル数もしくはCSSにセットできる数値を入力してください。(px,%,in,cm,mm,em,ex,pt,or pc)","unavailable":"%1<span class=\"cke_accessibility\">, 利用不可能</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/ka.js b/core/assets/vendor/ckeditor/lang/ka.js
index e7f44f2..510fd39 100644
--- a/core/assets/vendor/ckeditor/lang/ka.js
+++ b/core/assets/vendor/ckeditor/lang/ka.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['ka']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"გამეორება","undo":"გაუქმება"},"toolbar":{"toolbarCollapse":"ხელსაწყოთა ზოლის შეწევა","toolbarExpand":"ხელსაწყოთა ზოლის გამოწევა","toolbarGroups":{"document":"დოკუმენტი","clipboard":"Clipboard/გაუქმება","editing":"რედაქტირება","forms":"ფორმები","basicstyles":"ძირითადი სტილები","paragraph":"აბზაცი","links":"ბმულები","insert":"ჩასმა","styles":"სტილები","colors":"ფერები","tools":"ხელსაწყოები"},"toolbars":"Editor toolbars"},"table":{"border":"ჩარჩოს ზომა","caption":"სათაური","cell":{"menu":"უჯრა","insertBefore":"უჯრის ჩასმა მანამდე","insertAfter":"უჯრის ჩასმა მერე","deleteCell":"უჯრების წაშლა","merge":"უჯრების შეერთება","mergeRight":"შეერთება მარჯვენასთან","mergeDown":"შეერთება ქვემოთასთან","splitHorizontal":"გაყოფა ჰორიზონტალურად","splitVertical":"გაყოფა ვერტიკალურად","title":"უჯრის პარამეტრები","cellType":"უჯრის ტიპი","rowSpan":"სტრიქონების ოდენობა","colSpan":"სვეტების ოდენობა","wordWrap":"სტრიქონის გადატანა (Word Wrap)","hAlign":"ჰორიზონტალური სწორება","vAlign":"ვერტიკალური სწორება","alignBaseline":"ძირითადი ხაზის გასწვრივ","bgColor":"ფონის ფერი","borderColor":"ჩარჩოს ფერი","data":"მონაცემები","header":"სათაური","yes":"დიახ","no":"არა","invalidWidth":"უჯრის სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","invalidHeight":"უჯრის სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidRowSpan":"სტრიქონების რაოდენობა მთელი რიცხვი უნდა იყოს.","invalidColSpan":"სვეტების რაოდენობა მთელი რიცხვი უნდა იყოს.","chooseColor":"არჩევა"},"cellPad":"უჯრის კიდე (padding)","cellSpace":"უჯრის სივრცე (spacing)","column":{"menu":"სვეტი","insertBefore":"სვეტის ჩამატება წინ","insertAfter":"სვეტის ჩამატება მერე","deleteColumn":"სვეტების წაშლა"},"columns":"სვეტი","deleteTable":"ცხრილის წაშლა","headers":"სათაურები","headersBoth":"ორივე","headersColumn":"პირველი სვეტი","headersNone":"არაფერი","headersRow":"პირველი სტრიქონი","invalidBorder":"ჩარჩოს ზომა რიცხვით უდნა იყოს წარმოდგენილი.","invalidCellPadding":"უჯრის კიდე (padding) რიცხვით უნდა იყოს წარმოდგენილი.","invalidCellSpacing":"უჯრის სივრცე (spacing) რიცხვით უნდა იყოს წარმოდგენილი.","invalidCols":"სვეტების რაოდენობა დადებითი რიცხვი უნდა იყოს.","invalidHeight":"ცხრილის სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidRows":"სტრიქონების რაოდენობა დადებითი რიცხვი უნდა იყოს.","invalidWidth":"ცხრილის სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","menu":"ცხრილის პარამეტრები","row":{"menu":"სტრიქონი","insertBefore":"სტრიქონის ჩამატება წინ","insertAfter":"სტრიქონის ჩამატება მერე","deleteRow":"სტრიქონების წაშლა"},"rows":"სტრიქონი","summary":"შეჯამება","title":"ცხრილის პარამეტრები","toolbar":"ცხრილი","widthPc":"პროცენტი","widthPx":"წერტილი","widthUnit":"საზომი ერთეული"},"stylescombo":{"label":"სტილები","panelTitle":"ფორმატირების სტილები","panelTitle1":"არის სტილები","panelTitle2":"თანდართული სტილები","panelTitle3":"ობიექტის სტილები"},"specialchar":{"options":"სპეციალური სიმბოლოს პარამეტრები","title":"სპეციალური სიმბოლოს არჩევა","toolbar":"სპეციალური სიმბოლოს ჩასმა"},"sourcedialog":{"toolbar":"კოდები","title":"კოდები"},"sourcearea":{"toolbar":"კოდები"},"showblocks":{"toolbar":"არეების ჩვენება"},"removeformat":{"toolbar":"ფორმატირების მოხსნა"},"pastetext":{"button":"მხოლოდ ტექსტის ჩასმა","title":"მხოლოდ ტექსტის ჩასმა"},"pastefromword":{"confirmCleanup":"ჩასასმელი ტექსტი ვორდიდან გადმოტანილს გავს - გინდათ მისი წინასწარ გაწმენდა?","error":"შიდა შეცდომის გამო ვერ მოხერხდა ტექსტის გაწმენდა","title":"ვორდიდან ჩასმა","toolbar":"ვორდიდან ჩასმა"},"maximize":{"maximize":"გადიდება","minimize":"დაპატარავება"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"ღილიანი სია","numberedlist":"გადანომრილი სია"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"გადასწორება","center":"შუაში სწორება","left":"მარცხნივ სწორება","right":"მარჯვნივ სწორება"},"indent":{"indent":"მეტად შეწევა","outdent":"ნაკლებად შეწევა"},"image2":{"alt":"სანაცვლო ტექსტი","btnUpload":"სერვერისთვის გაგზავნა","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"სურათის ინფორმცია","lockRatio":"პროპორციის შენარჩუნება","menu":"სურათის პარამეტრები","pathName":"image","pathNameCaption":"caption","resetSize":"ზომის დაბრუნება","resizer":"Click and drag to resize","title":"სურათის პარამეტრები","uploadTab":"აქაჩვა","urlMissing":"სურათის URL არაა შევსებული."},"horizontalrule":{"toolbar":"ჰორიზონტალური ხაზის ჩასმა"},"format":{"label":"ფიორმატირება","panelTitle":"ფორმატირება","tag_address":"მისამართი","tag_div":"ჩვეულებრივი (DIV)","tag_h1":"სათაური 1","tag_h2":"სათაური 2","tag_h3":"სათაური 3","tag_h4":"სათაური 4","tag_h5":"სათაური 5","tag_h6":"სათაური 6","tag_p":"ჩვეულებრივი","tag_pre":"ფორმატირებული"},"elementspath":{"eleLabel":"ელემეტის გზა","eleTitle":"%1 ელემენტი"},"contextmenu":{"options":"კონტექსტური მენიუს პარამეტრები"},"clipboard":{"copy":"ასლი","copyError":"თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ასლის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+C).","cut":"ამოჭრა","cutError":"თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ამოჭრის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+X).","paste":"ჩასმა","pasteArea":"ჩასმის არე","pasteMsg":"ჩასვით ამ არის შიგნით კლავიატურის გამოყენებით (<strong>Ctrl/Cmd+V</strong>) და დააჭირეთ OK-ს","securityMsg":"თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა clipboard-ის მონაცემების წვდომის უფლებას. კიდევ უნდა ჩასვათ ტექსტი ამ ფანჯარაში.","title":"ჩასმა"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"ციტატა"},"basicstyles":{"bold":"მსხვილი","italic":"დახრილი","strike":"გადახაზული","subscript":"ინდექსი","superscript":"ხარისხი","underline":"გახაზული"},"about":{"copy":"Copyright &copy; $1. ყველა უფლება დაცულია.","dlgTitle":"CKEditor-ის შესახებ","help":"დახმარებისთვის იხილეთ $1.","moreInfo":"ლიცენზიის ინფორმაციისთვის ეწვიეთ ჩვენს საიტს:","title":"CKEditor-ის შესახებ","userGuide":"CKEditor-ის მომხმარებლის სახელმძღვანელო"},"editor":"ტექსტის რედაქტორი","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"დააჭირეთ ALT 0-ს დახმარების მისაღებად","browseServer":"სერვერზე დათვალიერება","url":"URL","protocol":"პროტოკოლი","upload":"ატვირთვა","uploadSubmit":"სერვერზე გაგზავნა","image":"სურათი","flash":"Flash","form":"ფორმა","checkbox":"მონიშვნის ღილაკი","radio":"ამორჩევის ღილაკი","textField":"ტექსტური ველი","textarea":"ტექსტური არე","hiddenField":"მალული ველი","button":"ღილაკი","select":"არჩევის ველი","imageButton":"სურათიანი ღილაკი","notSet":"<არაფერი>","id":"Id","name":"სახელი","langDir":"ენის მიმართულება","langDirLtr":"მარცხნიდან მარჯვნივ (LTR)","langDirRtl":"მარჯვნიდან მარცხნივ (RTL)","langCode":"ენის კოდი","longDescr":"დიდი აღწერის URL","cssClass":"CSS კლასი","advisoryTitle":"სათაური","cssStyle":"CSS სტილი","ok":"დიახ","cancel":"გაუქმება","close":"დახურვა","preview":"გადახედვა","resize":"გაწიე ზომის შესაცვლელად","generalTab":"ინფორმაცია","advancedTab":"გაფართოებული","validateNumberFailed":"ეს მნიშვნელობა არაა რიცხვი.","confirmNewPage":"ამ დოკუმენტში ყველა ჩაუწერელი ცვლილება დაიკარგება. დარწმუნებული ხართ რომ ახალი გვერდის ჩატვირთვა გინდათ?","confirmCancel":"ზოგიერთი პარამეტრი შეცვლილია, დარწმუნებულილ ხართ რომ ფანჯრის დახურვა გსურთ?","options":"პარამეტრები","target":"გახსნის ადგილი","targetNew":"ახალი ფანჯარა (_blank)","targetTop":"ზედა ფანჯარა (_top)","targetSelf":"იგივე ფანჯარა (_self)","targetParent":"მშობელი ფანჯარა (_parent)","langDirLTR":"მარცხნიდან მარჯვნივ (LTR)","langDirRTL":"მარჯვნიდან მარცხნივ (RTL)","styles":"სტილი","cssClasses":"CSS კლასი","width":"სიგანე","height":"სიმაღლე","align":"სწორება","alignLeft":"მარცხენა","alignRight":"მარჯვენა","alignCenter":"შუა","alignJustify":"両端揃え","alignTop":"ზემოთა","alignMiddle":"შუა","alignBottom":"ქვემოთა","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidWidth":"სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, მიუწვდომელია</span>"}};
\ No newline at end of file
+CKEDITOR.lang['ka']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"გამეორება","undo":"გაუქმება"},"toolbar":{"toolbarCollapse":"ხელსაწყოთა ზოლის შეწევა","toolbarExpand":"ხელსაწყოთა ზოლის გამოწევა","toolbarGroups":{"document":"დოკუმენტი","clipboard":"Clipboard/გაუქმება","editing":"რედაქტირება","forms":"ფორმები","basicstyles":"ძირითადი სტილები","paragraph":"აბზაცი","links":"ბმულები","insert":"ჩასმა","styles":"სტილები","colors":"ფერები","tools":"ხელსაწყოები"},"toolbars":"Editor toolbars"},"table":{"border":"ჩარჩოს ზომა","caption":"სათაური","cell":{"menu":"უჯრა","insertBefore":"უჯრის ჩასმა მანამდე","insertAfter":"უჯრის ჩასმა მერე","deleteCell":"უჯრების წაშლა","merge":"უჯრების შეერთება","mergeRight":"შეერთება მარჯვენასთან","mergeDown":"შეერთება ქვემოთასთან","splitHorizontal":"გაყოფა ჰორიზონტალურად","splitVertical":"გაყოფა ვერტიკალურად","title":"უჯრის პარამეტრები","cellType":"უჯრის ტიპი","rowSpan":"სტრიქონების ოდენობა","colSpan":"სვეტების ოდენობა","wordWrap":"სტრიქონის გადატანა (Word Wrap)","hAlign":"ჰორიზონტალური სწორება","vAlign":"ვერტიკალური სწორება","alignBaseline":"ძირითადი ხაზის გასწვრივ","bgColor":"ფონის ფერი","borderColor":"ჩარჩოს ფერი","data":"მონაცემები","header":"სათაური","yes":"დიახ","no":"არა","invalidWidth":"უჯრის სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","invalidHeight":"უჯრის სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidRowSpan":"სტრიქონების რაოდენობა მთელი რიცხვი უნდა იყოს.","invalidColSpan":"სვეტების რაოდენობა მთელი რიცხვი უნდა იყოს.","chooseColor":"არჩევა"},"cellPad":"უჯრის კიდე (padding)","cellSpace":"უჯრის სივრცე (spacing)","column":{"menu":"სვეტი","insertBefore":"სვეტის ჩამატება წინ","insertAfter":"სვეტის ჩამატება მერე","deleteColumn":"სვეტების წაშლა"},"columns":"სვეტი","deleteTable":"ცხრილის წაშლა","headers":"სათაურები","headersBoth":"ორივე","headersColumn":"პირველი სვეტი","headersNone":"არაფერი","headersRow":"პირველი სტრიქონი","invalidBorder":"ჩარჩოს ზომა რიცხვით უდნა იყოს წარმოდგენილი.","invalidCellPadding":"უჯრის კიდე (padding) რიცხვით უნდა იყოს წარმოდგენილი.","invalidCellSpacing":"უჯრის სივრცე (spacing) რიცხვით უნდა იყოს წარმოდგენილი.","invalidCols":"სვეტების რაოდენობა დადებითი რიცხვი უნდა იყოს.","invalidHeight":"ცხრილის სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidRows":"სტრიქონების რაოდენობა დადებითი რიცხვი უნდა იყოს.","invalidWidth":"ცხრილის სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","menu":"ცხრილის პარამეტრები","row":{"menu":"სტრიქონი","insertBefore":"სტრიქონის ჩამატება წინ","insertAfter":"სტრიქონის ჩამატება მერე","deleteRow":"სტრიქონების წაშლა"},"rows":"სტრიქონი","summary":"შეჯამება","title":"ცხრილის პარამეტრები","toolbar":"ცხრილი","widthPc":"პროცენტი","widthPx":"წერტილი","widthUnit":"საზომი ერთეული"},"stylescombo":{"label":"სტილები","panelTitle":"ფორმატირების სტილები","panelTitle1":"არის სტილები","panelTitle2":"თანდართული სტილები","panelTitle3":"ობიექტის სტილები"},"specialchar":{"options":"სპეციალური სიმბოლოს პარამეტრები","title":"სპეციალური სიმბოლოს არჩევა","toolbar":"სპეციალური სიმბოლოს ჩასმა"},"sourcedialog":{"toolbar":"კოდები","title":"კოდები"},"sourcearea":{"toolbar":"კოდები"},"showblocks":{"toolbar":"არეების ჩვენება"},"removeformat":{"toolbar":"ფორმატირების მოხსნა"},"pastetext":{"button":"მხოლოდ ტექსტის ჩასმა","title":"მხოლოდ ტექსტის ჩასმა"},"pastefromword":{"confirmCleanup":"ჩასასმელი ტექსტი ვორდიდან გადმოტანილს გავს - გინდათ მისი წინასწარ გაწმენდა?","error":"შიდა შეცდომის გამო ვერ მოხერხდა ტექსტის გაწმენდა","title":"ვორდიდან ჩასმა","toolbar":"ვორდიდან ჩასმა"},"maximize":{"maximize":"გადიდება","minimize":"დაპატარავება"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"ღილიანი სია","numberedlist":"გადანომრილი სია"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"გადასწორება","center":"შუაში სწორება","left":"მარცხნივ სწორება","right":"მარჯვნივ სწორება"},"indent":{"indent":"მეტად შეწევა","outdent":"ნაკლებად შეწევა"},"image2":{"alt":"სანაცვლო ტექსტი","btnUpload":"სერვერისთვის გაგზავნა","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"სურათის ინფორმცია","lockRatio":"პროპორციის შენარჩუნება","menu":"სურათის პარამეტრები","pathName":"image","pathNameCaption":"caption","resetSize":"ზომის დაბრუნება","resizer":"Click and drag to resize","title":"სურათის პარამეტრები","uploadTab":"აქაჩვა","urlMissing":"სურათის URL არაა შევსებული."},"horizontalrule":{"toolbar":"ჰორიზონტალური ხაზის ჩასმა"},"format":{"label":"ფიორმატირება","panelTitle":"ფორმატირება","tag_address":"მისამართი","tag_div":"ჩვეულებრივი (DIV)","tag_h1":"სათაური 1","tag_h2":"სათაური 2","tag_h3":"სათაური 3","tag_h4":"სათაური 4","tag_h5":"სათაური 5","tag_h6":"სათაური 6","tag_p":"ჩვეულებრივი","tag_pre":"ფორმატირებული"},"elementspath":{"eleLabel":"ელემეტის გზა","eleTitle":"%1 ელემენტი"},"contextmenu":{"options":"კონტექსტური მენიუს პარამეტრები"},"clipboard":{"copy":"ასლი","copyError":"თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ასლის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+C).","cut":"ამოჭრა","cutError":"თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ამოჭრის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+X).","paste":"ჩასმა","pasteArea":"ჩასმის არე","pasteMsg":"ჩასვით ამ არის შიგნით კლავიატურის გამოყენებით (<strong>Ctrl/Cmd+V</strong>) და დააჭირეთ OK-ს","securityMsg":"თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა clipboard-ის მონაცემების წვდომის უფლებას. კიდევ უნდა ჩასვათ ტექსტი ამ ფანჯარაში.","title":"ჩასმა"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"ციტატა"},"basicstyles":{"bold":"მსხვილი","italic":"დახრილი","strike":"გადახაზული","subscript":"ინდექსი","superscript":"ხარისხი","underline":"გახაზული"},"about":{"copy":"Copyright &copy; $1. ყველა უფლება დაცულია.","dlgTitle":"CKEditor-ის შესახებ","help":"დახმარებისთვის იხილეთ $1.","moreInfo":"ლიცენზიის ინფორმაციისთვის ეწვიეთ ჩვენს საიტს:","title":"CKEditor-ის შესახებ","userGuide":"CKEditor-ის მომხმარებლის სახელმძღვანელო"},"editor":"ტექსტის რედაქტორი","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"დააჭირეთ ALT 0-ს დახმარების მისაღებად","browseServer":"სერვერზე დათვალიერება","url":"URL","protocol":"პროტოკოლი","upload":"ატვირთვა","uploadSubmit":"სერვერზე გაგზავნა","image":"სურათი","flash":"Flash","form":"ფორმა","checkbox":"მონიშვნის ღილაკი","radio":"ამორჩევის ღილაკი","textField":"ტექსტური ველი","textarea":"ტექსტური არე","hiddenField":"მალული ველი","button":"ღილაკი","select":"არჩევის ველი","imageButton":"სურათიანი ღილაკი","notSet":"<არაფერი>","id":"Id","name":"სახელი","langDir":"ენის მიმართულება","langDirLtr":"მარცხნიდან მარჯვნივ (LTR)","langDirRtl":"მარჯვნიდან მარცხნივ (RTL)","langCode":"ენის კოდი","longDescr":"დიდი აღწერის URL","cssClass":"CSS კლასი","advisoryTitle":"სათაური","cssStyle":"CSS სტილი","ok":"დიახ","cancel":"გაუქმება","close":"დახურვა","preview":"გადახედვა","resize":"გაწიე ზომის შესაცვლელად","generalTab":"ინფორმაცია","advancedTab":"გაფართოებული","validateNumberFailed":"ეს მნიშვნელობა არაა რიცხვი.","confirmNewPage":"ამ დოკუმენტში ყველა ჩაუწერელი ცვლილება დაიკარგება. დარწმუნებული ხართ რომ ახალი გვერდის ჩატვირთვა გინდათ?","confirmCancel":"ზოგიერთი პარამეტრი შეცვლილია, დარწმუნებულილ ხართ რომ ფანჯრის დახურვა გსურთ?","options":"პარამეტრები","target":"გახსნის ადგილი","targetNew":"ახალი ფანჯარა (_blank)","targetTop":"ზედა ფანჯარა (_top)","targetSelf":"იგივე ფანჯარა (_self)","targetParent":"მშობელი ფანჯარა (_parent)","langDirLTR":"მარცხნიდან მარჯვნივ (LTR)","langDirRTL":"მარჯვნიდან მარცხნივ (RTL)","styles":"სტილი","cssClasses":"CSS კლასი","width":"სიგანე","height":"სიმაღლე","align":"სწორება","alignLeft":"მარცხენა","alignRight":"მარჯვენა","alignCenter":"შუა","alignJustify":"両端揃え","alignTop":"ზემოთა","alignMiddle":"შუა","alignBottom":"ქვემოთა","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.","invalidWidth":"სიგანე რიცხვით უნდა იყოს წარმოდგენილი.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, მიუწვდომელია</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/km.js b/core/assets/vendor/ckeditor/lang/km.js
index e67922f..ff9246f 100644
--- a/core/assets/vendor/ckeditor/lang/km.js
+++ b/core/assets/vendor/ckeditor/lang/km.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['km']={"widget":{"move":"ចុច​ហើយ​ទាញ​ដើម្បី​ផ្លាស់​ទី","label":"%1 widget"},"undo":{"redo":"ធ្វើ​ឡើង​វិញ","undo":"មិន​ធ្វើ​វិញ"},"toolbar":{"toolbarCollapse":"បង្រួម​របារ​ឧបករណ៍","toolbarExpand":"ពង្រីក​របារ​ឧបករណ៍","toolbarGroups":{"document":"ឯកសារ","clipboard":"Clipboard/មិន​ធ្វើ​វិញ","editing":"ការ​កែ​សម្រួល","forms":"បែបបទ","basicstyles":"រចនាបថ​មូលដ្ឋាន","paragraph":"កថាខណ្ឌ","links":"តំណ","insert":"បញ្ចូល","styles":"រចនាបថ","colors":"ពណ៌","tools":"ឧបករណ៍"},"toolbars":"របារ​ឧបករណ៍​កែ​សម្រួល"},"table":{"border":"ទំហំ​បន្ទាត់​ស៊ុម","caption":"ចំណងជើង","cell":{"menu":"ក្រឡា","insertBefore":"បញ្ចូល​ក្រឡា​ពីមុខ","insertAfter":"បញ្ចូល​ក្រឡា​ពី​ក្រោយ","deleteCell":"លុប​ក្រឡា","merge":"បញ្ចូល​ក្រឡា​ចូល​គ្នា","mergeRight":"បញ្ចូល​គ្នា​ខាង​ស្ដាំ","mergeDown":"បញ្ចូល​គ្នា​ចុះ​ក្រោម","splitHorizontal":"ពុះ​ក្រឡា​ផ្ដេក","splitVertical":"ពុះ​ក្រឡា​បញ្ឈរ","title":"លក្ខណៈ​ក្រឡា","cellType":"ប្រភេទ​ក្រឡា","rowSpan":"ចំនួន​ជួរ​ដេក​លាយ​ចូល​គ្នា","colSpan":"ចំនួន​ជួរ​ឈរ​លាយ​ចូល​គ្នា","wordWrap":"រុំ​ពាក្យ","hAlign":"ការ​តម្រឹម​ផ្ដេក","vAlign":"ការ​តម្រឹម​បញ្ឈរ","alignBaseline":"ខ្សែ​បន្ទាត់​គោល","bgColor":"ពណ៌​ផ្ទៃ​ក្រោយ","borderColor":"ពណ៌​បន្ទាត់​ស៊ុម","data":"ទិន្នន័យ","header":"ក្បាល","yes":"ព្រម","no":"ទេ","invalidWidth":"ទទឹង​ក្រឡា​ត្រូវ​តែ​ជា​លេខ។","invalidHeight":"កម្ពស់​ក្រឡា​ត្រូវ​តែ​ជា​លេខ។","invalidRowSpan":"ចំនួន​ជួរ​ដេក​លាយ​ចូល​គ្នា​ត្រូវ​តែ​ជា​លេខ​ទាំង​អស់។","invalidColSpan":"ចំនួន​ជួរ​ឈរ​លាយ​ចូល​គ្នា​ត្រូវ​តែ​ជា​លេខ​ទាំង​អស់។","chooseColor":"រើស"},"cellPad":"ចន្លោះ​ក្រឡា","cellSpace":"គម្លាត​ក្រឡា","column":{"menu":"ជួរ​ឈរ","insertBefore":"បញ្ចូល​ជួរ​ឈរ​ពីមុខ","insertAfter":"បញ្ចូល​ជួរ​ឈរ​ពី​ក្រោយ","deleteColumn":"លុប​ជួរ​ឈរ"},"columns":"ជួរឈរ","deleteTable":"លុប​តារាង","headers":"ក្បាល","headersBoth":"ទាំង​ពីរ","headersColumn":"ជួរ​ឈរ​ដំបូង","headersNone":"មិន​មាន","headersRow":"ជួរ​ដេក​ដំបូង","invalidBorder":"ទំហំ​បន្ទាត់​ស៊ុម​ត្រូវ​តែ​ជា​លេខ។","invalidCellPadding":"ចន្លោះ​ក្រឡា​ត្រូវ​តែជា​លេខ​វិជ្ជមាន។","invalidCellSpacing":"គម្លាត​ក្រឡា​ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន។","invalidCols":"ចំនួន​ជួរ​ឈរ​ត្រូវ​តែ​ជា​លេខ​ធំ​ជាង 0។","invalidHeight":"កម្ពស់​តារាង​ត្រូវ​តែ​ជា​លេខ","invalidRows":"ចំនួន​ជួរ​ដេក​ត្រូវ​តែ​ជា​លេខ​ធំ​ជាង 0។","invalidWidth":"ទទឹង​តារាង​ត្រូវ​តែ​ជា​លេខ។","menu":"លក្ខណៈ​តារាង","row":{"menu":"ជួរ​ដេក","insertBefore":"បញ្ចូល​ជួរ​ដេក​ពីមុខ","insertAfter":"បញ្ចូល​ជួរ​ដេក​ពី​ក្រោយ","deleteRow":"លុប​ជួរ​ដេក"},"rows":"ជួរ​ដេក","summary":"សេចក្តី​សង្ខេប","title":"លក្ខណៈ​តារាង","toolbar":"តារាង","widthPc":"ភាគរយ","widthPx":"ភីកសែល","widthUnit":"ឯកតា​ទទឹង"},"stylescombo":{"label":"រចនាបថ","panelTitle":"ទ្រង់ទ្រាយ​រចនាបថ","panelTitle1":"រចនាបថ​ប្លក់","panelTitle2":"រចនាបថ​ក្នុង​ជួរ","panelTitle3":"រចនាបថ​វត្ថុ"},"specialchar":{"options":"ជម្រើស​តួ​អក្សរ​ពិសេស","title":"រើស​តួអក្សរ​ពិសេស","toolbar":"បន្ថែមអក្សរពិសេស"},"sourcedialog":{"toolbar":"អក្សរ​កូដ","title":"អក្សរ​កូដ"},"sourcearea":{"toolbar":"អក្សរ​កូដ"},"showblocks":{"toolbar":"បង្ហាញ​ប្លក់"},"removeformat":{"toolbar":"ជម្រះ​ទ្រង់​ទ្រាយ"},"pastetext":{"button":"បិទ​ភ្ជាប់​ជា​អត្ថបទ​ធម្មតា","title":"បិទ​ភ្ជាប់​ជា​អត្ថបទ​ធម្មតា"},"pastefromword":{"confirmCleanup":"អត្ថបទ​ដែល​អ្នក​ចង់​បិទ​ភ្ជាប់​នេះ ទំនង​ដូច​ជា​ចម្លង​មក​ពី Word។ តើ​អ្នក​ចង់​សម្អាត​វា​មុន​បិទ​ភ្ជាប់​ទេ?","error":"ដោយ​សារ​មាន​បញ្ហា​ផ្នែក​ក្នុង​ធ្វើ​ឲ្យ​មិន​អាច​សម្អាត​ទិន្នន័យ​ដែល​បាន​បិទ​ភ្ជាប់","title":"បិទ​ភ្ជាប់​ពី Word","toolbar":"បិទ​ភ្ជាប់​ពី Word"},"maximize":{"maximize":"ពង្រីក​អតិបរមា","minimize":"បង្រួម​អប្បបរមា"},"magicline":{"title":"បញ្ចូល​កថាខណ្ឌ​នៅ​ទីនេះ"},"list":{"bulletedlist":"បញ្ចូល / លុប​បញ្ជី​ជា​ចំណុច​មូល","numberedlist":"បញ្ចូល / លុប​បញ្ជី​ជា​លេខ"},"language":{"button":"កំណត់​ភាសា","remove":"លុប​ភាសា"},"justify":{"block":"តម្រឹម​ពេញ","center":"កណ្ដាល","left":"តម្រឹម​ឆ្វេង","right":"តម្រឹម​ស្ដាំ"},"indent":{"indent":"បន្ថែមការចូលបន្ទាត់","outdent":"បន្ថយការចូលបន្ទាត់"},"image2":{"alt":"អត្ថបទជំនួស","btnUpload":"បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា","captioned":"រូប​ដែល​មាន​ចំណង​ជើង","captionPlaceholder":"Caption","infoTab":"ពត៌មានអំពីរូបភាព","lockRatio":"ចាក់​សោ​ផល​ធៀប","menu":"លក្ខណៈ​សម្បត្តិ​រូប​ភាព","pathName":"រូបភាព","pathNameCaption":"ចំណងជើង","resetSize":"កំណត់ទំហំឡើងវិញ","resizer":"ចុច​ហើយ​ទាញ​ដើម្បី​ប្ដូរ​ទំហំ","title":"លក្ខណៈ​សម្បត្តិ​រូប​ភាប","uploadTab":"ផ្ទុក​ឡើង","urlMissing":"ខ្វះ URL ប្រភព​រូប​ភាព។"},"horizontalrule":{"toolbar":"បន្ថែមបន្ទាត់ផ្តេក"},"format":{"label":"ទម្រង់","panelTitle":"ទម្រង់​កថាខណ្ឌ","tag_address":"អាសយដ្ឋាន","tag_div":"ធម្មតា (DIV)","tag_h1":"ចំណង​ជើង 1","tag_h2":"ចំណង​ជើង 2","tag_h3":"ចំណង​ជើង 3","tag_h4":"ចំណង​ជើង 4","tag_h5":"ចំណង​ជើង 5","tag_h6":"ចំណង​ជើង 6","tag_p":"ធម្មតា","tag_pre":"Formatted"},"elementspath":{"eleLabel":"ទីតាំង​ធាតុ","eleTitle":"ធាតុ %1"},"contextmenu":{"options":"ជម្រើស​ម៉ឺនុយ​បរិបទ"},"clipboard":{"copy":"ចម្លង","copyError":"ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+C)។","cut":"កាត់យក","cutError":"ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ  (Ctrl/Cmd+X) ។","paste":"បិទ​ភ្ជាប់","pasteArea":"តំបន់​បិទ​ភ្ជាប់","pasteMsg":"សូមចំលងអត្ថបទទៅដាក់ក្នុងប្រអប់ដូចខាងក្រោមដោយប្រើប្រាស់ ឃី ​(<STRONG>Ctrl/Cmd+V</STRONG>) ហើយចុច <STRONG>OK</STRONG> ។","securityMsg":"ព្រោះតែ​ការកំណត់​សុវត្ថិភាព ប្រអប់សរសេរ​មិន​អាចចាប់​យកទិន្នន័យពីក្តារតម្បៀតខ្ទាស់​អ្នក​​ដោយផ្ទាល់​បានទេ។ អ្នក​ត្រូវចំលង​ដាក់វាម្តង​ទៀត ក្នុងផ្ទាំងនេះ។","title":"បិទ​ភ្ជាប់"},"button":{"selectedLabel":"%1 (បាន​ជ្រើស​រើស)"},"blockquote":{"toolbar":"ប្លក់​ពាក្យ​សម្រង់"},"basicstyles":{"bold":"ដិត","italic":"ទ្រេត","strike":"គូស​បន្ទាត់​ចំ​កណ្ដាល","subscript":"អក្សរតូចក្រោម","superscript":"អក្សរតូចលើ","underline":"គូស​បន្ទាត់​ក្រោម"},"about":{"copy":"រក្សាសិទ្ធិ &copy; $1។ រក្សា​សិទ្ធិ​គ្រប់​បែប​យ៉ាង។","dlgTitle":"អំពី CKEditor","help":"ពិនិត្យ $1 សម្រាប់​ជំនួយ។","moreInfo":"សម្រាប់​ព័ត៌មាន​អំពី​អាជ្ញាបណញណ សូម​មើល​ក្នុង​គេហទំព័រ​របស់​យើង៖","title":"អំពី CKEditor","userGuide":"វិធី​ប្រើ​ប្រាស់ CKEditor"},"editor":"ឧបករណ៍​សរសេរ​អត្ថបទ​សម្បូរ​បែប","editorPanel":"ផ្ទាំង​ឧបករណ៍​សរសេរ​អត្ថបទ​សម្បូរ​បែប","common":{"editorHelp":"ចុច ALT 0 សម្រាប់​ជំនួយ","browseServer":"រក​មើល​ក្នុង​ម៉ាស៊ីន​បម្រើ","url":"URL","protocol":"ពិធីការ","upload":"ផ្ទុក​ឡើង","uploadSubmit":"បញ្ជូនទៅកាន់ម៉ាស៊ីន​បម្រើ","image":"រូបភាព","flash":"Flash","form":"បែបបទ","checkbox":"ប្រអប់​ធីក","radio":"ប៊ូតុង​មូល","textField":"វាល​អត្ថបទ","textarea":"Textarea","hiddenField":"វាល​កំបាំង","button":"ប៊ូតុង","select":"វាល​ជម្រើស","imageButton":"ប៊ូតុង​រូបភាព","notSet":"<មិនកំណត់>","id":"Id","name":"ឈ្មោះ","langDir":"ទិសដៅភាសា","langDirLtr":"ពីឆ្វេងទៅស្តាំ (LTR)","langDirRtl":"ពីស្តាំទៅឆ្វេង (RTL)","langCode":"លេខ​កូដ​ភាសា","longDescr":"URL អធិប្បាយ​វែង","cssClass":"Stylesheet Classes","advisoryTitle":"ចំណង​ជើង​ណែនាំ","cssStyle":"រចនាបថ","ok":"ព្រម","cancel":"បោះបង់","close":"បិទ","preview":"មើល​ជា​មុន","resize":"ប្ដូរ​ទំហំ","generalTab":"ទូទៅ","advancedTab":"កម្រិត​ខ្ពស់","validateNumberFailed":"តម្លៃ​នេះ​ពុំ​មែន​ជា​លេខ​ទេ។","confirmNewPage":"រាល់​បន្លាស់​ប្ដូរ​នានា​ដែល​មិន​ទាន់​រក្សា​ទុក​ក្នុង​មាតិកា​នេះ នឹង​ត្រូវ​បាត់​បង់។ តើ​អ្នក​ពិត​ជា​ចង់​ផ្ទុក​ទំព័រ​ថ្មី​មែនទេ?","confirmCancel":"ការ​កំណត់​មួយ​ចំនួន​ត្រូ​វ​បាន​ផ្លាស់​ប្ដូរ។ តើ​អ្នក​ពិត​ជា​ចង់​បិទ​ប្រអប់​នេះ​មែនទេ?","options":"ការ​កំណត់","target":"គោលដៅ","targetNew":"វីនដូ​ថ្មី (_blank)","targetTop":"វីនដូ​លើ​គេ (_top)","targetSelf":"វីនដូ​ដូច​គ្នា (_self)","targetParent":"វីនដូ​មេ (_parent)","langDirLTR":"ពីឆ្វេងទៅស្តាំ(LTR)","langDirRTL":"ពីស្តាំទៅឆ្វេង(RTL)","styles":"រចនាបថ","cssClasses":"Stylesheet Classes","width":"ទទឹង","height":"កំពស់","align":"កំណត់​ទីតាំង","alignLeft":"ខាងឆ្វង","alignRight":"ខាងស្តាំ","alignCenter":"កណ្តាល","alignJustify":"តំរឹមសងខាង","alignTop":"ខាងលើ","alignMiddle":"កណ្តាល","alignBottom":"ខាងក្រោម","alignNone":"គ្មាន","invalidValue":"តម្លៃ​មិន​ត្រឹម​ត្រូវ។","invalidHeight":"តម្លៃ​កំពស់​ត្រូវ​តែ​ជា​លេខ។","invalidWidth":"តម្លៃ​ទទឹង​ត្រូវ​តែ​ជា​លេខ។","invalidCssLength":"តម្លៃ​កំណត់​សម្រាប់​វាល \"%1\" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន​ ដោយ​ភ្ជាប់ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។","invalidHtmlLength":"តម្លៃ​កំណត់​សម្រាប់​វាល \"%1\" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន ដោយ​ភ្ជាប់​ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ HTML (px ឬ %) ។","invalidInlineStyle":"តម្លៃ​កំណត់​សម្រាប់​រចនាបថ​ក្នុង​តួ ត្រូវ​តែ​មាន​មួយ​ឬ​ធាតុ​ច្រើន​ដោយ​មាន​ទ្រង់ទ្រាយ​ជា \"ឈ្មោះ : តម្លៃ\" ហើយ​ញែក​ចេញ​ពី​គ្នា​ដោយ​ចុច​ក្បៀស។","cssLengthTooltip":"បញ្ចូល​លេខ​សម្រាប់​តម្លៃ​ជា​ភិចសែល ឬ​លេខ​ដែល​មាន​ឯកតា​ត្រឹមត្រូវ​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។","unavailable":"%1<span class=\"cke_accessibility\">, មិន​មាន</span>"}};
\ No newline at end of file
+CKEDITOR.lang['km']={"widget":{"move":"ចុច​ហើយ​ទាញ​ដើម្បី​ផ្លាស់​ទី"},"undo":{"redo":"ធ្វើ​ឡើង​វិញ","undo":"មិន​ធ្វើ​វិញ"},"toolbar":{"toolbarCollapse":"បង្រួម​របារ​ឧបករណ៍","toolbarExpand":"ពង្រីក​របារ​ឧបករណ៍","toolbarGroups":{"document":"ឯកសារ","clipboard":"Clipboard/មិន​ធ្វើ​វិញ","editing":"ការ​កែ​សម្រួល","forms":"បែបបទ","basicstyles":"រចនាបថ​មូលដ្ឋាន","paragraph":"កថាខណ្ឌ","links":"តំណ","insert":"បញ្ចូល","styles":"រចនាបថ","colors":"ពណ៌","tools":"ឧបករណ៍"},"toolbars":"របារ​ឧបករណ៍​កែ​សម្រួល"},"table":{"border":"ទំហំ​បន្ទាត់​ស៊ុម","caption":"ចំណងជើង","cell":{"menu":"ក្រឡា","insertBefore":"បញ្ចូល​ក្រឡា​ពីមុខ","insertAfter":"បញ្ចូល​ក្រឡា​ពី​ក្រោយ","deleteCell":"លុប​ក្រឡា","merge":"បញ្ចូល​ក្រឡា​ចូល​គ្នា","mergeRight":"បញ្ចូល​គ្នា​ខាង​ស្ដាំ","mergeDown":"បញ្ចូល​គ្នា​ចុះ​ក្រោម","splitHorizontal":"ពុះ​ក្រឡា​ផ្ដេក","splitVertical":"ពុះ​ក្រឡា​បញ្ឈរ","title":"លក្ខណៈ​ក្រឡា","cellType":"ប្រភេទ​ក្រឡា","rowSpan":"ចំនួន​ជួរ​ដេក​លាយ​ចូល​គ្នា","colSpan":"ចំនួន​ជួរ​ឈរ​លាយ​ចូល​គ្នា","wordWrap":"រុំ​ពាក្យ","hAlign":"ការ​តម្រឹម​ផ្ដេក","vAlign":"ការ​តម្រឹម​បញ្ឈរ","alignBaseline":"ខ្សែ​បន្ទាត់​គោល","bgColor":"ពណ៌​ផ្ទៃ​ក្រោយ","borderColor":"ពណ៌​បន្ទាត់​ស៊ុម","data":"ទិន្នន័យ","header":"ក្បាល","yes":"ព្រម","no":"ទេ","invalidWidth":"ទទឹង​ក្រឡា​ត្រូវ​តែ​ជា​លេខ។","invalidHeight":"កម្ពស់​ក្រឡា​ត្រូវ​តែ​ជា​លេខ។","invalidRowSpan":"ចំនួន​ជួរ​ដេក​លាយ​ចូល​គ្នា​ត្រូវ​តែ​ជា​លេខ​ទាំង​អស់។","invalidColSpan":"ចំនួន​ជួរ​ឈរ​លាយ​ចូល​គ្នា​ត្រូវ​តែ​ជា​លេខ​ទាំង​អស់។","chooseColor":"រើស"},"cellPad":"ចន្លោះ​ក្រឡា","cellSpace":"គម្លាត​ក្រឡា","column":{"menu":"ជួរ​ឈរ","insertBefore":"បញ្ចូល​ជួរ​ឈរ​ពីមុខ","insertAfter":"បញ្ចូល​ជួរ​ឈរ​ពី​ក្រោយ","deleteColumn":"លុប​ជួរ​ឈរ"},"columns":"ជួរឈរ","deleteTable":"លុប​តារាង","headers":"ក្បាល","headersBoth":"ទាំង​ពីរ","headersColumn":"ជួរ​ឈរ​ដំបូង","headersNone":"មិន​មាន","headersRow":"ជួរ​ដេក​ដំបូង","invalidBorder":"ទំហំ​បន្ទាត់​ស៊ុម​ត្រូវ​តែ​ជា​លេខ។","invalidCellPadding":"ចន្លោះ​ក្រឡា​ត្រូវ​តែជា​លេខ​វិជ្ជមាន។","invalidCellSpacing":"គម្លាត​ក្រឡា​ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន។","invalidCols":"ចំនួន​ជួរ​ឈរ​ត្រូវ​តែ​ជា​លេខ​ធំ​ជាង 0។","invalidHeight":"កម្ពស់​តារាង​ត្រូវ​តែ​ជា​លេខ","invalidRows":"ចំនួន​ជួរ​ដេក​ត្រូវ​តែ​ជា​លេខ​ធំ​ជាង 0។","invalidWidth":"ទទឹង​តារាង​ត្រូវ​តែ​ជា​លេខ។","menu":"លក្ខណៈ​តារាង","row":{"menu":"ជួរ​ដេក","insertBefore":"បញ្ចូល​ជួរ​ដេក​ពីមុខ","insertAfter":"បញ្ចូល​ជួរ​ដេក​ពី​ក្រោយ","deleteRow":"លុប​ជួរ​ដេក"},"rows":"ជួរ​ដេក","summary":"សេចក្តី​សង្ខេប","title":"លក្ខណៈ​តារាង","toolbar":"តារាង","widthPc":"ភាគរយ","widthPx":"ភីកសែល","widthUnit":"ឯកតា​ទទឹង"},"stylescombo":{"label":"រចនាបថ","panelTitle":"ទ្រង់ទ្រាយ​រចនាបថ","panelTitle1":"រចនាបថ​ប្លក់","panelTitle2":"រចនាបថ​ក្នុង​ជួរ","panelTitle3":"រចនាបថ​វត្ថុ"},"specialchar":{"options":"ជម្រើស​តួ​អក្សរ​ពិសេស","title":"រើស​តួអក្សរ​ពិសេស","toolbar":"បន្ថែមអក្សរពិសេស"},"sourcedialog":{"toolbar":"អក្សរ​កូដ","title":"អក្សរ​កូដ"},"sourcearea":{"toolbar":"អក្សរ​កូដ"},"showblocks":{"toolbar":"បង្ហាញ​ប្លក់"},"removeformat":{"toolbar":"ជម្រះ​ទ្រង់​ទ្រាយ"},"pastetext":{"button":"បិទ​ភ្ជាប់​ជា​អត្ថបទ​ធម្មតា","title":"បិទ​ភ្ជាប់​ជា​អត្ថបទ​ធម្មតា"},"pastefromword":{"confirmCleanup":"អត្ថបទ​ដែល​អ្នក​ចង់​បិទ​ភ្ជាប់​នេះ ទំនង​ដូច​ជា​ចម្លង​មក​ពី Word។ តើ​អ្នក​ចង់​សម្អាត​វា​មុន​បិទ​ភ្ជាប់​ទេ?","error":"ដោយ​សារ​មាន​បញ្ហា​ផ្នែក​ក្នុង​ធ្វើ​ឲ្យ​មិន​អាច​សម្អាត​ទិន្នន័យ​ដែល​បាន​បិទ​ភ្ជាប់","title":"បិទ​ភ្ជាប់​ពី Word","toolbar":"បិទ​ភ្ជាប់​ពី Word"},"maximize":{"maximize":"ពង្រីក​អតិបរមា","minimize":"បង្រួម​អប្បបរមា"},"magicline":{"title":"បញ្ចូល​កថាខណ្ឌ​នៅ​ទីនេះ"},"list":{"bulletedlist":"បញ្ចូល / លុប​បញ្ជី​ជា​ចំណុច​មូល","numberedlist":"បញ្ចូល / លុប​បញ្ជី​ជា​លេខ"},"language":{"button":"កំណត់​ភាសា","remove":"លុប​ភាសា"},"justify":{"block":"តម្រឹម​ពេញ","center":"កណ្ដាល","left":"តម្រឹម​ឆ្វេង","right":"តម្រឹម​ស្ដាំ"},"indent":{"indent":"បន្ថែមការចូលបន្ទាត់","outdent":"បន្ថយការចូលបន្ទាត់"},"image2":{"alt":"អត្ថបទជំនួស","btnUpload":"បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា","captioned":"រូប​ដែល​មាន​ចំណង​ជើង","captionPlaceholder":"Caption","infoTab":"ពត៌មានអំពីរូបភាព","lockRatio":"ចាក់​សោ​ផល​ធៀប","menu":"លក្ខណៈ​សម្បត្តិ​រូប​ភាព","pathName":"រូបភាព","pathNameCaption":"ចំណងជើង","resetSize":"កំណត់ទំហំឡើងវិញ","resizer":"ចុច​ហើយ​ទាញ​ដើម្បី​ប្ដូរ​ទំហំ","title":"លក្ខណៈ​សម្បត្តិ​រូប​ភាប","uploadTab":"ផ្ទុក​ឡើង","urlMissing":"ខ្វះ URL ប្រភព​រូប​ភាព។"},"horizontalrule":{"toolbar":"បន្ថែមបន្ទាត់ផ្តេក"},"format":{"label":"ទម្រង់","panelTitle":"ទម្រង់​កថាខណ្ឌ","tag_address":"អាសយដ្ឋាន","tag_div":"ធម្មតា (DIV)","tag_h1":"ចំណង​ជើង 1","tag_h2":"ចំណង​ជើង 2","tag_h3":"ចំណង​ជើង 3","tag_h4":"ចំណង​ជើង 4","tag_h5":"ចំណង​ជើង 5","tag_h6":"ចំណង​ជើង 6","tag_p":"ធម្មតា","tag_pre":"Formatted"},"elementspath":{"eleLabel":"ទីតាំង​ធាតុ","eleTitle":"ធាតុ %1"},"contextmenu":{"options":"ជម្រើស​ម៉ឺនុយ​បរិបទ"},"clipboard":{"copy":"ចម្លង","copyError":"ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+C)។","cut":"កាត់យក","cutError":"ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ  (Ctrl/Cmd+X) ។","paste":"បិទ​ភ្ជាប់","pasteArea":"តំបន់​បិទ​ភ្ជាប់","pasteMsg":"សូមចំលងអត្ថបទទៅដាក់ក្នុងប្រអប់ដូចខាងក្រោមដោយប្រើប្រាស់ ឃី ​(<STRONG>Ctrl/Cmd+V</STRONG>) ហើយចុច <STRONG>OK</STRONG> ។","securityMsg":"ព្រោះតែ​ការកំណត់​សុវត្ថិភាព ប្រអប់សរសេរ​មិន​អាចចាប់​យកទិន្នន័យពីក្តារតម្បៀតខ្ទាស់​អ្នក​​ដោយផ្ទាល់​បានទេ។ អ្នក​ត្រូវចំលង​ដាក់វាម្តង​ទៀត ក្នុងផ្ទាំងនេះ។","title":"បិទ​ភ្ជាប់"},"button":{"selectedLabel":"%1 (បាន​ជ្រើស​រើស)"},"blockquote":{"toolbar":"ប្លក់​ពាក្យ​សម្រង់"},"basicstyles":{"bold":"ដិត","italic":"ទ្រេត","strike":"គូស​បន្ទាត់​ចំ​កណ្ដាល","subscript":"អក្សរតូចក្រោម","superscript":"អក្សរតូចលើ","underline":"គូស​បន្ទាត់​ក្រោម"},"about":{"copy":"រក្សាសិទ្ធិ &copy; $1។ រក្សា​សិទ្ធិ​គ្រប់​បែប​យ៉ាង។","dlgTitle":"អំពី CKEditor","help":"ពិនិត្យ $1 សម្រាប់​ជំនួយ។","moreInfo":"សម្រាប់​ព័ត៌មាន​អំពី​អាជ្ញាបណញណ សូម​មើល​ក្នុង​គេហទំព័រ​របស់​យើង៖","title":"អំពី CKEditor","userGuide":"វិធី​ប្រើ​ប្រាស់ CKEditor"},"editor":"ឧបករណ៍​សរសេរ​អត្ថបទ​សម្បូរ​បែប","editorPanel":"ផ្ទាំង​ឧបករណ៍​សរសេរ​អត្ថបទ​សម្បូរ​បែប","common":{"editorHelp":"ចុច ALT 0 សម្រាប់​ជំនួយ","browseServer":"រក​មើល​ក្នុង​ម៉ាស៊ីន​បម្រើ","url":"URL","protocol":"ពិធីការ","upload":"ផ្ទុក​ឡើង","uploadSubmit":"បញ្ជូនទៅកាន់ម៉ាស៊ីន​បម្រើ","image":"រូបភាព","flash":"Flash","form":"បែបបទ","checkbox":"ប្រអប់​ធីក","radio":"ប៊ូតុង​មូល","textField":"វាល​អត្ថបទ","textarea":"Textarea","hiddenField":"វាល​កំបាំង","button":"ប៊ូតុង","select":"វាល​ជម្រើស","imageButton":"ប៊ូតុង​រូបភាព","notSet":"<មិនកំណត់>","id":"Id","name":"ឈ្មោះ","langDir":"ទិសដៅភាសា","langDirLtr":"ពីឆ្វេងទៅស្តាំ (LTR)","langDirRtl":"ពីស្តាំទៅឆ្វេង (RTL)","langCode":"លេខ​កូដ​ភាសា","longDescr":"URL អធិប្បាយ​វែង","cssClass":"Stylesheet Classes","advisoryTitle":"ចំណង​ជើង​ណែនាំ","cssStyle":"រចនាបថ","ok":"ព្រម","cancel":"បោះបង់","close":"បិទ","preview":"មើល​ជា​មុន","resize":"ប្ដូរ​ទំហំ","generalTab":"ទូទៅ","advancedTab":"កម្រិត​ខ្ពស់","validateNumberFailed":"តម្លៃ​នេះ​ពុំ​មែន​ជា​លេខ​ទេ។","confirmNewPage":"រាល់​បន្លាស់​ប្ដូរ​នានា​ដែល​មិន​ទាន់​រក្សា​ទុក​ក្នុង​មាតិកា​នេះ នឹង​ត្រូវ​បាត់​បង់។ តើ​អ្នក​ពិត​ជា​ចង់​ផ្ទុក​ទំព័រ​ថ្មី​មែនទេ?","confirmCancel":"ការ​កំណត់​មួយ​ចំនួន​ត្រូ​វ​បាន​ផ្លាស់​ប្ដូរ។ តើ​អ្នក​ពិត​ជា​ចង់​បិទ​ប្រអប់​នេះ​មែនទេ?","options":"ការ​កំណត់","target":"គោលដៅ","targetNew":"វីនដូ​ថ្មី (_blank)","targetTop":"វីនដូ​លើ​គេ (_top)","targetSelf":"វីនដូ​ដូច​គ្នា (_self)","targetParent":"វីនដូ​មេ (_parent)","langDirLTR":"ពីឆ្វេងទៅស្តាំ(LTR)","langDirRTL":"ពីស្តាំទៅឆ្វេង(RTL)","styles":"រចនាបថ","cssClasses":"Stylesheet Classes","width":"ទទឹង","height":"កំពស់","align":"កំណត់​ទីតាំង","alignLeft":"ខាងឆ្វង","alignRight":"ខាងស្តាំ","alignCenter":"កណ្តាល","alignJustify":"តំរឹមសងខាង","alignTop":"ខាងលើ","alignMiddle":"កណ្តាល","alignBottom":"ខាងក្រោម","alignNone":"គ្មាន","invalidValue":"តម្លៃ​មិន​ត្រឹម​ត្រូវ។","invalidHeight":"តម្លៃ​កំពស់​ត្រូវ​តែ​ជា​លេខ។","invalidWidth":"តម្លៃ​ទទឹង​ត្រូវ​តែ​ជា​លេខ។","invalidCssLength":"តម្លៃ​កំណត់​សម្រាប់​វាល \"%1\" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន​ ដោយ​ភ្ជាប់ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។","invalidHtmlLength":"តម្លៃ​កំណត់​សម្រាប់​វាល \"%1\" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន ដោយ​ភ្ជាប់​ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ HTML (px ឬ %) ។","invalidInlineStyle":"តម្លៃ​កំណត់​សម្រាប់​រចនាបថ​ក្នុង​តួ ត្រូវ​តែ​មាន​មួយ​ឬ​ធាតុ​ច្រើន​ដោយ​មាន​ទ្រង់ទ្រាយ​ជា \"ឈ្មោះ : តម្លៃ\" ហើយ​ញែក​ចេញ​ពី​គ្នា​ដោយ​ចុច​ក្បៀស។","cssLengthTooltip":"បញ្ចូល​លេខ​សម្រាប់​តម្លៃ​ជា​ភិចសែល ឬ​លេខ​ដែល​មាន​ឯកតា​ត្រឹមត្រូវ​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។","unavailable":"%1<span class=\"cke_accessibility\">, មិន​មាន</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/ko.js b/core/assets/vendor/ckeditor/lang/ko.js
index 1776921..35f13ef 100644
--- a/core/assets/vendor/ckeditor/lang/ko.js
+++ b/core/assets/vendor/ckeditor/lang/ko.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['ko']={"widget":{"move":"움직이려면 클릭 후 드래그 하세요","label":"%1 widget"},"undo":{"redo":"다시 실행","undo":"실행 취소"},"toolbar":{"toolbarCollapse":"툴바 줄이기","toolbarExpand":"툴바 확장","toolbarGroups":{"document":"문서","clipboard":"클립보드/실행 취소","editing":"편집","forms":"폼","basicstyles":"기본 스타일","paragraph":"단락","links":"링크","insert":"삽입","styles":"스타일","colors":"색상","tools":"도구"},"toolbars":"에디터 툴바"},"table":{"border":"테두리 두께","caption":"주석","cell":{"menu":"셀","insertBefore":"앞에 셀 삽입","insertAfter":"뒤에 셀 삽입","deleteCell":"셀 삭제","merge":"셀 합치기","mergeRight":"오른쪽 합치기","mergeDown":"왼쪽 합치기","splitHorizontal":"수평 나누기","splitVertical":"수직 나누기","title":"셀 속성","cellType":"셀 종류","rowSpan":"행 간격","colSpan":"열 간격","wordWrap":"줄 끝 단어 줄 바꿈","hAlign":"가로 정렬","vAlign":"세로 정렬","alignBaseline":"영문 글꼴 기준선","bgColor":"배경색","borderColor":"테두리 색","data":"자료","header":"머릿칸","yes":"예","no":"아니오","invalidWidth":"셀 너비는 숫자여야 합니다.","invalidHeight":"셀 높이는 숫자여야 합니다.","invalidRowSpan":"행 간격은 정수여야 합니다.","invalidColSpan":"열 간격은 정수여야 합니다.","chooseColor":"선택"},"cellPad":"셀 여백","cellSpace":"셀 간격","column":{"menu":"열","insertBefore":"왼쪽에 열 삽입","insertAfter":"오른쪽에 열 삽입","deleteColumn":"열 삭제"},"columns":"열","deleteTable":"표 삭제","headers":"머릿칸","headersBoth":"모두","headersColumn":"첫 열","headersNone":"없음","headersRow":"첫 행","invalidBorder":"테두리 두께는 숫자여야 합니다.","invalidCellPadding":"셀 여백은 0 이상이어야 합니다.","invalidCellSpacing":"셀 간격은 0 이상이어야 합니다.","invalidCols":"열 번호는 0보다 커야 합니다.","invalidHeight":"표 높이는 숫자여야 합니다.","invalidRows":"행 번호는 0보다 커야 합니다.","invalidWidth":"표의 너비는 숫자여야 합니다.","menu":"표 속성","row":{"menu":"행","insertBefore":"위에 행 삽입","insertAfter":"아래에 행 삽입","deleteRow":"행 삭제"},"rows":"행","summary":"요약","title":"표 속성","toolbar":"표","widthPc":"백분율","widthPx":"픽셀","widthUnit":"너비 단위"},"stylescombo":{"label":"스타일","panelTitle":"전체 구성 스타일","panelTitle1":"블록 스타일","panelTitle2":"인라인 스타일","panelTitle3":"객체 스타일"},"specialchar":{"options":"특수문자 옵션","title":"특수문자 선택","toolbar":"특수문자 삽입"},"sourcedialog":{"toolbar":"소스","title":"소스"},"sourcearea":{"toolbar":"소스"},"showblocks":{"toolbar":"블록 보기"},"removeformat":{"toolbar":"형식 지우기"},"pastetext":{"button":"텍스트로 붙여넣기","title":"텍스트로 붙여넣기"},"pastefromword":{"confirmCleanup":"붙여 넣을 내용은 MS Word에서 복사 한 것입니다. 붙여 넣기 전에 정리 하시겠습니까?","error":"내부 오류로 붙여 넣은 데이터를 정리 할 수 없습니다.","title":"MS Word 에서 붙여넣기","toolbar":"MS Word 에서 붙여넣기"},"maximize":{"maximize":"최대화","minimize":"최소화"},"magicline":{"title":"여기에 단락 삽입"},"list":{"bulletedlist":"순서 없는 목록","numberedlist":"순서 있는 목록"},"language":{"button":"언어 설정","remove":"언어 설정 지우기"},"justify":{"block":"양쪽 맞춤","center":"가운데 정렬","left":"왼쪽 정렬","right":"오른쪽 정렬"},"indent":{"indent":"들여쓰기","outdent":"내어쓰기"},"image2":{"alt":"대체 문자열","btnUpload":"서버로 전송","captioned":"이미지 설명 넣기","captionPlaceholder":"설명","infoTab":"이미지 정보","lockRatio":"비율 유지","menu":"이미지 속성","pathName":"이미지","pathNameCaption":"설명","resetSize":"원래 크기로","resizer":"크기를 조절하려면 클릭 후 드래그 하세요","title":"이미지 속성","uploadTab":"업로드","urlMissing":"이미지 원본 주소(URL)가 없습니다."},"horizontalrule":{"toolbar":"가로 줄 삽입"},"format":{"label":"문단","panelTitle":"문단 형식","tag_address":"글쓴이","tag_div":"기본 (DIV)","tag_h1":"제목 1","tag_h2":"제목 2","tag_h3":"제목 3","tag_h4":"제목 4","tag_h5":"제목 5","tag_h6":"제목 6","tag_p":"본문","tag_pre":"정형 문단"},"elementspath":{"eleLabel":"요소 경로","eleTitle":"%1 요소"},"contextmenu":{"options":"컨텍스트 메뉴 옵션"},"clipboard":{"copy":"복사","copyError":"브라우저의 보안설정 때문에 복사할 수 없습니다. 키보드(Ctrl/Cmd+C)를 이용해서 복사하십시오.","cut":"잘라내기","cutError":"브라우저의 보안설정 때문에 잘라내기 기능을 실행할 수 없습니다. 키보드(Ctrl/Cmd+X)를 이용해서 잘라내기 하십시오","paste":"붙여넣기","pasteArea":"붙여넣기 범위","pasteMsg":"키보드(<strong>Ctrl/Cmd+V</strong>)를 이용해서 상자안에 붙여넣고 <strong>확인</strong> 를 누르세요.","securityMsg":"브라우저 보안 설정으로 인해, 클립보드에 직접 접근할 수 없습니다. 이 창에 다시 붙여넣기 하십시오.","title":"붙여넣기"},"button":{"selectedLabel":"%1 (선택됨)"},"blockquote":{"toolbar":"인용 단락"},"basicstyles":{"bold":"굵게","italic":"기울임꼴","strike":"취소선","subscript":"아래 첨자","superscript":"위 첨자","underline":"밑줄"},"about":{"copy":"저작권 &copy; $1 . 판권 소유.","dlgTitle":"CKEditor 에 대하여","help":"도움이 필요하시면 $1 를 확인하세요.","moreInfo":"라이선스에 대한 정보는 저희 웹 사이트를 참고하세요:","title":"CKEditor에 대하여","userGuide":"CKEditor 사용설명서"},"editor":"리치 텍스트 편집기","editorPanel":"리치 텍스트 편집기 패널","common":{"editorHelp":"도움이 필요하면 ALT 0 을 누르세요","browseServer":"서버 보기","url":"URL","protocol":"프로토콜","upload":"업로드","uploadSubmit":"서버로 전송","image":"이미지","flash":"플래시","form":"폼","checkbox":"체크 박스","radio":"라디오 버튼","textField":"한 줄 입력 칸","textarea":"여러 줄 입력 칸","hiddenField":"숨은 입력 칸","button":"버튼","select":"선택 목록","imageButton":"이미지 버튼","notSet":"<설정 안 됨>","id":"ID","name":"이름","langDir":"언어 방향","langDirLtr":"왼쪽에서 오른쪽 (LTR)","langDirRtl":"오른쪽에서 왼쪽 (RTL)","langCode":"언어 코드","longDescr":"웹 주소 설명","cssClass":"스타일 시트 클래스","advisoryTitle":"보조 제목","cssStyle":"스타일","ok":"확인","cancel":"취소","close":"닫기","preview":"미리보기","resize":"크기 조절","generalTab":"일반","advancedTab":"자세히","validateNumberFailed":"이 값은 숫자가 아닙니다.","confirmNewPage":"저장하지 않은 모든 변경사항은 유실됩니다. 정말로 새로운 페이지를 부르겠습니까?","confirmCancel":"일부 옵션이 변경 되었습니다. 정말로 창을 닫겠습니까?","options":"옵션","target":"타겟","targetNew":"새 창 (_blank)","targetTop":"최상위 창 (_top)","targetSelf":"같은 창 (_self)","targetParent":"부모 창 (_parent)","langDirLTR":"왼쪽에서 오른쪽 (LTR)","langDirRTL":"오른쪽에서 왼쪽 (RTL)","styles":"스타일","cssClasses":"스타일 시트 클래스","width":"너비","height":"높이","align":"정렬","alignLeft":"왼쪽","alignRight":"오른쪽","alignCenter":"가운데","alignJustify":"양쪽 맞춤","alignTop":"위","alignMiddle":"중간","alignBottom":"아래","alignNone":"기본","invalidValue":"잘못된 값.","invalidHeight":"높이는 숫자여야 합니다.","invalidWidth":"넓이는 숫자여야 합니다.","invalidCssLength":"\"%1\" 값은 유효한 CSS 측정 단위(px, %, in, cm, mm, em, ex, pt, or pc)를 포함하거나 포함하지 않은 양수 여야 합니다.","invalidHtmlLength":"\"%1\" 값은 유효한 HTML 측정 단위(px or %)를 포함하거나 포함하지 않은 양수여야 합니다.","invalidInlineStyle":"인라인 스타일에 설정된 값은 \"name : value\" 형식을 가진 하나 이상의 투플(tuples)이 세미콜론(;)으로 구분되어 구성되어야 합니다.","cssLengthTooltip":"픽셀 단위의 숫자만 입력하시거나 유효한 CSS 단위(px, %, in, cm, mm, em, ex, pt, or pc)와 함께 숫자를 입력해주세요.","unavailable":"%1<span class=\"cke_accessibility\">, 사용불가</span>"}};
\ No newline at end of file
+CKEDITOR.lang['ko']={"widget":{"move":"움직이려면 클릭 후 드래그 하세요"},"undo":{"redo":"다시 실행","undo":"실행 취소"},"toolbar":{"toolbarCollapse":"툴바 줄이기","toolbarExpand":"툴바 확장","toolbarGroups":{"document":"문서","clipboard":"클립보드/실행 취소","editing":"편집","forms":"폼","basicstyles":"기본 스타일","paragraph":"단락","links":"링크","insert":"삽입","styles":"스타일","colors":"색상","tools":"도구"},"toolbars":"에디터 툴바"},"table":{"border":"테두리 두께","caption":"주석","cell":{"menu":"셀","insertBefore":"앞에 셀 삽입","insertAfter":"뒤에 셀 삽입","deleteCell":"셀 삭제","merge":"셀 합치기","mergeRight":"오른쪽 합치기","mergeDown":"왼쪽 합치기","splitHorizontal":"수평 나누기","splitVertical":"수직 나누기","title":"셀 속성","cellType":"셀 종류","rowSpan":"행 간격","colSpan":"열 간격","wordWrap":"줄 끝 단어 줄 바꿈","hAlign":"가로 정렬","vAlign":"세로 정렬","alignBaseline":"영문 글꼴 기준선","bgColor":"배경색","borderColor":"테두리 색","data":"자료","header":"머릿칸","yes":"예","no":"아니오","invalidWidth":"셀 너비는 숫자여야 합니다.","invalidHeight":"셀 높이는 숫자여야 합니다.","invalidRowSpan":"행 간격은 정수여야 합니다.","invalidColSpan":"열 간격은 정수여야 합니다.","chooseColor":"선택"},"cellPad":"셀 여백","cellSpace":"셀 간격","column":{"menu":"열","insertBefore":"왼쪽에 열 삽입","insertAfter":"오른쪽에 열 삽입","deleteColumn":"열 삭제"},"columns":"열","deleteTable":"표 삭제","headers":"머릿칸","headersBoth":"모두","headersColumn":"첫 열","headersNone":"없음","headersRow":"첫 행","invalidBorder":"테두리 두께는 숫자여야 합니다.","invalidCellPadding":"셀 여백은 0 이상이어야 합니다.","invalidCellSpacing":"셀 간격은 0 이상이어야 합니다.","invalidCols":"열 번호는 0보다 커야 합니다.","invalidHeight":"표 높이는 숫자여야 합니다.","invalidRows":"행 번호는 0보다 커야 합니다.","invalidWidth":"표의 너비는 숫자여야 합니다.","menu":"표 속성","row":{"menu":"행","insertBefore":"위에 행 삽입","insertAfter":"아래에 행 삽입","deleteRow":"행 삭제"},"rows":"행","summary":"요약","title":"표 속성","toolbar":"표","widthPc":"백분율","widthPx":"픽셀","widthUnit":"너비 단위"},"stylescombo":{"label":"스타일","panelTitle":"전체 구성 스타일","panelTitle1":"블록 스타일","panelTitle2":"인라인 스타일","panelTitle3":"객체 스타일"},"specialchar":{"options":"특수문자 옵션","title":"특수문자 선택","toolbar":"특수문자 삽입"},"sourcedialog":{"toolbar":"소스","title":"소스"},"sourcearea":{"toolbar":"소스"},"showblocks":{"toolbar":"블록 보기"},"removeformat":{"toolbar":"형식 지우기"},"pastetext":{"button":"텍스트로 붙여넣기","title":"텍스트로 붙여넣기"},"pastefromword":{"confirmCleanup":"붙여 넣을 내용은 MS Word에서 복사 한 것입니다. 붙여 넣기 전에 정리 하시겠습니까?","error":"내부 오류로 붙여 넣은 데이터를 정리 할 수 없습니다.","title":"MS Word 에서 붙여넣기","toolbar":"MS Word 에서 붙여넣기"},"maximize":{"maximize":"최대화","minimize":"최소화"},"magicline":{"title":"여기에 단락 삽입"},"list":{"bulletedlist":"순서 없는 목록","numberedlist":"순서 있는 목록"},"language":{"button":"언어 설정","remove":"언어 설정 지우기"},"justify":{"block":"양쪽 맞춤","center":"가운데 정렬","left":"왼쪽 정렬","right":"오른쪽 정렬"},"indent":{"indent":"들여쓰기","outdent":"내어쓰기"},"image2":{"alt":"대체 문자열","btnUpload":"서버로 전송","captioned":"이미지 설명 넣기","captionPlaceholder":"설명","infoTab":"이미지 정보","lockRatio":"비율 유지","menu":"이미지 속성","pathName":"이미지","pathNameCaption":"설명","resetSize":"원래 크기로","resizer":"크기를 조절하려면 클릭 후 드래그 하세요","title":"이미지 속성","uploadTab":"업로드","urlMissing":"이미지 원본 주소(URL)가 없습니다."},"horizontalrule":{"toolbar":"가로 줄 삽입"},"format":{"label":"문단","panelTitle":"문단 형식","tag_address":"글쓴이","tag_div":"기본 (DIV)","tag_h1":"제목 1","tag_h2":"제목 2","tag_h3":"제목 3","tag_h4":"제목 4","tag_h5":"제목 5","tag_h6":"제목 6","tag_p":"본문","tag_pre":"정형 문단"},"elementspath":{"eleLabel":"요소 경로","eleTitle":"%1 요소"},"contextmenu":{"options":"컨텍스트 메뉴 옵션"},"clipboard":{"copy":"복사","copyError":"브라우저의 보안설정 때문에 복사할 수 없습니다. 키보드(Ctrl/Cmd+C)를 이용해서 복사하십시오.","cut":"잘라내기","cutError":"브라우저의 보안설정 때문에 잘라내기 기능을 실행할 수 없습니다. 키보드(Ctrl/Cmd+X)를 이용해서 잘라내기 하십시오","paste":"붙여넣기","pasteArea":"붙여넣기 범위","pasteMsg":"키보드(<strong>Ctrl/Cmd+V</strong>)를 이용해서 상자안에 붙여넣고 <strong>확인</strong> 를 누르세요.","securityMsg":"브라우저 보안 설정으로 인해, 클립보드에 직접 접근할 수 없습니다. 이 창에 다시 붙여넣기 하십시오.","title":"붙여넣기"},"button":{"selectedLabel":"%1 (선택됨)"},"blockquote":{"toolbar":"인용 단락"},"basicstyles":{"bold":"굵게","italic":"기울임꼴","strike":"취소선","subscript":"아래 첨자","superscript":"위 첨자","underline":"밑줄"},"about":{"copy":"저작권 &copy; $1 . 판권 소유.","dlgTitle":"CKEditor 에 대하여","help":"도움이 필요하시면 $1 를 확인하세요.","moreInfo":"라이선스에 대한 정보는 저희 웹 사이트를 참고하세요:","title":"CKEditor에 대하여","userGuide":"CKEditor 사용설명서"},"editor":"리치 텍스트 편집기","editorPanel":"리치 텍스트 편집기 패널","common":{"editorHelp":"도움이 필요하면 ALT 0 을 누르세요","browseServer":"서버 보기","url":"URL","protocol":"프로토콜","upload":"업로드","uploadSubmit":"서버로 전송","image":"이미지","flash":"플래시","form":"폼","checkbox":"체크 박스","radio":"라디오 버튼","textField":"한 줄 입력 칸","textarea":"여러 줄 입력 칸","hiddenField":"숨은 입력 칸","button":"버튼","select":"선택 목록","imageButton":"이미지 버튼","notSet":"<설정 안 됨>","id":"ID","name":"이름","langDir":"언어 방향","langDirLtr":"왼쪽에서 오른쪽 (LTR)","langDirRtl":"오른쪽에서 왼쪽 (RTL)","langCode":"언어 코드","longDescr":"웹 주소 설명","cssClass":"스타일 시트 클래스","advisoryTitle":"보조 제목","cssStyle":"스타일","ok":"확인","cancel":"취소","close":"닫기","preview":"미리보기","resize":"크기 조절","generalTab":"일반","advancedTab":"자세히","validateNumberFailed":"이 값은 숫자가 아닙니다.","confirmNewPage":"저장하지 않은 모든 변경사항은 유실됩니다. 정말로 새로운 페이지를 부르겠습니까?","confirmCancel":"일부 옵션이 변경 되었습니다. 정말로 창을 닫겠습니까?","options":"옵션","target":"타겟","targetNew":"새 창 (_blank)","targetTop":"최상위 창 (_top)","targetSelf":"같은 창 (_self)","targetParent":"부모 창 (_parent)","langDirLTR":"왼쪽에서 오른쪽 (LTR)","langDirRTL":"오른쪽에서 왼쪽 (RTL)","styles":"스타일","cssClasses":"스타일 시트 클래스","width":"너비","height":"높이","align":"정렬","alignLeft":"왼쪽","alignRight":"오른쪽","alignCenter":"가운데","alignJustify":"양쪽 맞춤","alignTop":"위","alignMiddle":"중간","alignBottom":"아래","alignNone":"기본","invalidValue":"잘못된 값.","invalidHeight":"높이는 숫자여야 합니다.","invalidWidth":"넓이는 숫자여야 합니다.","invalidCssLength":"\"%1\" 값은 유효한 CSS 측정 단위(px, %, in, cm, mm, em, ex, pt, or pc)를 포함하거나 포함하지 않은 양수 여야 합니다.","invalidHtmlLength":"\"%1\" 값은 유효한 HTML 측정 단위(px or %)를 포함하거나 포함하지 않은 양수여야 합니다.","invalidInlineStyle":"인라인 스타일에 설정된 값은 \"name : value\" 형식을 가진 하나 이상의 투플(tuples)이 세미콜론(;)으로 구분되어 구성되어야 합니다.","cssLengthTooltip":"픽셀 단위의 숫자만 입력하시거나 유효한 CSS 단위(px, %, in, cm, mm, em, ex, pt, or pc)와 함께 숫자를 입력해주세요.","unavailable":"%1<span class=\"cke_accessibility\">, 사용불가</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/ku.js b/core/assets/vendor/ckeditor/lang/ku.js
index 079b3ce..7a5905d 100644
--- a/core/assets/vendor/ckeditor/lang/ku.js
+++ b/core/assets/vendor/ckeditor/lang/ku.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['ku']={"widget":{"move":"کرتەبکە و ڕایبکێشە بۆ جوڵاندن","label":"%1 widget"},"undo":{"redo":"هەڵگەڕاندنەوە","undo":"پووچکردنەوە"},"toolbar":{"toolbarCollapse":"شاردنەوی هێڵی تووڵامراز","toolbarExpand":"نیشاندانی هێڵی تووڵامراز","toolbarGroups":{"document":"پەڕه","clipboard":"بڕین/پووچکردنەوە","editing":"چاکسازی","forms":"داڕشتە","basicstyles":"شێوازی بنچینەیی","paragraph":"بڕگە","links":"بەستەر","insert":"خستنە ناو","styles":"شێواز","colors":"ڕەنگەکان","tools":"ئامرازەکان"},"toolbars":"تووڵامرازی دەسکاریکەر"},"table":{"border":"گەورەیی پەراوێز","caption":"سەردێڕ","cell":{"menu":"خانه","insertBefore":"دانانی خانه لەپێش","insertAfter":"دانانی خانه لەپاش","deleteCell":"سڕینەوەی خانه","merge":"تێکەڵکردنی خانە","mergeRight":"تێکەڵکردنی لەگەڵ ڕاست","mergeDown":"تێکەڵکردنی لەگەڵ خوارەوە","splitHorizontal":"دابەشکردنی خانەی ئاسۆیی","splitVertical":"دابەشکردنی خانەی ئەستونی","title":"خاسیەتی خانه","cellType":"جۆری خانه","rowSpan":"ماوەی نێوان ڕیز","colSpan":"بستی ئەستونی","wordWrap":"پێچانەوەی وشە","hAlign":"ڕیزکردنی ئاسۆیی","vAlign":"ڕیزکردنی ئەستونی","alignBaseline":"هێڵەبنەڕەت","bgColor":"ڕەنگی پاشبنەما","borderColor":"ڕەنگی پەراوێز","data":"داتا","header":"سەرپەڕه","yes":"بەڵێ","no":"نەخێر","invalidWidth":"پانی خانه دەبێت بەتەواوی ژماره بێت.","invalidHeight":"درێژی خانه بەتەواوی دەبێت ژمارە بێت.","invalidRowSpan":"ماوەی نێوان ڕیز بەتەواوی دەبێت ژمارە بێت.","invalidColSpan":"ماوەی نێوان ئەستونی بەتەواوی دەبێت ژمارە بێت.","chooseColor":"هەڵبژێرە"},"cellPad":"بۆشایی ناوپۆش","cellSpace":"بۆشایی خانه","column":{"menu":"ئەستون","insertBefore":"دانانی ئەستون لەپێش","insertAfter":"دانانی ئەستوون لەپاش","deleteColumn":"سڕینەوەی ئەستوون"},"columns":"ستوونەکان","deleteTable":"سڕینەوەی خشتە","headers":"سەرپەڕه","headersBoth":"هەردووك","headersColumn":"یەکەم ئەستوون","headersNone":"هیچ","headersRow":"یەکەم ڕیز","invalidBorder":"ژمارەی پەراوێز دەبێت تەنها ژماره بێت.","invalidCellPadding":"ناوپۆشی خانه دەبێت ژمارەکی درووست بێت.","invalidCellSpacing":"بۆشایی خانه دەبێت ژمارەکی درووست بێت.","invalidCols":"ژمارەی ئەستوونی دەبێت گەورەتر بێت لەژمارەی 0.","invalidHeight":"درێژی خشته دهبێت تهنها ژماره بێت.","invalidRows":"ژمارەی ڕیز دەبێت گەورەتر بێت لەژمارەی 0.","invalidWidth":"پانی خشته دەبێت تەنها ژماره بێت.","menu":"خاسیەتی خشتە","row":{"menu":"ڕیز","insertBefore":"دانانی ڕیز لەپێش","insertAfter":"دانانی ڕیز لەپاش","deleteRow":"سڕینەوەی ڕیز"},"rows":"ڕیز","summary":"کورتە","title":"خاسیەتی خشتە","toolbar":"خشتە","widthPc":"لەسەدا","widthPx":"وێنەخاڵ - پیکسل","widthUnit":"پانی یەکە"},"stylescombo":{"label":"شێواز","panelTitle":"شێوازی ڕازاندنەوە","panelTitle1":"شێوازی خشت","panelTitle2":"شێوازی ناوهێڵ","panelTitle3":"شێوازی بەرکار"},"specialchar":{"options":"هەڵبژاردەی نووسەی تایبەتی","title":"هەڵبژاردنی نووسەی تایبەتی","toolbar":"دانانی نووسەی تایبەتی"},"sourcedialog":{"toolbar":"سەرچاوە","title":"سەرچاوە"},"sourcearea":{"toolbar":"سەرچاوە"},"showblocks":{"toolbar":"نیشاندانی بەربەستەکان"},"removeformat":{"toolbar":"لابردنی داڕشتەکە"},"pastetext":{"button":"لکاندنی وەك دەقی ڕوون","title":"لکاندنی وەك دەقی ڕوون"},"pastefromword":{"confirmCleanup":"ئەم دەقەی بەتەمای بیلکێنی پێدەچێت له word هێنرابێت. دەتەوێت پاکی بکەیوه پێش ئەوەی بیلکێنی؟","error":"هیچ ڕێگەیەك نەبوو لەلکاندنی دەقەکه بەهۆی هەڵەیەکی ناوەخۆیی","title":"لکاندنی لەلایەن Word","toolbar":"لکاندنی لەڕێی Word"},"maximize":{"maximize":"ئەوپەڕی گەورەیی","minimize":"ئەوپەڕی بچووکی"},"magicline":{"title":"بڕگە لێرە دابنێ"},"list":{"bulletedlist":"دانان/لابردنی خاڵی لیست","numberedlist":"دانان/لابردنی ژمارەی لیست"},"language":{"button":"جێگیرکردنی زمان","remove":"لابردنی زمان"},"justify":{"block":"هاوستوونی","center":"ناوەڕاست","left":"بەهێڵ کردنی چەپ","right":"بەهێڵ کردنی ڕاست"},"indent":{"indent":"زیادکردنی بۆشایی","outdent":"کەمکردنەوەی بۆشایی"},"image2":{"alt":"جێگرەوەی دەق","btnUpload":"ناردنی بۆ ڕاژه","captioned":"وێنەی بەسەردێر","captionPlaceholder":"سەردێر","infoTab":"زانیاری وێنه","lockRatio":"داخستنی ڕێژه","menu":"خاسیەتی وێنه","pathName":"وێنە","pathNameCaption":"سەردێر","resetSize":"ڕێکخستنەوەی قەباره","resizer":"کرتەبکە و ڕایبکێشە بۆ قەبارە گۆڕین","title":"خاسیەتی وێنه","uploadTab":"بارکردن","urlMissing":"سەرچاوەی بەستەری وێنه بزره"},"horizontalrule":{"toolbar":"دانانی هێلی ئاسۆیی"},"format":{"label":"ڕازاندنەوە","panelTitle":"بەشی ڕازاندنەوه","tag_address":"ناونیشان","tag_div":"(DIV)-ی ئاسایی","tag_h1":"سەرنووسەی ١","tag_h2":"سەرنووسەی ٢","tag_h3":"سەرنووسەی ٣","tag_h4":"سەرنووسەی ٤","tag_h5":"سەرنووسەی ٥","tag_h6":"سەرنووسەی ٦","tag_p":"ئاسایی","tag_pre":"شێوازکراو"},"elementspath":{"eleLabel":"ڕێڕەوی توخمەکان","eleTitle":"%1 توخم"},"contextmenu":{"options":"هەڵبژاردەی لیستەی کلیکی دەستی ڕاست"},"clipboard":{"copy":"لەبەرگرتنەوە","copyError":"پارێزی وێبگەڕەکەت ڕێگەنادات بەسەرنووسەکە لە لکاندنی دەقی خۆکارارنە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+C).","cut":"بڕین","cutError":"پارێزی وێبگەڕەکەت ڕێگەنادات بە سەرنووسەکە لەبڕینی خۆکارانە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+X).","paste":"لکاندن","pasteArea":"ناوچەی لکاندن","pasteMsg":"تکایە بیلکێنە لەناوەوەی ئەم سنوقە لەڕێی تەختەکلیلەکەت بە بەکارهێنانی کلیلی (<STRONG>Ctrl/Cmd+V</STRONG>) دووای کلیکی باشە بکە.","securityMsg":"بەهۆی شێوەپێدانی پارێزی وێبگەڕەکەت، سەرنووسەکه ناتوانێت دەستبگەیەنێت بەهەڵگیراوەکە ڕاستەوخۆ. بۆیه پێویسته دووباره بیلکێنیت لەم پەنجەرەیه.","title":"لکاندن"},"button":{"selectedLabel":"%1 (هەڵبژێردراو)"},"blockquote":{"toolbar":"بەربەستکردنی ووتەی وەرگیراو"},"basicstyles":{"bold":"قەڵەو","italic":"لار","strike":"لێدان","subscript":"ژێرنووس","superscript":"سەرنووس","underline":"ژێرهێڵ"},"about":{"copy":"مافی لەبەرگەرتنەوەی &copy; $1. گشتی پارێزراوه. ورگێڕانی بۆ کوردی لەلایەن هۆژە کۆیی.","dlgTitle":"دەربارەی CKEditor","help":"سەیری $1 بکه بۆ یارمەتی.","moreInfo":"بۆ زانیاری زیاتر دەربارەی مۆڵەتی بەکارهێنان، تکایه سەردانی ماڵپەڕەکەمان بکه:","title":"دەربارەی CKEditor","userGuide":"ڕێپیشاندەری CKEditors"},"editor":"سەرنووسەی دەقی تەواو","editorPanel":"بڕگەی سەرنووسەی دەقی تەواو","common":{"editorHelp":"کلیکی ALT لەگەڵ 0 بکه‌ بۆ یارمەتی","browseServer":"هێنانی ڕاژە","url":"ناونیشانی بەستەر","protocol":"پڕۆتۆکۆڵ","upload":"بارکردن","uploadSubmit":"ناردنی بۆ ڕاژە","image":"وێنە","flash":"فلاش","form":"داڕشتە","checkbox":"خانەی نیشانکردن","radio":"جێگرەوەی دوگمە","textField":"خانەی دەق","textarea":"ڕووبەری دەق","hiddenField":"شاردنەوی خانە","button":"دوگمە","select":"هەڵبژاردەی خانە","imageButton":"دوگمەی وێنە","notSet":"<هیچ دانەدراوە>","id":"ناسنامە","name":"ناو","langDir":"ئاراستەی زمان","langDirLtr":"چەپ بۆ ڕاست (LTR)","langDirRtl":"ڕاست بۆ چەپ (RTL)","langCode":"هێمای زمان","longDescr":"پێناسەی درێژی بەستەر","cssClass":"شێوازی چینی په‌ڕە","advisoryTitle":"ڕاوێژکاری سەردێڕ","cssStyle":"شێواز","ok":"باشە","cancel":"پاشگەزبوونەوە","close":"داخستن","preview":"پێشبینین","resize":"گۆڕینی ئەندازە","generalTab":"گشتی","advancedTab":"پەرەسەندوو","validateNumberFailed":"ئەم نرخە ژمارە نیە، تکایە نرخێکی ژمارە بنووسە.","confirmNewPage":"سەرجەم گۆڕانکاریەکان و پێکهاتەکانی ناووەوە لەدەست دەدەی گەر بێتوو پاشکەوتی نەکەی یەکەم جار، تۆ هەر دڵنیایی لەکردنەوەی پەنجەرەکی نوێ؟","confirmCancel":"هەندێك هەڵبژاردە گۆڕدراوە. تۆ دڵنیایی لە داخستنی ئەم دیالۆگە؟","options":"هەڵبژاردەکان","target":"ئامانج","targetNew":"پەنجەرەیەکی نوێ (_blank)","targetTop":"لووتکەی پەنجەرە (_top)","targetSelf":"لەهەمان پەنجەرە (_self)","targetParent":"پەنجەرەی باوان (_parent)","langDirLTR":"چەپ بۆ ڕاست (LTR)","langDirRTL":"ڕاست بۆ چەپ (RTL)","styles":"شێواز","cssClasses":"شێوازی چینی پەڕە","width":"پانی","height":"درێژی","align":"ڕێککەرەوە","alignLeft":"چەپ","alignRight":"ڕاست","alignCenter":"ناوەڕاست","alignJustify":"هاوستوونی","alignTop":"سەرەوە","alignMiddle":"ناوەند","alignBottom":"ژێرەوە","alignNone":"هیچ","invalidValue":"نرخێکی نادرووست.","invalidHeight":"درێژی دەبێت ژمارە بێت.","invalidWidth":"پانی دەبێت ژمارە بێت.","invalidCssLength":"ئەم نرخەی دراوە بۆ خانەی \"%1\" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی (px, %, in, cm, mm, em, ex, pt, یان pc).","invalidHtmlLength":"ئەم نرخەی دراوە بۆ خانەی \"%1\" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی HTML (px یان %).","invalidInlineStyle":"دانەی نرخی شێوازی ناوهێڵ دەبێت پێکهاتبێت لەیەك یان زیاتری داڕشتە \"ناو : نرخ\", جیاکردنەوەی بە فاریزە و خاڵ","cssLengthTooltip":"ژمارەیەك بنووسه‌ بۆ نرخی piksel یان ئامرازێکی درووستی CSS (px, %, in, cm, mm, em, ex, pt, یان pc).","unavailable":"%1<span class=\"cke_accessibility\">, ئامادە نیە</span>"}};
\ No newline at end of file
+CKEDITOR.lang['ku']={"widget":{"move":"کرتەبکە و ڕایبکێشە بۆ جوڵاندن"},"undo":{"redo":"هەڵگەڕاندنەوە","undo":"پووچکردنەوە"},"toolbar":{"toolbarCollapse":"شاردنەوی هێڵی تووڵامراز","toolbarExpand":"نیشاندانی هێڵی تووڵامراز","toolbarGroups":{"document":"پەڕه","clipboard":"بڕین/پووچکردنەوە","editing":"چاکسازی","forms":"داڕشتە","basicstyles":"شێوازی بنچینەیی","paragraph":"بڕگە","links":"بەستەر","insert":"خستنە ناو","styles":"شێواز","colors":"ڕەنگەکان","tools":"ئامرازەکان"},"toolbars":"تووڵامرازی دەسکاریکەر"},"table":{"border":"گەورەیی پەراوێز","caption":"سەردێڕ","cell":{"menu":"خانه","insertBefore":"دانانی خانه لەپێش","insertAfter":"دانانی خانه لەپاش","deleteCell":"سڕینەوەی خانه","merge":"تێکەڵکردنی خانە","mergeRight":"تێکەڵکردنی لەگەڵ ڕاست","mergeDown":"تێکەڵکردنی لەگەڵ خوارەوە","splitHorizontal":"دابەشکردنی خانەی ئاسۆیی","splitVertical":"دابەشکردنی خانەی ئەستونی","title":"خاسیەتی خانه","cellType":"جۆری خانه","rowSpan":"ماوەی نێوان ڕیز","colSpan":"بستی ئەستونی","wordWrap":"پێچانەوەی وشە","hAlign":"ڕیزکردنی ئاسۆیی","vAlign":"ڕیزکردنی ئەستونی","alignBaseline":"هێڵەبنەڕەت","bgColor":"ڕەنگی پاشبنەما","borderColor":"ڕەنگی پەراوێز","data":"داتا","header":"سەرپەڕه","yes":"بەڵێ","no":"نەخێر","invalidWidth":"پانی خانه دەبێت بەتەواوی ژماره بێت.","invalidHeight":"درێژی خانه بەتەواوی دەبێت ژمارە بێت.","invalidRowSpan":"ماوەی نێوان ڕیز بەتەواوی دەبێت ژمارە بێت.","invalidColSpan":"ماوەی نێوان ئەستونی بەتەواوی دەبێت ژمارە بێت.","chooseColor":"هەڵبژێرە"},"cellPad":"بۆشایی ناوپۆش","cellSpace":"بۆشایی خانه","column":{"menu":"ئەستون","insertBefore":"دانانی ئەستون لەپێش","insertAfter":"دانانی ئەستوون لەپاش","deleteColumn":"سڕینەوەی ئەستوون"},"columns":"ستوونەکان","deleteTable":"سڕینەوەی خشتە","headers":"سەرپەڕه","headersBoth":"هەردووك","headersColumn":"یەکەم ئەستوون","headersNone":"هیچ","headersRow":"یەکەم ڕیز","invalidBorder":"ژمارەی پەراوێز دەبێت تەنها ژماره بێت.","invalidCellPadding":"ناوپۆشی خانه دەبێت ژمارەکی درووست بێت.","invalidCellSpacing":"بۆشایی خانه دەبێت ژمارەکی درووست بێت.","invalidCols":"ژمارەی ئەستوونی دەبێت گەورەتر بێت لەژمارەی 0.","invalidHeight":"درێژی خشته دهبێت تهنها ژماره بێت.","invalidRows":"ژمارەی ڕیز دەبێت گەورەتر بێت لەژمارەی 0.","invalidWidth":"پانی خشته دەبێت تەنها ژماره بێت.","menu":"خاسیەتی خشتە","row":{"menu":"ڕیز","insertBefore":"دانانی ڕیز لەپێش","insertAfter":"دانانی ڕیز لەپاش","deleteRow":"سڕینەوەی ڕیز"},"rows":"ڕیز","summary":"کورتە","title":"خاسیەتی خشتە","toolbar":"خشتە","widthPc":"لەسەدا","widthPx":"وێنەخاڵ - پیکسل","widthUnit":"پانی یەکە"},"stylescombo":{"label":"شێواز","panelTitle":"شێوازی ڕازاندنەوە","panelTitle1":"شێوازی خشت","panelTitle2":"شێوازی ناوهێڵ","panelTitle3":"شێوازی بەرکار"},"specialchar":{"options":"هەڵبژاردەی نووسەی تایبەتی","title":"هەڵبژاردنی نووسەی تایبەتی","toolbar":"دانانی نووسەی تایبەتی"},"sourcedialog":{"toolbar":"سەرچاوە","title":"سەرچاوە"},"sourcearea":{"toolbar":"سەرچاوە"},"showblocks":{"toolbar":"نیشاندانی بەربەستەکان"},"removeformat":{"toolbar":"لابردنی داڕشتەکە"},"pastetext":{"button":"لکاندنی وەك دەقی ڕوون","title":"لکاندنی وەك دەقی ڕوون"},"pastefromword":{"confirmCleanup":"ئەم دەقەی بەتەمای بیلکێنی پێدەچێت له word هێنرابێت. دەتەوێت پاکی بکەیوه پێش ئەوەی بیلکێنی؟","error":"هیچ ڕێگەیەك نەبوو لەلکاندنی دەقەکه بەهۆی هەڵەیەکی ناوەخۆیی","title":"لکاندنی لەلایەن Word","toolbar":"لکاندنی لەڕێی Word"},"maximize":{"maximize":"ئەوپەڕی گەورەیی","minimize":"ئەوپەڕی بچووکی"},"magicline":{"title":"بڕگە لێرە دابنێ"},"list":{"bulletedlist":"دانان/لابردنی خاڵی لیست","numberedlist":"دانان/لابردنی ژمارەی لیست"},"language":{"button":"جێگیرکردنی زمان","remove":"لابردنی زمان"},"justify":{"block":"هاوستوونی","center":"ناوەڕاست","left":"بەهێڵ کردنی چەپ","right":"بەهێڵ کردنی ڕاست"},"indent":{"indent":"زیادکردنی بۆشایی","outdent":"کەمکردنەوەی بۆشایی"},"image2":{"alt":"جێگرەوەی دەق","btnUpload":"ناردنی بۆ ڕاژه","captioned":"وێنەی بەسەردێر","captionPlaceholder":"سەردێر","infoTab":"زانیاری وێنه","lockRatio":"داخستنی ڕێژه","menu":"خاسیەتی وێنه","pathName":"وێنە","pathNameCaption":"سەردێر","resetSize":"ڕێکخستنەوەی قەباره","resizer":"کرتەبکە و ڕایبکێشە بۆ قەبارە گۆڕین","title":"خاسیەتی وێنه","uploadTab":"بارکردن","urlMissing":"سەرچاوەی بەستەری وێنه بزره"},"horizontalrule":{"toolbar":"دانانی هێلی ئاسۆیی"},"format":{"label":"ڕازاندنەوە","panelTitle":"بەشی ڕازاندنەوه","tag_address":"ناونیشان","tag_div":"(DIV)-ی ئاسایی","tag_h1":"سەرنووسەی ١","tag_h2":"سەرنووسەی ٢","tag_h3":"سەرنووسەی ٣","tag_h4":"سەرنووسەی ٤","tag_h5":"سەرنووسەی ٥","tag_h6":"سەرنووسەی ٦","tag_p":"ئاسایی","tag_pre":"شێوازکراو"},"elementspath":{"eleLabel":"ڕێڕەوی توخمەکان","eleTitle":"%1 توخم"},"contextmenu":{"options":"هەڵبژاردەی لیستەی کلیکی دەستی ڕاست"},"clipboard":{"copy":"لەبەرگرتنەوە","copyError":"پارێزی وێبگەڕەکەت ڕێگەنادات بەسەرنووسەکە لە لکاندنی دەقی خۆکارارنە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+C).","cut":"بڕین","cutError":"پارێزی وێبگەڕەکەت ڕێگەنادات بە سەرنووسەکە لەبڕینی خۆکارانە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+X).","paste":"لکاندن","pasteArea":"ناوچەی لکاندن","pasteMsg":"تکایە بیلکێنە لەناوەوەی ئەم سنوقە لەڕێی تەختەکلیلەکەت بە بەکارهێنانی کلیلی (<STRONG>Ctrl/Cmd+V</STRONG>) دووای کلیکی باشە بکە.","securityMsg":"بەهۆی شێوەپێدانی پارێزی وێبگەڕەکەت، سەرنووسەکه ناتوانێت دەستبگەیەنێت بەهەڵگیراوەکە ڕاستەوخۆ. بۆیه پێویسته دووباره بیلکێنیت لەم پەنجەرەیه.","title":"لکاندن"},"button":{"selectedLabel":"%1 (هەڵبژێردراو)"},"blockquote":{"toolbar":"بەربەستکردنی ووتەی وەرگیراو"},"basicstyles":{"bold":"قەڵەو","italic":"لار","strike":"لێدان","subscript":"ژێرنووس","superscript":"سەرنووس","underline":"ژێرهێڵ"},"about":{"copy":"مافی لەبەرگەرتنەوەی &copy; $1. گشتی پارێزراوه. ورگێڕانی بۆ کوردی لەلایەن هۆژە کۆیی.","dlgTitle":"دەربارەی CKEditor","help":"سەیری $1 بکه بۆ یارمەتی.","moreInfo":"بۆ زانیاری زیاتر دەربارەی مۆڵەتی بەکارهێنان، تکایه سەردانی ماڵپەڕەکەمان بکه:","title":"دەربارەی CKEditor","userGuide":"ڕێپیشاندەری CKEditors"},"editor":"سەرنووسەی دەقی تەواو","editorPanel":"بڕگەی سەرنووسەی دەقی تەواو","common":{"editorHelp":"کلیکی ALT لەگەڵ 0 بکه‌ بۆ یارمەتی","browseServer":"هێنانی ڕاژە","url":"ناونیشانی بەستەر","protocol":"پڕۆتۆکۆڵ","upload":"بارکردن","uploadSubmit":"ناردنی بۆ ڕاژە","image":"وێنە","flash":"فلاش","form":"داڕشتە","checkbox":"خانەی نیشانکردن","radio":"جێگرەوەی دوگمە","textField":"خانەی دەق","textarea":"ڕووبەری دەق","hiddenField":"شاردنەوی خانە","button":"دوگمە","select":"هەڵبژاردەی خانە","imageButton":"دوگمەی وێنە","notSet":"<هیچ دانەدراوە>","id":"ناسنامە","name":"ناو","langDir":"ئاراستەی زمان","langDirLtr":"چەپ بۆ ڕاست (LTR)","langDirRtl":"ڕاست بۆ چەپ (RTL)","langCode":"هێمای زمان","longDescr":"پێناسەی درێژی بەستەر","cssClass":"شێوازی چینی په‌ڕە","advisoryTitle":"ڕاوێژکاری سەردێڕ","cssStyle":"شێواز","ok":"باشە","cancel":"پاشگەزبوونەوە","close":"داخستن","preview":"پێشبینین","resize":"گۆڕینی ئەندازە","generalTab":"گشتی","advancedTab":"پەرەسەندوو","validateNumberFailed":"ئەم نرخە ژمارە نیە، تکایە نرخێکی ژمارە بنووسە.","confirmNewPage":"سەرجەم گۆڕانکاریەکان و پێکهاتەکانی ناووەوە لەدەست دەدەی گەر بێتوو پاشکەوتی نەکەی یەکەم جار، تۆ هەر دڵنیایی لەکردنەوەی پەنجەرەکی نوێ؟","confirmCancel":"هەندێك هەڵبژاردە گۆڕدراوە. تۆ دڵنیایی لە داخستنی ئەم دیالۆگە؟","options":"هەڵبژاردەکان","target":"ئامانج","targetNew":"پەنجەرەیەکی نوێ (_blank)","targetTop":"لووتکەی پەنجەرە (_top)","targetSelf":"لەهەمان پەنجەرە (_self)","targetParent":"پەنجەرەی باوان (_parent)","langDirLTR":"چەپ بۆ ڕاست (LTR)","langDirRTL":"ڕاست بۆ چەپ (RTL)","styles":"شێواز","cssClasses":"شێوازی چینی پەڕە","width":"پانی","height":"درێژی","align":"ڕێککەرەوە","alignLeft":"چەپ","alignRight":"ڕاست","alignCenter":"ناوەڕاست","alignJustify":"هاوستوونی","alignTop":"سەرەوە","alignMiddle":"ناوەند","alignBottom":"ژێرەوە","alignNone":"هیچ","invalidValue":"نرخێکی نادرووست.","invalidHeight":"درێژی دەبێت ژمارە بێت.","invalidWidth":"پانی دەبێت ژمارە بێت.","invalidCssLength":"ئەم نرخەی دراوە بۆ خانەی \"%1\" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی (px, %, in, cm, mm, em, ex, pt, یان pc).","invalidHtmlLength":"ئەم نرخەی دراوە بۆ خانەی \"%1\" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی HTML (px یان %).","invalidInlineStyle":"دانەی نرخی شێوازی ناوهێڵ دەبێت پێکهاتبێت لەیەك یان زیاتری داڕشتە \"ناو : نرخ\", جیاکردنەوەی بە فاریزە و خاڵ","cssLengthTooltip":"ژمارەیەك بنووسه‌ بۆ نرخی piksel یان ئامرازێکی درووستی CSS (px, %, in, cm, mm, em, ex, pt, یان pc).","unavailable":"%1<span class=\"cke_accessibility\">, ئامادە نیە</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/lt.js b/core/assets/vendor/ckeditor/lang/lt.js
index 529d548..92deae7 100644
--- a/core/assets/vendor/ckeditor/lang/lt.js
+++ b/core/assets/vendor/ckeditor/lang/lt.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['lt']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Atstatyti","undo":"Atšaukti"},"toolbar":{"toolbarCollapse":"Apjungti įrankių juostą","toolbarExpand":"Išplėsti įrankių juostą","toolbarGroups":{"document":"Dokumentas","clipboard":"Atmintinė/Atgal","editing":"Redagavimas","forms":"Formos","basicstyles":"Pagrindiniai stiliai","paragraph":"Paragrafas","links":"Nuorodos","insert":"Įterpti","styles":"Stiliai","colors":"Spalvos","tools":"Įrankiai"},"toolbars":"Redaktoriaus įrankiai"},"table":{"border":"Rėmelio dydis","caption":"Antraštė","cell":{"menu":"Langelis","insertBefore":"Įterpti langelį prieš","insertAfter":"Įterpti langelį po","deleteCell":"Šalinti langelius","merge":"Sujungti langelius","mergeRight":"Sujungti su dešine","mergeDown":"Sujungti su apačia","splitHorizontal":"Skaidyti langelį horizontaliai","splitVertical":"Skaidyti langelį vertikaliai","title":"Cell nustatymai","cellType":"Cell rūšis","rowSpan":"Eilučių Span","colSpan":"Stulpelių Span","wordWrap":"Sutraukti raides","hAlign":"Horizontalus lygiavimas","vAlign":"Vertikalus lygiavimas","alignBaseline":"Apatinė linija","bgColor":"Fono spalva","borderColor":"Rėmelio spalva","data":"Data","header":"Antraštė","yes":"Taip","no":"Ne","invalidWidth":"Reikšmė turi būti skaičius.","invalidHeight":"Reikšmė turi būti skaičius.","invalidRowSpan":"Reikšmė turi būti skaičius.","invalidColSpan":"Reikšmė turi būti skaičius.","chooseColor":"Pasirinkite"},"cellPad":"Tarpas nuo langelio rėmo iki teksto","cellSpace":"Tarpas tarp langelių","column":{"menu":"Stulpelis","insertBefore":"Įterpti stulpelį prieš","insertAfter":"Įterpti stulpelį po","deleteColumn":"Šalinti stulpelius"},"columns":"Stulpeliai","deleteTable":"Šalinti lentelę","headers":"Antraštės","headersBoth":"Abu","headersColumn":"Pirmas stulpelis","headersNone":"Nėra","headersRow":"Pirma eilutė","invalidBorder":"Reikšmė turi būti nurodyta skaičiumi.","invalidCellPadding":"Reikšmė turi būti nurodyta skaičiumi.","invalidCellSpacing":"Reikšmė turi būti nurodyta skaičiumi.","invalidCols":"Skaičius turi būti didesnis nei 0.","invalidHeight":"Reikšmė turi būti nurodyta skaičiumi.","invalidRows":"Skaičius turi būti didesnis nei 0.","invalidWidth":"Reikšmė turi būti nurodyta skaičiumi.","menu":"Lentelės savybės","row":{"menu":"Eilutė","insertBefore":"Įterpti eilutę prieš","insertAfter":"Įterpti eilutę po","deleteRow":"Šalinti eilutes"},"rows":"Eilutės","summary":"Santrauka","title":"Lentelės savybės","toolbar":"Lentelė","widthPc":"procentais","widthPx":"taškais","widthUnit":"pločio vienetas"},"stylescombo":{"label":"Stilius","panelTitle":"Stilių formatavimas","panelTitle1":"Blokų stiliai","panelTitle2":"Vidiniai stiliai","panelTitle3":"Objektų stiliai"},"specialchar":{"options":"Specialaus simbolio nustatymai","title":"Pasirinkite specialų simbolį","toolbar":"Įterpti specialų simbolį"},"sourcedialog":{"toolbar":"Šaltinis","title":"Šaltinis"},"sourcearea":{"toolbar":"Šaltinis"},"showblocks":{"toolbar":"Rodyti blokus"},"removeformat":{"toolbar":"Panaikinti formatą"},"pastetext":{"button":"Įdėti kaip gryną tekstą","title":"Įdėti kaip gryną tekstą"},"pastefromword":{"confirmCleanup":"Tekstas, kurį įkeliate yra kopijuojamas iš Word. Ar norite jį išvalyti prieš įkeliant?","error":"Dėl vidinių sutrikimų, nepavyko išvalyti įkeliamo teksto","title":"Įdėti iš Word","toolbar":"Įdėti iš Word"},"maximize":{"maximize":"Išdidinti","minimize":"Sumažinti"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Suženklintas sąrašas","numberedlist":"Numeruotas sąrašas"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Lygiuoti abi puses","center":"Centruoti","left":"Lygiuoti kairę","right":"Lygiuoti dešinę"},"indent":{"indent":"Padidinti įtrauką","outdent":"Sumažinti įtrauką"},"image2":{"alt":"Alternatyvus Tekstas","btnUpload":"Siųsti į serverį","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Vaizdo informacija","lockRatio":"Išlaikyti proporciją","menu":"Vaizdo savybės","pathName":"image","pathNameCaption":"caption","resetSize":"Atstatyti dydį","resizer":"Click and drag to resize","title":"Vaizdo savybės","uploadTab":"Siųsti","urlMissing":"Paveiksliuko nuorodos nėra."},"horizontalrule":{"toolbar":"Įterpti horizontalią liniją"},"format":{"label":"Šrifto formatas","panelTitle":"Šrifto formatas","tag_address":"Kreipinio","tag_div":"Normalus (DIV)","tag_h1":"Antraštinis 1","tag_h2":"Antraštinis 2","tag_h3":"Antraštinis 3","tag_h4":"Antraštinis 4","tag_h5":"Antraštinis 5","tag_h6":"Antraštinis 6","tag_p":"Normalus","tag_pre":"Formuotas"},"elementspath":{"eleLabel":"Elemento kelias","eleTitle":"%1 elementas"},"contextmenu":{"options":"Kontekstinio meniu parametrai"},"clipboard":{"copy":"Kopijuoti","copyError":"Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+C).","cut":"Iškirpti","cutError":"Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+X).","paste":"Įdėti","pasteArea":"Įkelti dalį","pasteMsg":"Žemiau esančiame įvedimo lauke įdėkite tekstą, naudodami klaviatūrą (<STRONG>Ctrl/Cmd+V</STRONG>) ir paspauskite mygtuką <STRONG>OK</STRONG>.","securityMsg":"Dėl jūsų naršyklės saugumo nustatymų, redaktorius negali tiesiogiai pasiekti laikinosios atminties. Jums reikia nukopijuoti dar kartą į šį langą.","title":"Įdėti"},"button":{"selectedLabel":"%1 (Pasirinkta)"},"blockquote":{"toolbar":"Citata"},"basicstyles":{"bold":"Pusjuodis","italic":"Kursyvas","strike":"Perbrauktas","subscript":"Apatinis indeksas","superscript":"Viršutinis indeksas","underline":"Pabrauktas"},"about":{"copy":"Copyright &copy; $1. Visos teiss saugomos.","dlgTitle":"Apie CKEditor","help":"Patikrinkite $1 dėl pagalbos.","moreInfo":"Dėl licencijavimo apsilankykite mūsų svetainėje:","title":"Apie CKEditor","userGuide":"CKEditor Vartotojo Gidas"},"editor":"Pilnas redaktorius","editorPanel":"Pilno redagtoriaus skydelis","common":{"editorHelp":"Spauskite ALT 0 dėl pagalbos","browseServer":"Naršyti po serverį","url":"URL","protocol":"Protokolas","upload":"Siųsti","uploadSubmit":"Siųsti į serverį","image":"Vaizdas","flash":"Flash","form":"Forma","checkbox":"Žymimasis langelis","radio":"Žymimoji akutė","textField":"Teksto laukas","textarea":"Teksto sritis","hiddenField":"Nerodomas laukas","button":"Mygtukas","select":"Atrankos laukas","imageButton":"Vaizdinis mygtukas","notSet":"<nėra nustatyta>","id":"Id","name":"Vardas","langDir":"Teksto kryptis","langDirLtr":"Iš kairės į dešinę (LTR)","langDirRtl":"Iš dešinės į kairę (RTL)","langCode":"Kalbos kodas","longDescr":"Ilgas aprašymas URL","cssClass":"Stilių lentelės klasės","advisoryTitle":"Konsultacinė antraštė","cssStyle":"Stilius","ok":"OK","cancel":"Nutraukti","close":"Uždaryti","preview":"Peržiūrėti","resize":"Pavilkite, kad pakeistumėte dydį","generalTab":"Bendros savybės","advancedTab":"Papildomas","validateNumberFailed":"Ši reikšmė nėra skaičius.","confirmNewPage":"Visas neišsaugotas turinys bus prarastas. Ar tikrai norite įkrauti naują puslapį?","confirmCancel":"Kai kurie parametrai pasikeitė. Ar tikrai norite užverti langą?","options":"Parametrai","target":"Tikslinė nuoroda","targetNew":"Naujas langas (_blank)","targetTop":"Viršutinis langas (_top)","targetSelf":"Esamas langas (_self)","targetParent":"Paskutinis langas (_parent)","langDirLTR":"Iš kairės į dešinę (LTR)","langDirRTL":"Iš dešinės į kairę (RTL)","styles":"Stilius","cssClasses":"Stilių klasės","width":"Plotis","height":"Aukštis","align":"Lygiuoti","alignLeft":"Kairę","alignRight":"Dešinę","alignCenter":"Centrą","alignJustify":"Lygiuoti abi puses","alignTop":"Viršūnę","alignMiddle":"Vidurį","alignBottom":"Apačią","alignNone":"Niekas","invalidValue":"Neteisinga reikšmė.","invalidHeight":"Aukštis turi būti nurodytas skaičiais.","invalidWidth":"Plotis turi būti nurodytas skaičiais.","invalidCssLength":"Reikšmė nurodyta \"%1\" laukui, turi būti teigiamas skaičius su arba be tinkamo CSS matavimo vieneto (px, %, in, cm, mm, em, ex, pt arba pc).","invalidHtmlLength":"Reikšmė nurodyta \"%1\" laukui, turi būti teigiamas skaičius su arba be tinkamo HTML matavimo vieneto (px arba %).","invalidInlineStyle":"Reikšmė nurodyta vidiniame stiliuje turi būti sudaryta iš vieno šių reikšmių \"vardas : reikšmė\", atskirta kabliataškiais.","cssLengthTooltip":"Įveskite reikšmę pikseliais arba skaičiais su tinkamu CSS vienetu (px, %, in, cm, mm, em, ex, pt arba pc).","unavailable":"%1<span class=\"cke_accessibility\">, netinkamas</span>"}};
\ No newline at end of file
+CKEDITOR.lang['lt']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Atstatyti","undo":"Atšaukti"},"toolbar":{"toolbarCollapse":"Apjungti įrankių juostą","toolbarExpand":"Išplėsti įrankių juostą","toolbarGroups":{"document":"Dokumentas","clipboard":"Atmintinė/Atgal","editing":"Redagavimas","forms":"Formos","basicstyles":"Pagrindiniai stiliai","paragraph":"Paragrafas","links":"Nuorodos","insert":"Įterpti","styles":"Stiliai","colors":"Spalvos","tools":"Įrankiai"},"toolbars":"Redaktoriaus įrankiai"},"table":{"border":"Rėmelio dydis","caption":"Antraštė","cell":{"menu":"Langelis","insertBefore":"Įterpti langelį prieš","insertAfter":"Įterpti langelį po","deleteCell":"Šalinti langelius","merge":"Sujungti langelius","mergeRight":"Sujungti su dešine","mergeDown":"Sujungti su apačia","splitHorizontal":"Skaidyti langelį horizontaliai","splitVertical":"Skaidyti langelį vertikaliai","title":"Cell nustatymai","cellType":"Cell rūšis","rowSpan":"Eilučių Span","colSpan":"Stulpelių Span","wordWrap":"Sutraukti raides","hAlign":"Horizontalus lygiavimas","vAlign":"Vertikalus lygiavimas","alignBaseline":"Apatinė linija","bgColor":"Fono spalva","borderColor":"Rėmelio spalva","data":"Data","header":"Antraštė","yes":"Taip","no":"Ne","invalidWidth":"Reikšmė turi būti skaičius.","invalidHeight":"Reikšmė turi būti skaičius.","invalidRowSpan":"Reikšmė turi būti skaičius.","invalidColSpan":"Reikšmė turi būti skaičius.","chooseColor":"Pasirinkite"},"cellPad":"Tarpas nuo langelio rėmo iki teksto","cellSpace":"Tarpas tarp langelių","column":{"menu":"Stulpelis","insertBefore":"Įterpti stulpelį prieš","insertAfter":"Įterpti stulpelį po","deleteColumn":"Šalinti stulpelius"},"columns":"Stulpeliai","deleteTable":"Šalinti lentelę","headers":"Antraštės","headersBoth":"Abu","headersColumn":"Pirmas stulpelis","headersNone":"Nėra","headersRow":"Pirma eilutė","invalidBorder":"Reikšmė turi būti nurodyta skaičiumi.","invalidCellPadding":"Reikšmė turi būti nurodyta skaičiumi.","invalidCellSpacing":"Reikšmė turi būti nurodyta skaičiumi.","invalidCols":"Skaičius turi būti didesnis nei 0.","invalidHeight":"Reikšmė turi būti nurodyta skaičiumi.","invalidRows":"Skaičius turi būti didesnis nei 0.","invalidWidth":"Reikšmė turi būti nurodyta skaičiumi.","menu":"Lentelės savybės","row":{"menu":"Eilutė","insertBefore":"Įterpti eilutę prieš","insertAfter":"Įterpti eilutę po","deleteRow":"Šalinti eilutes"},"rows":"Eilutės","summary":"Santrauka","title":"Lentelės savybės","toolbar":"Lentelė","widthPc":"procentais","widthPx":"taškais","widthUnit":"pločio vienetas"},"stylescombo":{"label":"Stilius","panelTitle":"Stilių formatavimas","panelTitle1":"Blokų stiliai","panelTitle2":"Vidiniai stiliai","panelTitle3":"Objektų stiliai"},"specialchar":{"options":"Specialaus simbolio nustatymai","title":"Pasirinkite specialų simbolį","toolbar":"Įterpti specialų simbolį"},"sourcedialog":{"toolbar":"Šaltinis","title":"Šaltinis"},"sourcearea":{"toolbar":"Šaltinis"},"showblocks":{"toolbar":"Rodyti blokus"},"removeformat":{"toolbar":"Panaikinti formatą"},"pastetext":{"button":"Įdėti kaip gryną tekstą","title":"Įdėti kaip gryną tekstą"},"pastefromword":{"confirmCleanup":"Tekstas, kurį įkeliate yra kopijuojamas iš Word. Ar norite jį išvalyti prieš įkeliant?","error":"Dėl vidinių sutrikimų, nepavyko išvalyti įkeliamo teksto","title":"Įdėti iš Word","toolbar":"Įdėti iš Word"},"maximize":{"maximize":"Išdidinti","minimize":"Sumažinti"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Suženklintas sąrašas","numberedlist":"Numeruotas sąrašas"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Lygiuoti abi puses","center":"Centruoti","left":"Lygiuoti kairę","right":"Lygiuoti dešinę"},"indent":{"indent":"Padidinti įtrauką","outdent":"Sumažinti įtrauką"},"image2":{"alt":"Alternatyvus Tekstas","btnUpload":"Siųsti į serverį","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Vaizdo informacija","lockRatio":"Išlaikyti proporciją","menu":"Vaizdo savybės","pathName":"image","pathNameCaption":"caption","resetSize":"Atstatyti dydį","resizer":"Click and drag to resize","title":"Vaizdo savybės","uploadTab":"Siųsti","urlMissing":"Paveiksliuko nuorodos nėra."},"horizontalrule":{"toolbar":"Įterpti horizontalią liniją"},"format":{"label":"Šrifto formatas","panelTitle":"Šrifto formatas","tag_address":"Kreipinio","tag_div":"Normalus (DIV)","tag_h1":"Antraštinis 1","tag_h2":"Antraštinis 2","tag_h3":"Antraštinis 3","tag_h4":"Antraštinis 4","tag_h5":"Antraštinis 5","tag_h6":"Antraštinis 6","tag_p":"Normalus","tag_pre":"Formuotas"},"elementspath":{"eleLabel":"Elemento kelias","eleTitle":"%1 elementas"},"contextmenu":{"options":"Kontekstinio meniu parametrai"},"clipboard":{"copy":"Kopijuoti","copyError":"Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+C).","cut":"Iškirpti","cutError":"Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+X).","paste":"Įdėti","pasteArea":"Įkelti dalį","pasteMsg":"Žemiau esančiame įvedimo lauke įdėkite tekstą, naudodami klaviatūrą (<STRONG>Ctrl/Cmd+V</STRONG>) ir paspauskite mygtuką <STRONG>OK</STRONG>.","securityMsg":"Dėl jūsų naršyklės saugumo nustatymų, redaktorius negali tiesiogiai pasiekti laikinosios atminties. Jums reikia nukopijuoti dar kartą į šį langą.","title":"Įdėti"},"button":{"selectedLabel":"%1 (Pasirinkta)"},"blockquote":{"toolbar":"Citata"},"basicstyles":{"bold":"Pusjuodis","italic":"Kursyvas","strike":"Perbrauktas","subscript":"Apatinis indeksas","superscript":"Viršutinis indeksas","underline":"Pabrauktas"},"about":{"copy":"Copyright &copy; $1. Visos teiss saugomos.","dlgTitle":"Apie CKEditor","help":"Patikrinkite $1 dėl pagalbos.","moreInfo":"Dėl licencijavimo apsilankykite mūsų svetainėje:","title":"Apie CKEditor","userGuide":"CKEditor Vartotojo Gidas"},"editor":"Pilnas redaktorius","editorPanel":"Pilno redagtoriaus skydelis","common":{"editorHelp":"Spauskite ALT 0 dėl pagalbos","browseServer":"Naršyti po serverį","url":"URL","protocol":"Protokolas","upload":"Siųsti","uploadSubmit":"Siųsti į serverį","image":"Vaizdas","flash":"Flash","form":"Forma","checkbox":"Žymimasis langelis","radio":"Žymimoji akutė","textField":"Teksto laukas","textarea":"Teksto sritis","hiddenField":"Nerodomas laukas","button":"Mygtukas","select":"Atrankos laukas","imageButton":"Vaizdinis mygtukas","notSet":"<nėra nustatyta>","id":"Id","name":"Vardas","langDir":"Teksto kryptis","langDirLtr":"Iš kairės į dešinę (LTR)","langDirRtl":"Iš dešinės į kairę (RTL)","langCode":"Kalbos kodas","longDescr":"Ilgas aprašymas URL","cssClass":"Stilių lentelės klasės","advisoryTitle":"Konsultacinė antraštė","cssStyle":"Stilius","ok":"OK","cancel":"Nutraukti","close":"Uždaryti","preview":"Peržiūrėti","resize":"Pavilkite, kad pakeistumėte dydį","generalTab":"Bendros savybės","advancedTab":"Papildomas","validateNumberFailed":"Ši reikšmė nėra skaičius.","confirmNewPage":"Visas neišsaugotas turinys bus prarastas. Ar tikrai norite įkrauti naują puslapį?","confirmCancel":"Kai kurie parametrai pasikeitė. Ar tikrai norite užverti langą?","options":"Parametrai","target":"Tikslinė nuoroda","targetNew":"Naujas langas (_blank)","targetTop":"Viršutinis langas (_top)","targetSelf":"Esamas langas (_self)","targetParent":"Paskutinis langas (_parent)","langDirLTR":"Iš kairės į dešinę (LTR)","langDirRTL":"Iš dešinės į kairę (RTL)","styles":"Stilius","cssClasses":"Stilių klasės","width":"Plotis","height":"Aukštis","align":"Lygiuoti","alignLeft":"Kairę","alignRight":"Dešinę","alignCenter":"Centrą","alignJustify":"Lygiuoti abi puses","alignTop":"Viršūnę","alignMiddle":"Vidurį","alignBottom":"Apačią","alignNone":"Niekas","invalidValue":"Neteisinga reikšmė.","invalidHeight":"Aukštis turi būti nurodytas skaičiais.","invalidWidth":"Plotis turi būti nurodytas skaičiais.","invalidCssLength":"Reikšmė nurodyta \"%1\" laukui, turi būti teigiamas skaičius su arba be tinkamo CSS matavimo vieneto (px, %, in, cm, mm, em, ex, pt arba pc).","invalidHtmlLength":"Reikšmė nurodyta \"%1\" laukui, turi būti teigiamas skaičius su arba be tinkamo HTML matavimo vieneto (px arba %).","invalidInlineStyle":"Reikšmė nurodyta vidiniame stiliuje turi būti sudaryta iš vieno šių reikšmių \"vardas : reikšmė\", atskirta kabliataškiais.","cssLengthTooltip":"Įveskite reikšmę pikseliais arba skaičiais su tinkamu CSS vienetu (px, %, in, cm, mm, em, ex, pt arba pc).","unavailable":"%1<span class=\"cke_accessibility\">, netinkamas</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/lv.js b/core/assets/vendor/ckeditor/lang/lv.js
index 090f71d..609a46d 100644
--- a/core/assets/vendor/ckeditor/lang/lv.js
+++ b/core/assets/vendor/ckeditor/lang/lv.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['lv']={"widget":{"move":"Klikšķina un velc, lai pārvietotu","label":"%1 widget"},"undo":{"redo":"Atkārtot","undo":"Atcelt"},"toolbar":{"toolbarCollapse":"Aizvērt rīkjoslu","toolbarExpand":"Atvērt rīkjoslu","toolbarGroups":{"document":"Dokuments","clipboard":"Starpliktuve/Atcelt","editing":"Labošana","forms":"Formas","basicstyles":"Pamata stili","paragraph":"Paragrāfs","links":"Saites","insert":"Ievietot","styles":"Stili","colors":"Krāsas","tools":"Rīki"},"toolbars":"Redaktora rīkjoslas"},"table":{"border":"Rāmja izmērs","caption":"Leģenda","cell":{"menu":"Šūna","insertBefore":"Pievienot šūnu pirms","insertAfter":"Pievienot šūnu pēc","deleteCell":"Dzēst rūtiņas","merge":"Apvienot rūtiņas","mergeRight":"Apvieno pa labi","mergeDown":"Apvienot uz leju","splitHorizontal":"Sadalīt šūnu horizontāli","splitVertical":"Sadalīt šūnu vertikāli","title":"Šūnas uzstādījumi","cellType":"Šūnas tips","rowSpan":"Apvienotas rindas","colSpan":"Apvienotas kolonas","wordWrap":"Vārdu pārnese","hAlign":"Horizontālais novietojums","vAlign":"Vertikālais novietojums","alignBaseline":"Pamatrinda","bgColor":"Fona krāsa","borderColor":"Rāmja krāsa","data":"Dati","header":"Virsraksts","yes":"Jā","no":"Nē","invalidWidth":"Šūnas platumam jābūt skaitlim","invalidHeight":"Šūnas augstumam jābūt skaitlim","invalidRowSpan":"Apvienojamo rindu skaitam jābūt veselam skaitlim","invalidColSpan":"Apvienojamo kolonu skaitam jābūt veselam skaitlim","chooseColor":"Izvēlēties"},"cellPad":"Rūtiņu nobīde","cellSpace":"Rūtiņu atstatums","column":{"menu":"Kolonna","insertBefore":"Ievietot kolonu pirms","insertAfter":"Ievieto kolonu pēc","deleteColumn":"Dzēst kolonnas"},"columns":"Kolonnas","deleteTable":"Dzēst tabulu","headers":"Virsraksti","headersBoth":"Abi","headersColumn":"Pirmā kolona","headersNone":"Nekas","headersRow":"Pirmā rinda","invalidBorder":"Rāmju izmēram jābūt skaitlim","invalidCellPadding":"Šūnu atkāpēm jābūt pozitīvam skaitlim","invalidCellSpacing":"Šūnu atstarpēm jābūt pozitīvam skaitlim","invalidCols":"Kolonu skaitam jābūt lielākam par 0","invalidHeight":"Tabulas augstumam jābūt skaitlim","invalidRows":"Rindu skaitam jābūt lielākam par 0","invalidWidth":"Tabulas platumam jābūt skaitlim","menu":"Tabulas īpašības","row":{"menu":"Rinda","insertBefore":"Ievietot rindu pirms","insertAfter":"Ievietot rindu pēc","deleteRow":"Dzēst rindas"},"rows":"Rindas","summary":"Anotācija","title":"Tabulas īpašības","toolbar":"Tabula","widthPc":"procentuāli","widthPx":"pikseļos","widthUnit":"platuma mērvienība"},"stylescombo":{"label":"Stils","panelTitle":"Formatēšanas stili","panelTitle1":"Bloka stili","panelTitle2":"iekļautie stili","panelTitle3":"Objekta stili"},"specialchar":{"options":"Speciālo simbolu uzstādījumi","title":"Ievietot īpašu simbolu","toolbar":"Ievietot speciālo simbolu"},"sourcedialog":{"toolbar":"HTML kods","title":"HTML kods"},"sourcearea":{"toolbar":"HTML kods"},"showblocks":{"toolbar":"Parādīt blokus"},"removeformat":{"toolbar":"Noņemt stilus"},"pastetext":{"button":"Ievietot kā vienkāršu tekstu","title":"Ievietot kā vienkāršu tekstu"},"pastefromword":{"confirmCleanup":"Teksts, kuru vēlaties ielīmēt, izskatās ir nokopēts no Word. Vai vēlaties to iztīrīt pirms ielīmēšanas?","error":"Iekšējas kļūdas dēļ, neizdevās iztīrīt ielīmētos datus.","title":"Ievietot no Worda","toolbar":"Ievietot no Worda"},"maximize":{"maximize":"Maksimizēt","minimize":"Minimizēt"},"magicline":{"title":"Ievietot šeit rindkopu"},"list":{"bulletedlist":"Pievienot/Noņemt vienkāršu sarakstu","numberedlist":"Numurēts saraksts"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Izlīdzināt malas","center":"Izlīdzināt pret centru","left":"Izlīdzināt pa kreisi","right":"Izlīdzināt pa labi"},"indent":{"indent":"Palielināt atkāpi","outdent":"Samazināt atkāpi"},"image2":{"alt":"Alternatīvais teksts","btnUpload":"Nosūtīt serverim","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Informācija par attēlu","lockRatio":"Nemainīga Augstuma/Platuma attiecība","menu":"Attēla īpašības","pathName":"image","pathNameCaption":"caption","resetSize":"Atjaunot sākotnējo izmēru","resizer":"Click and drag to resize","title":"Attēla īpašības","uploadTab":"Augšupielādēt","urlMissing":"Trūkst attēla atrašanās adrese."},"horizontalrule":{"toolbar":"Ievietot horizontālu Atdalītājsvītru"},"format":{"label":"Formāts","panelTitle":"Formāts","tag_address":"Adrese","tag_div":"Rindkopa (DIV)","tag_h1":"Virsraksts 1","tag_h2":"Virsraksts 2","tag_h3":"Virsraksts 3","tag_h4":"Virsraksts 4","tag_h5":"Virsraksts 5","tag_h6":"Virsraksts 6","tag_p":"Normāls teksts","tag_pre":"Formatēts teksts"},"elementspath":{"eleLabel":"Elementa ceļš","eleTitle":"%1 elements"},"contextmenu":{"options":"Uznirstošās izvēlnes uzstādījumi"},"clipboard":{"copy":"Kopēt","copyError":"Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt kopēšanas darbību.  Lūdzu, izmantojiet (Ctrl/Cmd+C), lai veiktu šo darbību.","cut":"Izgriezt","cutError":"Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt izgriezšanas darbību.  Lūdzu, izmantojiet (Ctrl/Cmd+X), lai veiktu šo darbību.","paste":"Ielīmēt","pasteArea":"Ielīmēšanas zona","pasteMsg":"Lūdzu, ievietojiet tekstu šajā laukumā, izmantojot klaviatūru (<STRONG>Ctrl/Cmd+V</STRONG>) un apstipriniet ar <STRONG>Darīts!</STRONG>.","securityMsg":"Jūsu pārlūka drošības uzstādījumu dēļ, nav iespējams tieši piekļūt jūsu starpliktuvei. Jums jāielīmē atkārtoti šajā logā.","title":"Ievietot"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Bloka citāts"},"basicstyles":{"bold":"Treknināts","italic":"Kursīvs","strike":"Pārsvītrots","subscript":"Apakšrakstā","superscript":"Augšrakstā","underline":"Pasvītrots"},"about":{"copy":"Kopēšanas tiesības &copy; $1. Visas tiesības rezervētas.","dlgTitle":"Par CKEditor","help":"Pārbaudiet $1 palīdzībai.","moreInfo":"Informācijai par licenzēšanu apmeklējiet mūsu mājas lapu:","title":"Par CKEditor","userGuide":"CKEditor Lietotāja pamācība"},"editor":"Bagātinātā teksta redaktors","editorPanel":"Bagātinātā teksta redaktora panelis","common":{"editorHelp":"Palīdzībai, nospiediet ALT 0 ","browseServer":"Skatīt servera saturu","url":"URL","protocol":"Protokols","upload":"Augšupielādēt","uploadSubmit":"Nosūtīt serverim","image":"Attēls","flash":"Flash","form":"Forma","checkbox":"Atzīmēšanas kastīte","radio":"Izvēles poga","textField":"Teksta rinda","textarea":"Teksta laukums","hiddenField":"Paslēpta teksta rinda","button":"Poga","select":"Iezīmēšanas lauks","imageButton":"Attēlpoga","notSet":"<nav iestatīts>","id":"Id","name":"Nosaukums","langDir":"Valodas lasīšanas virziens","langDirLtr":"No kreisās uz labo (LTR)","langDirRtl":"No labās uz kreiso (RTL)","langCode":"Valodas kods","longDescr":"Gara apraksta Hipersaite","cssClass":"Stilu saraksta klases","advisoryTitle":"Konsultatīvs virsraksts","cssStyle":"Stils","ok":"Darīts!","cancel":"Atcelt","close":"Aizvērt","preview":"Priekšskatījums","resize":"Mērogot","generalTab":"Vispārīgi","advancedTab":"Izvērstais","validateNumberFailed":"Šī vērtība nav skaitlis","confirmNewPage":"Jebkuras nesaglabātās izmaiņas tiks zaudētas. Vai tiešām vēlaties atvērt jaunu lapu?","confirmCancel":"Daži no uzstādījumiem ir mainīti. Vai tiešām vēlaties aizvērt šo dialogu?","options":"Uzstādījumi","target":"Mērķis","targetNew":"Jauns logs (_blank)","targetTop":"Virsējais logs (_top)","targetSelf":"Tas pats logs (_self)","targetParent":"Avota logs (_parent)","langDirLTR":"Kreisais uz Labo (LTR)","langDirRTL":"Labais uz Kreiso (RTL)","styles":"Stils","cssClasses":"Stilu klases","width":"Platums","height":"Augstums","align":"Nolīdzināt","alignLeft":"Pa kreisi","alignRight":"Pa labi","alignCenter":"Centrēti","alignJustify":"Izlīdzināt malas","alignTop":"Augšā","alignMiddle":"Vertikāli centrēts","alignBottom":"Apakšā","alignNone":"Nekas","invalidValue":"Nekorekta vērtība","invalidHeight":"Augstumam jābūt skaitlim.","invalidWidth":"Platumam jābūt skaitlim","invalidCssLength":"Laukam \"%1\" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām CSS mērvienībām (px, %, in, cm, mm, em, ex, pt, vai pc).","invalidHtmlLength":"Laukam \"%1\" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām HTML mērvienībām (px vai %).","invalidInlineStyle":"Iekļautajā stilā norādītajai vērtībai jāsastāv no viena vai vairākiem pāriem pēc forma'ta \"nosaukums: vērtība\", atdalītiem ar semikolu.","cssLengthTooltip":"Ievadiet vērtību pikseļos vai skaitli ar derīgu CSS mērvienību (px, %, in, cm, mm, em, ex, pt, vai pc).","unavailable":"%1<span class=\"cke_accessibility\">, nav pieejams</span>"}};
\ No newline at end of file
+CKEDITOR.lang['lv']={"widget":{"move":"Klikšķina un velc, lai pārvietotu"},"undo":{"redo":"Atkārtot","undo":"Atcelt"},"toolbar":{"toolbarCollapse":"Aizvērt rīkjoslu","toolbarExpand":"Atvērt rīkjoslu","toolbarGroups":{"document":"Dokuments","clipboard":"Starpliktuve/Atcelt","editing":"Labošana","forms":"Formas","basicstyles":"Pamata stili","paragraph":"Paragrāfs","links":"Saites","insert":"Ievietot","styles":"Stili","colors":"Krāsas","tools":"Rīki"},"toolbars":"Redaktora rīkjoslas"},"table":{"border":"Rāmja izmērs","caption":"Leģenda","cell":{"menu":"Šūna","insertBefore":"Pievienot šūnu pirms","insertAfter":"Pievienot šūnu pēc","deleteCell":"Dzēst rūtiņas","merge":"Apvienot rūtiņas","mergeRight":"Apvieno pa labi","mergeDown":"Apvienot uz leju","splitHorizontal":"Sadalīt šūnu horizontāli","splitVertical":"Sadalīt šūnu vertikāli","title":"Šūnas uzstādījumi","cellType":"Šūnas tips","rowSpan":"Apvienotas rindas","colSpan":"Apvienotas kolonas","wordWrap":"Vārdu pārnese","hAlign":"Horizontālais novietojums","vAlign":"Vertikālais novietojums","alignBaseline":"Pamatrinda","bgColor":"Fona krāsa","borderColor":"Rāmja krāsa","data":"Dati","header":"Virsraksts","yes":"Jā","no":"Nē","invalidWidth":"Šūnas platumam jābūt skaitlim","invalidHeight":"Šūnas augstumam jābūt skaitlim","invalidRowSpan":"Apvienojamo rindu skaitam jābūt veselam skaitlim","invalidColSpan":"Apvienojamo kolonu skaitam jābūt veselam skaitlim","chooseColor":"Izvēlēties"},"cellPad":"Rūtiņu nobīde","cellSpace":"Rūtiņu atstatums","column":{"menu":"Kolonna","insertBefore":"Ievietot kolonu pirms","insertAfter":"Ievieto kolonu pēc","deleteColumn":"Dzēst kolonnas"},"columns":"Kolonnas","deleteTable":"Dzēst tabulu","headers":"Virsraksti","headersBoth":"Abi","headersColumn":"Pirmā kolona","headersNone":"Nekas","headersRow":"Pirmā rinda","invalidBorder":"Rāmju izmēram jābūt skaitlim","invalidCellPadding":"Šūnu atkāpēm jābūt pozitīvam skaitlim","invalidCellSpacing":"Šūnu atstarpēm jābūt pozitīvam skaitlim","invalidCols":"Kolonu skaitam jābūt lielākam par 0","invalidHeight":"Tabulas augstumam jābūt skaitlim","invalidRows":"Rindu skaitam jābūt lielākam par 0","invalidWidth":"Tabulas platumam jābūt skaitlim","menu":"Tabulas īpašības","row":{"menu":"Rinda","insertBefore":"Ievietot rindu pirms","insertAfter":"Ievietot rindu pēc","deleteRow":"Dzēst rindas"},"rows":"Rindas","summary":"Anotācija","title":"Tabulas īpašības","toolbar":"Tabula","widthPc":"procentuāli","widthPx":"pikseļos","widthUnit":"platuma mērvienība"},"stylescombo":{"label":"Stils","panelTitle":"Formatēšanas stili","panelTitle1":"Bloka stili","panelTitle2":"iekļautie stili","panelTitle3":"Objekta stili"},"specialchar":{"options":"Speciālo simbolu uzstādījumi","title":"Ievietot īpašu simbolu","toolbar":"Ievietot speciālo simbolu"},"sourcedialog":{"toolbar":"HTML kods","title":"HTML kods"},"sourcearea":{"toolbar":"HTML kods"},"showblocks":{"toolbar":"Parādīt blokus"},"removeformat":{"toolbar":"Noņemt stilus"},"pastetext":{"button":"Ievietot kā vienkāršu tekstu","title":"Ievietot kā vienkāršu tekstu"},"pastefromword":{"confirmCleanup":"Teksts, kuru vēlaties ielīmēt, izskatās ir nokopēts no Word. Vai vēlaties to iztīrīt pirms ielīmēšanas?","error":"Iekšējas kļūdas dēļ, neizdevās iztīrīt ielīmētos datus.","title":"Ievietot no Worda","toolbar":"Ievietot no Worda"},"maximize":{"maximize":"Maksimizēt","minimize":"Minimizēt"},"magicline":{"title":"Ievietot šeit rindkopu"},"list":{"bulletedlist":"Pievienot/Noņemt vienkāršu sarakstu","numberedlist":"Numurēts saraksts"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Izlīdzināt malas","center":"Izlīdzināt pret centru","left":"Izlīdzināt pa kreisi","right":"Izlīdzināt pa labi"},"indent":{"indent":"Palielināt atkāpi","outdent":"Samazināt atkāpi"},"image2":{"alt":"Alternatīvais teksts","btnUpload":"Nosūtīt serverim","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Informācija par attēlu","lockRatio":"Nemainīga Augstuma/Platuma attiecība","menu":"Attēla īpašības","pathName":"image","pathNameCaption":"caption","resetSize":"Atjaunot sākotnējo izmēru","resizer":"Click and drag to resize","title":"Attēla īpašības","uploadTab":"Augšupielādēt","urlMissing":"Trūkst attēla atrašanās adrese."},"horizontalrule":{"toolbar":"Ievietot horizontālu Atdalītājsvītru"},"format":{"label":"Formāts","panelTitle":"Formāts","tag_address":"Adrese","tag_div":"Rindkopa (DIV)","tag_h1":"Virsraksts 1","tag_h2":"Virsraksts 2","tag_h3":"Virsraksts 3","tag_h4":"Virsraksts 4","tag_h5":"Virsraksts 5","tag_h6":"Virsraksts 6","tag_p":"Normāls teksts","tag_pre":"Formatēts teksts"},"elementspath":{"eleLabel":"Elementa ceļš","eleTitle":"%1 elements"},"contextmenu":{"options":"Uznirstošās izvēlnes uzstādījumi"},"clipboard":{"copy":"Kopēt","copyError":"Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt kopēšanas darbību.  Lūdzu, izmantojiet (Ctrl/Cmd+C), lai veiktu šo darbību.","cut":"Izgriezt","cutError":"Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt izgriezšanas darbību.  Lūdzu, izmantojiet (Ctrl/Cmd+X), lai veiktu šo darbību.","paste":"Ielīmēt","pasteArea":"Ielīmēšanas zona","pasteMsg":"Lūdzu, ievietojiet tekstu šajā laukumā, izmantojot klaviatūru (<STRONG>Ctrl/Cmd+V</STRONG>) un apstipriniet ar <STRONG>Darīts!</STRONG>.","securityMsg":"Jūsu pārlūka drošības uzstādījumu dēļ, nav iespējams tieši piekļūt jūsu starpliktuvei. Jums jāielīmē atkārtoti šajā logā.","title":"Ievietot"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Bloka citāts"},"basicstyles":{"bold":"Treknināts","italic":"Kursīvs","strike":"Pārsvītrots","subscript":"Apakšrakstā","superscript":"Augšrakstā","underline":"Pasvītrots"},"about":{"copy":"Kopēšanas tiesības &copy; $1. Visas tiesības rezervētas.","dlgTitle":"Par CKEditor","help":"Pārbaudiet $1 palīdzībai.","moreInfo":"Informācijai par licenzēšanu apmeklējiet mūsu mājas lapu:","title":"Par CKEditor","userGuide":"CKEditor Lietotāja pamācība"},"editor":"Bagātinātā teksta redaktors","editorPanel":"Bagātinātā teksta redaktora panelis","common":{"editorHelp":"Palīdzībai, nospiediet ALT 0 ","browseServer":"Skatīt servera saturu","url":"URL","protocol":"Protokols","upload":"Augšupielādēt","uploadSubmit":"Nosūtīt serverim","image":"Attēls","flash":"Flash","form":"Forma","checkbox":"Atzīmēšanas kastīte","radio":"Izvēles poga","textField":"Teksta rinda","textarea":"Teksta laukums","hiddenField":"Paslēpta teksta rinda","button":"Poga","select":"Iezīmēšanas lauks","imageButton":"Attēlpoga","notSet":"<nav iestatīts>","id":"Id","name":"Nosaukums","langDir":"Valodas lasīšanas virziens","langDirLtr":"No kreisās uz labo (LTR)","langDirRtl":"No labās uz kreiso (RTL)","langCode":"Valodas kods","longDescr":"Gara apraksta Hipersaite","cssClass":"Stilu saraksta klases","advisoryTitle":"Konsultatīvs virsraksts","cssStyle":"Stils","ok":"Darīts!","cancel":"Atcelt","close":"Aizvērt","preview":"Priekšskatījums","resize":"Mērogot","generalTab":"Vispārīgi","advancedTab":"Izvērstais","validateNumberFailed":"Šī vērtība nav skaitlis","confirmNewPage":"Jebkuras nesaglabātās izmaiņas tiks zaudētas. Vai tiešām vēlaties atvērt jaunu lapu?","confirmCancel":"Daži no uzstādījumiem ir mainīti. Vai tiešām vēlaties aizvērt šo dialogu?","options":"Uzstādījumi","target":"Mērķis","targetNew":"Jauns logs (_blank)","targetTop":"Virsējais logs (_top)","targetSelf":"Tas pats logs (_self)","targetParent":"Avota logs (_parent)","langDirLTR":"Kreisais uz Labo (LTR)","langDirRTL":"Labais uz Kreiso (RTL)","styles":"Stils","cssClasses":"Stilu klases","width":"Platums","height":"Augstums","align":"Nolīdzināt","alignLeft":"Pa kreisi","alignRight":"Pa labi","alignCenter":"Centrēti","alignJustify":"Izlīdzināt malas","alignTop":"Augšā","alignMiddle":"Vertikāli centrēts","alignBottom":"Apakšā","alignNone":"Nekas","invalidValue":"Nekorekta vērtība","invalidHeight":"Augstumam jābūt skaitlim.","invalidWidth":"Platumam jābūt skaitlim","invalidCssLength":"Laukam \"%1\" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām CSS mērvienībām (px, %, in, cm, mm, em, ex, pt, vai pc).","invalidHtmlLength":"Laukam \"%1\" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām HTML mērvienībām (px vai %).","invalidInlineStyle":"Iekļautajā stilā norādītajai vērtībai jāsastāv no viena vai vairākiem pāriem pēc forma'ta \"nosaukums: vērtība\", atdalītiem ar semikolu.","cssLengthTooltip":"Ievadiet vērtību pikseļos vai skaitli ar derīgu CSS mērvienību (px, %, in, cm, mm, em, ex, pt, vai pc).","unavailable":"%1<span class=\"cke_accessibility\">, nav pieejams</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/mk.js b/core/assets/vendor/ckeditor/lang/mk.js
index 68e1148..cd475e9 100644
--- a/core/assets/vendor/ckeditor/lang/mk.js
+++ b/core/assets/vendor/ckeditor/lang/mk.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['mk']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"Во средина","left":"Align Left","right":"Align Right"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Алтернативен текст","btnUpload":"Прикачи на сервер","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Информации за сликата","lockRatio":"Зачувај пропорција","menu":"Својства на сликата","pathName":"image","pathNameCaption":"caption","resetSize":"Ресетирај големина","resizer":"Click and drag to resize","title":"Својства на сликата","uploadTab":"Прикачи","urlMissing":"Недостасува URL-то на сликата."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Контекст-мени опции"},"clipboard":{"copy":"Копирај (Copy)","copyError":"Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши копирање. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)","cut":"Исечи (Cut)","cutError":"Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши сечење. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)","paste":"Залепи (Paste)","pasteArea":"Простор за залепување","pasteMsg":"Ве молиме да залепите во следниот квадрат користејќи ја тастатурата (<string>Ctrl/Cmd+V</string>) и да притиснете OK","securityMsg":"Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот директно да пристапи до копираните податоци. Потребно е повторно да се обидете во овој прозорец.","title":"Залепи (Paste)"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Одвоен цитат"},"basicstyles":{"bold":"Здебелено","italic":"Накривено","strike":"Прецртано","subscript":"Долен индекс","superscript":"Горен индекс","underline":"Подвлечено"},"about":{"copy":"Авторски права &copy; $1. Сите права се задржани.","dlgTitle":"За CKEditor","help":"Отворете $1 за помош.","moreInfo":"За информации околу лиценцата, ве молиме посетете го нашиот веб-сајт: ","title":"За CKEditor","userGuide":"CKEditor упатство за корисници"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Притисни ALT 0 за помош","browseServer":"Пребарај низ серверот","url":"URL","protocol":"Протокол","upload":"Прикачи","uploadSubmit":"Прикачи на сервер","image":"Слика","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Поле за текст","textarea":"Големо поле за текст","hiddenField":"Скриено поле","button":"Button","select":"Selection Field","imageButton":"Копче-слика","notSet":"<not set>","id":"Id","name":"Name","langDir":"Насока на јазик","langDirLtr":"Лево кон десно","langDirRtl":"Десно кон лево","langCode":"Код на јазик","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Стил","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"Општо","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Опции","target":"Target","targetNew":"Нов прозорец (_blank)","targetTop":"Најгорниот прозорец (_top)","targetSelf":"Истиот прозорец (_self)","targetParent":"Прозорец-родител (_parent)","langDirLTR":"Лево кон десно","langDirRTL":"Десно кон лево","styles":"Стил","cssClasses":"Stylesheet Classes","width":"Широчина","height":"Височина","align":"Alignment","alignLeft":"Лево","alignRight":"Десно","alignCenter":"Во средина","alignJustify":"Justify","alignTop":"Горе","alignMiddle":"Средина","alignBottom":"Доле","alignNone":"Никое","invalidValue":"Невалидна вредност","invalidHeight":"Височината мора да биде број.","invalidWidth":"Широчината мора да биде број.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['mk']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Redo","undo":"Undo"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"sourcedialog":{"toolbar":"Source","title":"Source"},"sourcearea":{"toolbar":"Source"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Remove Format"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"Во средина","left":"Align Left","right":"Align Right"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"image2":{"alt":"Алтернативен текст","btnUpload":"Прикачи на сервер","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Информации за сликата","lockRatio":"Зачувај пропорција","menu":"Својства на сликата","pathName":"image","pathNameCaption":"caption","resetSize":"Ресетирај големина","resizer":"Click and drag to resize","title":"Својства на сликата","uploadTab":"Прикачи","urlMissing":"Недостасува URL-то на сликата."},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Контекст-мени опции"},"clipboard":{"copy":"Копирај (Copy)","copyError":"Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши копирање. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)","cut":"Исечи (Cut)","cutError":"Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши сечење. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)","paste":"Залепи (Paste)","pasteArea":"Простор за залепување","pasteMsg":"Ве молиме да залепите во следниот квадрат користејќи ја тастатурата (<string>Ctrl/Cmd+V</string>) и да притиснете OK","securityMsg":"Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот директно да пристапи до копираните податоци. Потребно е повторно да се обидете во овој прозорец.","title":"Залепи (Paste)"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Одвоен цитат"},"basicstyles":{"bold":"Здебелено","italic":"Накривено","strike":"Прецртано","subscript":"Долен индекс","superscript":"Горен индекс","underline":"Подвлечено"},"about":{"copy":"Авторски права &copy; $1. Сите права се задржани.","dlgTitle":"За CKEditor","help":"Отворете $1 за помош.","moreInfo":"За информации околу лиценцата, ве молиме посетете го нашиот веб-сајт: ","title":"За CKEditor","userGuide":"CKEditor упатство за корисници"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Притисни ALT 0 за помош","browseServer":"Пребарај низ серверот","url":"URL","protocol":"Протокол","upload":"Прикачи","uploadSubmit":"Прикачи на сервер","image":"Слика","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Поле за текст","textarea":"Големо поле за текст","hiddenField":"Скриено поле","button":"Button","select":"Selection Field","imageButton":"Копче-слика","notSet":"<not set>","id":"Id","name":"Name","langDir":"Насока на јазик","langDirLtr":"Лево кон десно","langDirRtl":"Десно кон лево","langCode":"Код на јазик","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Стил","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"Општо","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Опции","target":"Target","targetNew":"Нов прозорец (_blank)","targetTop":"Најгорниот прозорец (_top)","targetSelf":"Истиот прозорец (_self)","targetParent":"Прозорец-родител (_parent)","langDirLTR":"Лево кон десно","langDirRTL":"Десно кон лево","styles":"Стил","cssClasses":"Stylesheet Classes","width":"Широчина","height":"Височина","align":"Alignment","alignLeft":"Лево","alignRight":"Десно","alignCenter":"Во средина","alignJustify":"Justify","alignTop":"Горе","alignMiddle":"Средина","alignBottom":"Доле","alignNone":"Никое","invalidValue":"Невалидна вредност","invalidHeight":"Височината мора да биде број.","invalidWidth":"Широчината мора да биде број.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/mn.js b/core/assets/vendor/ckeditor/lang/mn.js
index 38835df..6d9fd65 100644
--- a/core/assets/vendor/ckeditor/lang/mn.js
+++ b/core/assets/vendor/ckeditor/lang/mn.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['mn']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Өмнөх үйлдлээ сэргээх","undo":"Хүчингүй болгох"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Холбоосууд","insert":"Оруулах","styles":"Загварууд","colors":"Онгөнүүд","tools":"Хэрэгслүүд"},"toolbars":"Болосруулагчийн хэрэгслийн самбар"},"table":{"border":"Хүрээний хэмжээ","caption":"Тайлбар","cell":{"menu":"Нүх/зай","insertBefore":"Нүх/зай өмнө нь оруулах","insertAfter":"Нүх/зай дараа нь оруулах","deleteCell":"Нүх устгах","merge":"Нүх нэгтэх","mergeRight":"Баруун тийш нэгтгэх","mergeDown":"Доош нэгтгэх","splitHorizontal":"Нүх/зайг босоогоор нь тусгаарлах","splitVertical":"Нүх/зайг хөндлөнгөөр нь тусгаарлах","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Хэвтээд тэгшлэх арга","vAlign":"Босоод тэгшлэх арга","alignBaseline":"Baseline","bgColor":"Дэвсгэр өнгө","borderColor":"Хүрээний өнгө","data":"Data","header":"Header","yes":"Тийм","no":"Үгүй","invalidWidth":"Нүдний өргөн нь тоо байх ёстой.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Сонгох"},"cellPad":"Нүх доторлох(padding)","cellSpace":"Нүх хоорондын зай (spacing)","column":{"menu":"Багана","insertBefore":"Багана өмнө нь оруулах","insertAfter":"Багана дараа нь оруулах","deleteColumn":"Багана устгах"},"columns":"Багана","deleteTable":"Хүснэгт устгах","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Хүснэгтийн өргөн нь тоо байх ёстой.","menu":"Хүснэгт","row":{"menu":"Мөр","insertBefore":"Мөр өмнө нь оруулах","insertAfter":"Мөр дараа нь оруулах","deleteRow":"Мөр устгах"},"rows":"Мөр","summary":"Тайлбар","title":"Хүснэгт","toolbar":"Хүснэгт","widthPc":"хувь","widthPx":"цэг","widthUnit":"өргөний нэгж"},"stylescombo":{"label":"Загвар","panelTitle":"Загвар хэлбэржүүлэх","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Онцгой тэмдэгт сонгох","toolbar":"Онцгой тэмдэгт оруулах"},"sourcedialog":{"toolbar":"Код","title":"Код"},"sourcearea":{"toolbar":"Код"},"showblocks":{"toolbar":"Хавтангуудыг харуулах"},"removeformat":{"toolbar":"Параргафын загварыг авч хаях"},"pastetext":{"button":"Энгийн бичвэрээр буулгах","title":"Энгийн бичвэрээр буулгах"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Word-оос буулгах","toolbar":"Word-оос буулгах"},"maximize":{"maximize":"Дэлгэц дүүргэх","minimize":"Цонхыг багсгаж харуулах"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Цэгтэй жагсаалт","numberedlist":"Дугаарлагдсан жагсаалт"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Тэгшлэх","center":"Голлуулах","left":"Зүүн талд тулгах","right":"Баруун талд тулгах"},"indent":{"indent":"Догол мөр хасах","outdent":"Догол мөр нэмэх"},"image2":{"alt":"Зургийг орлох бичвэр","btnUpload":"Үүнийг сервэррүү илгээ","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Зурагны мэдээлэл","lockRatio":"Радио түгжих","menu":"Зураг","pathName":"image","pathNameCaption":"caption","resetSize":"хэмжээ дахин оноох","resizer":"Click and drag to resize","title":"Зураг","uploadTab":"Илгээж ачаалах","urlMissing":"Зургийн эх сурвалжийн хаяг (URL) байхгүй байна."},"horizontalrule":{"toolbar":"Хөндлөн зураас оруулах"},"format":{"label":"Параргафын загвар","panelTitle":"Параргафын загвар","tag_address":"Хаяг","tag_div":"Paragraph (DIV)","tag_h1":"Гарчиг 1","tag_h2":"Гарчиг 2","tag_h3":"Гарчиг 3","tag_h4":"Гарчиг 4","tag_h5":"Гарчиг 5","tag_h6":"Гарчиг 6","tag_p":"Хэвийн","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Хуулах","copyError":"Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+C) товчны хослолыг ашиглана уу.","cut":"Хайчлах","cutError":"Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+X) товчны хослолыг ашиглана уу.","paste":"Буулгах","pasteArea":"Paste Area","pasteMsg":"(<strong>Ctrl/Cmd+V</strong>) товчийг ашиглан paste хийнэ үү. Мөн <strong>OK</strong> дар.","securityMsg":"Таны үзүүлэгч/browser/-н хамгаалалтын тохиргооноос болоод editor clipboard өгөгдөлрүү шууд хандах боломжгүй. Энэ цонход дахин paste хийхийг оролд.","title":"Буулгах"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Ишлэл хэсэг"},"basicstyles":{"bold":"Тод бүдүүн","italic":"Налуу","strike":"Дундуур нь зураастай болгох","subscript":"Суурь болгох","superscript":"Зэрэг болгох","underline":"Доогуур нь зураастай болгох"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Хэлбэрт бичвэр боловсруулагч","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Үйлчлэгч тооцоолуур (сервэр)-ийг үзэх","url":"цахим хуудасны хаяг (URL)","protocol":"Протокол","upload":"Илгээж ачаалах","uploadSubmit":"Үүнийг үйлчлэгч тооцоолуур (сервер) лүү илгээх","image":"Зураг","flash":"Флаш хөдөлгөөнтэй зураг","form":"Маягт","checkbox":"Тэмдэглээний нүд","radio":"Радио товчлуур","textField":"Бичвэрийн талбар","textarea":"Бичвэрийн зай","hiddenField":"Далд талбар","button":"Товчлуур","select":"Сонголтын талбар","imageButton":"Зургий товчуур","notSet":"<тохируулаагүй>","id":"Id (техникийн нэр)","name":"Нэр","langDir":"Хэлний чиглэл","langDirLtr":"Зүүнээс баруун (LTR)","langDirRtl":"Баруунаас зүүн (RTL)","langCode":"Хэлний код","longDescr":"Урт тайлбарын вэб хаяг","cssClass":"Хэлбэрийн хуудасны ангиуд","advisoryTitle":"Зөвлөх гарчиг","cssStyle":"Загвар","ok":"За","cancel":"Болих","close":"Хаах","preview":"Урьдчилан харах","resize":"Resize","generalTab":"Ерөнхий","advancedTab":"Гүнзгий","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Сонголт","target":"Бай","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Зүүн талаас баруун тийшээ (LTR)","langDirRTL":"Баруун талаас зүүн тийшээ (RTL)","styles":"Загвар","cssClasses":"Хэлбэрийн хуудасны ангиуд","width":"Өргөн","height":"Өндөр","align":"Эгнээ","alignLeft":"Зүүн","alignRight":"Баруун","alignCenter":"Төвд","alignJustify":"Тэгшлэх","alignTop":"Дээд талд","alignMiddle":"Дунд","alignBottom":"Доод талд","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Өндөр нь тоо байх ёстой.","invalidWidth":"Өргөн нь тоо байх ёстой.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['mn']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Өмнөх үйлдлээ сэргээх","undo":"Хүчингүй болгох"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Холбоосууд","insert":"Оруулах","styles":"Загварууд","colors":"Онгөнүүд","tools":"Хэрэгслүүд"},"toolbars":"Болосруулагчийн хэрэгслийн самбар"},"table":{"border":"Хүрээний хэмжээ","caption":"Тайлбар","cell":{"menu":"Нүх/зай","insertBefore":"Нүх/зай өмнө нь оруулах","insertAfter":"Нүх/зай дараа нь оруулах","deleteCell":"Нүх устгах","merge":"Нүх нэгтэх","mergeRight":"Баруун тийш нэгтгэх","mergeDown":"Доош нэгтгэх","splitHorizontal":"Нүх/зайг босоогоор нь тусгаарлах","splitVertical":"Нүх/зайг хөндлөнгөөр нь тусгаарлах","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Хэвтээд тэгшлэх арга","vAlign":"Босоод тэгшлэх арга","alignBaseline":"Baseline","bgColor":"Дэвсгэр өнгө","borderColor":"Хүрээний өнгө","data":"Data","header":"Header","yes":"Тийм","no":"Үгүй","invalidWidth":"Нүдний өргөн нь тоо байх ёстой.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Сонгох"},"cellPad":"Нүх доторлох(padding)","cellSpace":"Нүх хоорондын зай (spacing)","column":{"menu":"Багана","insertBefore":"Багана өмнө нь оруулах","insertAfter":"Багана дараа нь оруулах","deleteColumn":"Багана устгах"},"columns":"Багана","deleteTable":"Хүснэгт устгах","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Хүснэгтийн өргөн нь тоо байх ёстой.","menu":"Хүснэгт","row":{"menu":"Мөр","insertBefore":"Мөр өмнө нь оруулах","insertAfter":"Мөр дараа нь оруулах","deleteRow":"Мөр устгах"},"rows":"Мөр","summary":"Тайлбар","title":"Хүснэгт","toolbar":"Хүснэгт","widthPc":"хувь","widthPx":"цэг","widthUnit":"өргөний нэгж"},"stylescombo":{"label":"Загвар","panelTitle":"Загвар хэлбэржүүлэх","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Онцгой тэмдэгт сонгох","toolbar":"Онцгой тэмдэгт оруулах"},"sourcedialog":{"toolbar":"Код","title":"Код"},"sourcearea":{"toolbar":"Код"},"showblocks":{"toolbar":"Хавтангуудыг харуулах"},"removeformat":{"toolbar":"Параргафын загварыг авч хаях"},"pastetext":{"button":"Энгийн бичвэрээр буулгах","title":"Энгийн бичвэрээр буулгах"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Word-оос буулгах","toolbar":"Word-оос буулгах"},"maximize":{"maximize":"Дэлгэц дүүргэх","minimize":"Цонхыг багсгаж харуулах"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Цэгтэй жагсаалт","numberedlist":"Дугаарлагдсан жагсаалт"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Тэгшлэх","center":"Голлуулах","left":"Зүүн талд тулгах","right":"Баруун талд тулгах"},"indent":{"indent":"Догол мөр хасах","outdent":"Догол мөр нэмэх"},"image2":{"alt":"Зургийг орлох бичвэр","btnUpload":"Үүнийг сервэррүү илгээ","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Зурагны мэдээлэл","lockRatio":"Радио түгжих","menu":"Зураг","pathName":"image","pathNameCaption":"caption","resetSize":"хэмжээ дахин оноох","resizer":"Click and drag to resize","title":"Зураг","uploadTab":"Илгээж ачаалах","urlMissing":"Зургийн эх сурвалжийн хаяг (URL) байхгүй байна."},"horizontalrule":{"toolbar":"Хөндлөн зураас оруулах"},"format":{"label":"Параргафын загвар","panelTitle":"Параргафын загвар","tag_address":"Хаяг","tag_div":"Paragraph (DIV)","tag_h1":"Гарчиг 1","tag_h2":"Гарчиг 2","tag_h3":"Гарчиг 3","tag_h4":"Гарчиг 4","tag_h5":"Гарчиг 5","tag_h6":"Гарчиг 6","tag_p":"Хэвийн","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Хуулах","copyError":"Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+C) товчны хослолыг ашиглана уу.","cut":"Хайчлах","cutError":"Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+X) товчны хослолыг ашиглана уу.","paste":"Буулгах","pasteArea":"Paste Area","pasteMsg":"(<strong>Ctrl/Cmd+V</strong>) товчийг ашиглан paste хийнэ үү. Мөн <strong>OK</strong> дар.","securityMsg":"Таны үзүүлэгч/browser/-н хамгаалалтын тохиргооноос болоод editor clipboard өгөгдөлрүү шууд хандах боломжгүй. Энэ цонход дахин paste хийхийг оролд.","title":"Буулгах"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Ишлэл хэсэг"},"basicstyles":{"bold":"Тод бүдүүн","italic":"Налуу","strike":"Дундуур нь зураастай болгох","subscript":"Суурь болгох","superscript":"Зэрэг болгох","underline":"Доогуур нь зураастай болгох"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Хэлбэрт бичвэр боловсруулагч","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Үйлчлэгч тооцоолуур (сервэр)-ийг үзэх","url":"цахим хуудасны хаяг (URL)","protocol":"Протокол","upload":"Илгээж ачаалах","uploadSubmit":"Үүнийг үйлчлэгч тооцоолуур (сервер) лүү илгээх","image":"Зураг","flash":"Флаш хөдөлгөөнтэй зураг","form":"Маягт","checkbox":"Тэмдэглээний нүд","radio":"Радио товчлуур","textField":"Бичвэрийн талбар","textarea":"Бичвэрийн зай","hiddenField":"Далд талбар","button":"Товчлуур","select":"Сонголтын талбар","imageButton":"Зургий товчуур","notSet":"<тохируулаагүй>","id":"Id (техникийн нэр)","name":"Нэр","langDir":"Хэлний чиглэл","langDirLtr":"Зүүнээс баруун (LTR)","langDirRtl":"Баруунаас зүүн (RTL)","langCode":"Хэлний код","longDescr":"Урт тайлбарын вэб хаяг","cssClass":"Хэлбэрийн хуудасны ангиуд","advisoryTitle":"Зөвлөх гарчиг","cssStyle":"Загвар","ok":"За","cancel":"Болих","close":"Хаах","preview":"Урьдчилан харах","resize":"Resize","generalTab":"Ерөнхий","advancedTab":"Гүнзгий","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Сонголт","target":"Бай","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Зүүн талаас баруун тийшээ (LTR)","langDirRTL":"Баруун талаас зүүн тийшээ (RTL)","styles":"Загвар","cssClasses":"Хэлбэрийн хуудасны ангиуд","width":"Өргөн","height":"Өндөр","align":"Эгнээ","alignLeft":"Зүүн","alignRight":"Баруун","alignCenter":"Төвд","alignJustify":"Тэгшлэх","alignTop":"Дээд талд","alignMiddle":"Дунд","alignBottom":"Доод талд","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Өндөр нь тоо байх ёстой.","invalidWidth":"Өргөн нь тоо байх ёстой.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/ms.js b/core/assets/vendor/ckeditor/lang/ms.js
index 866b79a..f7d9a50 100644
--- a/core/assets/vendor/ckeditor/lang/ms.js
+++ b/core/assets/vendor/ckeditor/lang/ms.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['ms']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Ulangkan","undo":"Batalkan"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Saiz Border","caption":"Keterangan","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Buangkan Sel-sel","merge":"Cantumkan Sel-sel","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Tambahan Ruang Sel","cellSpace":"Ruangan Antara Sel","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Buangkan Lajur"},"columns":"Jaluran","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Ciri-ciri Jadual","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Buangkan Baris"},"rows":"Barisan","summary":"Summary","title":"Ciri-ciri Jadual","toolbar":"Jadual","widthPc":"peratus","widthPx":"piksel-piksel","widthUnit":"width unit"},"stylescombo":{"label":"Stail","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Sila pilih huruf istimewa","toolbar":"Masukkan Huruf Istimewa"},"sourcedialog":{"toolbar":"Sumber","title":"Sumber"},"sourcearea":{"toolbar":"Sumber"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Buang Format"},"pastetext":{"button":"Tampal sebagai text biasa","title":"Tampal sebagai text biasa"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Tampal dari Word","toolbar":"Tampal dari Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Senarai tidak bernombor","numberedlist":"Senarai bernombor"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Jajaran Blok","center":"Jajaran Tengah","left":"Jajaran Kiri","right":"Jajaran Kanan"},"indent":{"indent":"Tambahkan Inden","outdent":"Kurangkan Inden"},"image2":{"alt":"Text Alternatif","btnUpload":"Hantar ke Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info Imej","lockRatio":"Tetapkan Nisbah","menu":"Ciri-ciri Imej","pathName":"image","pathNameCaption":"caption","resetSize":"Saiz Set Semula","resizer":"Click and drag to resize","title":"Ciri-ciri Imej","uploadTab":"Muat Naik","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Masukkan Garisan Membujur"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Alamat","tag_div":"Perenggan (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Telah Diformat"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Salin","copyError":"Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).","cut":"Potong","cutError":"Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).","paste":"Tampal","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Tampal"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protokol","upload":"Muat Naik","uploadSubmit":"Hantar ke Server","image":"Gambar","flash":"Flash","form":"Borang","checkbox":"Checkbox","radio":"Butang Radio","textField":"Text Field","textarea":"Textarea","hiddenField":"Field Tersembunyi","button":"Butang","select":"Field Pilihan","imageButton":"Butang Bergambar","notSet":"<tidak di set>","id":"Id","name":"Nama","langDir":"Arah Tulisan","langDirLtr":"Kiri ke Kanan (LTR)","langDirRtl":"Kanan ke Kiri (RTL)","langCode":"Kod Bahasa","longDescr":"Butiran Panjang URL","cssClass":"Kelas-kelas Stylesheet","advisoryTitle":"Tajuk Makluman","cssStyle":"Stail","ok":"OK","cancel":"Batal","close":"Tutup","preview":"Prebiu","resize":"Resize","generalTab":"Umum","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Sasaran","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","styles":"Stail","cssClasses":"Kelas-kelas Stylesheet","width":"Lebar","height":"Tinggi","align":"Jajaran","alignLeft":"Kiri","alignRight":"Kanan","alignCenter":"Tengah","alignJustify":"Jajaran Blok","alignTop":"Atas","alignMiddle":"Pertengahan","alignBottom":"Bawah","alignNone":"None","invalidValue":"Nilai tidak sah.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['ms']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Ulangkan","undo":"Batalkan"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"table":{"border":"Saiz Border","caption":"Keterangan","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Buangkan Sel-sel","merge":"Cantumkan Sel-sel","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Tambahan Ruang Sel","cellSpace":"Ruangan Antara Sel","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Buangkan Lajur"},"columns":"Jaluran","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Ciri-ciri Jadual","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Buangkan Baris"},"rows":"Barisan","summary":"Summary","title":"Ciri-ciri Jadual","toolbar":"Jadual","widthPc":"peratus","widthPx":"piksel-piksel","widthUnit":"width unit"},"stylescombo":{"label":"Stail","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Sila pilih huruf istimewa","toolbar":"Masukkan Huruf Istimewa"},"sourcedialog":{"toolbar":"Sumber","title":"Sumber"},"sourcearea":{"toolbar":"Sumber"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Buang Format"},"pastetext":{"button":"Tampal sebagai text biasa","title":"Tampal sebagai text biasa"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Tampal dari Word","toolbar":"Tampal dari Word"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Senarai tidak bernombor","numberedlist":"Senarai bernombor"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Jajaran Blok","center":"Jajaran Tengah","left":"Jajaran Kiri","right":"Jajaran Kanan"},"indent":{"indent":"Tambahkan Inden","outdent":"Kurangkan Inden"},"image2":{"alt":"Text Alternatif","btnUpload":"Hantar ke Server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info Imej","lockRatio":"Tetapkan Nisbah","menu":"Ciri-ciri Imej","pathName":"image","pathNameCaption":"caption","resetSize":"Saiz Set Semula","resizer":"Click and drag to resize","title":"Ciri-ciri Imej","uploadTab":"Muat Naik","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Masukkan Garisan Membujur"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Alamat","tag_div":"Perenggan (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Telah Diformat"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Salin","copyError":"Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).","cut":"Potong","cutError":"Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).","paste":"Tampal","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Tampal"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protokol","upload":"Muat Naik","uploadSubmit":"Hantar ke Server","image":"Gambar","flash":"Flash","form":"Borang","checkbox":"Checkbox","radio":"Butang Radio","textField":"Text Field","textarea":"Textarea","hiddenField":"Field Tersembunyi","button":"Butang","select":"Field Pilihan","imageButton":"Butang Bergambar","notSet":"<tidak di set>","id":"Id","name":"Nama","langDir":"Arah Tulisan","langDirLtr":"Kiri ke Kanan (LTR)","langDirRtl":"Kanan ke Kiri (RTL)","langCode":"Kod Bahasa","longDescr":"Butiran Panjang URL","cssClass":"Kelas-kelas Stylesheet","advisoryTitle":"Tajuk Makluman","cssStyle":"Stail","ok":"OK","cancel":"Batal","close":"Tutup","preview":"Prebiu","resize":"Resize","generalTab":"Umum","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Sasaran","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","styles":"Stail","cssClasses":"Kelas-kelas Stylesheet","width":"Lebar","height":"Tinggi","align":"Jajaran","alignLeft":"Kiri","alignRight":"Kanan","alignCenter":"Tengah","alignJustify":"Jajaran Blok","alignTop":"Atas","alignMiddle":"Pertengahan","alignBottom":"Bawah","alignNone":"None","invalidValue":"Nilai tidak sah.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/nb.js b/core/assets/vendor/ckeditor/lang/nb.js
index 0ec3741..b8a70ef 100644
--- a/core/assets/vendor/ckeditor/lang/nb.js
+++ b/core/assets/vendor/ckeditor/lang/nb.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['nb']={"widget":{"move":"Klikk og dra for å flytte","label":"%1 widget"},"undo":{"redo":"Gjør om","undo":"Angre"},"toolbar":{"toolbarCollapse":"Skjul verktøylinje","toolbarExpand":"Vis verktøylinje","toolbarGroups":{"document":"Dokument","clipboard":"Utklippstavle/Angre","editing":"Redigering","forms":"Skjema","basicstyles":"Basisstiler","paragraph":"Avsnitt","links":"Lenker","insert":"Innsetting","styles":"Stiler","colors":"Farger","tools":"Verktøy"},"toolbars":"Verktøylinjer for editor"},"table":{"border":"Rammestørrelse","caption":"Tittel","cell":{"menu":"Celle","insertBefore":"Sett inn celle før","insertAfter":"Sett inn celle etter","deleteCell":"Slett celler","merge":"Slå sammen celler","mergeRight":"Slå sammen høyre","mergeDown":"Slå sammen ned","splitHorizontal":"Del celle horisontalt","splitVertical":"Del celle vertikalt","title":"Celleegenskaper","cellType":"Celletype","rowSpan":"Radspenn","colSpan":"Kolonnespenn","wordWrap":"Tekstbrytning","hAlign":"Horisontal justering","vAlign":"Vertikal justering","alignBaseline":"Grunnlinje","bgColor":"Bakgrunnsfarge","borderColor":"Rammefarge","data":"Data","header":"Overskrift","yes":"Ja","no":"Nei","invalidWidth":"Cellebredde må være et tall.","invalidHeight":"Cellehøyde må være et tall.","invalidRowSpan":"Radspenn må være et heltall.","invalidColSpan":"Kolonnespenn må være et heltall.","chooseColor":"Velg"},"cellPad":"Cellepolstring","cellSpace":"Cellemarg","column":{"menu":"Kolonne","insertBefore":"Sett inn kolonne før","insertAfter":"Sett inn kolonne etter","deleteColumn":"Slett kolonner"},"columns":"Kolonner","deleteTable":"Slett tabell","headers":"Overskrifter","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første rad","invalidBorder":"Rammestørrelse må være et tall.","invalidCellPadding":"Cellepolstring må være et positivt tall.","invalidCellSpacing":"Cellemarg må være et positivt tall.","invalidCols":"Antall kolonner må være et tall større enn 0.","invalidHeight":"Tabellhøyde må være et tall.","invalidRows":"Antall rader må være et tall større enn 0.","invalidWidth":"Tabellbredde må være et tall.","menu":"Egenskaper for tabell","row":{"menu":"Rader","insertBefore":"Sett inn rad før","insertAfter":"Sett inn rad etter","deleteRow":"Slett rader"},"rows":"Rader","summary":"Sammendrag","title":"Egenskaper for tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"piksler","widthUnit":"Bredde-enhet"},"stylescombo":{"label":"Stil","panelTitle":"Stilformater","panelTitle1":"Blokkstiler","panelTitle2":"Inlinestiler","panelTitle3":"Objektstiler"},"specialchar":{"options":"Alternativer for spesialtegn","title":"Velg spesialtegn","toolbar":"Sett inn spesialtegn"},"sourcedialog":{"toolbar":"Kilde","title":"Kilde"},"sourcearea":{"toolbar":"Kilde"},"showblocks":{"toolbar":"Vis blokker"},"removeformat":{"toolbar":"Fjern formatering"},"pastetext":{"button":"Lim inn som ren tekst","title":"Lim inn som ren tekst"},"pastefromword":{"confirmCleanup":"Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?","error":"Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil","title":"Lim inn fra Word","toolbar":"Lim inn fra Word"},"maximize":{"maximize":"Maksimer","minimize":"Minimer"},"magicline":{"title":"Sett inn nytt avsnitt her"},"list":{"bulletedlist":"Legg til / fjern punktmerket liste","numberedlist":"Legg til / fjern nummerert liste"},"language":{"button":"Sett språk","remove":"Fjern språk"},"justify":{"block":"Blokkjuster","center":"Midtstill","left":"Venstrejuster","right":"Høyrejuster"},"indent":{"indent":"Øk innrykk","outdent":"Reduser innrykk"},"image2":{"alt":"Alternativ tekst","btnUpload":"Send det til serveren","captioned":"Bilde med bildetekst","captionPlaceholder":"Bildetekst","infoTab":"Bildeinformasjon","lockRatio":"Lås forhold","menu":"Bildeegenskaper","pathName":"bilde","pathNameCaption":"bildetekst","resetSize":"Tilbakestill størrelse","resizer":"Klikk og dra for å endre størrelse","title":"Bildeegenskaper","uploadTab":"Last opp","urlMissing":"Bildets adresse mangler."},"horizontalrule":{"toolbar":"Sett inn horisontal linje"},"format":{"label":"Format","panelTitle":"Avsnittsformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formatert"},"elementspath":{"eleLabel":"Element-sti","eleTitle":"%1 element"},"contextmenu":{"options":"Alternativer for høyreklikkmeny"},"clipboard":{"copy":"Kopier","copyError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+C).","cut":"Klipp ut","cutError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+X).","paste":"Lim inn","pasteArea":"Innlimingsområde","pasteMsg":"Vennligst lim inn i følgende boks med tastaturet (<strong>Ctrl/Cmd+V</strong>) og trykk <strong>OK</strong>.","securityMsg":"Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.","title":"Lim inn"},"button":{"selectedLabel":"%1 (Valgt)"},"blockquote":{"toolbar":"Blokksitat"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Gjennomstreking","subscript":"Senket skrift","superscript":"Hevet skrift","underline":"Understreking"},"about":{"copy":"Copyright &copy; $1. Alle rettigheter reservert.","dlgTitle":"Om CKEditor","help":"Se $1 for hjelp.","moreInfo":"For lisensieringsinformasjon, vennligst besøk vårt nettsted:","title":"Om CKEditor","userGuide":"CKEditors brukerveiledning"},"editor":"Rikteksteditor","editorPanel":"Panel for rikteksteditor","common":{"editorHelp":"Trykk ALT 0 for hjelp","browseServer":"Bla gjennom tjener","url":"URL","protocol":"Protokoll","upload":"Last opp","uploadSubmit":"Send det til serveren","image":"Bilde","flash":"Flash","form":"Skjema","checkbox":"Avmerkingsboks","radio":"Alternativknapp","textField":"Tekstboks","textarea":"Tekstområde","hiddenField":"Skjult felt","button":"Knapp","select":"Rullegardinliste","imageButton":"Bildeknapp","notSet":"<ikke satt>","id":"Id","name":"Navn","langDir":"Språkretning","langDirLtr":"Venstre til høyre (VTH)","langDirRtl":"Høyre til venstre (HTV)","langCode":"Språkkode","longDescr":"Utvidet beskrivelse","cssClass":"Stilarkklasser","advisoryTitle":"Tittel","cssStyle":"Stil","ok":"OK","cancel":"Avbryt","close":"Lukk","preview":"Forhåndsvis","resize":"Dra for å skalere","generalTab":"Generelt","advancedTab":"Avansert","validateNumberFailed":"Denne verdien er ikke et tall.","confirmNewPage":"Alle ulagrede endringer som er gjort i dette innholdet vil gå tapt. Er du sikker på at du vil laste en ny side?","confirmCancel":"Du har endret noen alternativer. Er du sikker på at du vil lukke dialogvinduet?","options":"Valg","target":"Mål","targetNew":"Nytt vindu (_blank)","targetTop":"Hele vindu (_top)","targetSelf":"Samme vindu (_self)","targetParent":"Foreldrevindu (_parent)","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","styles":"Stil","cssClasses":"Stilarkklasser","width":"Bredde","height":"Høyde","align":"Juster","alignLeft":"Venstre","alignRight":"Høyre","alignCenter":"Midtjuster","alignJustify":"Blokkjuster","alignTop":"Topp","alignMiddle":"Midten","alignBottom":"Bunn","alignNone":"Ingen","invalidValue":"Ugyldig verdi.","invalidHeight":"Høyde må være et tall.","invalidWidth":"Bredde må være et tall.","invalidCssLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).","invalidInlineStyle":"Verdi angitt for inline stil må bestå av en eller flere sett med formatet \"navn : verdi\", separert med semikolon","cssLengthTooltip":"Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, utilgjenglig</span>"}};
\ No newline at end of file
+CKEDITOR.lang['nb']={"widget":{"move":"Klikk og dra for å flytte"},"undo":{"redo":"Gjør om","undo":"Angre"},"toolbar":{"toolbarCollapse":"Skjul verktøylinje","toolbarExpand":"Vis verktøylinje","toolbarGroups":{"document":"Dokument","clipboard":"Utklippstavle/Angre","editing":"Redigering","forms":"Skjema","basicstyles":"Basisstiler","paragraph":"Avsnitt","links":"Lenker","insert":"Innsetting","styles":"Stiler","colors":"Farger","tools":"Verktøy"},"toolbars":"Verktøylinjer for editor"},"table":{"border":"Rammestørrelse","caption":"Tittel","cell":{"menu":"Celle","insertBefore":"Sett inn celle før","insertAfter":"Sett inn celle etter","deleteCell":"Slett celler","merge":"Slå sammen celler","mergeRight":"Slå sammen høyre","mergeDown":"Slå sammen ned","splitHorizontal":"Del celle horisontalt","splitVertical":"Del celle vertikalt","title":"Celleegenskaper","cellType":"Celletype","rowSpan":"Radspenn","colSpan":"Kolonnespenn","wordWrap":"Tekstbrytning","hAlign":"Horisontal justering","vAlign":"Vertikal justering","alignBaseline":"Grunnlinje","bgColor":"Bakgrunnsfarge","borderColor":"Rammefarge","data":"Data","header":"Overskrift","yes":"Ja","no":"Nei","invalidWidth":"Cellebredde må være et tall.","invalidHeight":"Cellehøyde må være et tall.","invalidRowSpan":"Radspenn må være et heltall.","invalidColSpan":"Kolonnespenn må være et heltall.","chooseColor":"Velg"},"cellPad":"Cellepolstring","cellSpace":"Cellemarg","column":{"menu":"Kolonne","insertBefore":"Sett inn kolonne før","insertAfter":"Sett inn kolonne etter","deleteColumn":"Slett kolonner"},"columns":"Kolonner","deleteTable":"Slett tabell","headers":"Overskrifter","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første rad","invalidBorder":"Rammestørrelse må være et tall.","invalidCellPadding":"Cellepolstring må være et positivt tall.","invalidCellSpacing":"Cellemarg må være et positivt tall.","invalidCols":"Antall kolonner må være et tall større enn 0.","invalidHeight":"Tabellhøyde må være et tall.","invalidRows":"Antall rader må være et tall større enn 0.","invalidWidth":"Tabellbredde må være et tall.","menu":"Egenskaper for tabell","row":{"menu":"Rader","insertBefore":"Sett inn rad før","insertAfter":"Sett inn rad etter","deleteRow":"Slett rader"},"rows":"Rader","summary":"Sammendrag","title":"Egenskaper for tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"piksler","widthUnit":"Bredde-enhet"},"stylescombo":{"label":"Stil","panelTitle":"Stilformater","panelTitle1":"Blokkstiler","panelTitle2":"Inlinestiler","panelTitle3":"Objektstiler"},"specialchar":{"options":"Alternativer for spesialtegn","title":"Velg spesialtegn","toolbar":"Sett inn spesialtegn"},"sourcedialog":{"toolbar":"Kilde","title":"Kilde"},"sourcearea":{"toolbar":"Kilde"},"showblocks":{"toolbar":"Vis blokker"},"removeformat":{"toolbar":"Fjern formatering"},"pastetext":{"button":"Lim inn som ren tekst","title":"Lim inn som ren tekst"},"pastefromword":{"confirmCleanup":"Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?","error":"Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil","title":"Lim inn fra Word","toolbar":"Lim inn fra Word"},"maximize":{"maximize":"Maksimer","minimize":"Minimer"},"magicline":{"title":"Sett inn nytt avsnitt her"},"list":{"bulletedlist":"Legg til / fjern punktmerket liste","numberedlist":"Legg til / fjern nummerert liste"},"language":{"button":"Sett språk","remove":"Fjern språk"},"justify":{"block":"Blokkjuster","center":"Midtstill","left":"Venstrejuster","right":"Høyrejuster"},"indent":{"indent":"Øk innrykk","outdent":"Reduser innrykk"},"image2":{"alt":"Alternativ tekst","btnUpload":"Send det til serveren","captioned":"Bilde med bildetekst","captionPlaceholder":"Bildetekst","infoTab":"Bildeinformasjon","lockRatio":"Lås forhold","menu":"Bildeegenskaper","pathName":"bilde","pathNameCaption":"bildetekst","resetSize":"Tilbakestill størrelse","resizer":"Klikk og dra for å endre størrelse","title":"Bildeegenskaper","uploadTab":"Last opp","urlMissing":"Bildets adresse mangler."},"horizontalrule":{"toolbar":"Sett inn horisontal linje"},"format":{"label":"Format","panelTitle":"Avsnittsformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formatert"},"elementspath":{"eleLabel":"Element-sti","eleTitle":"%1 element"},"contextmenu":{"options":"Alternativer for høyreklikkmeny"},"clipboard":{"copy":"Kopier","copyError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+C).","cut":"Klipp ut","cutError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+X).","paste":"Lim inn","pasteArea":"Innlimingsområde","pasteMsg":"Vennligst lim inn i følgende boks med tastaturet (<strong>Ctrl/Cmd+V</strong>) og trykk <strong>OK</strong>.","securityMsg":"Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.","title":"Lim inn"},"button":{"selectedLabel":"%1 (Valgt)"},"blockquote":{"toolbar":"Blokksitat"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Gjennomstreking","subscript":"Senket skrift","superscript":"Hevet skrift","underline":"Understreking"},"about":{"copy":"Copyright &copy; $1. Alle rettigheter reservert.","dlgTitle":"Om CKEditor","help":"Se $1 for hjelp.","moreInfo":"For lisensieringsinformasjon, vennligst besøk vårt nettsted:","title":"Om CKEditor","userGuide":"CKEditors brukerveiledning"},"editor":"Rikteksteditor","editorPanel":"Panel for rikteksteditor","common":{"editorHelp":"Trykk ALT 0 for hjelp","browseServer":"Bla gjennom tjener","url":"URL","protocol":"Protokoll","upload":"Last opp","uploadSubmit":"Send det til serveren","image":"Bilde","flash":"Flash","form":"Skjema","checkbox":"Avmerkingsboks","radio":"Alternativknapp","textField":"Tekstboks","textarea":"Tekstområde","hiddenField":"Skjult felt","button":"Knapp","select":"Rullegardinliste","imageButton":"Bildeknapp","notSet":"<ikke satt>","id":"Id","name":"Navn","langDir":"Språkretning","langDirLtr":"Venstre til høyre (VTH)","langDirRtl":"Høyre til venstre (HTV)","langCode":"Språkkode","longDescr":"Utvidet beskrivelse","cssClass":"Stilarkklasser","advisoryTitle":"Tittel","cssStyle":"Stil","ok":"OK","cancel":"Avbryt","close":"Lukk","preview":"Forhåndsvis","resize":"Dra for å skalere","generalTab":"Generelt","advancedTab":"Avansert","validateNumberFailed":"Denne verdien er ikke et tall.","confirmNewPage":"Alle ulagrede endringer som er gjort i dette innholdet vil gå tapt. Er du sikker på at du vil laste en ny side?","confirmCancel":"Du har endret noen alternativer. Er du sikker på at du vil lukke dialogvinduet?","options":"Valg","target":"Mål","targetNew":"Nytt vindu (_blank)","targetTop":"Hele vindu (_top)","targetSelf":"Samme vindu (_self)","targetParent":"Foreldrevindu (_parent)","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","styles":"Stil","cssClasses":"Stilarkklasser","width":"Bredde","height":"Høyde","align":"Juster","alignLeft":"Venstre","alignRight":"Høyre","alignCenter":"Midtjuster","alignJustify":"Blokkjuster","alignTop":"Topp","alignMiddle":"Midten","alignBottom":"Bunn","alignNone":"Ingen","invalidValue":"Ugyldig verdi.","invalidHeight":"Høyde må være et tall.","invalidWidth":"Bredde må være et tall.","invalidCssLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).","invalidInlineStyle":"Verdi angitt for inline stil må bestå av en eller flere sett med formatet \"navn : verdi\", separert med semikolon","cssLengthTooltip":"Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, utilgjenglig</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/nl.js b/core/assets/vendor/ckeditor/lang/nl.js
index f6c6358..6878330 100644
--- a/core/assets/vendor/ckeditor/lang/nl.js
+++ b/core/assets/vendor/ckeditor/lang/nl.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['nl']={"widget":{"move":"Klik en sleep om te verplaatsen","label":"%1 widget"},"undo":{"redo":"Opnieuw uitvoeren","undo":"Ongedaan maken"},"toolbar":{"toolbarCollapse":"Werkbalk inklappen","toolbarExpand":"Werkbalk uitklappen","toolbarGroups":{"document":"Document","clipboard":"Klembord/Ongedaan maken","editing":"Bewerken","forms":"Formulieren","basicstyles":"Basisstijlen","paragraph":"Paragraaf","links":"Links","insert":"Invoegen","styles":"Stijlen","colors":"Kleuren","tools":"Toepassingen"},"toolbars":"Werkbalken"},"table":{"border":"Randdikte","caption":"Titel","cell":{"menu":"Cel","insertBefore":"Voeg cel in voor","insertAfter":"Voeg cel in na","deleteCell":"Cellen verwijderen","merge":"Cellen samenvoegen","mergeRight":"Voeg samen naar rechts","mergeDown":"Voeg samen naar beneden","splitHorizontal":"Splits cel horizontaal","splitVertical":"Splits cel vertikaal","title":"Celeigenschappen","cellType":"Celtype","rowSpan":"Rijen samenvoegen","colSpan":"Kolommen samenvoegen","wordWrap":"Automatische terugloop","hAlign":"Horizontale uitlijning","vAlign":"Verticale uitlijning","alignBaseline":"Tekstregel","bgColor":"Achtergrondkleur","borderColor":"Randkleur","data":"Gegevens","header":"Kop","yes":"Ja","no":"Nee","invalidWidth":"De celbreedte moet een getal zijn.","invalidHeight":"De celhoogte moet een getal zijn.","invalidRowSpan":"Rijen samenvoegen moet een heel getal zijn.","invalidColSpan":"Kolommen samenvoegen moet een heel getal zijn.","chooseColor":"Kies"},"cellPad":"Celopvulling","cellSpace":"Celafstand","column":{"menu":"Kolom","insertBefore":"Voeg kolom in voor","insertAfter":"Voeg kolom in na","deleteColumn":"Kolommen verwijderen"},"columns":"Kolommen","deleteTable":"Tabel verwijderen","headers":"Koppen","headersBoth":"Beide","headersColumn":"Eerste kolom","headersNone":"Geen","headersRow":"Eerste rij","invalidBorder":"De randdikte moet een getal zijn.","invalidCellPadding":"Celopvulling moet een getal zijn.","invalidCellSpacing":"Celafstand moet een getal zijn.","invalidCols":"Het aantal kolommen moet een getal zijn groter dan 0.","invalidHeight":"De tabelhoogte moet een getal zijn.","invalidRows":"Het aantal rijen moet een getal zijn groter dan 0.","invalidWidth":"De tabelbreedte moet een getal zijn.","menu":"Tabeleigenschappen","row":{"menu":"Rij","insertBefore":"Voeg rij in voor","insertAfter":"Voeg rij in na","deleteRow":"Rijen verwijderen"},"rows":"Rijen","summary":"Samenvatting","title":"Tabeleigenschappen","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"eenheid breedte"},"stylescombo":{"label":"Stijl","panelTitle":"Opmaakstijlen","panelTitle1":"Blok stijlen","panelTitle2":"Inline stijlen","panelTitle3":"Object stijlen"},"specialchar":{"options":"Speciale tekens opties","title":"Selecteer speciaal teken","toolbar":"Speciaal teken invoegen"},"sourcedialog":{"toolbar":"Broncode","title":"Broncode"},"sourcearea":{"toolbar":"Broncode"},"showblocks":{"toolbar":"Toon blokken"},"removeformat":{"toolbar":"Opmaak verwijderen"},"pastetext":{"button":"Plakken als platte tekst","title":"Plakken als platte tekst"},"pastefromword":{"confirmCleanup":"De tekst die u wilt plakken lijkt gekopieerd te zijn vanuit Word. Wilt u de tekst opschonen voordat deze geplakt wordt?","error":"Het was niet mogelijk om de geplakte tekst op te schonen door een interne fout","title":"Plakken vanuit Word","toolbar":"Plakken vanuit Word"},"maximize":{"maximize":"Maximaliseren","minimize":"Minimaliseren"},"magicline":{"title":"Hier paragraaf invoeren"},"list":{"bulletedlist":"Opsomming invoegen","numberedlist":"Genummerde lijst invoegen"},"language":{"button":"Taal instellen","remove":"Taal verwijderen"},"justify":{"block":"Uitvullen","center":"Centreren","left":"Links uitlijnen","right":"Rechts uitlijnen"},"indent":{"indent":"Inspringing vergroten","outdent":"Inspringing verkleinen"},"image2":{"alt":"Alternatieve tekst","btnUpload":"Naar server verzenden","captioned":"Afbeelding met onderschrift","captionPlaceholder":"Onderschrift","infoTab":"Afbeeldingsinformatie","lockRatio":"Verhouding vergrendelen","menu":"Eigenschappen afbeelding","pathName":"afbeelding","pathNameCaption":"onderschrift","resetSize":"Afmetingen herstellen","resizer":"Klik en sleep om te herschalen","title":"Afbeeldingseigenschappen","uploadTab":"Uploaden","urlMissing":"De URL naar de afbeelding ontbreekt."},"horizontalrule":{"toolbar":"Horizontale lijn invoegen"},"format":{"label":"Opmaak","panelTitle":"Opmaak","tag_address":"Adres","tag_div":"Normaal (DIV)","tag_h1":"Kop 1","tag_h2":"Kop 2","tag_h3":"Kop 3","tag_h4":"Kop 4","tag_h5":"Kop 5","tag_h6":"Kop 6","tag_p":"Normaal","tag_pre":"Met opmaak"},"elementspath":{"eleLabel":"Elementenpad","eleTitle":"%1 element"},"contextmenu":{"options":"Contextmenu opties"},"clipboard":{"copy":"Kopiëren","copyError":"De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.","cut":"Knippen","cutError":"De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.","paste":"Plakken","pasteArea":"Plakgebied","pasteMsg":"Plak de tekst in het volgende vak gebruikmakend van uw toetsenbord (<strong>Ctrl/Cmd+V</strong>) en klik op OK.","securityMsg":"Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.","title":"Plakken"},"button":{"selectedLabel":"%1 (Geselecteerd)"},"blockquote":{"toolbar":"Citaatblok"},"basicstyles":{"bold":"Vet","italic":"Cursief","strike":"Doorhalen","subscript":"Subscript","superscript":"Superscript","underline":"Onderstrepen"},"about":{"copy":"Copyright &copy; $1. Alle rechten voorbehouden.","dlgTitle":"Over CKEditor","help":"Bekijk de $1 voor hulp.","moreInfo":"Bezoek onze website voor licentieinformatie:","title":"Over CKEditor","userGuide":"CKEditor gebruiksaanwijzing"},"editor":"Tekstverwerker","editorPanel":"Tekstverwerker beheerpaneel","common":{"editorHelp":"Druk ALT 0 voor hulp","browseServer":"Bladeren op server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Naar server verzenden","image":"Afbeelding","flash":"Flash","form":"Formulier","checkbox":"Selectievinkje","radio":"Keuzerondje","textField":"Tekstveld","textarea":"Tekstvak","hiddenField":"Verborgen veld","button":"Knop","select":"Selectieveld","imageButton":"Afbeeldingsknop","notSet":"<niet ingevuld>","id":"Id","name":"Naam","langDir":"Schrijfrichting","langDirLtr":"Links naar rechts (LTR)","langDirRtl":"Rechts naar links (RTL)","langCode":"Taalcode","longDescr":"Lange URL-omschrijving","cssClass":"Stylesheet-klassen","advisoryTitle":"Adviserende titel","cssStyle":"Stijl","ok":"OK","cancel":"Annuleren","close":"Sluiten","preview":"Voorbeeld","resize":"Sleep om te herschalen","generalTab":"Algemeen","advancedTab":"Geavanceerd","validateNumberFailed":"Deze waarde is geen geldig getal.","confirmNewPage":"Alle aangebrachte wijzigingen gaan verloren. Weet u zeker dat u een nieuwe pagina wilt openen?","confirmCancel":"Enkele opties zijn gewijzigd. Weet u zeker dat u dit dialoogvenster wilt sluiten?","options":"Opties","target":"Doelvenster","targetNew":"Nieuw venster (_blank)","targetTop":"Hele venster (_top)","targetSelf":"Zelfde venster (_self)","targetParent":"Origineel venster (_parent)","langDirLTR":"Links naar rechts (LTR)","langDirRTL":"Rechts naar links (RTL)","styles":"Stijl","cssClasses":"Stylesheet-klassen","width":"Breedte","height":"Hoogte","align":"Uitlijning","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Centreren","alignJustify":"Uitvullen","alignTop":"Boven","alignMiddle":"Midden","alignBottom":"Onder","alignNone":"Geen","invalidValue":"Ongeldige waarde.","invalidHeight":"De hoogte moet een getal zijn.","invalidWidth":"De breedte moet een getal zijn.","invalidCssLength":"Waarde in veld \"%1\" moet een positief nummer zijn, met of zonder een geldige CSS meeteenheid (px, %, in, cm, mm, em, ex, pt of pc).","invalidHtmlLength":"Waarde in veld \"%1\" moet een positief nummer zijn, met of zonder een geldige HTML meeteenheid (px of %).","invalidInlineStyle":"Waarde voor de online stijl moet bestaan uit een of meerdere tupels met het formaat \"naam : waarde\", gescheiden door puntkomma's.","cssLengthTooltip":"Geef een nummer in voor een waarde in pixels of geef een nummer in met een geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","unavailable":"%1<span class=\"cke_accessibility\">, niet beschikbaar</span>"}};
\ No newline at end of file
+CKEDITOR.lang['nl']={"widget":{"move":"Klik en sleep om te verplaatsen"},"undo":{"redo":"Opnieuw uitvoeren","undo":"Ongedaan maken"},"toolbar":{"toolbarCollapse":"Werkbalk inklappen","toolbarExpand":"Werkbalk uitklappen","toolbarGroups":{"document":"Document","clipboard":"Klembord/Ongedaan maken","editing":"Bewerken","forms":"Formulieren","basicstyles":"Basisstijlen","paragraph":"Paragraaf","links":"Links","insert":"Invoegen","styles":"Stijlen","colors":"Kleuren","tools":"Toepassingen"},"toolbars":"Werkbalken"},"table":{"border":"Randdikte","caption":"Titel","cell":{"menu":"Cel","insertBefore":"Voeg cel in voor","insertAfter":"Voeg cel in na","deleteCell":"Cellen verwijderen","merge":"Cellen samenvoegen","mergeRight":"Voeg samen naar rechts","mergeDown":"Voeg samen naar beneden","splitHorizontal":"Splits cel horizontaal","splitVertical":"Splits cel vertikaal","title":"Celeigenschappen","cellType":"Celtype","rowSpan":"Rijen samenvoegen","colSpan":"Kolommen samenvoegen","wordWrap":"Automatische terugloop","hAlign":"Horizontale uitlijning","vAlign":"Verticale uitlijning","alignBaseline":"Tekstregel","bgColor":"Achtergrondkleur","borderColor":"Randkleur","data":"Gegevens","header":"Kop","yes":"Ja","no":"Nee","invalidWidth":"De celbreedte moet een getal zijn.","invalidHeight":"De celhoogte moet een getal zijn.","invalidRowSpan":"Rijen samenvoegen moet een heel getal zijn.","invalidColSpan":"Kolommen samenvoegen moet een heel getal zijn.","chooseColor":"Kies"},"cellPad":"Celopvulling","cellSpace":"Celafstand","column":{"menu":"Kolom","insertBefore":"Voeg kolom in voor","insertAfter":"Voeg kolom in na","deleteColumn":"Kolommen verwijderen"},"columns":"Kolommen","deleteTable":"Tabel verwijderen","headers":"Koppen","headersBoth":"Beide","headersColumn":"Eerste kolom","headersNone":"Geen","headersRow":"Eerste rij","invalidBorder":"De randdikte moet een getal zijn.","invalidCellPadding":"Celopvulling moet een getal zijn.","invalidCellSpacing":"Celafstand moet een getal zijn.","invalidCols":"Het aantal kolommen moet een getal zijn groter dan 0.","invalidHeight":"De tabelhoogte moet een getal zijn.","invalidRows":"Het aantal rijen moet een getal zijn groter dan 0.","invalidWidth":"De tabelbreedte moet een getal zijn.","menu":"Tabeleigenschappen","row":{"menu":"Rij","insertBefore":"Voeg rij in voor","insertAfter":"Voeg rij in na","deleteRow":"Rijen verwijderen"},"rows":"Rijen","summary":"Samenvatting","title":"Tabeleigenschappen","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"eenheid breedte"},"stylescombo":{"label":"Stijl","panelTitle":"Opmaakstijlen","panelTitle1":"Blok stijlen","panelTitle2":"Inline stijlen","panelTitle3":"Object stijlen"},"specialchar":{"options":"Speciale tekens opties","title":"Selecteer speciaal teken","toolbar":"Speciaal teken invoegen"},"sourcedialog":{"toolbar":"Broncode","title":"Broncode"},"sourcearea":{"toolbar":"Broncode"},"showblocks":{"toolbar":"Toon blokken"},"removeformat":{"toolbar":"Opmaak verwijderen"},"pastetext":{"button":"Plakken als platte tekst","title":"Plakken als platte tekst"},"pastefromword":{"confirmCleanup":"De tekst die u wilt plakken lijkt gekopieerd te zijn vanuit Word. Wilt u de tekst opschonen voordat deze geplakt wordt?","error":"Het was niet mogelijk om de geplakte tekst op te schonen door een interne fout","title":"Plakken vanuit Word","toolbar":"Plakken vanuit Word"},"maximize":{"maximize":"Maximaliseren","minimize":"Minimaliseren"},"magicline":{"title":"Hier paragraaf invoeren"},"list":{"bulletedlist":"Opsomming invoegen","numberedlist":"Genummerde lijst invoegen"},"language":{"button":"Taal instellen","remove":"Taal verwijderen"},"justify":{"block":"Uitvullen","center":"Centreren","left":"Links uitlijnen","right":"Rechts uitlijnen"},"indent":{"indent":"Inspringing vergroten","outdent":"Inspringing verkleinen"},"image2":{"alt":"Alternatieve tekst","btnUpload":"Naar server verzenden","captioned":"Afbeelding met onderschrift","captionPlaceholder":"Onderschrift","infoTab":"Afbeeldingsinformatie","lockRatio":"Verhouding vergrendelen","menu":"Eigenschappen afbeelding","pathName":"afbeelding","pathNameCaption":"onderschrift","resetSize":"Afmetingen herstellen","resizer":"Klik en sleep om te herschalen","title":"Afbeeldingseigenschappen","uploadTab":"Uploaden","urlMissing":"De URL naar de afbeelding ontbreekt."},"horizontalrule":{"toolbar":"Horizontale lijn invoegen"},"format":{"label":"Opmaak","panelTitle":"Opmaak","tag_address":"Adres","tag_div":"Normaal (DIV)","tag_h1":"Kop 1","tag_h2":"Kop 2","tag_h3":"Kop 3","tag_h4":"Kop 4","tag_h5":"Kop 5","tag_h6":"Kop 6","tag_p":"Normaal","tag_pre":"Met opmaak"},"elementspath":{"eleLabel":"Elementenpad","eleTitle":"%1 element"},"contextmenu":{"options":"Contextmenu opties"},"clipboard":{"copy":"Kopiëren","copyError":"De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.","cut":"Knippen","cutError":"De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.","paste":"Plakken","pasteArea":"Plakgebied","pasteMsg":"Plak de tekst in het volgende vak gebruikmakend van uw toetsenbord (<strong>Ctrl/Cmd+V</strong>) en klik op OK.","securityMsg":"Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.","title":"Plakken"},"button":{"selectedLabel":"%1 (Geselecteerd)"},"blockquote":{"toolbar":"Citaatblok"},"basicstyles":{"bold":"Vet","italic":"Cursief","strike":"Doorhalen","subscript":"Subscript","superscript":"Superscript","underline":"Onderstrepen"},"about":{"copy":"Copyright &copy; $1. Alle rechten voorbehouden.","dlgTitle":"Over CKEditor","help":"Bekijk de $1 voor hulp.","moreInfo":"Bezoek onze website voor licentieinformatie:","title":"Over CKEditor","userGuide":"CKEditor gebruiksaanwijzing"},"editor":"Tekstverwerker","editorPanel":"Tekstverwerker beheerpaneel","common":{"editorHelp":"Druk ALT 0 voor hulp","browseServer":"Bladeren op server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Naar server verzenden","image":"Afbeelding","flash":"Flash","form":"Formulier","checkbox":"Selectievinkje","radio":"Keuzerondje","textField":"Tekstveld","textarea":"Tekstvak","hiddenField":"Verborgen veld","button":"Knop","select":"Selectieveld","imageButton":"Afbeeldingsknop","notSet":"<niet ingevuld>","id":"Id","name":"Naam","langDir":"Schrijfrichting","langDirLtr":"Links naar rechts (LTR)","langDirRtl":"Rechts naar links (RTL)","langCode":"Taalcode","longDescr":"Lange URL-omschrijving","cssClass":"Stylesheet-klassen","advisoryTitle":"Adviserende titel","cssStyle":"Stijl","ok":"OK","cancel":"Annuleren","close":"Sluiten","preview":"Voorbeeld","resize":"Sleep om te herschalen","generalTab":"Algemeen","advancedTab":"Geavanceerd","validateNumberFailed":"Deze waarde is geen geldig getal.","confirmNewPage":"Alle aangebrachte wijzigingen gaan verloren. Weet u zeker dat u een nieuwe pagina wilt openen?","confirmCancel":"Enkele opties zijn gewijzigd. Weet u zeker dat u dit dialoogvenster wilt sluiten?","options":"Opties","target":"Doelvenster","targetNew":"Nieuw venster (_blank)","targetTop":"Hele venster (_top)","targetSelf":"Zelfde venster (_self)","targetParent":"Origineel venster (_parent)","langDirLTR":"Links naar rechts (LTR)","langDirRTL":"Rechts naar links (RTL)","styles":"Stijl","cssClasses":"Stylesheet-klassen","width":"Breedte","height":"Hoogte","align":"Uitlijning","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Centreren","alignJustify":"Uitvullen","alignTop":"Boven","alignMiddle":"Midden","alignBottom":"Onder","alignNone":"Geen","invalidValue":"Ongeldige waarde.","invalidHeight":"De hoogte moet een getal zijn.","invalidWidth":"De breedte moet een getal zijn.","invalidCssLength":"Waarde in veld \"%1\" moet een positief nummer zijn, met of zonder een geldige CSS meeteenheid (px, %, in, cm, mm, em, ex, pt of pc).","invalidHtmlLength":"Waarde in veld \"%1\" moet een positief nummer zijn, met of zonder een geldige HTML meeteenheid (px of %).","invalidInlineStyle":"Waarde voor de online stijl moet bestaan uit een of meerdere tupels met het formaat \"naam : waarde\", gescheiden door puntkomma's.","cssLengthTooltip":"Geef een nummer in voor een waarde in pixels of geef een nummer in met een geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","unavailable":"%1<span class=\"cke_accessibility\">, niet beschikbaar</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/no.js b/core/assets/vendor/ckeditor/lang/no.js
index f835ab1..015f2b3 100644
--- a/core/assets/vendor/ckeditor/lang/no.js
+++ b/core/assets/vendor/ckeditor/lang/no.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['no']={"widget":{"move":"Klikk og dra for å flytte","label":"%1 widget"},"undo":{"redo":"Gjør om","undo":"Angre"},"toolbar":{"toolbarCollapse":"Skjul verktøylinje","toolbarExpand":"Vis verktøylinje","toolbarGroups":{"document":"Dokument","clipboard":"Utklippstavle/Angre","editing":"Redigering","forms":"Skjema","basicstyles":"Basisstiler","paragraph":"Avsnitt","links":"Lenker","insert":"Innsetting","styles":"Stiler","colors":"Farger","tools":"Verktøy"},"toolbars":"Verktøylinjer for editor"},"table":{"border":"Rammestørrelse","caption":"Tittel","cell":{"menu":"Celle","insertBefore":"Sett inn celle før","insertAfter":"Sett inn celle etter","deleteCell":"Slett celler","merge":"Slå sammen celler","mergeRight":"Slå sammen høyre","mergeDown":"Slå sammen ned","splitHorizontal":"Del celle horisontalt","splitVertical":"Del celle vertikalt","title":"Celleegenskaper","cellType":"Celletype","rowSpan":"Radspenn","colSpan":"Kolonnespenn","wordWrap":"Tekstbrytning","hAlign":"Horisontal justering","vAlign":"Vertikal justering","alignBaseline":"Grunnlinje","bgColor":"Bakgrunnsfarge","borderColor":"Rammefarge","data":"Data","header":"Overskrift","yes":"Ja","no":"Nei","invalidWidth":"Cellebredde må være et tall.","invalidHeight":"Cellehøyde må være et tall.","invalidRowSpan":"Radspenn må være et heltall.","invalidColSpan":"Kolonnespenn må være et heltall.","chooseColor":"Velg"},"cellPad":"Cellepolstring","cellSpace":"Cellemarg","column":{"menu":"Kolonne","insertBefore":"Sett inn kolonne før","insertAfter":"Sett inn kolonne etter","deleteColumn":"Slett kolonner"},"columns":"Kolonner","deleteTable":"Slett tabell","headers":"Overskrifter","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første rad","invalidBorder":"Rammestørrelse må være et tall.","invalidCellPadding":"Cellepolstring må være et positivt tall.","invalidCellSpacing":"Cellemarg må være et positivt tall.","invalidCols":"Antall kolonner må være et tall større enn 0.","invalidHeight":"Tabellhøyde må være et tall.","invalidRows":"Antall rader må være et tall større enn 0.","invalidWidth":"Tabellbredde må være et tall.","menu":"Egenskaper for tabell","row":{"menu":"Rader","insertBefore":"Sett inn rad før","insertAfter":"Sett inn rad etter","deleteRow":"Slett rader"},"rows":"Rader","summary":"Sammendrag","title":"Egenskaper for tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"piksler","widthUnit":"Bredde-enhet"},"stylescombo":{"label":"Stil","panelTitle":"Stilformater","panelTitle1":"Blokkstiler","panelTitle2":"Inlinestiler","panelTitle3":"Objektstiler"},"specialchar":{"options":"Alternativer for spesialtegn","title":"Velg spesialtegn","toolbar":"Sett inn spesialtegn"},"sourcedialog":{"toolbar":"Kilde","title":"Kilde"},"sourcearea":{"toolbar":"Kilde"},"showblocks":{"toolbar":"Vis blokker"},"removeformat":{"toolbar":"Fjern formatering"},"pastetext":{"button":"Lim inn som ren tekst","title":"Lim inn som ren tekst"},"pastefromword":{"confirmCleanup":"Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?","error":"Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil","title":"Lim inn fra Word","toolbar":"Lim inn fra Word"},"maximize":{"maximize":"Maksimer","minimize":"Minimer"},"magicline":{"title":"Sett inn nytt avsnitt her"},"list":{"bulletedlist":"Legg til/Fjern punktmerket liste","numberedlist":"Legg til/Fjern nummerert liste"},"language":{"button":"Sett språk","remove":"Fjern språk"},"justify":{"block":"Blokkjuster","center":"Midtstill","left":"Venstrejuster","right":"Høyrejuster"},"indent":{"indent":"Øk innrykk","outdent":"Reduser innrykk"},"image2":{"alt":"Alternativ tekst","btnUpload":"Send det til serveren","captioned":"Bilde med bildetekst","captionPlaceholder":"Caption","infoTab":"Bildeinformasjon","lockRatio":"Lås forhold","menu":"Bildeegenskaper","pathName":"bilde","pathNameCaption":"bildetekst","resetSize":"Tilbakestill størrelse","resizer":"Klikk og dra for å endre størrelse","title":"Bildeegenskaper","uploadTab":"Last opp","urlMissing":"Bildets adresse mangler."},"horizontalrule":{"toolbar":"Sett inn horisontal linje"},"format":{"label":"Format","panelTitle":"Avsnittsformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formatert"},"elementspath":{"eleLabel":"Element-sti","eleTitle":"%1 element"},"contextmenu":{"options":"Alternativer for høyreklikkmeny"},"clipboard":{"copy":"Kopier","copyError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).","cut":"Klipp ut","cutError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).","paste":"Lim inn","pasteArea":"Innlimingsområde","pasteMsg":"Vennligst lim inn i følgende boks med tastaturet (<STRONG>Ctrl/Cmd+V</STRONG>) og trykk <STRONG>OK</STRONG>.","securityMsg":"Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.","title":"Lim inn"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Blokksitat"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Gjennomstreking","subscript":"Senket skrift","superscript":"Hevet skrift","underline":"Understreking"},"about":{"copy":"Copyright &copy; $1. Alle rettigheter reservert.","dlgTitle":"Om CKEditor","help":"Se $1 for hjelp.","moreInfo":"For lisensieringsinformasjon, vennligst besøk vårt nettsted:","title":"Om CKEditor","userGuide":"CKEditors brukerveiledning"},"editor":"Rikteksteditor","editorPanel":"Panel for rikteksteditor","common":{"editorHelp":"Trykk ALT 0 for hjelp","browseServer":"Bla igjennom server","url":"URL","protocol":"Protokoll","upload":"Last opp","uploadSubmit":"Send det til serveren","image":"Bilde","flash":"Flash","form":"Skjema","checkbox":"Avmerkingsboks","radio":"Alternativknapp","textField":"Tekstboks","textarea":"Tekstområde","hiddenField":"Skjult felt","button":"Knapp","select":"Rullegardinliste","imageButton":"Bildeknapp","notSet":"<ikke satt>","id":"Id","name":"Navn","langDir":"Språkretning","langDirLtr":"Venstre til høyre (VTH)","langDirRtl":"Høyre til venstre (HTV)","langCode":"Språkkode","longDescr":"Utvidet beskrivelse","cssClass":"Stilarkklasser","advisoryTitle":"Tittel","cssStyle":"Stil","ok":"OK","cancel":"Avbryt","close":"Lukk","preview":"Forhåndsvis","resize":"Dra for å skalere","generalTab":"Generelt","advancedTab":"Avansert","validateNumberFailed":"Denne verdien er ikke et tall.","confirmNewPage":"Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?","confirmCancel":"Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?","options":"Valg","target":"Mål","targetNew":"Nytt vindu (_blank)","targetTop":"Hele vindu (_top)","targetSelf":"Samme vindu (_self)","targetParent":"Foreldrevindu (_parent)","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","styles":"Stil","cssClasses":"Stilarkklasser","width":"Bredde","height":"Høyde","align":"Juster","alignLeft":"Venstre","alignRight":"Høyre","alignCenter":"Midtjuster","alignJustify":"Blokkjuster","alignTop":"Topp","alignMiddle":"Midten","alignBottom":"Bunn","alignNone":"Ingen","invalidValue":"Ugyldig verdi.","invalidHeight":"Høyde må være et tall.","invalidWidth":"Bredde må være et tall.","invalidCssLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).","invalidInlineStyle":"Verdi angitt for inline stil må bestå av en eller flere sett med formatet \"navn : verdi\", separert med semikolon","cssLengthTooltip":"Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, utilgjenglig</span>"}};
\ No newline at end of file
+CKEDITOR.lang['no']={"widget":{"move":"Klikk og dra for å flytte"},"undo":{"redo":"Gjør om","undo":"Angre"},"toolbar":{"toolbarCollapse":"Skjul verktøylinje","toolbarExpand":"Vis verktøylinje","toolbarGroups":{"document":"Dokument","clipboard":"Utklippstavle/Angre","editing":"Redigering","forms":"Skjema","basicstyles":"Basisstiler","paragraph":"Avsnitt","links":"Lenker","insert":"Innsetting","styles":"Stiler","colors":"Farger","tools":"Verktøy"},"toolbars":"Verktøylinjer for editor"},"table":{"border":"Rammestørrelse","caption":"Tittel","cell":{"menu":"Celle","insertBefore":"Sett inn celle før","insertAfter":"Sett inn celle etter","deleteCell":"Slett celler","merge":"Slå sammen celler","mergeRight":"Slå sammen høyre","mergeDown":"Slå sammen ned","splitHorizontal":"Del celle horisontalt","splitVertical":"Del celle vertikalt","title":"Celleegenskaper","cellType":"Celletype","rowSpan":"Radspenn","colSpan":"Kolonnespenn","wordWrap":"Tekstbrytning","hAlign":"Horisontal justering","vAlign":"Vertikal justering","alignBaseline":"Grunnlinje","bgColor":"Bakgrunnsfarge","borderColor":"Rammefarge","data":"Data","header":"Overskrift","yes":"Ja","no":"Nei","invalidWidth":"Cellebredde må være et tall.","invalidHeight":"Cellehøyde må være et tall.","invalidRowSpan":"Radspenn må være et heltall.","invalidColSpan":"Kolonnespenn må være et heltall.","chooseColor":"Velg"},"cellPad":"Cellepolstring","cellSpace":"Cellemarg","column":{"menu":"Kolonne","insertBefore":"Sett inn kolonne før","insertAfter":"Sett inn kolonne etter","deleteColumn":"Slett kolonner"},"columns":"Kolonner","deleteTable":"Slett tabell","headers":"Overskrifter","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første rad","invalidBorder":"Rammestørrelse må være et tall.","invalidCellPadding":"Cellepolstring må være et positivt tall.","invalidCellSpacing":"Cellemarg må være et positivt tall.","invalidCols":"Antall kolonner må være et tall større enn 0.","invalidHeight":"Tabellhøyde må være et tall.","invalidRows":"Antall rader må være et tall større enn 0.","invalidWidth":"Tabellbredde må være et tall.","menu":"Egenskaper for tabell","row":{"menu":"Rader","insertBefore":"Sett inn rad før","insertAfter":"Sett inn rad etter","deleteRow":"Slett rader"},"rows":"Rader","summary":"Sammendrag","title":"Egenskaper for tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"piksler","widthUnit":"Bredde-enhet"},"stylescombo":{"label":"Stil","panelTitle":"Stilformater","panelTitle1":"Blokkstiler","panelTitle2":"Inlinestiler","panelTitle3":"Objektstiler"},"specialchar":{"options":"Alternativer for spesialtegn","title":"Velg spesialtegn","toolbar":"Sett inn spesialtegn"},"sourcedialog":{"toolbar":"Kilde","title":"Kilde"},"sourcearea":{"toolbar":"Kilde"},"showblocks":{"toolbar":"Vis blokker"},"removeformat":{"toolbar":"Fjern formatering"},"pastetext":{"button":"Lim inn som ren tekst","title":"Lim inn som ren tekst"},"pastefromword":{"confirmCleanup":"Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?","error":"Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil","title":"Lim inn fra Word","toolbar":"Lim inn fra Word"},"maximize":{"maximize":"Maksimer","minimize":"Minimer"},"magicline":{"title":"Sett inn nytt avsnitt her"},"list":{"bulletedlist":"Legg til/Fjern punktmerket liste","numberedlist":"Legg til/Fjern nummerert liste"},"language":{"button":"Sett språk","remove":"Fjern språk"},"justify":{"block":"Blokkjuster","center":"Midtstill","left":"Venstrejuster","right":"Høyrejuster"},"indent":{"indent":"Øk innrykk","outdent":"Reduser innrykk"},"image2":{"alt":"Alternativ tekst","btnUpload":"Send det til serveren","captioned":"Bilde med bildetekst","captionPlaceholder":"Caption","infoTab":"Bildeinformasjon","lockRatio":"Lås forhold","menu":"Bildeegenskaper","pathName":"bilde","pathNameCaption":"bildetekst","resetSize":"Tilbakestill størrelse","resizer":"Klikk og dra for å endre størrelse","title":"Bildeegenskaper","uploadTab":"Last opp","urlMissing":"Bildets adresse mangler."},"horizontalrule":{"toolbar":"Sett inn horisontal linje"},"format":{"label":"Format","panelTitle":"Avsnittsformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formatert"},"elementspath":{"eleLabel":"Element-sti","eleTitle":"%1 element"},"contextmenu":{"options":"Alternativer for høyreklikkmeny"},"clipboard":{"copy":"Kopier","copyError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).","cut":"Klipp ut","cutError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).","paste":"Lim inn","pasteArea":"Innlimingsområde","pasteMsg":"Vennligst lim inn i følgende boks med tastaturet (<STRONG>Ctrl/Cmd+V</STRONG>) og trykk <STRONG>OK</STRONG>.","securityMsg":"Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.","title":"Lim inn"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Blokksitat"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Gjennomstreking","subscript":"Senket skrift","superscript":"Hevet skrift","underline":"Understreking"},"about":{"copy":"Copyright &copy; $1. Alle rettigheter reservert.","dlgTitle":"Om CKEditor","help":"Se $1 for hjelp.","moreInfo":"For lisensieringsinformasjon, vennligst besøk vårt nettsted:","title":"Om CKEditor","userGuide":"CKEditors brukerveiledning"},"editor":"Rikteksteditor","editorPanel":"Panel for rikteksteditor","common":{"editorHelp":"Trykk ALT 0 for hjelp","browseServer":"Bla igjennom server","url":"URL","protocol":"Protokoll","upload":"Last opp","uploadSubmit":"Send det til serveren","image":"Bilde","flash":"Flash","form":"Skjema","checkbox":"Avmerkingsboks","radio":"Alternativknapp","textField":"Tekstboks","textarea":"Tekstområde","hiddenField":"Skjult felt","button":"Knapp","select":"Rullegardinliste","imageButton":"Bildeknapp","notSet":"<ikke satt>","id":"Id","name":"Navn","langDir":"Språkretning","langDirLtr":"Venstre til høyre (VTH)","langDirRtl":"Høyre til venstre (HTV)","langCode":"Språkkode","longDescr":"Utvidet beskrivelse","cssClass":"Stilarkklasser","advisoryTitle":"Tittel","cssStyle":"Stil","ok":"OK","cancel":"Avbryt","close":"Lukk","preview":"Forhåndsvis","resize":"Dra for å skalere","generalTab":"Generelt","advancedTab":"Avansert","validateNumberFailed":"Denne verdien er ikke et tall.","confirmNewPage":"Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?","confirmCancel":"Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?","options":"Valg","target":"Mål","targetNew":"Nytt vindu (_blank)","targetTop":"Hele vindu (_top)","targetSelf":"Samme vindu (_self)","targetParent":"Foreldrevindu (_parent)","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","styles":"Stil","cssClasses":"Stilarkklasser","width":"Bredde","height":"Høyde","align":"Juster","alignLeft":"Venstre","alignRight":"Høyre","alignCenter":"Midtjuster","alignJustify":"Blokkjuster","alignTop":"Topp","alignMiddle":"Midten","alignBottom":"Bunn","alignNone":"Ingen","invalidValue":"Ugyldig verdi.","invalidHeight":"Høyde må være et tall.","invalidWidth":"Bredde må være et tall.","invalidCssLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).","invalidInlineStyle":"Verdi angitt for inline stil må bestå av en eller flere sett med formatet \"navn : verdi\", separert med semikolon","cssLengthTooltip":"Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, utilgjenglig</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/pl.js b/core/assets/vendor/ckeditor/lang/pl.js
index 7ceef34..69b3e21 100644
--- a/core/assets/vendor/ckeditor/lang/pl.js
+++ b/core/assets/vendor/ckeditor/lang/pl.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['pl']={"widget":{"move":"Kliknij i przeciągnij, by przenieść.","label":"Widget %1"},"undo":{"redo":"Ponów","undo":"Cofnij"},"toolbar":{"toolbarCollapse":"Zwiń pasek narzędzi","toolbarExpand":"Rozwiń pasek narzędzi","toolbarGroups":{"document":"Dokument","clipboard":"Schowek/Wstecz","editing":"Edycja","forms":"Formularze","basicstyles":"Style podstawowe","paragraph":"Akapit","links":"Hiperłącza","insert":"Wstawianie","styles":"Style","colors":"Kolory","tools":"Narzędzia"},"toolbars":"Paski narzędzi edytora"},"table":{"border":"Grubość obramowania","caption":"Tytuł","cell":{"menu":"Komórka","insertBefore":"Wstaw komórkę z lewej","insertAfter":"Wstaw komórkę z prawej","deleteCell":"Usuń komórki","merge":"Połącz komórki","mergeRight":"Połącz z komórką z prawej","mergeDown":"Połącz z komórką poniżej","splitHorizontal":"Podziel komórkę poziomo","splitVertical":"Podziel komórkę pionowo","title":"Właściwości komórki","cellType":"Typ komórki","rowSpan":"Scalenie wierszy","colSpan":"Scalenie komórek","wordWrap":"Zawijanie słów","hAlign":"Wyrównanie poziome","vAlign":"Wyrównanie pionowe","alignBaseline":"Linia bazowa","bgColor":"Kolor tła","borderColor":"Kolor obramowania","data":"Dane","header":"Nagłówek","yes":"Tak","no":"Nie","invalidWidth":"Szerokość komórki musi być liczbą.","invalidHeight":"Wysokość komórki musi być liczbą.","invalidRowSpan":"Scalenie wierszy musi być liczbą całkowitą.","invalidColSpan":"Scalenie komórek musi być liczbą całkowitą.","chooseColor":"Wybierz"},"cellPad":"Dopełnienie komórek","cellSpace":"Odstęp pomiędzy komórkami","column":{"menu":"Kolumna","insertBefore":"Wstaw kolumnę z lewej","insertAfter":"Wstaw kolumnę z prawej","deleteColumn":"Usuń kolumny"},"columns":"Liczba kolumn","deleteTable":"Usuń tabelę","headers":"Nagłówki","headersBoth":"Oba","headersColumn":"Pierwsza kolumna","headersNone":"Brak","headersRow":"Pierwszy wiersz","invalidBorder":"Wartość obramowania musi być liczbą.","invalidCellPadding":"Dopełnienie komórek musi być liczbą dodatnią.","invalidCellSpacing":"Odstęp pomiędzy komórkami musi być liczbą dodatnią.","invalidCols":"Liczba kolumn musi być większa niż 0.","invalidHeight":"Wysokość tabeli musi być liczbą.","invalidRows":"Liczba wierszy musi być większa niż 0.","invalidWidth":"Szerokość tabeli musi być liczbą.","menu":"Właściwości tabeli","row":{"menu":"Wiersz","insertBefore":"Wstaw wiersz powyżej","insertAfter":"Wstaw wiersz poniżej","deleteRow":"Usuń wiersze"},"rows":"Liczba wierszy","summary":"Podsumowanie","title":"Właściwości tabeli","toolbar":"Tabela","widthPc":"%","widthPx":"piksele","widthUnit":"jednostka szerokości"},"stylescombo":{"label":"Styl","panelTitle":"Style formatujące","panelTitle1":"Style blokowe","panelTitle2":"Style liniowe","panelTitle3":"Style obiektowe"},"specialchar":{"options":"Opcje znaków specjalnych","title":"Wybierz znak specjalny","toolbar":"Wstaw znak specjalny"},"sourcedialog":{"toolbar":"Źródło dokumentu","title":"Źródło dokumentu"},"sourcearea":{"toolbar":"Źródło dokumentu"},"showblocks":{"toolbar":"Pokaż bloki"},"removeformat":{"toolbar":"Usuń formatowanie"},"pastetext":{"button":"Wklej jako czysty tekst","title":"Wklej jako czysty tekst"},"pastefromword":{"confirmCleanup":"Tekst, który chcesz wkleić, prawdopodobnie pochodzi z programu Microsoft Word. Czy chcesz go wyczyścić przed wklejeniem?","error":"Wyczyszczenie wklejonych danych nie było możliwe z powodu wystąpienia błędu.","title":"Wklej z programu MS Word","toolbar":"Wklej z programu MS Word"},"maximize":{"maximize":"Maksymalizuj","minimize":"Minimalizuj"},"magicline":{"title":"Wstaw nowy akapit"},"list":{"bulletedlist":"Lista wypunktowana","numberedlist":"Lista numerowana"},"language":{"button":"Ustaw język","remove":"Usuń język"},"justify":{"block":"Wyjustuj","center":"Wyśrodkuj","left":"Wyrównaj do lewej","right":"Wyrównaj do prawej"},"indent":{"indent":"Zwiększ wcięcie","outdent":"Zmniejsz wcięcie"},"image2":{"alt":"Tekst zastępczy","btnUpload":"Wyślij","captioned":"Obrazek z podpisem","captionPlaceholder":"Podpis","infoTab":"Informacje o obrazku","lockRatio":"Zablokuj proporcje","menu":"Właściwości obrazka","pathName":"obrazek","pathNameCaption":"podpis","resetSize":"Przywróć rozmiar","resizer":"Kliknij i przeciągnij, by zmienić rozmiar.","title":"Właściwości obrazka","uploadTab":"Wyślij","urlMissing":"Podaj adres URL obrazka."},"horizontalrule":{"toolbar":"Wstaw poziomą linię"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adres","tag_div":"Normalny (DIV)","tag_h1":"Nagłówek 1","tag_h2":"Nagłówek 2","tag_h3":"Nagłówek 3","tag_h4":"Nagłówek 4","tag_h5":"Nagłówek 5","tag_h6":"Nagłówek 6","tag_p":"Normalny","tag_pre":"Tekst sformatowany"},"elementspath":{"eleLabel":"Ścieżka elementów","eleTitle":"element %1"},"contextmenu":{"options":"Opcje menu kontekstowego"},"clipboard":{"copy":"Kopiuj","copyError":"Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.","cut":"Wytnij","cutError":"Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.","paste":"Wklej","pasteArea":"Obszar wklejania","pasteMsg":"Wklej tekst w poniższym polu, używając skrótu klawiaturowego (<STRONG>Ctrl/Cmd+V</STRONG>), i kliknij <STRONG>OK</STRONG>.","securityMsg":"Zabezpieczenia przeglądarki uniemożliwiają wklejenie danych bezpośrednio do edytora. Proszę ponownie wkleić dane w tym oknie.","title":"Wklej"},"button":{"selectedLabel":"%1 (Wybrany)"},"blockquote":{"toolbar":"Cytat"},"basicstyles":{"bold":"Pogrubienie","italic":"Kursywa","strike":"Przekreślenie","subscript":"Indeks dolny","superscript":"Indeks górny","underline":"Podkreślenie"},"about":{"copy":"Copyright &copy; $1. Wszelkie prawa zastrzeżone.","dlgTitle":"Informacje o programie CKEditor","help":"Pomoc znajdziesz w $1.","moreInfo":"Informacje na temat licencji można znaleźć na naszej stronie:","title":"Informacje o programie CKEditor","userGuide":"podręczniku użytkownika programu CKEditor"},"editor":"Edytor tekstu sformatowanego","editorPanel":"Panel edytora tekstu sformatowanego","common":{"editorHelp":"W celu uzyskania pomocy naciśnij ALT 0","browseServer":"Przeglądaj","url":"Adres URL","protocol":"Protokół","upload":"Wyślij","uploadSubmit":"Wyślij","image":"Obrazek","flash":"Flash","form":"Formularz","checkbox":"Pole wyboru (checkbox)","radio":"Przycisk opcji (radio)","textField":"Pole tekstowe","textarea":"Obszar tekstowy","hiddenField":"Pole ukryte","button":"Przycisk","select":"Lista wyboru","imageButton":"Przycisk graficzny","notSet":"<nie ustawiono>","id":"Id","name":"Nazwa","langDir":"Kierunek tekstu","langDirLtr":"Od lewej do prawej (LTR)","langDirRtl":"Od prawej do lewej (RTL)","langCode":"Kod języka","longDescr":"Adres URL długiego opisu","cssClass":"Nazwa klasy CSS","advisoryTitle":"Opis obiektu docelowego","cssStyle":"Styl","ok":"OK","cancel":"Anuluj","close":"Zamknij","preview":"Podgląd","resize":"Przeciągnij, aby zmienić rozmiar","generalTab":"Ogólne","advancedTab":"Zaawansowane","validateNumberFailed":"Ta wartość nie jest liczbą.","confirmNewPage":"Wszystkie niezapisane zmiany zostaną utracone. Czy na pewno wczytać nową stronę?","confirmCancel":"Pewne opcje zostały zmienione. Czy na pewno zamknąć okno dialogowe?","options":"Opcje","target":"Obiekt docelowy","targetNew":"Nowe okno (_blank)","targetTop":"Okno najwyżej w hierarchii (_top)","targetSelf":"To samo okno (_self)","targetParent":"Okno nadrzędne (_parent)","langDirLTR":"Od lewej do prawej (LTR)","langDirRTL":"Od prawej do lewej (RTL)","styles":"Style","cssClasses":"Klasy arkusza stylów","width":"Szerokość","height":"Wysokość","align":"Wyrównaj","alignLeft":"Do lewej","alignRight":"Do prawej","alignCenter":"Do środka","alignJustify":"Wyjustuj","alignTop":"Do góry","alignMiddle":"Do środka","alignBottom":"Do dołu","alignNone":"Brak","invalidValue":"Nieprawidłowa wartość.","invalidHeight":"Wysokość musi być liczbą.","invalidWidth":"Szerokość musi być liczbą.","invalidCssLength":"Wartość podana dla pola \"%1\" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","invalidHtmlLength":"Wartość podana dla pola \"%1\" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z HTML (px lub %).","invalidInlineStyle":"Wartość podana dla stylu musi składać się z jednej lub większej liczby krotek w formacie \"nazwa : wartość\", rozdzielonych średnikami.","cssLengthTooltip":"Wpisz liczbę dla wartości w pikselach lub liczbę wraz z jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","unavailable":"%1<span class=\"cke_accessibility\">, niedostępne</span>"}};
\ No newline at end of file
+CKEDITOR.lang['pl']={"widget":{"move":"Kliknij i przeciągnij, by przenieść."},"undo":{"redo":"Ponów","undo":"Cofnij"},"toolbar":{"toolbarCollapse":"Zwiń pasek narzędzi","toolbarExpand":"Rozwiń pasek narzędzi","toolbarGroups":{"document":"Dokument","clipboard":"Schowek/Wstecz","editing":"Edycja","forms":"Formularze","basicstyles":"Style podstawowe","paragraph":"Akapit","links":"Hiperłącza","insert":"Wstawianie","styles":"Style","colors":"Kolory","tools":"Narzędzia"},"toolbars":"Paski narzędzi edytora"},"table":{"border":"Grubość obramowania","caption":"Tytuł","cell":{"menu":"Komórka","insertBefore":"Wstaw komórkę z lewej","insertAfter":"Wstaw komórkę z prawej","deleteCell":"Usuń komórki","merge":"Połącz komórki","mergeRight":"Połącz z komórką z prawej","mergeDown":"Połącz z komórką poniżej","splitHorizontal":"Podziel komórkę poziomo","splitVertical":"Podziel komórkę pionowo","title":"Właściwości komórki","cellType":"Typ komórki","rowSpan":"Scalenie wierszy","colSpan":"Scalenie komórek","wordWrap":"Zawijanie słów","hAlign":"Wyrównanie poziome","vAlign":"Wyrównanie pionowe","alignBaseline":"Linia bazowa","bgColor":"Kolor tła","borderColor":"Kolor obramowania","data":"Dane","header":"Nagłówek","yes":"Tak","no":"Nie","invalidWidth":"Szerokość komórki musi być liczbą.","invalidHeight":"Wysokość komórki musi być liczbą.","invalidRowSpan":"Scalenie wierszy musi być liczbą całkowitą.","invalidColSpan":"Scalenie komórek musi być liczbą całkowitą.","chooseColor":"Wybierz"},"cellPad":"Dopełnienie komórek","cellSpace":"Odstęp pomiędzy komórkami","column":{"menu":"Kolumna","insertBefore":"Wstaw kolumnę z lewej","insertAfter":"Wstaw kolumnę z prawej","deleteColumn":"Usuń kolumny"},"columns":"Liczba kolumn","deleteTable":"Usuń tabelę","headers":"Nagłówki","headersBoth":"Oba","headersColumn":"Pierwsza kolumna","headersNone":"Brak","headersRow":"Pierwszy wiersz","invalidBorder":"Wartość obramowania musi być liczbą.","invalidCellPadding":"Dopełnienie komórek musi być liczbą dodatnią.","invalidCellSpacing":"Odstęp pomiędzy komórkami musi być liczbą dodatnią.","invalidCols":"Liczba kolumn musi być większa niż 0.","invalidHeight":"Wysokość tabeli musi być liczbą.","invalidRows":"Liczba wierszy musi być większa niż 0.","invalidWidth":"Szerokość tabeli musi być liczbą.","menu":"Właściwości tabeli","row":{"menu":"Wiersz","insertBefore":"Wstaw wiersz powyżej","insertAfter":"Wstaw wiersz poniżej","deleteRow":"Usuń wiersze"},"rows":"Liczba wierszy","summary":"Podsumowanie","title":"Właściwości tabeli","toolbar":"Tabela","widthPc":"%","widthPx":"piksele","widthUnit":"jednostka szerokości"},"stylescombo":{"label":"Styl","panelTitle":"Style formatujące","panelTitle1":"Style blokowe","panelTitle2":"Style liniowe","panelTitle3":"Style obiektowe"},"specialchar":{"options":"Opcje znaków specjalnych","title":"Wybierz znak specjalny","toolbar":"Wstaw znak specjalny"},"sourcedialog":{"toolbar":"Źródło dokumentu","title":"Źródło dokumentu"},"sourcearea":{"toolbar":"Źródło dokumentu"},"showblocks":{"toolbar":"Pokaż bloki"},"removeformat":{"toolbar":"Usuń formatowanie"},"pastetext":{"button":"Wklej jako czysty tekst","title":"Wklej jako czysty tekst"},"pastefromword":{"confirmCleanup":"Tekst, który chcesz wkleić, prawdopodobnie pochodzi z programu Microsoft Word. Czy chcesz go wyczyścić przed wklejeniem?","error":"Wyczyszczenie wklejonych danych nie było możliwe z powodu wystąpienia błędu.","title":"Wklej z programu MS Word","toolbar":"Wklej z programu MS Word"},"maximize":{"maximize":"Maksymalizuj","minimize":"Minimalizuj"},"magicline":{"title":"Wstaw nowy akapit"},"list":{"bulletedlist":"Lista wypunktowana","numberedlist":"Lista numerowana"},"language":{"button":"Ustaw język","remove":"Usuń język"},"justify":{"block":"Wyjustuj","center":"Wyśrodkuj","left":"Wyrównaj do lewej","right":"Wyrównaj do prawej"},"indent":{"indent":"Zwiększ wcięcie","outdent":"Zmniejsz wcięcie"},"image2":{"alt":"Tekst zastępczy","btnUpload":"Wyślij","captioned":"Obrazek z podpisem","captionPlaceholder":"Podpis","infoTab":"Informacje o obrazku","lockRatio":"Zablokuj proporcje","menu":"Właściwości obrazka","pathName":"obrazek","pathNameCaption":"podpis","resetSize":"Przywróć rozmiar","resizer":"Kliknij i przeciągnij, by zmienić rozmiar.","title":"Właściwości obrazka","uploadTab":"Wyślij","urlMissing":"Podaj adres URL obrazka."},"horizontalrule":{"toolbar":"Wstaw poziomą linię"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adres","tag_div":"Normalny (DIV)","tag_h1":"Nagłówek 1","tag_h2":"Nagłówek 2","tag_h3":"Nagłówek 3","tag_h4":"Nagłówek 4","tag_h5":"Nagłówek 5","tag_h6":"Nagłówek 6","tag_p":"Normalny","tag_pre":"Tekst sformatowany"},"elementspath":{"eleLabel":"Ścieżka elementów","eleTitle":"element %1"},"contextmenu":{"options":"Opcje menu kontekstowego"},"clipboard":{"copy":"Kopiuj","copyError":"Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.","cut":"Wytnij","cutError":"Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.","paste":"Wklej","pasteArea":"Obszar wklejania","pasteMsg":"Wklej tekst w poniższym polu, używając skrótu klawiaturowego (<STRONG>Ctrl/Cmd+V</STRONG>), i kliknij <STRONG>OK</STRONG>.","securityMsg":"Zabezpieczenia przeglądarki uniemożliwiają wklejenie danych bezpośrednio do edytora. Proszę ponownie wkleić dane w tym oknie.","title":"Wklej"},"button":{"selectedLabel":"%1 (Wybrany)"},"blockquote":{"toolbar":"Cytat"},"basicstyles":{"bold":"Pogrubienie","italic":"Kursywa","strike":"Przekreślenie","subscript":"Indeks dolny","superscript":"Indeks górny","underline":"Podkreślenie"},"about":{"copy":"Copyright &copy; $1. Wszelkie prawa zastrzeżone.","dlgTitle":"Informacje o programie CKEditor","help":"Pomoc znajdziesz w $1.","moreInfo":"Informacje na temat licencji można znaleźć na naszej stronie:","title":"Informacje o programie CKEditor","userGuide":"podręczniku użytkownika programu CKEditor"},"editor":"Edytor tekstu sformatowanego","editorPanel":"Panel edytora tekstu sformatowanego","common":{"editorHelp":"W celu uzyskania pomocy naciśnij ALT 0","browseServer":"Przeglądaj","url":"Adres URL","protocol":"Protokół","upload":"Wyślij","uploadSubmit":"Wyślij","image":"Obrazek","flash":"Flash","form":"Formularz","checkbox":"Pole wyboru (checkbox)","radio":"Przycisk opcji (radio)","textField":"Pole tekstowe","textarea":"Obszar tekstowy","hiddenField":"Pole ukryte","button":"Przycisk","select":"Lista wyboru","imageButton":"Przycisk graficzny","notSet":"<nie ustawiono>","id":"Id","name":"Nazwa","langDir":"Kierunek tekstu","langDirLtr":"Od lewej do prawej (LTR)","langDirRtl":"Od prawej do lewej (RTL)","langCode":"Kod języka","longDescr":"Adres URL długiego opisu","cssClass":"Nazwa klasy CSS","advisoryTitle":"Opis obiektu docelowego","cssStyle":"Styl","ok":"OK","cancel":"Anuluj","close":"Zamknij","preview":"Podgląd","resize":"Przeciągnij, aby zmienić rozmiar","generalTab":"Ogólne","advancedTab":"Zaawansowane","validateNumberFailed":"Ta wartość nie jest liczbą.","confirmNewPage":"Wszystkie niezapisane zmiany zostaną utracone. Czy na pewno wczytać nową stronę?","confirmCancel":"Pewne opcje zostały zmienione. Czy na pewno zamknąć okno dialogowe?","options":"Opcje","target":"Obiekt docelowy","targetNew":"Nowe okno (_blank)","targetTop":"Okno najwyżej w hierarchii (_top)","targetSelf":"To samo okno (_self)","targetParent":"Okno nadrzędne (_parent)","langDirLTR":"Od lewej do prawej (LTR)","langDirRTL":"Od prawej do lewej (RTL)","styles":"Style","cssClasses":"Klasy arkusza stylów","width":"Szerokość","height":"Wysokość","align":"Wyrównaj","alignLeft":"Do lewej","alignRight":"Do prawej","alignCenter":"Do środka","alignJustify":"Wyjustuj","alignTop":"Do góry","alignMiddle":"Do środka","alignBottom":"Do dołu","alignNone":"Brak","invalidValue":"Nieprawidłowa wartość.","invalidHeight":"Wysokość musi być liczbą.","invalidWidth":"Szerokość musi być liczbą.","invalidCssLength":"Wartość podana dla pola \"%1\" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","invalidHtmlLength":"Wartość podana dla pola \"%1\" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z HTML (px lub %).","invalidInlineStyle":"Wartość podana dla stylu musi składać się z jednej lub większej liczby krotek w formacie \"nazwa : wartość\", rozdzielonych średnikami.","cssLengthTooltip":"Wpisz liczbę dla wartości w pikselach lub liczbę wraz z jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","unavailable":"%1<span class=\"cke_accessibility\">, niedostępne</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/pt-br.js b/core/assets/vendor/ckeditor/lang/pt-br.js
index ceb38ac..920b74a 100644
--- a/core/assets/vendor/ckeditor/lang/pt-br.js
+++ b/core/assets/vendor/ckeditor/lang/pt-br.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['pt-br']={"widget":{"move":"Click e arraste para mover","label":"%1 widget"},"undo":{"redo":"Refazer","undo":"Desfazer"},"toolbar":{"toolbarCollapse":"Diminuir Barra de Ferramentas","toolbarExpand":"Aumentar Barra de Ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Clipboard/Desfazer","editing":"Edição","forms":"Formulários","basicstyles":"Estilos Básicos","paragraph":"Paragrafo","links":"Links","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Barra de Ferramentas do Editor"},"table":{"border":"Borda","caption":"Legenda","cell":{"menu":"Célula","insertBefore":"Inserir célula a esquerda","insertAfter":"Inserir célula a direita","deleteCell":"Remover Células","merge":"Mesclar Células","mergeRight":"Mesclar com célula a direita","mergeDown":"Mesclar com célula abaixo","splitHorizontal":"Dividir célula horizontalmente","splitVertical":"Dividir célula verticalmente","title":"Propriedades da célula","cellType":"Tipo de célula","rowSpan":"Linhas cobertas","colSpan":"Colunas cobertas","wordWrap":"Quebra de palavra","hAlign":"Alinhamento horizontal","vAlign":"Alinhamento vertical","alignBaseline":"Patamar de alinhamento","bgColor":"Cor de fundo","borderColor":"Cor das bordas","data":"Dados","header":"Cabeçalho","yes":"Sim","no":"Não","invalidWidth":"A largura da célula tem que ser um número.","invalidHeight":"A altura da célula tem que ser um número.","invalidRowSpan":"Linhas cobertas tem que ser um número inteiro.","invalidColSpan":"Colunas cobertas tem que ser um número inteiro.","chooseColor":"Escolher"},"cellPad":"Margem interna","cellSpace":"Espaçamento","column":{"menu":"Coluna","insertBefore":"Inserir coluna a esquerda","insertAfter":"Inserir coluna a direita","deleteColumn":"Remover Colunas"},"columns":"Colunas","deleteTable":"Apagar Tabela","headers":"Cabeçalho","headersBoth":"Ambos","headersColumn":"Primeira coluna","headersNone":"Nenhum","headersRow":"Primeira linha","invalidBorder":"O tamanho da borda tem que ser um número.","invalidCellPadding":"A margem interna das células tem que ser um número.","invalidCellSpacing":"O espaçamento das células tem que ser um número.","invalidCols":"O número de colunas tem que ser um número maior que 0.","invalidHeight":"A altura da tabela tem que ser um número.","invalidRows":"O número de linhas tem que ser um número maior que 0.","invalidWidth":"A largura da tabela tem que ser um número.","menu":"Formatar Tabela","row":{"menu":"Linha","insertBefore":"Inserir linha acima","insertAfter":"Inserir linha abaixo","deleteRow":"Remover Linhas"},"rows":"Linhas","summary":"Resumo","title":"Formatar Tabela","toolbar":"Tabela","widthPc":"%","widthPx":"pixels","widthUnit":"unidade largura"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos de Formatação","panelTitle1":"Estilos de bloco","panelTitle2":"Estilos de texto corrido","panelTitle3":"Estilos de objeto"},"specialchar":{"options":"Opções de Caractere Especial","title":"Selecione um Caractere Especial","toolbar":"Inserir Caractere Especial"},"sourcedialog":{"toolbar":"Código-Fonte","title":"Código-Fonte"},"sourcearea":{"toolbar":"Código-Fonte"},"showblocks":{"toolbar":"Mostrar blocos de código"},"removeformat":{"toolbar":"Remover Formatação"},"pastetext":{"button":"Colar como Texto sem Formatação","title":"Colar como Texto sem Formatação"},"pastefromword":{"confirmCleanup":"O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?","error":"Não foi possível limpar os dados colados devido a um erro interno","title":"Colar do Word","toolbar":"Colar do Word"},"maximize":{"maximize":"Maximizar","minimize":"Minimize"},"magicline":{"title":"Insera um parágrafo aqui"},"list":{"bulletedlist":"Lista sem números","numberedlist":"Lista numerada"},"language":{"button":"Configure o Idioma","remove":"Remover Idioma"},"justify":{"block":"Justificado","center":"Centralizar","left":"Alinhar Esquerda","right":"Alinhar Direita"},"indent":{"indent":"Aumentar Recuo","outdent":"Diminuir Recuo"},"image2":{"alt":"Texto Alternativo","btnUpload":"Enviar para o Servidor","captioned":"Legenda da Imagem","captionPlaceholder":"Legenda","infoTab":"Informações da Imagem","lockRatio":"Travar Proporções","menu":"Formatar Imagem","pathName":"Imagem","pathNameCaption":"Legenda","resetSize":"Redefinir para o Tamanho Original","resizer":"Click e arraste para redimensionar","title":"Formatar Imagem","uploadTab":"Enviar ao Servidor","urlMissing":"URL da imagem está faltando."},"horizontalrule":{"toolbar":"Inserir Linha Horizontal"},"format":{"label":"Formatação","panelTitle":"Formatação","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"Título 1","tag_h2":"Título 2","tag_h3":"Título 3","tag_h4":"Título 4","tag_h5":"Título 5","tag_h6":"Título 6","tag_p":"Normal","tag_pre":"Formatado"},"elementspath":{"eleLabel":"Caminho dos Elementos","eleTitle":"Elemento %1"},"contextmenu":{"options":"Opções Menu de Contexto"},"clipboard":{"copy":"Copiar","copyError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).","cut":"Recortar","cutError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).","paste":"Colar","pasteArea":"Área para Colar","pasteMsg":"Transfira o link usado na caixa usando o teclado com (<STRONG>Ctrl/Cmd+V</STRONG>) e <STRONG>OK</STRONG>.","securityMsg":"As configurações de segurança do seu navegador não permitem que o editor acesse os dados da área de transferência diretamente. Por favor cole o conteúdo manualmente nesta janela.","title":"Colar"},"button":{"selectedLabel":"%1 (Selecionado)"},"blockquote":{"toolbar":"Citação"},"basicstyles":{"bold":"Negrito","italic":"Itálico","strike":"Tachado","subscript":"Subscrito","superscript":"Sobrescrito","underline":"Sublinhado"},"about":{"copy":"Copyright &copy; $1. Todos os direitos reservados.","dlgTitle":"Sobre o CKEditor","help":"Verifique o $1 para obter ajuda.","moreInfo":"Para informações sobre a licença por favor visite o nosso site:","title":"Sobre o CKEditor","userGuide":"Guia do Usuário do CKEditor"},"editor":"Editor de Rich Text","editorPanel":"Painel do editor de Rich Text","common":{"editorHelp":"Pressione ALT+0 para ajuda","browseServer":"Localizar no Servidor","url":"URL","protocol":"Protocolo","upload":"Enviar ao Servidor","uploadSubmit":"Enviar para o Servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de Seleção","radio":"Botão de Opção","textField":"Caixa de Texto","textarea":"Área de Texto","hiddenField":"Campo Oculto","button":"Botão","select":"Caixa de Listagem","imageButton":"Botão de Imagem","notSet":"<não ajustado>","id":"Id","name":"Nome","langDir":"Direção do idioma","langDirLtr":"Esquerda para Direita (LTR)","langDirRtl":"Direita para Esquerda (RTL)","langCode":"Idioma","longDescr":"Descrição da URL","cssClass":"Classe de CSS","advisoryTitle":"Título","cssStyle":"Estilos","ok":"OK","cancel":"Cancelar","close":"Fechar","preview":"Visualizar","resize":"Arraste para redimensionar","generalTab":"Geral","advancedTab":"Avançado","validateNumberFailed":"Este valor não é um número.","confirmNewPage":"Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?","confirmCancel":"Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?","options":"Opções","target":"Destino","targetNew":"Nova Janela (_blank)","targetTop":"Janela de Cima (_top)","targetSelf":"Mesma Janela (_self)","targetParent":"Janela Pai (_parent)","langDirLTR":"Esquerda para Direita (LTR)","langDirRTL":"Direita para Esquerda (RTL)","styles":"Estilo","cssClasses":"Classes","width":"Largura","height":"Altura","align":"Alinhamento","alignLeft":"Esquerda","alignRight":"Direita","alignCenter":"Centralizado","alignJustify":"Justificar","alignTop":"Superior","alignMiddle":"Centralizado","alignBottom":"Inferior","alignNone":"Nenhum","invalidValue":"Valor inválido.","invalidHeight":"A altura tem que ser um número","invalidWidth":"A largura tem que ser um número.","invalidCssLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).","invalidHtmlLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de HTML (px ou %).","invalidInlineStyle":"O valor válido para estilo deve conter uma ou mais tuplas no formato \"nome : valor\", separados por ponto e vírgula.","cssLengthTooltip":"Insira um número para valor em pixels ou um número seguido de uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponível</span>"}};
\ No newline at end of file
+CKEDITOR.lang['pt-br']={"widget":{"move":"Click e arraste para mover"},"undo":{"redo":"Refazer","undo":"Desfazer"},"toolbar":{"toolbarCollapse":"Diminuir Barra de Ferramentas","toolbarExpand":"Aumentar Barra de Ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Clipboard/Desfazer","editing":"Edição","forms":"Formulários","basicstyles":"Estilos Básicos","paragraph":"Paragrafo","links":"Links","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Barra de Ferramentas do Editor"},"table":{"border":"Borda","caption":"Legenda","cell":{"menu":"Célula","insertBefore":"Inserir célula a esquerda","insertAfter":"Inserir célula a direita","deleteCell":"Remover Células","merge":"Mesclar Células","mergeRight":"Mesclar com célula a direita","mergeDown":"Mesclar com célula abaixo","splitHorizontal":"Dividir célula horizontalmente","splitVertical":"Dividir célula verticalmente","title":"Propriedades da célula","cellType":"Tipo de célula","rowSpan":"Linhas cobertas","colSpan":"Colunas cobertas","wordWrap":"Quebra de palavra","hAlign":"Alinhamento horizontal","vAlign":"Alinhamento vertical","alignBaseline":"Patamar de alinhamento","bgColor":"Cor de fundo","borderColor":"Cor das bordas","data":"Dados","header":"Cabeçalho","yes":"Sim","no":"Não","invalidWidth":"A largura da célula tem que ser um número.","invalidHeight":"A altura da célula tem que ser um número.","invalidRowSpan":"Linhas cobertas tem que ser um número inteiro.","invalidColSpan":"Colunas cobertas tem que ser um número inteiro.","chooseColor":"Escolher"},"cellPad":"Margem interna","cellSpace":"Espaçamento","column":{"menu":"Coluna","insertBefore":"Inserir coluna a esquerda","insertAfter":"Inserir coluna a direita","deleteColumn":"Remover Colunas"},"columns":"Colunas","deleteTable":"Apagar Tabela","headers":"Cabeçalho","headersBoth":"Ambos","headersColumn":"Primeira coluna","headersNone":"Nenhum","headersRow":"Primeira linha","invalidBorder":"O tamanho da borda tem que ser um número.","invalidCellPadding":"A margem interna das células tem que ser um número.","invalidCellSpacing":"O espaçamento das células tem que ser um número.","invalidCols":"O número de colunas tem que ser um número maior que 0.","invalidHeight":"A altura da tabela tem que ser um número.","invalidRows":"O número de linhas tem que ser um número maior que 0.","invalidWidth":"A largura da tabela tem que ser um número.","menu":"Formatar Tabela","row":{"menu":"Linha","insertBefore":"Inserir linha acima","insertAfter":"Inserir linha abaixo","deleteRow":"Remover Linhas"},"rows":"Linhas","summary":"Resumo","title":"Formatar Tabela","toolbar":"Tabela","widthPc":"%","widthPx":"pixels","widthUnit":"unidade largura"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos de Formatação","panelTitle1":"Estilos de bloco","panelTitle2":"Estilos de texto corrido","panelTitle3":"Estilos de objeto"},"specialchar":{"options":"Opções de Caractere Especial","title":"Selecione um Caractere Especial","toolbar":"Inserir Caractere Especial"},"sourcedialog":{"toolbar":"Código-Fonte","title":"Código-Fonte"},"sourcearea":{"toolbar":"Código-Fonte"},"showblocks":{"toolbar":"Mostrar blocos de código"},"removeformat":{"toolbar":"Remover Formatação"},"pastetext":{"button":"Colar como Texto sem Formatação","title":"Colar como Texto sem Formatação"},"pastefromword":{"confirmCleanup":"O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?","error":"Não foi possível limpar os dados colados devido a um erro interno","title":"Colar do Word","toolbar":"Colar do Word"},"maximize":{"maximize":"Maximizar","minimize":"Minimize"},"magicline":{"title":"Insera um parágrafo aqui"},"list":{"bulletedlist":"Lista sem números","numberedlist":"Lista numerada"},"language":{"button":"Configure o Idioma","remove":"Remover Idioma"},"justify":{"block":"Justificado","center":"Centralizar","left":"Alinhar Esquerda","right":"Alinhar Direita"},"indent":{"indent":"Aumentar Recuo","outdent":"Diminuir Recuo"},"image2":{"alt":"Texto Alternativo","btnUpload":"Enviar para o Servidor","captioned":"Legenda da Imagem","captionPlaceholder":"Legenda","infoTab":"Informações da Imagem","lockRatio":"Travar Proporções","menu":"Formatar Imagem","pathName":"Imagem","pathNameCaption":"Legenda","resetSize":"Redefinir para o Tamanho Original","resizer":"Click e arraste para redimensionar","title":"Formatar Imagem","uploadTab":"Enviar ao Servidor","urlMissing":"URL da imagem está faltando."},"horizontalrule":{"toolbar":"Inserir Linha Horizontal"},"format":{"label":"Formatação","panelTitle":"Formatação","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"Título 1","tag_h2":"Título 2","tag_h3":"Título 3","tag_h4":"Título 4","tag_h5":"Título 5","tag_h6":"Título 6","tag_p":"Normal","tag_pre":"Formatado"},"elementspath":{"eleLabel":"Caminho dos Elementos","eleTitle":"Elemento %1"},"contextmenu":{"options":"Opções Menu de Contexto"},"clipboard":{"copy":"Copiar","copyError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).","cut":"Recortar","cutError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).","paste":"Colar","pasteArea":"Área para Colar","pasteMsg":"Transfira o link usado na caixa usando o teclado com (<STRONG>Ctrl/Cmd+V</STRONG>) e <STRONG>OK</STRONG>.","securityMsg":"As configurações de segurança do seu navegador não permitem que o editor acesse os dados da área de transferência diretamente. Por favor cole o conteúdo manualmente nesta janela.","title":"Colar"},"button":{"selectedLabel":"%1 (Selecionado)"},"blockquote":{"toolbar":"Citação"},"basicstyles":{"bold":"Negrito","italic":"Itálico","strike":"Tachado","subscript":"Subscrito","superscript":"Sobrescrito","underline":"Sublinhado"},"about":{"copy":"Copyright &copy; $1. Todos os direitos reservados.","dlgTitle":"Sobre o CKEditor","help":"Verifique o $1 para obter ajuda.","moreInfo":"Para informações sobre a licença por favor visite o nosso site:","title":"Sobre o CKEditor","userGuide":"Guia do Usuário do CKEditor"},"editor":"Editor de Rich Text","editorPanel":"Painel do editor de Rich Text","common":{"editorHelp":"Pressione ALT+0 para ajuda","browseServer":"Localizar no Servidor","url":"URL","protocol":"Protocolo","upload":"Enviar ao Servidor","uploadSubmit":"Enviar para o Servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de Seleção","radio":"Botão de Opção","textField":"Caixa de Texto","textarea":"Área de Texto","hiddenField":"Campo Oculto","button":"Botão","select":"Caixa de Listagem","imageButton":"Botão de Imagem","notSet":"<não ajustado>","id":"Id","name":"Nome","langDir":"Direção do idioma","langDirLtr":"Esquerda para Direita (LTR)","langDirRtl":"Direita para Esquerda (RTL)","langCode":"Idioma","longDescr":"Descrição da URL","cssClass":"Classe de CSS","advisoryTitle":"Título","cssStyle":"Estilos","ok":"OK","cancel":"Cancelar","close":"Fechar","preview":"Visualizar","resize":"Arraste para redimensionar","generalTab":"Geral","advancedTab":"Avançado","validateNumberFailed":"Este valor não é um número.","confirmNewPage":"Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?","confirmCancel":"Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?","options":"Opções","target":"Destino","targetNew":"Nova Janela (_blank)","targetTop":"Janela de Cima (_top)","targetSelf":"Mesma Janela (_self)","targetParent":"Janela Pai (_parent)","langDirLTR":"Esquerda para Direita (LTR)","langDirRTL":"Direita para Esquerda (RTL)","styles":"Estilo","cssClasses":"Classes","width":"Largura","height":"Altura","align":"Alinhamento","alignLeft":"Esquerda","alignRight":"Direita","alignCenter":"Centralizado","alignJustify":"Justificar","alignTop":"Superior","alignMiddle":"Centralizado","alignBottom":"Inferior","alignNone":"Nenhum","invalidValue":"Valor inválido.","invalidHeight":"A altura tem que ser um número","invalidWidth":"A largura tem que ser um número.","invalidCssLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).","invalidHtmlLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de HTML (px ou %).","invalidInlineStyle":"O valor válido para estilo deve conter uma ou mais tuplas no formato \"nome : valor\", separados por ponto e vírgula.","cssLengthTooltip":"Insira um número para valor em pixels ou um número seguido de uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponível</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/pt.js b/core/assets/vendor/ckeditor/lang/pt.js
index 486a48d..05c2082 100644
--- a/core/assets/vendor/ckeditor/lang/pt.js
+++ b/core/assets/vendor/ckeditor/lang/pt.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['pt']={"widget":{"move":"Clique e arraste para mover","label":"%1 widget"},"undo":{"redo":"Refazer","undo":"Anular"},"toolbar":{"toolbarCollapse":"Ocultar barra de ferramentas","toolbarExpand":"Expandir barra de ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Área de transferência/Anular","editing":"Edição","forms":"Formulários","basicstyles":"Estilos básicos","paragraph":"Parágrafo","links":"Hiperligações","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Editor de barras de ferramentas"},"table":{"border":"Tamanho do contorno","caption":"Legenda","cell":{"menu":"Célula","insertBefore":"Inserir célula antes","insertAfter":"Inserir célula depois","deleteCell":"Apagar células","merge":"Unir células","mergeRight":"Unir à direita","mergeDown":"Fundir abaixo","splitHorizontal":"Dividir célula horizontalmente","splitVertical":"Dividir célula verticalmente","title":"Propriedades da célula","cellType":"Tipo de célula","rowSpan":"Filas na Célula","colSpan":"Colunas na Célula","wordWrap":"Moldar texto","hAlign":"Alinhamento horizontal","vAlign":"Alinhamento vertical","alignBaseline":"Base","bgColor":"Cor de fundo","borderColor":"Cor da margem","data":"Dados","header":"Cabeçalho","yes":"Sim","no":"Não","invalidWidth":"A largura da célula deve ser um número.","invalidHeight":"A altura da célula deve ser um número.","invalidRowSpan":"As filas da célula deve ter um número inteiro.","invalidColSpan":"As colunas da célula devem ter um número inteiro.","chooseColor":"Escolher"},"cellPad":"Espaço interior","cellSpace":"Espaçamento de célula","column":{"menu":"Coluna","insertBefore":"Inserir coluna antes","insertAfter":"Inserir coluna depois","deleteColumn":"Apagar colunas"},"columns":"Colunas","deleteTable":"Apagar tabela","headers":"Cabeçalhos","headersBoth":"Ambos","headersColumn":"Primeira coluna","headersNone":"Nenhum","headersRow":"Primeira linha","invalidBorder":"O tamanho da margem tem de ser um número.","invalidCellPadding":"A criação do espaço na célula deve ser um número positivo.","invalidCellSpacing":"O espaçamento da célula deve ser um número positivo.","invalidCols":"O número de colunas tem de ser um número maior que 0.","invalidHeight":"A altura da tabela tem de ser um número.","invalidRows":"O número de linhas tem de ser maior que 0.","invalidWidth":"A largura da tabela tem de ser um número.","menu":"Propriedades da tabela","row":{"menu":"Linha","insertBefore":"Inserir linha antes","insertAfter":"Inserir linha depois","deleteRow":"Apagar linhas"},"rows":"Linhas","summary":"Resumo","title":"Propriedades da tabela","toolbar":"Tabela","widthPc":"percentagem","widthPx":"pixéis","widthUnit":"unidade da largura"},"stylescombo":{"label":"Estilos","panelTitle":"Estilos de Formatação","panelTitle1":"Estilos de bloco","panelTitle2":"Estilos de Linha","panelTitle3":"Estilos de Objeto"},"specialchar":{"options":"Opções de caracteres especiais","title":"Selecione um caracter especial","toolbar":"Inserir carácter especial"},"sourcedialog":{"toolbar":"Fonte","title":"Fonte"},"sourcearea":{"toolbar":"Fonte"},"showblocks":{"toolbar":"Exibir blocos"},"removeformat":{"toolbar":"Limpar formatação"},"pastetext":{"button":"Colar como texto simples","title":"Colar como texto simples"},"pastefromword":{"confirmCleanup":"O texto que pretende colar parece ter sido copiado do Word. Deseja limpá-lo antes de colar?","error":"Não foi possivel limpar a informação colada decido a um erro interno.","title":"Colar do Word","toolbar":"Colar do Word"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Insira aqui o parágrafo"},"list":{"bulletedlist":"Marcas","numberedlist":"Numeração"},"language":{"button":"Definir Idioma","remove":"Remover idioma"},"justify":{"block":"Justificado","center":"Alinhar ao centro","left":"Alinhar à esquerda","right":"Alinhar à direita"},"indent":{"indent":"Aumentar avanço","outdent":"Diminuir avanço"},"image2":{"alt":"Texto alternativo","btnUpload":"Enviar para o servidor","captioned":"Imagem legendada","captionPlaceholder":"Legenda","infoTab":"Informação da imagem","lockRatio":"Proporcional","menu":"Propriedades da imagem","pathName":"imagem","pathNameCaption":"legenda","resetSize":"Tamanho original","resizer":"Clique e arraste para redimensionar","title":"Propriedades da imagem","uploadTab":"Carregar","urlMissing":"O URL da fonte da imagem está em falta."},"horizontalrule":{"toolbar":"Inserir linha horizontal"},"format":{"label":"Formatar","panelTitle":"Formatar Parágrafo","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"Título 1","tag_h2":"Título 2","tag_h3":"Título 3","tag_h4":"Título 4","tag_h5":"Título 5","tag_h6":"Título 6","tag_p":"Normal","tag_pre":"Formatado"},"elementspath":{"eleLabel":"Caminho dos elementos","eleTitle":"Elemento %1"},"contextmenu":{"options":"Menu de opções de contexto"},"clipboard":{"copy":"Copiar","copyError":"A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).","cut":"Cortar","cutError":"A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).","paste":"Colar","pasteArea":"Colar área","pasteMsg":"Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e carregue em <STRONG>OK</STRONG>.","securityMsg":"Devido ás definições de segurança do teu browser, o editor não pode aceder ao clipboard diretamente. É necessário que voltes a colar as informações nesta janela.","title":"Colar"},"button":{"selectedLabel":"%1 (Selecionado)"},"blockquote":{"toolbar":"Bloco de citação"},"basicstyles":{"bold":"Negrito","italic":"Itálico","strike":"Rasurado","subscript":"Superior à linha","superscript":"Superior à linha","underline":"Sublinhado"},"about":{"copy":"Direitos de Autor &copy; $1. Todos os direitos reservados.","dlgTitle":"Sobre o CKEditor","help":"Doar $1 para ajudar.","moreInfo":"Para informação sobre licenciamento visite o nosso sítio web:","title":"Sobre o CKEditor","userGuide":"CKEditor - Guia do utilizador"},"editor":"Editor de texto enriquecido","editorPanel":"Painel do editor de texto enriquecido","common":{"editorHelp":"Pressione ALT+0 para ajuda","browseServer":"Navegar no servidor","url":"URL","protocol":"Protocolo","upload":"Carregar","uploadSubmit":"Enviar para o servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de verificação","radio":"Botão","textField":"Campo de texto","textarea":"Área de texto","hiddenField":"Campo oculto","button":"Botão","select":"Campo de seleção","imageButton":"Botão da imagem","notSet":"<Não definido>","id":"ID","name":"Nome","langDir":"Direção do idioma","langDirLtr":"Esquerda para a Direita (EPD)","langDirRtl":"Direita para a Esquerda (DPE)","langCode":"Código do idioma","longDescr":"Descrição completa do URL","cssClass":"Classes de estilo das folhas","advisoryTitle":"Título consultivo","cssStyle":"Estilo","ok":"CONFIRMAR","cancel":"Cancelar","close":"Fechar","preview":"Pré-visualização","resize":"Redimensionar","generalTab":"Geral","advancedTab":"Avançado","validateNumberFailed":"Este valor não é um numero.","confirmNewPage":"Irão ser perdidas quaisquer alterações não guardadas. Tem a certeza que deseja carregar a nova página?","confirmCancel":"Foram alteradas algumas das opções. Tem a certeza que deseja fechar a janela?","options":"Opções","target":"Destino","targetNew":"Nova Janela (_blank)","targetTop":"Janela superior (_top)","targetSelf":"Mesma Janela (_self)","targetParent":"Janela dependente (_parent)","langDirLTR":"Esquerda para a Direita (EPD)","langDirRTL":"Direita para a Esquerda (DPE)","styles":"Estilo","cssClasses":"Classes de folhas de estilo","width":"Largura","height":"Altura","align":"Alinhamento","alignLeft":"Esquerda","alignRight":"Direita","alignCenter":"Centrado","alignJustify":"Justificado","alignTop":"Topo","alignMiddle":"Centro","alignBottom":"Base","alignNone":"Nenhum","invalidValue":"Valor inválido.","invalidHeight":"A altura deve ser um número.","invalidWidth":"A largura deve ser um número. ","invalidCssLength":"O valor especificado para o campo \"1%\" deve ser um número positivo, com ou sem uma unidade de medida CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"O valor especificado para o campo \"1%\" deve ser um número positivo, com ou sem uma unidade de medida HTML válida (px ou %).","invalidInlineStyle":"O valor especificado para o estilo em linha deve constituir um ou mais conjuntos de valores com o formato de \"nome : valor\", separados por ponto e vírgula.","cssLengthTooltip":"Insira um número para um valor em pontos ou um número com uma unidade CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponível</span>"}};
\ No newline at end of file
+CKEDITOR.lang['pt']={"widget":{"move":"Clique e arraste para mover"},"undo":{"redo":"Refazer","undo":"Anular"},"toolbar":{"toolbarCollapse":"Ocultar barra de ferramentas","toolbarExpand":"Expandir barra de ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Área de transferência/Anular","editing":"Edição","forms":"Formulários","basicstyles":"Estilos Básicos","paragraph":"Parágrafo","links":"Hiperligações","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Editor de Barras de Ferramentas"},"table":{"border":"Tamanho do contorno","caption":"Legenda","cell":{"menu":"Célula","insertBefore":"Inserir célula antes","insertAfter":"Inserir célula depois","deleteCell":"Apagar Células","merge":"Unir Células","mergeRight":"Unir à Direita","mergeDown":"Fundir abaixo","splitHorizontal":"Dividir célula horizontalmente","splitVertical":"Dividir célula verticalmente","title":"Propriedades da célula","cellType":"Tipo de célula","rowSpan":"Filas na Célula","colSpan":"Colunas na Célula","wordWrap":"Moldar texto","hAlign":"Alinhamento Horizontal","vAlign":"Alinhamento Vertical","alignBaseline":"Base","bgColor":"Cor de Fundo","borderColor":"Cor da Margem","data":"Dados","header":"Cabeçalho","yes":"Sim","no":"Não","invalidWidth":"A largura da célula deve ser um número.","invalidHeight":"A altura da célula deve ser um número.","invalidRowSpan":"As filas da célula deve ter um número inteiro.","invalidColSpan":"As colunas da célula deve ter um número inteiro.","chooseColor":"Escolher"},"cellPad":"Espaço interior","cellSpace":"Espaçamento de célula","column":{"menu":"Coluna","insertBefore":"Inserir Coluna Antes","insertAfter":"Inserir coluna depois","deleteColumn":"Apagar colunas"},"columns":"Colunas","deleteTable":"Apagar tabela","headers":"Cabeçalhos","headersBoth":"Ambos","headersColumn":"Primeira coluna","headersNone":"Nenhum","headersRow":"Primeira linha","invalidBorder":"O tamanho da margem tem de ser um número.","invalidCellPadding":"A criação do espaço na célula deve ser um número positivo.","invalidCellSpacing":"O espaçamento da célula deve ser um número positivo.","invalidCols":"O número de colunas tem de ser um número maior que 0.","invalidHeight":"A altura da tabela tem de ser um número.","invalidRows":"O número de linhas tem de ser maior que 0.","invalidWidth":"A largura da tabela tem de ser um número.","menu":"Propriedades da Tabela","row":{"menu":"Linha","insertBefore":"Inserir linha antes","insertAfter":"Inserir linha depois","deleteRow":"Apagar linhas"},"rows":"Linhas","summary":"Sumário","title":"Propriedades da Tabela","toolbar":"Tabela","widthPc":"percentagem","widthPx":"pontos","widthUnit":"unidade da largura"},"stylescombo":{"label":"Estilos","panelTitle":"Estilos de Formatação","panelTitle1":"Estilos de bloco","panelTitle2":"Estilos de Linha","panelTitle3":"Estilos de Objeto"},"specialchar":{"options":"Opções de caracteres especiais","title":"Selecione um caracter especial","toolbar":"Inserir carácter especial"},"sourcedialog":{"toolbar":"Fonte","title":"Fonte"},"sourcearea":{"toolbar":"Fonte"},"showblocks":{"toolbar":"Exibir blocos"},"removeformat":{"toolbar":"Eliminar Formato"},"pastetext":{"button":"Colar como Texto Simples","title":"Colar como Texto Simples"},"pastefromword":{"confirmCleanup":"O texto que pretende colar parece ter sido copiado do Word. Deseja limpá-lo antes de colar?","error":"Não foi possivel limpar a informação colada decido a um erro interno.","title":"Colar do Word","toolbar":"Colar do Word"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"magicline":{"title":"Insira aqui o parágrafo"},"list":{"bulletedlist":"Marcas","numberedlist":"Numeração"},"language":{"button":"Definir Idioma","remove":"Remover idioma"},"justify":{"block":"Justificado","center":"Alinhar ao Centro","left":"Alinhar à esquerda","right":"Alinhar à direita"},"indent":{"indent":"Aumentar Avanço","outdent":"Diminuir Avanço"},"image2":{"alt":"Texto Alternativo","btnUpload":"Enviar para o Servidor","captioned":"Imagem legendada","captionPlaceholder":"Legenda","infoTab":"Informação da Imagem","lockRatio":"Proporcional","menu":"Propriedades da Imagem","pathName":"imagem","pathNameCaption":"legenda","resetSize":"Tamanho Original","resizer":"Clique e arraste para redimensionar","title":"Propriedades da Imagem","uploadTab":"Enviar","urlMissing":"O URL da fonte da imagem está em falta."},"horizontalrule":{"toolbar":"Inserir Linha Horizontal"},"format":{"label":"Formatar","panelTitle":"Formatar Parágrafo","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"Título 1","tag_h2":"Título 2","tag_h3":"Título 3","tag_h4":"Título 4","tag_h5":"Título 5","tag_h6":"Título 6","tag_p":"Normal","tag_pre":"Formatado"},"elementspath":{"eleLabel":"Caminho dos elementos","eleTitle":"Elemento %1"},"contextmenu":{"options":"Menu de opções de contexto"},"clipboard":{"copy":"Copiar","copyError":"A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).","cut":"Cortar","cutError":"A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).","paste":"Colar","pasteArea":"Colar área","pasteMsg":"Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e prima <STRONG>OK</STRONG>.","securityMsg":"Devido ás definições de segurança do teu browser, o editor não pode aceder ao clipboard diretamente. É necessário que voltes a colar as informações nesta janela.","title":"Colar"},"button":{"selectedLabel":"%1 (Selecionado)"},"blockquote":{"toolbar":"Bloco de citação"},"basicstyles":{"bold":"Negrito","italic":"Itálico","strike":"Rasurado","subscript":"Superior à linha","superscript":"Inferior à Linha","underline":"Sublinhado"},"about":{"copy":"Direitos de Autor &copy; $1. Todos os direitos reservados.","dlgTitle":"Sobre o CKEditor","help":"Doar $1 para ajudar.","moreInfo":"Para informação sobre licenciamento visite o nosso sítio web:","title":"Sobre o CKEditor","userGuide":"CKEditor - Guia do Utilizador"},"editor":"Editor de texto enriquecido","editorPanel":"Painel do editor de texto enriquecido","common":{"editorHelp":"Pressione ALT+0 para ajuda","browseServer":"Navegar no servidor","url":"URL","protocol":"Protocolo","upload":"Enviar","uploadSubmit":"Enviar para o servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de Seleção","radio":"Botão","textField":"Campo do Texto","textarea":"Área do Texto","hiddenField":"Campo oculto","button":"Botão","select":"Campo da Seleção","imageButton":"Botão da Imagem","notSet":"<Não definido>","id":"Id.","name":"Nome","langDir":"Direção do Idioma","langDirLtr":"Esquerda para a Direita (EPD)","langDirRtl":"Direita para a Esquerda (DPE)","langCode":"Código do Idioma","longDescr":"Descrição Completa do URL","cssClass":"Classes de Estilo das Folhas","advisoryTitle":"Título Consultivo","cssStyle":"Estilo","ok":"CONFIRMAR","cancel":"Cancelar","close":"Fechar","preview":"Pré-visualização","resize":"Redimensionar","generalTab":"Geral","advancedTab":"Avançado","validateNumberFailed":"Este valor não é um numero.","confirmNewPage":"Irão ser perdidas quaisquer alterações não guardadas. Tem a certeza que deseja carregar a nova página?","confirmCancel":"Foram alteradas algumas das opções. Tem a certeza que deseja fechar a janela?","options":"Opções","target":"Destino","targetNew":"Nova Janela (_blank)","targetTop":"Janela Superior (_top)","targetSelf":"Mesma Janela (_self)","targetParent":"Janela Parente (_parent)","langDirLTR":"Esquerda para a Direita (EPD)","langDirRTL":"Direita para a Esquerda (DPE)","styles":"Estilo","cssClasses":"Classes de folhas de estilo","width":"Largura","height":"Altura","align":"Alinhamento","alignLeft":"Esquerda","alignRight":"Direita","alignCenter":"Centrado","alignJustify":"Justificado","alignTop":"Topo","alignMiddle":"Centro","alignBottom":"Base","alignNone":"Nenhum","invalidValue":"Valor inválido.","invalidHeight":"A altura deve ser um número.","invalidWidth":"A largura deve ser um número. ","invalidCssLength":"O valor especificado para o campo \"1%\" deve ser um número positivo, com ou sem uma unidade de medida CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"O valor especificado para o campo \"1%\" deve ser um número positivo, com ou sem uma unidade de medida HTML válida (px ou %).","invalidInlineStyle":"O valor especificado para o estilo em linha deve constituir um ou mais conjuntos de valores com o formato de \"nome : valor\", separados por ponto e vírgula.","cssLengthTooltip":"Insira um número para um valor em pontos ou um número com uma unidade CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponível</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/ro.js b/core/assets/vendor/ckeditor/lang/ro.js
index 65f06ae..0619bf7 100644
--- a/core/assets/vendor/ckeditor/lang/ro.js
+++ b/core/assets/vendor/ckeditor/lang/ro.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['ro']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Starea ulterioară (redo)","undo":"Starea anterioară (undo)"},"toolbar":{"toolbarCollapse":"Micșorează Bara","toolbarExpand":"Mărește Bara","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editează bara de unelte"},"table":{"border":"Mărimea marginii","caption":"Titlu (Caption)","cell":{"menu":"Celulă","insertBefore":"Inserează celulă înainte","insertAfter":"Inserează celulă după","deleteCell":"Şterge celule","merge":"Uneşte celule","mergeRight":"Uneşte la dreapta","mergeDown":"Uneşte jos","splitHorizontal":"Împarte celula pe orizontală","splitVertical":"Împarte celula pe verticală","title":"Proprietăți celulă","cellType":"Tipul celulei","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Aliniament orizontal","vAlign":"Aliniament vertical","alignBaseline":"Baseline","bgColor":"Culoare fundal","borderColor":"Culoare bordură","data":"Data","header":"Antet","yes":"Da","no":"Nu","invalidWidth":"Lățimea celulei trebuie să fie un număr.","invalidHeight":"Înălțimea celulei trebuie să fie un număr.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Alege"},"cellPad":"Spaţiu în cadrul celulei","cellSpace":"Spaţiu între celule","column":{"menu":"Coloană","insertBefore":"Inserează coloană înainte","insertAfter":"Inserează coloană după","deleteColumn":"Şterge celule"},"columns":"Coloane","deleteTable":"Şterge tabel","headers":"Antente","headersBoth":"Ambele","headersColumn":"Prima coloană","headersNone":"Nimic","headersRow":"Primul rând","invalidBorder":"Dimensiunea bordurii trebuie să aibe un număr.","invalidCellPadding":"Spațierea celulei trebuie sa fie un număr pozitiv","invalidCellSpacing":"Spațierea celului trebuie să fie un număr pozitiv.","invalidCols":"Numărul coloanelor trebuie să fie mai mare decât 0.","invalidHeight":"Inaltimea celulei trebuie sa fie un numar.","invalidRows":"Numărul rândurilor trebuie să fie mai mare decât 0.","invalidWidth":"Lățimea tabelului trebuie să fie un număr.","menu":"Proprietăţile tabelului","row":{"menu":"Rând","insertBefore":"Inserează rând înainte","insertAfter":"Inserează rând după","deleteRow":"Şterge rânduri"},"rows":"Rânduri","summary":"Rezumat","title":"Proprietăţile tabelului","toolbar":"Tabel","widthPc":"procente","widthPx":"pixeli","widthUnit":"unitate lățime"},"stylescombo":{"label":"Stil","panelTitle":"Formatarea stilurilor","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Opțiuni caractere speciale","title":"Selectează caracter special","toolbar":"Inserează caracter special"},"sourcedialog":{"toolbar":"Sursa","title":"Sursa"},"sourcearea":{"toolbar":"Sursa"},"showblocks":{"toolbar":"Arată blocurile"},"removeformat":{"toolbar":"Înlătură formatarea"},"pastetext":{"button":"Adaugă ca text simplu (Plain Text)","title":"Adaugă ca text simplu (Plain Text)"},"pastefromword":{"confirmCleanup":"Textul pe care doriți să-l lipiți este din Word. Doriți curățarea textului înante de a-l adăuga?","error":"Nu a fost posibilă curățarea datelor adăugate datorită unei erori interne","title":"Adaugă din Word","toolbar":"Adaugă din Word"},"maximize":{"maximize":"Mărește","minimize":"Micșorează"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Inserează / Elimină Listă cu puncte","numberedlist":"Inserează / Elimină Listă numerotată"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Aliniere în bloc (Block Justify)","center":"Aliniere centrală","left":"Aliniere la stânga","right":"Aliniere la dreapta"},"indent":{"indent":"Creşte indentarea","outdent":"Scade indentarea"},"image2":{"alt":"Text alternativ","btnUpload":"Trimite la server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Informaţii despre imagine","lockRatio":"Păstrează proporţiile","menu":"Proprietăţile imaginii","pathName":"image","pathNameCaption":"caption","resetSize":"Resetează mărimea","resizer":"Click and drag to resize","title":"Proprietăţile imaginii","uploadTab":"Încarcă","urlMissing":"Sursa URL a imaginii lipsește."},"horizontalrule":{"toolbar":"Inserează linie orizontală"},"format":{"label":"Formatare","panelTitle":"Formatare","tag_address":"Adresă","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatat"},"elementspath":{"eleLabel":"Calea elementelor","eleTitle":"%1 element"},"contextmenu":{"options":"Opțiuni Meniu Contextual"},"clipboard":{"copy":"Copiază","copyError":"Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).","cut":"Taie","cutError":"Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).","paste":"Adaugă","pasteArea":"Suprafața de adăugare","pasteMsg":"Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (<strong>Ctrl/Cmd+V</strong>) şi apăsaţi OK","securityMsg":"Din cauza setărilor de securitate ale programului dvs. cu care navigaţi pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui să adăugaţi din nou datele în această fereastră.","title":"Adaugă"},"button":{"selectedLabel":"%1 (Selectat)"},"blockquote":{"toolbar":"Citat"},"basicstyles":{"bold":"Îngroşat (bold)","italic":"Înclinat (italic)","strike":"Tăiat (strike through)","subscript":"Indice (subscript)","superscript":"Putere (superscript)","underline":"Subliniat (underline)"},"about":{"copy":"Copyright &copy; $1. Toate drepturile rezervate.","dlgTitle":"Despre CKEeditor","help":"Citește  $1 pentru ajutor.","moreInfo":"Pentru informații despre licență, vă rugăm vizitați web site-ul nostru:","title":"Despre CKEditor","userGuide":"CKEditor Ghid Utilizator"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Apasă ALT 0 pentru ajutor","browseServer":"Răsfoieşte server","url":"URL","protocol":"Protocol","upload":"Încarcă","uploadSubmit":"Trimite la server","image":"Imagine","flash":"Flash","form":"Formular (Form)","checkbox":"Bifă (Checkbox)","radio":"Buton radio (RadioButton)","textField":"Câmp text (TextField)","textarea":"Suprafaţă text (Textarea)","hiddenField":"Câmp ascuns (HiddenField)","button":"Buton","select":"Câmp selecţie (SelectionField)","imageButton":"Buton imagine (ImageButton)","notSet":"<nesetat>","id":"Id","name":"Nume","langDir":"Direcţia cuvintelor","langDirLtr":"stânga-dreapta (LTR)","langDirRtl":"dreapta-stânga (RTL)","langCode":"Codul limbii","longDescr":"Descrierea lungă URL","cssClass":"Clasele cu stilul paginii (CSS)","advisoryTitle":"Titlul consultativ","cssStyle":"Stil","ok":"OK","cancel":"Anulare","close":"Închide","preview":"Previzualizare","resize":"Trage pentru a redimensiona","generalTab":"General","advancedTab":"Avansat","validateNumberFailed":"Această valoare nu este un număr.","confirmNewPage":"Orice modificări nesalvate ale acestui conținut, vor fi pierdute. Sigur doriți încărcarea unei noi pagini?","confirmCancel":"Câteva opțiuni au fost schimbate. Sigur doriți să închideți dialogul?","options":"Opțiuni","target":"Țintă","targetNew":"Fereastră nouă (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"În aceeași fereastră (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Stânga spre Dreapta (LTR)","langDirRTL":"Dreapta spre Stânga (RTL)","styles":"Stil","cssClasses":"Stylesheet Classes","width":"Lăţime","height":"Înălţime","align":"Aliniere","alignLeft":"Mărește Bara","alignRight":"Dreapta","alignCenter":"Centru","alignJustify":"Aliniere în bloc (Block Justify)","alignTop":"Sus","alignMiddle":"Mijloc","alignBottom":"Jos","alignNone":"None","invalidValue":"Valoare invalidă","invalidHeight":"Înălțimea trebuie să fie un număr.","invalidWidth":"Lățimea trebuie să fie un număr.","invalidCssLength":"Valoarea specificată pentru câmpul \"%1\" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură CSS (px, %, in, cm, mm, em, ex, pt, sau pc).","invalidHtmlLength":"Valoarea specificată pentru câmpul \"%1\" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură HTML (px sau %).","invalidInlineStyle":"Valoarea specificată pentru stil trebuie să conțină una sau mai multe construcții de tipul \"name : value\", separate prin punct și virgulă.","cssLengthTooltip":"Introduceți un număr în pixeli sau un număr cu o unitate de măsură CSS (px, %, in, cm, mm, em, ex, pt, sau pc).","unavailable":"%1<span class=\"cke_accessibility\">, nu este disponibil</span>"}};
\ No newline at end of file
+CKEDITOR.lang['ro']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Starea ulterioară (redo)","undo":"Starea anterioară (undo)"},"toolbar":{"toolbarCollapse":"Micșorează Bara","toolbarExpand":"Mărește Bara","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editează bara de unelte"},"table":{"border":"Mărimea marginii","caption":"Titlu (Caption)","cell":{"menu":"Celulă","insertBefore":"Inserează celulă înainte","insertAfter":"Inserează celulă după","deleteCell":"Şterge celule","merge":"Uneşte celule","mergeRight":"Uneşte la dreapta","mergeDown":"Uneşte jos","splitHorizontal":"Împarte celula pe orizontală","splitVertical":"Împarte celula pe verticală","title":"Proprietăți celulă","cellType":"Tipul celulei","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Aliniament orizontal","vAlign":"Aliniament vertical","alignBaseline":"Baseline","bgColor":"Culoare fundal","borderColor":"Culoare bordură","data":"Data","header":"Antet","yes":"Da","no":"Nu","invalidWidth":"Lățimea celulei trebuie să fie un număr.","invalidHeight":"Înălțimea celulei trebuie să fie un număr.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Alege"},"cellPad":"Spaţiu în cadrul celulei","cellSpace":"Spaţiu între celule","column":{"menu":"Coloană","insertBefore":"Inserează coloană înainte","insertAfter":"Inserează coloană după","deleteColumn":"Şterge celule"},"columns":"Coloane","deleteTable":"Şterge tabel","headers":"Antente","headersBoth":"Ambele","headersColumn":"Prima coloană","headersNone":"Nimic","headersRow":"Primul rând","invalidBorder":"Dimensiunea bordurii trebuie să aibe un număr.","invalidCellPadding":"Spațierea celulei trebuie sa fie un număr pozitiv","invalidCellSpacing":"Spațierea celului trebuie să fie un număr pozitiv.","invalidCols":"Numărul coloanelor trebuie să fie mai mare decât 0.","invalidHeight":"Inaltimea celulei trebuie sa fie un numar.","invalidRows":"Numărul rândurilor trebuie să fie mai mare decât 0.","invalidWidth":"Lățimea tabelului trebuie să fie un număr.","menu":"Proprietăţile tabelului","row":{"menu":"Rând","insertBefore":"Inserează rând înainte","insertAfter":"Inserează rând după","deleteRow":"Şterge rânduri"},"rows":"Rânduri","summary":"Rezumat","title":"Proprietăţile tabelului","toolbar":"Tabel","widthPc":"procente","widthPx":"pixeli","widthUnit":"unitate lățime"},"stylescombo":{"label":"Stil","panelTitle":"Formatarea stilurilor","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Opțiuni caractere speciale","title":"Selectează caracter special","toolbar":"Inserează caracter special"},"sourcedialog":{"toolbar":"Sursa","title":"Sursa"},"sourcearea":{"toolbar":"Sursa"},"showblocks":{"toolbar":"Arată blocurile"},"removeformat":{"toolbar":"Înlătură formatarea"},"pastetext":{"button":"Adaugă ca text simplu (Plain Text)","title":"Adaugă ca text simplu (Plain Text)"},"pastefromword":{"confirmCleanup":"Textul pe care doriți să-l lipiți este din Word. Doriți curățarea textului înante de a-l adăuga?","error":"Nu a fost posibilă curățarea datelor adăugate datorită unei erori interne","title":"Adaugă din Word","toolbar":"Adaugă din Word"},"maximize":{"maximize":"Mărește","minimize":"Micșorează"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Inserează / Elimină Listă cu puncte","numberedlist":"Inserează / Elimină Listă numerotată"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Aliniere în bloc (Block Justify)","center":"Aliniere centrală","left":"Aliniere la stânga","right":"Aliniere la dreapta"},"indent":{"indent":"Creşte indentarea","outdent":"Scade indentarea"},"image2":{"alt":"Text alternativ","btnUpload":"Trimite la server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Informaţii despre imagine","lockRatio":"Păstrează proporţiile","menu":"Proprietăţile imaginii","pathName":"image","pathNameCaption":"caption","resetSize":"Resetează mărimea","resizer":"Click and drag to resize","title":"Proprietăţile imaginii","uploadTab":"Încarcă","urlMissing":"Sursa URL a imaginii lipsește."},"horizontalrule":{"toolbar":"Inserează linie orizontală"},"format":{"label":"Formatare","panelTitle":"Formatare","tag_address":"Adresă","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatat"},"elementspath":{"eleLabel":"Calea elementelor","eleTitle":"%1 element"},"contextmenu":{"options":"Opțiuni Meniu Contextual"},"clipboard":{"copy":"Copiază","copyError":"Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).","cut":"Taie","cutError":"Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).","paste":"Adaugă","pasteArea":"Suprafața de adăugare","pasteMsg":"Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (<strong>Ctrl/Cmd+V</strong>) şi apăsaţi OK","securityMsg":"Din cauza setărilor de securitate ale programului dvs. cu care navigaţi pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui să adăugaţi din nou datele în această fereastră.","title":"Adaugă"},"button":{"selectedLabel":"%1 (Selectat)"},"blockquote":{"toolbar":"Citat"},"basicstyles":{"bold":"Îngroşat (bold)","italic":"Înclinat (italic)","strike":"Tăiat (strike through)","subscript":"Indice (subscript)","superscript":"Putere (superscript)","underline":"Subliniat (underline)"},"about":{"copy":"Copyright &copy; $1. Toate drepturile rezervate.","dlgTitle":"Despre CKEeditor","help":"Citește  $1 pentru ajutor.","moreInfo":"Pentru informații despre licență, vă rugăm vizitați web site-ul nostru:","title":"Despre CKEditor","userGuide":"CKEditor Ghid Utilizator"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Apasă ALT 0 pentru ajutor","browseServer":"Răsfoieşte server","url":"URL","protocol":"Protocol","upload":"Încarcă","uploadSubmit":"Trimite la server","image":"Imagine","flash":"Flash","form":"Formular (Form)","checkbox":"Bifă (Checkbox)","radio":"Buton radio (RadioButton)","textField":"Câmp text (TextField)","textarea":"Suprafaţă text (Textarea)","hiddenField":"Câmp ascuns (HiddenField)","button":"Buton","select":"Câmp selecţie (SelectionField)","imageButton":"Buton imagine (ImageButton)","notSet":"<nesetat>","id":"Id","name":"Nume","langDir":"Direcţia cuvintelor","langDirLtr":"stânga-dreapta (LTR)","langDirRtl":"dreapta-stânga (RTL)","langCode":"Codul limbii","longDescr":"Descrierea lungă URL","cssClass":"Clasele cu stilul paginii (CSS)","advisoryTitle":"Titlul consultativ","cssStyle":"Stil","ok":"OK","cancel":"Anulare","close":"Închide","preview":"Previzualizare","resize":"Trage pentru a redimensiona","generalTab":"General","advancedTab":"Avansat","validateNumberFailed":"Această valoare nu este un număr.","confirmNewPage":"Orice modificări nesalvate ale acestui conținut, vor fi pierdute. Sigur doriți încărcarea unei noi pagini?","confirmCancel":"Câteva opțiuni au fost schimbate. Sigur doriți să închideți dialogul?","options":"Opțiuni","target":"Țintă","targetNew":"Fereastră nouă (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"În aceeași fereastră (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Stânga spre Dreapta (LTR)","langDirRTL":"Dreapta spre Stânga (RTL)","styles":"Stil","cssClasses":"Stylesheet Classes","width":"Lăţime","height":"Înălţime","align":"Aliniere","alignLeft":"Mărește Bara","alignRight":"Dreapta","alignCenter":"Centru","alignJustify":"Aliniere în bloc (Block Justify)","alignTop":"Sus","alignMiddle":"Mijloc","alignBottom":"Jos","alignNone":"None","invalidValue":"Valoare invalidă","invalidHeight":"Înălțimea trebuie să fie un număr.","invalidWidth":"Lățimea trebuie să fie un număr.","invalidCssLength":"Valoarea specificată pentru câmpul \"%1\" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură CSS (px, %, in, cm, mm, em, ex, pt, sau pc).","invalidHtmlLength":"Valoarea specificată pentru câmpul \"%1\" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură HTML (px sau %).","invalidInlineStyle":"Valoarea specificată pentru stil trebuie să conțină una sau mai multe construcții de tipul \"name : value\", separate prin punct și virgulă.","cssLengthTooltip":"Introduceți un număr în pixeli sau un număr cu o unitate de măsură CSS (px, %, in, cm, mm, em, ex, pt, sau pc).","unavailable":"%1<span class=\"cke_accessibility\">, nu este disponibil</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/ru.js b/core/assets/vendor/ckeditor/lang/ru.js
index d1327b2..21cd301 100644
--- a/core/assets/vendor/ckeditor/lang/ru.js
+++ b/core/assets/vendor/ckeditor/lang/ru.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['ru']={"widget":{"move":"Нажмите и перетащите","label":"%1 widget"},"undo":{"redo":"Повторить","undo":"Отменить"},"toolbar":{"toolbarCollapse":"Свернуть панель инструментов","toolbarExpand":"Развернуть панель инструментов","toolbarGroups":{"document":"Документ","clipboard":"Буфер обмена / Отмена действий","editing":"Корректировка","forms":"Формы","basicstyles":"Простые стили","paragraph":"Абзац","links":"Ссылки","insert":"Вставка","styles":"Стили","colors":"Цвета","tools":"Инструменты"},"toolbars":"Панели инструментов редактора"},"table":{"border":"Размер границ","caption":"Заголовок","cell":{"menu":"Ячейка","insertBefore":"Вставить ячейку слева","insertAfter":"Вставить ячейку справа","deleteCell":"Удалить ячейки","merge":"Объединить ячейки","mergeRight":"Объединить с правой","mergeDown":"Объединить с нижней","splitHorizontal":"Разделить ячейку по горизонтали","splitVertical":"Разделить ячейку по вертикали","title":"Свойства ячейки","cellType":"Тип ячейки","rowSpan":"Объединяет строк","colSpan":"Объединяет колонок","wordWrap":"Перенос по словам","hAlign":"Горизонтальное выравнивание","vAlign":"Вертикальное выравнивание","alignBaseline":"По базовой линии","bgColor":"Цвет фона","borderColor":"Цвет границ","data":"Данные","header":"Заголовок","yes":"Да","no":"Нет","invalidWidth":"Ширина ячейки должна быть числом.","invalidHeight":"Высота ячейки должна быть числом.","invalidRowSpan":"Количество объединяемых строк должно быть задано числом.","invalidColSpan":"Количество объединяемых колонок должно быть задано числом.","chooseColor":"Выберите"},"cellPad":"Внутренний отступ ячеек","cellSpace":"Внешний отступ ячеек","column":{"menu":"Колонка","insertBefore":"Вставить колонку слева","insertAfter":"Вставить колонку справа","deleteColumn":"Удалить колонки"},"columns":"Колонки","deleteTable":"Удалить таблицу","headers":"Заголовки","headersBoth":"Сверху и слева","headersColumn":"Левая колонка","headersNone":"Без заголовков","headersRow":"Верхняя строка","invalidBorder":"Размер границ должен быть числом.","invalidCellPadding":"Внутренний отступ ячеек (cellpadding) должен быть числом.","invalidCellSpacing":"Внешний отступ ячеек (cellspacing) должен быть числом.","invalidCols":"Количество столбцов должно быть больше 0.","invalidHeight":"Высота таблицы должна быть числом.","invalidRows":"Количество строк должно быть больше 0.","invalidWidth":"Ширина таблицы должна быть числом.","menu":"Свойства таблицы","row":{"menu":"Строка","insertBefore":"Вставить строку сверху","insertAfter":"Вставить строку снизу","deleteRow":"Удалить строки"},"rows":"Строки","summary":"Итоги","title":"Свойства таблицы","toolbar":"Таблица","widthPc":"процентов","widthPx":"пикселей","widthUnit":"единица измерения"},"stylescombo":{"label":"Стили","panelTitle":"Стили форматирования","panelTitle1":"Стили блока","panelTitle2":"Стили элемента","panelTitle3":"Стили объекта"},"specialchar":{"options":"Выбор специального символа","title":"Выберите специальный символ","toolbar":"Вставить специальный символ"},"sourcedialog":{"toolbar":"Исходник","title":"Источник"},"sourcearea":{"toolbar":"Источник"},"showblocks":{"toolbar":"Отображать блоки"},"removeformat":{"toolbar":"Убрать форматирование"},"pastetext":{"button":"Вставить только текст","title":"Вставить только текст"},"pastefromword":{"confirmCleanup":"Текст, который вы желаете вставить, по всей видимости, был скопирован из Word. Следует ли очистить его перед вставкой?","error":"Невозможно очистить вставленные данные из-за внутренней ошибки","title":"Вставить из Word","toolbar":"Вставить из Word"},"maximize":{"maximize":"Развернуть","minimize":"Свернуть"},"magicline":{"title":"Вставить здесь параграф"},"list":{"bulletedlist":"Вставить / удалить маркированный список","numberedlist":"Вставить / удалить нумерованный список"},"language":{"button":"Установка языка","remove":"Удалить язык"},"justify":{"block":"По ширине","center":"По центру","left":"По левому краю","right":"По правому краю"},"indent":{"indent":"Увеличить отступ","outdent":"Уменьшить отступ"},"image2":{"alt":"Альтернативный текст","btnUpload":"Загрузить на сервер","captioned":"Отображать название","captionPlaceholder":"Название","infoTab":"Данные об изображении","lockRatio":"Сохранять пропорции","menu":"Свойства изображения","pathName":"изображение","pathNameCaption":"название","resetSize":"Вернуть обычные размеры","resizer":"Нажмите и растяните","title":"Свойства изображения","uploadTab":"Загрузка файла","urlMissing":"Не указана ссылка на изображение."},"horizontalrule":{"toolbar":"Вставить горизонтальную линию"},"format":{"label":"Форматирование","panelTitle":"Форматирование","tag_address":"Адрес","tag_div":"Обычное (div)","tag_h1":"Заголовок 1","tag_h2":"Заголовок 2","tag_h3":"Заголовок 3","tag_h4":"Заголовок 4","tag_h5":"Заголовок 5","tag_h6":"Заголовок 6","tag_p":"Обычное","tag_pre":"Моноширинное"},"elementspath":{"eleLabel":"Путь элементов","eleTitle":"Элемент %1"},"contextmenu":{"options":"Параметры контекстного меню"},"clipboard":{"copy":"Копировать","copyError":"Настройки безопасности вашего браузера не разрешают редактору выполнять операции по копированию текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+C).","cut":"Вырезать","cutError":"Настройки безопасности вашего браузера не разрешают редактору выполнять операции по вырезке текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+X).","paste":"Вставить","pasteArea":"Зона для вставки","pasteMsg":"Пожалуйста, вставьте текст в зону ниже, используя клавиатуру (<strong>Ctrl/Cmd+V</strong>) и нажмите кнопку \"OK\".","securityMsg":"Настройки безопасности вашего браузера не разрешают редактору напрямую обращаться к буферу обмена. Вы должны вставить текст снова в это окно.","title":"Вставить"},"button":{"selectedLabel":"%1 (Выбрано)"},"blockquote":{"toolbar":"Цитата"},"basicstyles":{"bold":"Полужирный","italic":"Курсив","strike":"Зачеркнутый","subscript":"Подстрочный индекс","superscript":"Надстрочный индекс","underline":"Подчеркнутый"},"about":{"copy":"Copyright &copy; $1. Все права защищены.","dlgTitle":"О CKEditor","help":"$1 содержит подробную справку по использованию.","moreInfo":"Для получения информации о лицензии, пожалуйста, перейдите на наш сайт:","title":"О CKEditor","userGuide":"Руководство пользователя CKEditor"},"editor":"Визуальный текстовый редактор","editorPanel":"Визуальный редактор текста","common":{"editorHelp":"Нажмите ALT-0 для открытия справки","browseServer":"Выбор на сервере","url":"Ссылка","protocol":"Протокол","upload":"Загрузка файла","uploadSubmit":"Загрузить на сервер","image":"Изображение","flash":"Flash","form":"Форма","checkbox":"Чекбокс","radio":"Радиокнопка","textField":"Текстовое поле","textarea":"Многострочное текстовое поле","hiddenField":"Скрытое поле","button":"Кнопка","select":"Выпадающий список","imageButton":"Кнопка-изображение","notSet":"<не указано>","id":"Идентификатор","name":"Имя","langDir":"Направление текста","langDirLtr":"Слева направо (LTR)","langDirRtl":"Справа налево (RTL)","langCode":"Код языка","longDescr":"Длинное описание ссылки","cssClass":"Класс CSS","advisoryTitle":"Заголовок","cssStyle":"Стиль","ok":"ОК","cancel":"Отмена","close":"Закрыть","preview":"Предпросмотр","resize":"Перетащите для изменения размера","generalTab":"Основное","advancedTab":"Дополнительно","validateNumberFailed":"Это значение не является числом.","confirmNewPage":"Несохранённые изменения будут потеряны! Вы действительно желаете перейти на другую страницу?","confirmCancel":"Некоторые параметры были изменены. Вы уверены, что желаете закрыть без сохранения?","options":"Параметры","target":"Цель","targetNew":"Новое окно (_blank)","targetTop":"Главное окно (_top)","targetSelf":"Текущее окно (_self)","targetParent":"Родительское окно (_parent)","langDirLTR":"Слева направо (LTR)","langDirRTL":"Справа налево (RTL)","styles":"Стиль","cssClasses":"CSS классы","width":"Ширина","height":"Высота","align":"Выравнивание","alignLeft":"По левому краю","alignRight":"По правому краю","alignCenter":"По центру","alignJustify":"По ширине","alignTop":"Поверху","alignMiddle":"Посередине","alignBottom":"Понизу","alignNone":"Нет","invalidValue":"Недопустимое значение.","invalidHeight":"Высота задается числом.","invalidWidth":"Ширина задается числом.","invalidCssLength":"Значение, указанное в поле \"%1\", должно быть положительным целым числом. Допускается указание единиц меры CSS (px, %, in, cm, mm, em, ex, pt или pc).","invalidHtmlLength":"Значение, указанное в поле \"%1\", должно быть положительным целым числом. Допускается указание единиц меры HTML (px или %).","invalidInlineStyle":"Значение, указанное для стиля элемента, должно состоять из одной или нескольких пар данных в формате \"параметр : значение\", разделённых точкой с запятой.","cssLengthTooltip":"Введите значение в пикселях, либо число с корректной единицей меры CSS (px, %, in, cm, mm, em, ex, pt или pc).","unavailable":"%1<span class=\"cke_accessibility\">, недоступно</span>"}};
\ No newline at end of file
+CKEDITOR.lang['ru']={"widget":{"move":"Нажмите и перетащите"},"undo":{"redo":"Повторить","undo":"Отменить"},"toolbar":{"toolbarCollapse":"Свернуть панель инструментов","toolbarExpand":"Развернуть панель инструментов","toolbarGroups":{"document":"Документ","clipboard":"Буфер обмена / Отмена действий","editing":"Корректировка","forms":"Формы","basicstyles":"Простые стили","paragraph":"Абзац","links":"Ссылки","insert":"Вставка","styles":"Стили","colors":"Цвета","tools":"Инструменты"},"toolbars":"Панели инструментов редактора"},"table":{"border":"Размер границ","caption":"Заголовок","cell":{"menu":"Ячейка","insertBefore":"Вставить ячейку слева","insertAfter":"Вставить ячейку справа","deleteCell":"Удалить ячейки","merge":"Объединить ячейки","mergeRight":"Объединить с правой","mergeDown":"Объединить с нижней","splitHorizontal":"Разделить ячейку по горизонтали","splitVertical":"Разделить ячейку по вертикали","title":"Свойства ячейки","cellType":"Тип ячейки","rowSpan":"Объединяет строк","colSpan":"Объединяет колонок","wordWrap":"Перенос по словам","hAlign":"Горизонтальное выравнивание","vAlign":"Вертикальное выравнивание","alignBaseline":"По базовой линии","bgColor":"Цвет фона","borderColor":"Цвет границ","data":"Данные","header":"Заголовок","yes":"Да","no":"Нет","invalidWidth":"Ширина ячейки должна быть числом.","invalidHeight":"Высота ячейки должна быть числом.","invalidRowSpan":"Количество объединяемых строк должно быть задано числом.","invalidColSpan":"Количество объединяемых колонок должно быть задано числом.","chooseColor":"Выберите"},"cellPad":"Внутренний отступ ячеек","cellSpace":"Внешний отступ ячеек","column":{"menu":"Колонка","insertBefore":"Вставить колонку слева","insertAfter":"Вставить колонку справа","deleteColumn":"Удалить колонки"},"columns":"Колонки","deleteTable":"Удалить таблицу","headers":"Заголовки","headersBoth":"Сверху и слева","headersColumn":"Левая колонка","headersNone":"Без заголовков","headersRow":"Верхняя строка","invalidBorder":"Размер границ должен быть числом.","invalidCellPadding":"Внутренний отступ ячеек (cellpadding) должен быть числом.","invalidCellSpacing":"Внешний отступ ячеек (cellspacing) должен быть числом.","invalidCols":"Количество столбцов должно быть больше 0.","invalidHeight":"Высота таблицы должна быть числом.","invalidRows":"Количество строк должно быть больше 0.","invalidWidth":"Ширина таблицы должна быть числом.","menu":"Свойства таблицы","row":{"menu":"Строка","insertBefore":"Вставить строку сверху","insertAfter":"Вставить строку снизу","deleteRow":"Удалить строки"},"rows":"Строки","summary":"Итоги","title":"Свойства таблицы","toolbar":"Таблица","widthPc":"процентов","widthPx":"пикселей","widthUnit":"единица измерения"},"stylescombo":{"label":"Стили","panelTitle":"Стили форматирования","panelTitle1":"Стили блока","panelTitle2":"Стили элемента","panelTitle3":"Стили объекта"},"specialchar":{"options":"Выбор специального символа","title":"Выберите специальный символ","toolbar":"Вставить специальный символ"},"sourcedialog":{"toolbar":"Исходник","title":"Источник"},"sourcearea":{"toolbar":"Источник"},"showblocks":{"toolbar":"Отображать блоки"},"removeformat":{"toolbar":"Убрать форматирование"},"pastetext":{"button":"Вставить только текст","title":"Вставить только текст"},"pastefromword":{"confirmCleanup":"Текст, который вы желаете вставить, по всей видимости, был скопирован из Word. Следует ли очистить его перед вставкой?","error":"Невозможно очистить вставленные данные из-за внутренней ошибки","title":"Вставить из Word","toolbar":"Вставить из Word"},"maximize":{"maximize":"Развернуть","minimize":"Свернуть"},"magicline":{"title":"Вставить здесь параграф"},"list":{"bulletedlist":"Вставить / удалить маркированный список","numberedlist":"Вставить / удалить нумерованный список"},"language":{"button":"Установка языка","remove":"Удалить язык"},"justify":{"block":"По ширине","center":"По центру","left":"По левому краю","right":"По правому краю"},"indent":{"indent":"Увеличить отступ","outdent":"Уменьшить отступ"},"image2":{"alt":"Альтернативный текст","btnUpload":"Загрузить на сервер","captioned":"Отображать название","captionPlaceholder":"Название","infoTab":"Данные об изображении","lockRatio":"Сохранять пропорции","menu":"Свойства изображения","pathName":"изображение","pathNameCaption":"название","resetSize":"Вернуть обычные размеры","resizer":"Нажмите и растяните","title":"Свойства изображения","uploadTab":"Загрузка файла","urlMissing":"Не указана ссылка на изображение."},"horizontalrule":{"toolbar":"Вставить горизонтальную линию"},"format":{"label":"Форматирование","panelTitle":"Форматирование","tag_address":"Адрес","tag_div":"Обычное (div)","tag_h1":"Заголовок 1","tag_h2":"Заголовок 2","tag_h3":"Заголовок 3","tag_h4":"Заголовок 4","tag_h5":"Заголовок 5","tag_h6":"Заголовок 6","tag_p":"Обычное","tag_pre":"Моноширинное"},"elementspath":{"eleLabel":"Путь элементов","eleTitle":"Элемент %1"},"contextmenu":{"options":"Параметры контекстного меню"},"clipboard":{"copy":"Копировать","copyError":"Настройки безопасности вашего браузера не разрешают редактору выполнять операции по копированию текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+C).","cut":"Вырезать","cutError":"Настройки безопасности вашего браузера не разрешают редактору выполнять операции по вырезке текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+X).","paste":"Вставить","pasteArea":"Зона для вставки","pasteMsg":"Пожалуйста, вставьте текст в зону ниже, используя клавиатуру (<strong>Ctrl/Cmd+V</strong>) и нажмите кнопку \"OK\".","securityMsg":"Настройки безопасности вашего браузера не разрешают редактору напрямую обращаться к буферу обмена. Вы должны вставить текст снова в это окно.","title":"Вставить"},"button":{"selectedLabel":"%1 (Выбрано)"},"blockquote":{"toolbar":"Цитата"},"basicstyles":{"bold":"Полужирный","italic":"Курсив","strike":"Зачеркнутый","subscript":"Подстрочный индекс","superscript":"Надстрочный индекс","underline":"Подчеркнутый"},"about":{"copy":"Copyright &copy; $1. Все права защищены.","dlgTitle":"О CKEditor","help":"$1 содержит подробную справку по использованию.","moreInfo":"Для получения информации о лицензии, пожалуйста, перейдите на наш сайт:","title":"О CKEditor","userGuide":"Руководство пользователя CKEditor"},"editor":"Визуальный текстовый редактор","editorPanel":"Визуальный редактор текста","common":{"editorHelp":"Нажмите ALT-0 для открытия справки","browseServer":"Выбор на сервере","url":"Ссылка","protocol":"Протокол","upload":"Загрузка файла","uploadSubmit":"Загрузить на сервер","image":"Изображение","flash":"Flash","form":"Форма","checkbox":"Чекбокс","radio":"Радиокнопка","textField":"Текстовое поле","textarea":"Многострочное текстовое поле","hiddenField":"Скрытое поле","button":"Кнопка","select":"Выпадающий список","imageButton":"Кнопка-изображение","notSet":"<не указано>","id":"Идентификатор","name":"Имя","langDir":"Направление текста","langDirLtr":"Слева направо (LTR)","langDirRtl":"Справа налево (RTL)","langCode":"Код языка","longDescr":"Длинное описание ссылки","cssClass":"Класс CSS","advisoryTitle":"Заголовок","cssStyle":"Стиль","ok":"ОК","cancel":"Отмена","close":"Закрыть","preview":"Предпросмотр","resize":"Перетащите для изменения размера","generalTab":"Основное","advancedTab":"Дополнительно","validateNumberFailed":"Это значение не является числом.","confirmNewPage":"Несохранённые изменения будут потеряны! Вы действительно желаете перейти на другую страницу?","confirmCancel":"Некоторые параметры были изменены. Вы уверены, что желаете закрыть без сохранения?","options":"Параметры","target":"Цель","targetNew":"Новое окно (_blank)","targetTop":"Главное окно (_top)","targetSelf":"Текущее окно (_self)","targetParent":"Родительское окно (_parent)","langDirLTR":"Слева направо (LTR)","langDirRTL":"Справа налево (RTL)","styles":"Стиль","cssClasses":"CSS классы","width":"Ширина","height":"Высота","align":"Выравнивание","alignLeft":"По левому краю","alignRight":"По правому краю","alignCenter":"По центру","alignJustify":"По ширине","alignTop":"Поверху","alignMiddle":"Посередине","alignBottom":"Понизу","alignNone":"Нет","invalidValue":"Недопустимое значение.","invalidHeight":"Высота задается числом.","invalidWidth":"Ширина задается числом.","invalidCssLength":"Значение, указанное в поле \"%1\", должно быть положительным целым числом. Допускается указание единиц меры CSS (px, %, in, cm, mm, em, ex, pt или pc).","invalidHtmlLength":"Значение, указанное в поле \"%1\", должно быть положительным целым числом. Допускается указание единиц меры HTML (px или %).","invalidInlineStyle":"Значение, указанное для стиля элемента, должно состоять из одной или нескольких пар данных в формате \"параметр : значение\", разделённых точкой с запятой.","cssLengthTooltip":"Введите значение в пикселях, либо число с корректной единицей меры CSS (px, %, in, cm, mm, em, ex, pt или pc).","unavailable":"%1<span class=\"cke_accessibility\">, недоступно</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/si.js b/core/assets/vendor/ckeditor/lang/si.js
index b9e3569..8794053 100644
--- a/core/assets/vendor/ckeditor/lang/si.js
+++ b/core/assets/vendor/ckeditor/lang/si.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['si']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"නැවත කිරීම","undo":"වෙනස් කිරීම"},"toolbar":{"toolbarCollapse":"මෙවලම් තීරුව හැකුලුම.","toolbarExpand":"මෙවලම් තීරුව දීගහැරුම","toolbarGroups":{"document":"ලිපිය","clipboard":"ඇමිණුම වෙනස් කිරීම","editing":"සංස්කරණය","forms":"පෝරමය","basicstyles":"මුලික විලාසය","paragraph":"චේදය","links":"සබැඳිය","insert":"ඇතුලත් කිරීම","styles":"විලාසය","colors":"වර්ණය","tools":"මෙවලම්"},"toolbars":"සංස්කරණ මෙවලම් තීරුව"},"table":{"border":"සීමාවවල විශාලත්වය","caption":"Caption","cell":{"menu":"කොටුව","insertBefore":"පෙර කොටුවක් ඇතුල්කිරිම","insertAfter":"පසුව කොටුවක් ඇතුලත් ","deleteCell":"කොටුව මැකීම","merge":"කොටු එකට යාකිරිම","mergeRight":"දකුණට ","mergeDown":"පහලට ","splitHorizontal":"තිරස්ව කොටු පැතිරීම","splitVertical":"සිරස්ව කොටු පැතිරීම","title":"කොටු ","cellType":"කොටු වර්ගය","rowSpan":"පේළි පළල","colSpan":"සිරස් පළල","wordWrap":"වචන ගැලපුම","hAlign":"තිරස්ව ","vAlign":"සිරස්ව ","alignBaseline":"පාද රේඛාව","bgColor":"පසුබිම් වර්ණය","borderColor":"මායිම් ","data":"Data","header":"ශීර්ෂක","yes":"ඔව්","no":"නැත","invalidWidth":"කොටු පළල සංඛ්‍ය්ත්මක වටිනාකමක් විය යුතුය","invalidHeight":"කොටු උස සංඛ්‍ය්ත්මක වටිනාකමක් විය යුතුය","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"තෝරන්න"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"සිරස් ","deleteTable":"වගුව මකන්න","headers":"ශීර්ෂක","headersBoth":"දෙකම","headersColumn":"පළමූ සිරස් තීරුව","headersNone":"කිසිවක්ම නොවේ","headersRow":"පළමූ පේළිය","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"විලාසය","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"විශේෂ  ගුණාංග වීකල්ප","title":"විශේෂ  ගුණාංග ","toolbar":"විශේෂ ගුණාංග ඇතුලත් "},"sourcedialog":{"toolbar":"මුලාශ්‍රය","title":"මුලාශ්‍රය"},"sourcearea":{"toolbar":"මුලාශ්‍රය"},"showblocks":{"toolbar":"කොටස පෙන්නන්න"},"removeformat":{"toolbar":"සැකසීම වෙනස් කරන්න"},"pastetext":{"button":"සාමාන්‍ය අක්ෂර ලෙස අලවන්න","title":"සාමාන්‍ය අක්ෂර ලෙස අලවන්න"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"වචන වලින් අලවන්න","toolbar":"වචන වලින් අලවන්න"},"maximize":{"maximize":"විශාල කිරීම","minimize":"කුඩා කිරීම"},"magicline":{"title":"චේදය ඇතුලත් කරන්න"},"list":{"bulletedlist":"ඇතුලත් / ඉවත් කිරීම ලඉස්තුව","numberedlist":"ඇතුලත් / ඉවත් කිරීම අන්න්කිත ලඉස්තුව"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"මධ්‍ය","left":"Align Left","right":"Align Right"},"indent":{"indent":"අතර පරතරය වැඩිකරන්න","outdent":"අතර පරතරය අඩුකරන්න"},"image2":{"alt":"විකල්ප ","btnUpload":"සේවාදායකය වෙත යොමුකිරිම","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"රුපයේ තොරතුරු","lockRatio":"නවතන අනුපාතය ","menu":"රුපයේ ගුණ","pathName":"image","pathNameCaption":"caption","resetSize":"නැවතත් විශාලත්වය වෙනස් කිරීම","resizer":"Click and drag to resize","title":"රුපයේ ","uploadTab":"උඩුගතකිරීම","urlMissing":"රුප මුලාශ්‍ර URL නැත."},"horizontalrule":{"toolbar":"තිරස් රේඛාවක් ඇතුලත් කරන්න"},"format":{"label":"ආකෘතිය","panelTitle":"චේදයේ ","tag_address":"ලිපිනය","tag_div":"සාමාන්‍ය(DIV)","tag_h1":"ශීර්ෂය 1","tag_h2":"ශීර්ෂය 2","tag_h3":"ශීර්ෂය 3","tag_h4":"ශීර්ෂය 4","tag_h5":"ශීර්ෂය 5","tag_h6":"ශීර්ෂය 6","tag_p":"සාමාන්‍ය","tag_pre":"ආකෘතියන්"},"elementspath":{"eleLabel":"මුලද්‍රව්‍ය මාර්ගය","eleTitle":"%1 මුල"},"contextmenu":{"options":"අනතර්ග ලේඛණ  විකල්ප"},"clipboard":{"copy":"පිටපත් කරන්න","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"කපාගන්න","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"අලවන්න","pasteArea":"අලවන ප්‍රදේශ","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"අලවන්න"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"උද්ධෘත කොටස"},"basicstyles":{"bold":"තද අකුරින් ලියනලද","italic":"බැධීඅකුරින් ලියන ලද","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"යටින් ඉරි අදින ලද"},"about":{"copy":"පිටපත් අයිතිය සහ පිටපත් කිරීම;$1 .සියලුම හිමිකම් ඇවිරිණි.","dlgTitle":"CKEditor ගැන විස්තර","help":"උදව් සඳහා $1 ","moreInfo":"බලපත්‍ර තොරතුරු සදහා කරුණාකර අපගේ විද්‍යුත් ලිපිනයට පිවිසෙන්න:","title":"CKEditor ගැන විස්තර","userGuide":"CKEditor භාවිතා කිරීම පිළිබඳ "},"editor":"පොහොසත් වචන සංස්කරණ","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"උදව් ලබා ගැනීමට  ALT බොත්තම ඔබන්න","browseServer":"සෙවුම් සේවාදායකය","url":"URL","protocol":"මුලාපත්‍රය","upload":"උඩුගතකිරීම","uploadSubmit":"සේවාදායකය වෙත යොමුකිරිම","image":"රුපය","flash":"දීප්තිය","form":"පෝරමය","checkbox":"ලකුණුකිරීමේ කොටුව","radio":"තේරීම් ","textField":"ලියන ප්‍රදේශය","textarea":"අකුරු ","hiddenField":"සැඟවුණු ප්‍රදේශය","button":"බොත්තම","select":"තෝරන්න ","imageButton":"රුප ","notSet":"<යොදා >","id":"අංකය","name":"නම","langDir":"භාෂා දිශාව","langDirLtr":"වමේසිට දකුණුට","langDirRtl":"දකුණේ සිට වමට","langCode":"භාෂා කේතය","longDescr":"සම්පුර්න පැහැදිලි කිරීම","cssClass":"විලාශ පත්‍ර පන්තිය","advisoryTitle":"උපදෙස් ","cssStyle":"විලාසය","ok":"නිරදි","cancel":"අවලංගු කිරීම","close":"වැසීම","preview":"නැවත ","resize":"විශාලත්වය නැවත වෙනස් කිරීම","generalTab":"පොදු කරුණු.","advancedTab":"දීය","validateNumberFailed":"මෙම වටිනාකම අංකයක් නොවේ","confirmNewPage":"ආරක්ෂා නොකළ සියලුම දත්තයන් මැකියනුලැබේ. ඔබට නව පිටුවක් ලබා ගැනීමට අවශ්‍යද?","confirmCancel":"ඇතම් විකල්පයන් වෙනස් කර ඇත. ඔබට මින් නික්මීමට අවශ්‍යද?","options":" විකල්ප","target":"අරමුණ","targetNew":"නව කව්ළුව","targetTop":"වැදගත් කව්ළුව","targetSelf":"එම කව්ළුව(_තම\\\\)","targetParent":"මව් කව්ළුව(_)","langDirLTR":"වමේසිට දකුණුට","langDirRTL":"දකුණේ සිට වමට","styles":"විලාසය","cssClasses":"විලාසපත්‍ර පන්තිය","width":"පළල","height":"උස","align":"ගැලපුම","alignLeft":"වම","alignRight":"දකුණ","alignCenter":"මධ්‍ය","alignJustify":"Justify","alignTop":"ඉ","alignMiddle":"මැද","alignBottom":"පහල","alignNone":"None","invalidValue":"වැරදී වටිනාකමකි","invalidHeight":"උස අංකයක් විය යුතුය","invalidWidth":"පළල අංකයක් විය යුතුය","invalidCssLength":"වටිනාකමක් නිරූපණය කිරීම \"%1\" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ  නිවරදි නොවන  CSS මිනුම් එකක(px, %, in, cm, mm, em, ex, pt, pc)","invalidHtmlLength":"වටිනාකමක් නිරූපණය කිරීම \"%1\" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ  නිවරදි නොවන  HTML මිනුම් එකක (px හෝ %).","invalidInlineStyle":"වටිනාකමක් නිරූපණය කිරීම  පේළි විලාසයයට ආකෘතිය  අනතර්ග විය යුතය  \"නම : වටිනාකම\", තිත් කොමාවකින් වෙන් වෙන ලද.","cssLengthTooltip":"සංක්‍යා ඇතුලත් කිරීමේදී වටිනාකම තිත් ප්‍රමාණය නිවරදි CSS  ඒකක(තිත්, %, අඟල්,සෙමි, mm, em, ex, pt, pc)","unavailable":"%1<span පන්තිය=\"ළඟා වියහැකි ද බලන්න\">, නොමැතිනම්</span>"}};
\ No newline at end of file
+CKEDITOR.lang['si']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"නැවත කිරීම","undo":"වෙනස් කිරීම"},"toolbar":{"toolbarCollapse":"මෙවලම් තීරුව හැකුලුම.","toolbarExpand":"මෙවලම් තීරුව දීගහැරුම","toolbarGroups":{"document":"ලිපිය","clipboard":"ඇමිණුම වෙනස් කිරීම","editing":"සංස්කරණය","forms":"පෝරමය","basicstyles":"මුලික විලාසය","paragraph":"චේදය","links":"සබැඳිය","insert":"ඇතුලත් කිරීම","styles":"විලාසය","colors":"වර්ණය","tools":"මෙවලම්"},"toolbars":"සංස්කරණ මෙවලම් තීරුව"},"table":{"border":"සීමාවවල විශාලත්වය","caption":"Caption","cell":{"menu":"කොටුව","insertBefore":"පෙර කොටුවක් ඇතුල්කිරිම","insertAfter":"පසුව කොටුවක් ඇතුලත් ","deleteCell":"කොටුව මැකීම","merge":"කොටු එකට යාකිරිම","mergeRight":"දකුණට ","mergeDown":"පහලට ","splitHorizontal":"තිරස්ව කොටු පැතිරීම","splitVertical":"සිරස්ව කොටු පැතිරීම","title":"කොටු ","cellType":"කොටු වර්ගය","rowSpan":"පේළි පළල","colSpan":"සිරස් පළල","wordWrap":"වචන ගැලපුම","hAlign":"තිරස්ව ","vAlign":"සිරස්ව ","alignBaseline":"පාද රේඛාව","bgColor":"පසුබිම් වර්ණය","borderColor":"මායිම් ","data":"Data","header":"ශීර්ෂක","yes":"ඔව්","no":"නැත","invalidWidth":"කොටු පළල සංඛ්‍ය්ත්මක වටිනාකමක් විය යුතුය","invalidHeight":"කොටු උස සංඛ්‍ය්ත්මක වටිනාකමක් විය යුතුය","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"තෝරන්න"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"සිරස් ","deleteTable":"වගුව මකන්න","headers":"ශීර්ෂක","headersBoth":"දෙකම","headersColumn":"පළමූ සිරස් තීරුව","headersNone":"කිසිවක්ම නොවේ","headersRow":"පළමූ පේළිය","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"stylescombo":{"label":"විලාසය","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"විශේෂ  ගුණාංග වීකල්ප","title":"විශේෂ  ගුණාංග ","toolbar":"විශේෂ ගුණාංග ඇතුලත් "},"sourcedialog":{"toolbar":"මුලාශ්‍රය","title":"මුලාශ්‍රය"},"sourcearea":{"toolbar":"මුලාශ්‍රය"},"showblocks":{"toolbar":"කොටස පෙන්නන්න"},"removeformat":{"toolbar":"සැකසීම වෙනස් කරන්න"},"pastetext":{"button":"සාමාන්‍ය අක්ෂර ලෙස අලවන්න","title":"සාමාන්‍ය අක්ෂර ලෙස අලවන්න"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"වචන වලින් අලවන්න","toolbar":"වචන වලින් අලවන්න"},"maximize":{"maximize":"විශාල කිරීම","minimize":"කුඩා කිරීම"},"magicline":{"title":"චේදය ඇතුලත් කරන්න"},"list":{"bulletedlist":"ඇතුලත් / ඉවත් කිරීම ලඉස්තුව","numberedlist":"ඇතුලත් / ඉවත් කිරීම අන්න්කිත ලඉස්තුව"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Justify","center":"මධ්‍ය","left":"Align Left","right":"Align Right"},"indent":{"indent":"අතර පරතරය වැඩිකරන්න","outdent":"අතර පරතරය අඩුකරන්න"},"image2":{"alt":"විකල්ප ","btnUpload":"සේවාදායකය වෙත යොමුකිරිම","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"රුපයේ තොරතුරු","lockRatio":"නවතන අනුපාතය ","menu":"රුපයේ ගුණ","pathName":"image","pathNameCaption":"caption","resetSize":"නැවතත් විශාලත්වය වෙනස් කිරීම","resizer":"Click and drag to resize","title":"රුපයේ ","uploadTab":"උඩුගතකිරීම","urlMissing":"රුප මුලාශ්‍ර URL නැත."},"horizontalrule":{"toolbar":"තිරස් රේඛාවක් ඇතුලත් කරන්න"},"format":{"label":"ආකෘතිය","panelTitle":"චේදයේ ","tag_address":"ලිපිනය","tag_div":"සාමාන්‍ය(DIV)","tag_h1":"ශීර්ෂය 1","tag_h2":"ශීර්ෂය 2","tag_h3":"ශීර්ෂය 3","tag_h4":"ශීර්ෂය 4","tag_h5":"ශීර්ෂය 5","tag_h6":"ශීර්ෂය 6","tag_p":"සාමාන්‍ය","tag_pre":"ආකෘතියන්"},"elementspath":{"eleLabel":"මුලද්‍රව්‍ය මාර්ගය","eleTitle":"%1 මුල"},"contextmenu":{"options":"අනතර්ග ලේඛණ  විකල්ප"},"clipboard":{"copy":"පිටපත් කරන්න","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"කපාගන්න","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"අලවන්න","pasteArea":"අලවන ප්‍රදේශ","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"අලවන්න"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"උද්ධෘත කොටස"},"basicstyles":{"bold":"තද අකුරින් ලියනලද","italic":"බැධීඅකුරින් ලියන ලද","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"යටින් ඉරි අදින ලද"},"about":{"copy":"පිටපත් අයිතිය සහ පිටපත් කිරීම;$1 .සියලුම හිමිකම් ඇවිරිණි.","dlgTitle":"CKEditor ගැන විස්තර","help":"උදව් සඳහා $1 ","moreInfo":"බලපත්‍ර තොරතුරු සදහා කරුණාකර අපගේ විද්‍යුත් ලිපිනයට පිවිසෙන්න:","title":"CKEditor ගැන විස්තර","userGuide":"CKEditor භාවිතා කිරීම පිළිබඳ "},"editor":"පොහොසත් වචන සංස්කරණ","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"උදව් ලබා ගැනීමට  ALT බොත්තම ඔබන්න","browseServer":"සෙවුම් සේවාදායකය","url":"URL","protocol":"මුලාපත්‍රය","upload":"උඩුගතකිරීම","uploadSubmit":"සේවාදායකය වෙත යොමුකිරිම","image":"රුපය","flash":"දීප්තිය","form":"පෝරමය","checkbox":"ලකුණුකිරීමේ කොටුව","radio":"තේරීම් ","textField":"ලියන ප්‍රදේශය","textarea":"අකුරු ","hiddenField":"සැඟවුණු ප්‍රදේශය","button":"බොත්තම","select":"තෝරන්න ","imageButton":"රුප ","notSet":"<යොදා >","id":"අංකය","name":"නම","langDir":"භාෂා දිශාව","langDirLtr":"වමේසිට දකුණුට","langDirRtl":"දකුණේ සිට වමට","langCode":"භාෂා කේතය","longDescr":"සම්පුර්න පැහැදිලි කිරීම","cssClass":"විලාශ පත්‍ර පන්තිය","advisoryTitle":"උපදෙස් ","cssStyle":"විලාසය","ok":"නිරදි","cancel":"අවලංගු කිරීම","close":"වැසීම","preview":"නැවත ","resize":"විශාලත්වය නැවත වෙනස් කිරීම","generalTab":"පොදු කරුණු.","advancedTab":"දීය","validateNumberFailed":"මෙම වටිනාකම අංකයක් නොවේ","confirmNewPage":"ආරක්ෂා නොකළ සියලුම දත්තයන් මැකියනුලැබේ. ඔබට නව පිටුවක් ලබා ගැනීමට අවශ්‍යද?","confirmCancel":"ඇතම් විකල්පයන් වෙනස් කර ඇත. ඔබට මින් නික්මීමට අවශ්‍යද?","options":" විකල්ප","target":"අරමුණ","targetNew":"නව කව්ළුව","targetTop":"වැදගත් කව්ළුව","targetSelf":"එම කව්ළුව(_තම\\\\)","targetParent":"මව් කව්ළුව(_)","langDirLTR":"වමේසිට දකුණුට","langDirRTL":"දකුණේ සිට වමට","styles":"විලාසය","cssClasses":"විලාසපත්‍ර පන්තිය","width":"පළල","height":"උස","align":"ගැලපුම","alignLeft":"වම","alignRight":"දකුණ","alignCenter":"මධ්‍ය","alignJustify":"Justify","alignTop":"ඉ","alignMiddle":"මැද","alignBottom":"පහල","alignNone":"None","invalidValue":"වැරදී වටිනාකමකි","invalidHeight":"උස අංකයක් විය යුතුය","invalidWidth":"පළල අංකයක් විය යුතුය","invalidCssLength":"වටිනාකමක් නිරූපණය කිරීම \"%1\" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ  නිවරදි නොවන  CSS මිනුම් එකක(px, %, in, cm, mm, em, ex, pt, pc)","invalidHtmlLength":"වටිනාකමක් නිරූපණය කිරීම \"%1\" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ  නිවරදි නොවන  HTML මිනුම් එකක (px හෝ %).","invalidInlineStyle":"වටිනාකමක් නිරූපණය කිරීම  පේළි විලාසයයට ආකෘතිය  අනතර්ග විය යුතය  \"නම : වටිනාකම\", තිත් කොමාවකින් වෙන් වෙන ලද.","cssLengthTooltip":"සංක්‍යා ඇතුලත් කිරීමේදී වටිනාකම තිත් ප්‍රමාණය නිවරදි CSS  ඒකක(තිත්, %, අඟල්,සෙමි, mm, em, ex, pt, pc)","unavailable":"%1<span පන්තිය=\"ළඟා වියහැකි ද බලන්න\">, නොමැතිනම්</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/sk.js b/core/assets/vendor/ckeditor/lang/sk.js
index 60be627..9815bc2 100644
--- a/core/assets/vendor/ckeditor/lang/sk.js
+++ b/core/assets/vendor/ckeditor/lang/sk.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['sk']={"widget":{"move":"Kliknite a potiahnite pre presunutie","label":"%1 widget"},"undo":{"redo":"Znovu","undo":"Späť"},"toolbar":{"toolbarCollapse":"Zbaliť lištu nástrojov","toolbarExpand":"Rozbaliť lištu nástrojov","toolbarGroups":{"document":"Dokument","clipboard":"Schránka pre kopírovanie/Späť","editing":"Upravovanie","forms":"Formuláre","basicstyles":"Základné štýly","paragraph":"Odsek","links":"Odkazy","insert":"Vložiť","styles":"Štýly","colors":"Farby","tools":"Nástroje"},"toolbars":"Lišty nástrojov editora"},"table":{"border":"Šírka orámovania","caption":"Popis","cell":{"menu":"Bunka","insertBefore":"Vložiť bunku pred","insertAfter":"Vložiť bunku za","deleteCell":"Vymazať bunky","merge":"Zlúčiť bunky","mergeRight":"Zlúčiť doprava","mergeDown":"Zlúčiť dole","splitHorizontal":"Rozdeliť bunky horizontálne","splitVertical":"Rozdeliť bunky vertikálne","title":"Vlastnosti bunky","cellType":"Typ bunky","rowSpan":"Rozsah riadkov","colSpan":"Rozsah stĺpcov","wordWrap":"Zalamovanie riadkov","hAlign":"Horizontálne zarovnanie","vAlign":"Vertikálne zarovnanie","alignBaseline":"Základná čiara (baseline)","bgColor":"Farba pozadia","borderColor":"Farba orámovania","data":"Dáta","header":"Hlavička","yes":"Áno","no":"Nie","invalidWidth":"Šírka bunky musí byť číslo.","invalidHeight":"Výška bunky musí byť číslo.","invalidRowSpan":"Rozsah riadkov musí byť celé číslo.","invalidColSpan":"Rozsah stĺpcov musí byť celé číslo.","chooseColor":"Vybrať"},"cellPad":"Odsadenie obsahu (cell padding)","cellSpace":"Vzdialenosť buniek (cell spacing)","column":{"menu":"Stĺpec","insertBefore":"Vložiť stĺpec pred","insertAfter":"Vložiť stĺpec po","deleteColumn":"Zmazať stĺpce"},"columns":"Stĺpce","deleteTable":"Vymazať tabuľku","headers":"Hlavička","headersBoth":"Obe","headersColumn":"Prvý stĺpec","headersNone":"Žiadne","headersRow":"Prvý riadok","invalidBorder":"Šírka orámovania musí byť číslo.","invalidCellPadding":"Odsadenie v bunkách (cell padding) musí byť kladné číslo.","invalidCellSpacing":"Medzera mädzi bunkami (cell spacing) musí byť kladné číslo.","invalidCols":"Počet stĺpcov musí byť číslo väčšie ako 0.","invalidHeight":"Výška tabuľky musí byť číslo.","invalidRows":"Počet riadkov musí byť číslo väčšie ako 0.","invalidWidth":"Širka tabuľky musí byť číslo.","menu":"Vlastnosti tabuľky","row":{"menu":"Riadok","insertBefore":"Vložiť riadok pred","insertAfter":"Vložiť riadok po","deleteRow":"Vymazať riadky"},"rows":"Riadky","summary":"Prehľad","title":"Vlastnosti tabuľky","toolbar":"Tabuľka","widthPc":"percent","widthPx":"pixelov","widthUnit":"jednotka šírky"},"stylescombo":{"label":"Štýly","panelTitle":"Formátovanie štýlov","panelTitle1":"Štýly bloku","panelTitle2":"Vnútroriadkové (inline) štýly","panelTitle3":"Štýly objeku"},"specialchar":{"options":"Možnosti špeciálneho znaku","title":"Výber špeciálneho znaku","toolbar":"Vložiť špeciálny znak"},"sourcedialog":{"toolbar":"Zdroj","title":"Zdroj"},"sourcearea":{"toolbar":"Zdroj"},"showblocks":{"toolbar":"Ukázať bloky"},"removeformat":{"toolbar":"Odstrániť formátovanie"},"pastetext":{"button":"Vložiť ako čistý text","title":"Vložiť ako čistý text"},"pastefromword":{"confirmCleanup":"Zdá sa, že vkladaný text pochádza z programu MS Word. Chcete ho pred vkladaním automaticky vyčistiť?","error":"Kvôli internej chybe nebolo možné vložené dáta vyčistiť","title":"Vložiť z Wordu","toolbar":"Vložiť z Wordu"},"maximize":{"maximize":"Maximalizovať","minimize":"Minimalizovať"},"magicline":{"title":"Odsek vložiť sem"},"list":{"bulletedlist":"Vložiť/odstrániť zoznam s odrážkami","numberedlist":"Vložiť/odstrániť číslovaný zoznam"},"language":{"button":"Nastaviť jazyk","remove":"Odstrániť jazyk"},"justify":{"block":"Zarovnať do bloku","center":"Zarovnať na stred","left":"Zarovnať vľavo","right":"Zarovnať vpravo"},"indent":{"indent":"Zväčšiť odsadenie","outdent":"Zmenšiť odsadenie"},"image2":{"alt":"Alternatívny text","btnUpload":"Odoslať to na server","captioned":"Opísaný obrázok","captionPlaceholder":"Popis","infoTab":"Informácie o obrázku","lockRatio":"Pomer zámky","menu":"Vlastnosti obrázka","pathName":"obrázok","pathNameCaption":"popis","resetSize":"Pôvodná veľkosť","resizer":"Kliknite a potiahnite pre zmenu veľkosti","title":"Vlastnosti obrázka","uploadTab":"Nahrať","urlMissing":"Chýba URL zdroja obrázka."},"horizontalrule":{"toolbar":"Vložiť vodorovnú čiaru"},"format":{"label":"Formát","panelTitle":"Odsek","tag_address":"Adresa","tag_div":"Normálny (DIV)","tag_h1":"Nadpis 1","tag_h2":"Nadpis 2","tag_h3":"Nadpis 3","tag_h4":"Nadpis 4","tag_h5":"Nadpis 5","tag_h6":"Nadpis 6","tag_p":"Normálny","tag_pre":"Formátovaný"},"elementspath":{"eleLabel":"Cesta prvkov","eleTitle":"%1 prvok"},"contextmenu":{"options":"Možnosti kontextového menu"},"clipboard":{"copy":"Kopírovať","copyError":"Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu kopírovania. Použite na to klávesnicu (Ctrl/Cmd+C).","cut":"Vystrihnúť","cutError":"Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu vystrihnutia. Použite na to klávesnicu (Ctrl/Cmd+X).","paste":"Vložiť","pasteArea":"Miesto na vloženie","pasteMsg":"Použitím klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) vložte text do rámčeka a stlačte OK.","securityMsg":"Kvôli bezpečnostným nastaveniam vášho prehliadača editor nemôže pristupovať k schránke na kopírovanie priamo. Vložte to preto do tohto okna.","title":"Vložiť"},"button":{"selectedLabel":"%1 (Vybrané)"},"blockquote":{"toolbar":"Citácia"},"basicstyles":{"bold":"Tučné","italic":"Kurzíva","strike":"Prečiarknuté","subscript":"Dolný index","superscript":"Horný index","underline":"Podčiarknuté"},"about":{"copy":"Copyright &copy; $1. Všetky práva vyhradené.","dlgTitle":"O CKEditor-e","help":"Zaškrtnite $1 pre pomoc.","moreInfo":"Pre informácie o licenciách, prosíme, navštívte našu web stránku:","title":"O CKEditor-e","userGuide":"Používateľská príručka KCEditor-a"},"editor":"Editor formátovaného textu","editorPanel":"Panel editora formátovaného textu","common":{"editorHelp":"Stlačením ALT 0 spustiť pomocníka","browseServer":"Prehliadať server","url":"URL","protocol":"Protokol","upload":"Odoslať","uploadSubmit":"Odoslať na server","image":"Obrázok","flash":"Flash","form":"Formulár","checkbox":"Zaškrtávacie pole","radio":"Prepínač","textField":"Textové pole","textarea":"Textová oblasť","hiddenField":"Skryté pole","button":"Tlačidlo","select":"Rozbaľovací zoznam","imageButton":"Obrázkové tlačidlo","notSet":"<nenastavené>","id":"Id","name":"Meno","langDir":"Orientácia jazyka","langDirLtr":"Zľava doprava (LTR)","langDirRtl":"Sprava doľava (RTL)","langCode":"Kód jazyka","longDescr":"Dlhý popis URL","cssClass":"Trieda štýlu","advisoryTitle":"Pomocný titulok","cssStyle":"Štýl","ok":"OK","cancel":"Zrušiť","close":"Zatvorit","preview":"Náhľad","resize":"Zmeniť veľkosť","generalTab":"Hlavné","advancedTab":"Rozšírené","validateNumberFailed":"Hodnota nie je číslo.","confirmNewPage":"Prajete si načítat novú stránku? Všetky neuložené zmeny budú stratené. ","confirmCancel":"Niektore možnosti boli zmenené. Naozaj chcete zavrieť okno?","options":"Možnosti","target":"Cieľ","targetNew":"Nové okno (_blank)","targetTop":"Najvrchnejšie okno (_top)","targetSelf":"To isté okno (_self)","targetParent":"Rodičovské okno (_parent)","langDirLTR":"Zľava doprava (LTR)","langDirRTL":"Sprava doľava (RTL)","styles":"Štýl","cssClasses":"Triedy štýlu","width":"Šírka","height":"Výška","align":"Zarovnanie","alignLeft":"Vľavo","alignRight":"Vpravo","alignCenter":"Na stred","alignJustify":"Zarovnať do bloku","alignTop":"Nahor","alignMiddle":"Na stred","alignBottom":"Dole","alignNone":"Žiadne","invalidValue":"Neplatná hodnota.","invalidHeight":"Výška musí byť číslo.","invalidWidth":"Šírka musí byť číslo.","invalidCssLength":"Špecifikovaná hodnota pre pole \"%1\" musí byť kladné číslo s alebo bez platnej CSS mernej jednotky (px, %, in, cm, mm, em, ex, pt alebo pc).","invalidHtmlLength":"Špecifikovaná hodnota pre pole \"%1\" musí byť kladné číslo s alebo bez platnej HTML mernej jednotky (px alebo %).","invalidInlineStyle":"Zadaná hodnota pre inline štýl musí pozostávať s jedného, alebo viac dvojíc formátu \"názov: hodnota\", oddelených bodkočiarkou.","cssLengthTooltip":"Vložte číslo pre hodnotu v pixeloch alebo číslo so správnou CSS jednotou (px, %, in, cm, mm, em, ex, pt alebo pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupný</span>"}};
\ No newline at end of file
+CKEDITOR.lang['sk']={"widget":{"move":"Kliknite a potiahnite pre presunutie"},"undo":{"redo":"Znovu","undo":"Späť"},"toolbar":{"toolbarCollapse":"Zbaliť lištu nástrojov","toolbarExpand":"Rozbaliť lištu nástrojov","toolbarGroups":{"document":"Dokument","clipboard":"Schránka pre kopírovanie/Späť","editing":"Upravovanie","forms":"Formuláre","basicstyles":"Základné štýly","paragraph":"Odsek","links":"Odkazy","insert":"Vložiť","styles":"Štýly","colors":"Farby","tools":"Nástroje"},"toolbars":"Lišty nástrojov editora"},"table":{"border":"Šírka orámovania","caption":"Popis","cell":{"menu":"Bunka","insertBefore":"Vložiť bunku pred","insertAfter":"Vložiť bunku za","deleteCell":"Vymazať bunky","merge":"Zlúčiť bunky","mergeRight":"Zlúčiť doprava","mergeDown":"Zlúčiť dole","splitHorizontal":"Rozdeliť bunky horizontálne","splitVertical":"Rozdeliť bunky vertikálne","title":"Vlastnosti bunky","cellType":"Typ bunky","rowSpan":"Rozsah riadkov","colSpan":"Rozsah stĺpcov","wordWrap":"Zalamovanie riadkov","hAlign":"Horizontálne zarovnanie","vAlign":"Vertikálne zarovnanie","alignBaseline":"Základná čiara (baseline)","bgColor":"Farba pozadia","borderColor":"Farba orámovania","data":"Dáta","header":"Hlavička","yes":"Áno","no":"Nie","invalidWidth":"Šírka bunky musí byť číslo.","invalidHeight":"Výška bunky musí byť číslo.","invalidRowSpan":"Rozsah riadkov musí byť celé číslo.","invalidColSpan":"Rozsah stĺpcov musí byť celé číslo.","chooseColor":"Vybrať"},"cellPad":"Odsadenie obsahu (cell padding)","cellSpace":"Vzdialenosť buniek (cell spacing)","column":{"menu":"Stĺpec","insertBefore":"Vložiť stĺpec pred","insertAfter":"Vložiť stĺpec po","deleteColumn":"Zmazať stĺpce"},"columns":"Stĺpce","deleteTable":"Vymazať tabuľku","headers":"Hlavička","headersBoth":"Obe","headersColumn":"Prvý stĺpec","headersNone":"Žiadne","headersRow":"Prvý riadok","invalidBorder":"Šírka orámovania musí byť číslo.","invalidCellPadding":"Odsadenie v bunkách (cell padding) musí byť kladné číslo.","invalidCellSpacing":"Medzera mädzi bunkami (cell spacing) musí byť kladné číslo.","invalidCols":"Počet stĺpcov musí byť číslo väčšie ako 0.","invalidHeight":"Výška tabuľky musí byť číslo.","invalidRows":"Počet riadkov musí byť číslo väčšie ako 0.","invalidWidth":"Širka tabuľky musí byť číslo.","menu":"Vlastnosti tabuľky","row":{"menu":"Riadok","insertBefore":"Vložiť riadok pred","insertAfter":"Vložiť riadok po","deleteRow":"Vymazať riadky"},"rows":"Riadky","summary":"Prehľad","title":"Vlastnosti tabuľky","toolbar":"Tabuľka","widthPc":"percent","widthPx":"pixelov","widthUnit":"jednotka šírky"},"stylescombo":{"label":"Štýly","panelTitle":"Formátovanie štýlov","panelTitle1":"Štýly bloku","panelTitle2":"Vnútroriadkové (inline) štýly","panelTitle3":"Štýly objeku"},"specialchar":{"options":"Možnosti špeciálneho znaku","title":"Výber špeciálneho znaku","toolbar":"Vložiť špeciálny znak"},"sourcedialog":{"toolbar":"Zdroj","title":"Zdroj"},"sourcearea":{"toolbar":"Zdroj"},"showblocks":{"toolbar":"Ukázať bloky"},"removeformat":{"toolbar":"Odstrániť formátovanie"},"pastetext":{"button":"Vložiť ako čistý text","title":"Vložiť ako čistý text"},"pastefromword":{"confirmCleanup":"Zdá sa, že vkladaný text pochádza z programu MS Word. Chcete ho pred vkladaním automaticky vyčistiť?","error":"Kvôli internej chybe nebolo možné vložené dáta vyčistiť","title":"Vložiť z Wordu","toolbar":"Vložiť z Wordu"},"maximize":{"maximize":"Maximalizovať","minimize":"Minimalizovať"},"magicline":{"title":"Odsek vložiť sem"},"list":{"bulletedlist":"Vložiť/odstrániť zoznam s odrážkami","numberedlist":"Vložiť/odstrániť číslovaný zoznam"},"language":{"button":"Nastaviť jazyk","remove":"Odstrániť jazyk"},"justify":{"block":"Zarovnať do bloku","center":"Zarovnať na stred","left":"Zarovnať vľavo","right":"Zarovnať vpravo"},"indent":{"indent":"Zväčšiť odsadenie","outdent":"Zmenšiť odsadenie"},"image2":{"alt":"Alternatívny text","btnUpload":"Odoslať to na server","captioned":"Opísaný obrázok","captionPlaceholder":"Popis","infoTab":"Informácie o obrázku","lockRatio":"Pomer zámky","menu":"Vlastnosti obrázka","pathName":"obrázok","pathNameCaption":"popis","resetSize":"Pôvodná veľkosť","resizer":"Kliknite a potiahnite pre zmenu veľkosti","title":"Vlastnosti obrázka","uploadTab":"Nahrať","urlMissing":"Chýba URL zdroja obrázka."},"horizontalrule":{"toolbar":"Vložiť vodorovnú čiaru"},"format":{"label":"Formát","panelTitle":"Odsek","tag_address":"Adresa","tag_div":"Normálny (DIV)","tag_h1":"Nadpis 1","tag_h2":"Nadpis 2","tag_h3":"Nadpis 3","tag_h4":"Nadpis 4","tag_h5":"Nadpis 5","tag_h6":"Nadpis 6","tag_p":"Normálny","tag_pre":"Formátovaný"},"elementspath":{"eleLabel":"Cesta prvkov","eleTitle":"%1 prvok"},"contextmenu":{"options":"Možnosti kontextového menu"},"clipboard":{"copy":"Kopírovať","copyError":"Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu kopírovania. Použite na to klávesnicu (Ctrl/Cmd+C).","cut":"Vystrihnúť","cutError":"Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu vystrihnutia. Použite na to klávesnicu (Ctrl/Cmd+X).","paste":"Vložiť","pasteArea":"Miesto na vloženie","pasteMsg":"Použitím klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) vložte text do rámčeka a stlačte OK.","securityMsg":"Kvôli bezpečnostným nastaveniam vášho prehliadača editor nemôže pristupovať k schránke na kopírovanie priamo. Vložte to preto do tohto okna.","title":"Vložiť"},"button":{"selectedLabel":"%1 (Vybrané)"},"blockquote":{"toolbar":"Citácia"},"basicstyles":{"bold":"Tučné","italic":"Kurzíva","strike":"Prečiarknuté","subscript":"Dolný index","superscript":"Horný index","underline":"Podčiarknuté"},"about":{"copy":"Copyright &copy; $1. Všetky práva vyhradené.","dlgTitle":"O CKEditor-e","help":"Zaškrtnite $1 pre pomoc.","moreInfo":"Pre informácie o licenciách, prosíme, navštívte našu web stránku:","title":"O CKEditor-e","userGuide":"Používateľská príručka KCEditor-a"},"editor":"Editor formátovaného textu","editorPanel":"Panel editora formátovaného textu","common":{"editorHelp":"Stlačením ALT 0 spustiť pomocníka","browseServer":"Prehliadať server","url":"URL","protocol":"Protokol","upload":"Odoslať","uploadSubmit":"Odoslať na server","image":"Obrázok","flash":"Flash","form":"Formulár","checkbox":"Zaškrtávacie pole","radio":"Prepínač","textField":"Textové pole","textarea":"Textová oblasť","hiddenField":"Skryté pole","button":"Tlačidlo","select":"Rozbaľovací zoznam","imageButton":"Obrázkové tlačidlo","notSet":"<nenastavené>","id":"Id","name":"Meno","langDir":"Orientácia jazyka","langDirLtr":"Zľava doprava (LTR)","langDirRtl":"Sprava doľava (RTL)","langCode":"Kód jazyka","longDescr":"Dlhý popis URL","cssClass":"Trieda štýlu","advisoryTitle":"Pomocný titulok","cssStyle":"Štýl","ok":"OK","cancel":"Zrušiť","close":"Zatvorit","preview":"Náhľad","resize":"Zmeniť veľkosť","generalTab":"Hlavné","advancedTab":"Rozšírené","validateNumberFailed":"Hodnota nie je číslo.","confirmNewPage":"Prajete si načítat novú stránku? Všetky neuložené zmeny budú stratené. ","confirmCancel":"Niektore možnosti boli zmenené. Naozaj chcete zavrieť okno?","options":"Možnosti","target":"Cieľ","targetNew":"Nové okno (_blank)","targetTop":"Najvrchnejšie okno (_top)","targetSelf":"To isté okno (_self)","targetParent":"Rodičovské okno (_parent)","langDirLTR":"Zľava doprava (LTR)","langDirRTL":"Sprava doľava (RTL)","styles":"Štýl","cssClasses":"Triedy štýlu","width":"Šírka","height":"Výška","align":"Zarovnanie","alignLeft":"Vľavo","alignRight":"Vpravo","alignCenter":"Na stred","alignJustify":"Zarovnať do bloku","alignTop":"Nahor","alignMiddle":"Na stred","alignBottom":"Dole","alignNone":"Žiadne","invalidValue":"Neplatná hodnota.","invalidHeight":"Výška musí byť číslo.","invalidWidth":"Šírka musí byť číslo.","invalidCssLength":"Špecifikovaná hodnota pre pole \"%1\" musí byť kladné číslo s alebo bez platnej CSS mernej jednotky (px, %, in, cm, mm, em, ex, pt alebo pc).","invalidHtmlLength":"Špecifikovaná hodnota pre pole \"%1\" musí byť kladné číslo s alebo bez platnej HTML mernej jednotky (px alebo %).","invalidInlineStyle":"Zadaná hodnota pre inline štýl musí pozostávať s jedného, alebo viac dvojíc formátu \"názov: hodnota\", oddelených bodkočiarkou.","cssLengthTooltip":"Vložte číslo pre hodnotu v pixeloch alebo číslo so správnou CSS jednotou (px, %, in, cm, mm, em, ex, pt alebo pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupný</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/sl.js b/core/assets/vendor/ckeditor/lang/sl.js
index d40695a..82c40e7 100644
--- a/core/assets/vendor/ckeditor/lang/sl.js
+++ b/core/assets/vendor/ckeditor/lang/sl.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['sl']={"widget":{"move":"Kliknite in povlecite, da premaknete","label":"%1 widget"},"undo":{"redo":"Uveljavi","undo":"Razveljavi"},"toolbar":{"toolbarCollapse":"Skrči orodno vrstico","toolbarExpand":"Razširi orodno vrstico","toolbarGroups":{"document":"Dokument","clipboard":"Odložišče/Razveljavi","editing":"Urejanje","forms":"Obrazci","basicstyles":"Osnovni slogi","paragraph":"Odstavek","links":"Povezave","insert":"Vstavi","styles":"Slogi","colors":"Barve","tools":"Orodja"},"toolbars":"Orodne vrstice urejevalnika"},"table":{"border":"Velikost obrobe","caption":"Napis","cell":{"menu":"Celica","insertBefore":"Vstavi celico pred","insertAfter":"Vstavi celico za","deleteCell":"Izbriši celice","merge":"Združi celice","mergeRight":"Združi desno","mergeDown":"Združi navzdol","splitHorizontal":"Razdeli celico vodoravno","splitVertical":"Razdeli celico navpično","title":"Lastnosti celice","cellType":"Vrsta celice","rowSpan":"Razpon vrstic","colSpan":"Razpon stolpcev","wordWrap":"Prelom besedila","hAlign":"Vodoravna poravnava","vAlign":"Navpična poravnava","alignBaseline":"Osnovnica","bgColor":"Barva ozadja","borderColor":"Barva obrobe","data":"Podatki","header":"Glava","yes":"Da","no":"Ne","invalidWidth":"Širina celice mora biti število.","invalidHeight":"Višina celice mora biti število.","invalidRowSpan":"Razpon vrstic mora biti celo število.","invalidColSpan":"Razpon stolpcev mora biti celo število.","chooseColor":"Izberi"},"cellPad":"Odmik znotraj celic","cellSpace":"Razmik med celicami","column":{"menu":"Stolpec","insertBefore":"Vstavi stolpec pred","insertAfter":"Vstavi stolpec za","deleteColumn":"Izbriši stolpce"},"columns":"Stolpci","deleteTable":"Izbriši tabelo","headers":"Glave","headersBoth":"Oboje","headersColumn":"Prvi stolpec","headersNone":"Brez","headersRow":"Prva vrstica","invalidBorder":"Širina obrobe mora biti število.","invalidCellPadding":"Odmik znotraj celic mora biti pozitivno število.","invalidCellSpacing":"Razmik med celicami mora biti pozitivno število.","invalidCols":"Število stolpcev mora biti večje od 0.","invalidHeight":"Višina tabele mora biti število.","invalidRows":"Število vrstic mora biti večje od 0.","invalidWidth":"Širina tabele mora biti število.","menu":"Lastnosti tabele","row":{"menu":"Vrstica","insertBefore":"Vstavi vrstico pred","insertAfter":"Vstavi vrstico za","deleteRow":"Izbriši vrstice"},"rows":"Vrstice","summary":"Povzetek","title":"Lastnosti tabele","toolbar":"Tabela","widthPc":"odstotkov","widthPx":"pik","widthUnit":"enota širine"},"stylescombo":{"label":"Slog","panelTitle":"Oblikovalni Stili","panelTitle1":"Slogi odstavkov","panelTitle2":"Slogi besedila","panelTitle3":"Slogi objektov"},"specialchar":{"options":"Možnosti posebnih znakov","title":"Izberi posebni znak","toolbar":"Vstavi posebni znak"},"sourcedialog":{"toolbar":"Izvorna koda","title":"Izvorna koda"},"sourcearea":{"toolbar":"Izvorna koda"},"showblocks":{"toolbar":"Prikaži ograde"},"removeformat":{"toolbar":"Odstrani oblikovanje"},"pastetext":{"button":"Prilepi kot golo besedilo","title":"Prilepi kot golo besedilo"},"pastefromword":{"confirmCleanup":"Besedilo, ki ga želite prilepiti, je kopirano iz Worda. Ali ga želite očistiti, preden ga prilepite?","error":"Ni bilo mogoče očistiti prilepljenih podatkov zaradi notranje napake","title":"Prilepi iz Worda","toolbar":"Prilepi iz Worda"},"maximize":{"maximize":"Maksimiraj","minimize":"Minimiraj"},"magicline":{"title":"Vstavite odstavek tukaj"},"list":{"bulletedlist":"Vstavi/odstrani neoštevilčen seznam","numberedlist":"Vstavi/odstrani oštevilčen seznam"},"language":{"button":"Nastavi jezik","remove":"Odstrani jezik"},"justify":{"block":"Obojestranska poravnava","center":"Sredinska poravnava","left":"Leva poravnava","right":"Desna poravnava"},"indent":{"indent":"Povečaj zamik","outdent":"Zmanjšaj zamik"},"image2":{"alt":"Nadomestno besedilo","btnUpload":"Pošlji na strežnik","captioned":"Slika z napisom","captionPlaceholder":"Napis","infoTab":"Podatki o sliki","lockRatio":"Zakleni razmerje","menu":"Lastnosti slike","pathName":"slika","pathNameCaption":"napis","resetSize":"Ponastavi velikost","resizer":"Kliknite in povlecite, da spremenite velikost","title":"Lastnosti slike","uploadTab":"Naloži","urlMissing":"Manjka vir (URL) slike."},"horizontalrule":{"toolbar":"Vstavi vodoravno črto"},"format":{"label":"Oblika","panelTitle":"Oblika odstavka","tag_address":"Napis","tag_div":"Navaden (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Navaden","tag_pre":"Oblikovan"},"elementspath":{"eleLabel":"Pot elementov","eleTitle":"Element %1"},"contextmenu":{"options":"Možnosti kontekstnega menija"},"clipboard":{"copy":"Kopiraj","copyError":"Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).","paste":"Prilepi","pasteArea":"Prilepi območje","pasteMsg":"Prosimo, prilepite v sleči okvir s pomočjo tipkovnice (<strong>Ctrl/Cmd+V</strong>) in pritisnite V redu.","securityMsg":"Zaradi varnostnih nastavitev vašega brskalnika urejevalnik ne more neposredno dostopati do odložišča. Vsebino odložišča ponovno prilepite v to okno.","title":"Prilepi"},"button":{"selectedLabel":"%1 (Izbrano)"},"blockquote":{"toolbar":"Citat"},"basicstyles":{"bold":"Krepko","italic":"Ležeče","strike":"Prečrtano","subscript":"Podpisano","superscript":"Nadpisano","underline":"Podčrtano"},"about":{"copy":"Copyright &copy; $1. Vse pravice pridržane.","dlgTitle":"O programu CKEditor","help":"Oglejte si $1 za pomoč.","moreInfo":"Za informacije o licenciranju prosimo obiščite našo spletno stran:","title":"O programu CKEditor","userGuide":"Uporabniški vodnik CKEditor"},"editor":"Urejevalnik obogatenega besedila","editorPanel":"Plošča urejevalnika obogatenega besedila","common":{"editorHelp":"Pritisnite ALT 0 za pomoč","browseServer":"Prebrskaj na strežniku","url":"URL","protocol":"Protokol","upload":"Naloži","uploadSubmit":"Pošlji na strežnik","image":"Slika","flash":"Flash","form":"Obrazec","checkbox":"Potrditveno polje","radio":"Izbirno polje","textField":"Besedilno polje","textarea":"Besedilno območje","hiddenField":"Skrito polje","button":"Gumb","select":"Spustno polje","imageButton":"Slikovni gumb","notSet":"<ni določen>","id":"Id","name":"Ime","langDir":"Smer jezika","langDirLtr":"Od leve proti desni (LTR)","langDirRtl":"Od desne proti levi (RTL)","langCode":"Koda jezika","longDescr":"Dolg opis URL-ja","cssClass":"Razredi slogovne predloge","advisoryTitle":"Predlagani naslov","cssStyle":"Slog","ok":"V redu","cancel":"Prekliči","close":"Zapri","preview":"Predogled","resize":"Potegni za spremembo velikosti","generalTab":"Splošno","advancedTab":"Napredno","validateNumberFailed":"Vrednost ni število.","confirmNewPage":"Vse neshranjene spremembe vsebine bodo izgubljene. Ali res želite naložiti novo stran?","confirmCancel":"Spremenili ste nekaj možnosti. Ali res želite zapreti okno?","options":"Možnosti","target":"Cilj","targetNew":"Novo okno (_blank)","targetTop":"Vrhovno okno (_top)","targetSelf":"Isto okno (_self)","targetParent":"Starševsko okno (_parent)","langDirLTR":"Od leve proti desni (LTR)","langDirRTL":"Od desne proti levi (RTL)","styles":"Slog","cssClasses":"Razredi slogovne predloge","width":"Širina","height":"Višina","align":"Poravnava","alignLeft":"Levo","alignRight":"Desno","alignCenter":"Sredinsko","alignJustify":"Obojestranska poravnava","alignTop":"Na vrh","alignMiddle":"V sredino","alignBottom":"Na dno","alignNone":"Brez poravnave","invalidValue":"Neveljavna vrednost.","invalidHeight":"Višina mora biti število.","invalidWidth":"Širina mora biti število.","invalidCssLength":"Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne CSS-enote za merjenje (px, %, in, cm, mm, em, ex, pt ali pc).","invalidHtmlLength":"Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne HTML-enote za merjenje (px ali %).","invalidInlineStyle":"Vrednost, določena za slog v vrstici, mora biti sestavljena iz ene ali več dvojic oblike »ime : vrednost«, ločenih s podpičji.","cssLengthTooltip":"Vnesite število za vrednost v slikovnih pikah ali število z veljavno CSS-enoto (px, %, in, cm, mm, em, ex, pt ali pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedosegljiv</span>"}};
\ No newline at end of file
+CKEDITOR.lang['sl']={"widget":{"move":"Kliknite in povlecite, da premaknete"},"undo":{"redo":"Ponovi","undo":"Razveljavi"},"toolbar":{"toolbarCollapse":"Skrči Orodno Vrstico","toolbarExpand":"Razširi Orodno Vrstico","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Urejevalnik orodne vrstice"},"table":{"border":"Velikost obrobe","caption":"Naslov","cell":{"menu":"Celica","insertBefore":"Vstavi celico pred","insertAfter":"Vstavi celico za","deleteCell":"Izbriši celice","merge":"Združi celice","mergeRight":"Združi desno","mergeDown":"Druži navzdol","splitHorizontal":"Razdeli celico vodoravno","splitVertical":"Razdeli celico navpično","title":"Lastnosti celice","cellType":"Vrsta celice","rowSpan":"Razpon vrstic","colSpan":"Razpon stolpcev","wordWrap":"Prelom besedila","hAlign":"Vodoravna poravnava","vAlign":"Navpična poravnava","alignBaseline":"Osnovnica","bgColor":"Barva ozadja","borderColor":"Barva obrobe","data":"Podatki","header":"Glava","yes":"Da","no":"Ne","invalidWidth":"Širina celice mora biti število.","invalidHeight":"Višina celice mora biti število.","invalidRowSpan":"Razpon vrstic mora biti celo število.","invalidColSpan":"Razpon stolpcev mora biti celo število.","chooseColor":"Izberi"},"cellPad":"Polnilo med celicami","cellSpace":"Razmik med celicami","column":{"menu":"Stolpec","insertBefore":"Vstavi stolpec pred","insertAfter":"Vstavi stolpec za","deleteColumn":"Izbriši stolpce"},"columns":"Stolpci","deleteTable":"Izbriši tabelo","headers":"Glave","headersBoth":"Oboje","headersColumn":"Prvi stolpec","headersNone":"Brez","headersRow":"Prva vrstica","invalidBorder":"Širina obrobe mora biti število.","invalidCellPadding":"Zamik celic mora biti število","invalidCellSpacing":"Razmik med celicami mora biti število.","invalidCols":"Število stolpcev mora biti večje od 0.","invalidHeight":"Višina tabele mora biti število.","invalidRows":"Število vrstic mora biti večje od 0.","invalidWidth":"Širina tabele mora biti število.","menu":"Lastnosti tabele","row":{"menu":"Vrstica","insertBefore":"Vstavi vrstico pred","insertAfter":"Vstavi vrstico za","deleteRow":"Izbriši vrstice"},"rows":"Vrstice","summary":"Povzetek","title":"Lastnosti tabele","toolbar":"Tabela","widthPc":"procentov","widthPx":"pik","widthUnit":"enota širine"},"stylescombo":{"label":"Slog","panelTitle":"Oblikovalni Stili","panelTitle1":"Slogi odstavkov","panelTitle2":"Slogi besedila","panelTitle3":"Slogi objektov"},"specialchar":{"options":"Možnosti Posebnega Znaka","title":"Izberi Posebni Znak","toolbar":"Vstavi posebni znak"},"sourcedialog":{"toolbar":"Izvorna koda","title":"Izvorna koda"},"sourcearea":{"toolbar":"Izvorna koda"},"showblocks":{"toolbar":"Prikaži ograde"},"removeformat":{"toolbar":"Odstrani oblikovanje"},"pastetext":{"button":"Prilepi kot golo besedilo","title":"Prilepi kot golo besedilo"},"pastefromword":{"confirmCleanup":"Besedilo, ki ga želite prilepiti je kopirano iz Word-a. Ali ga želite očistiti, preden ga prilepite?","error":"Ni bilo mogoče očistiti prilepljenih podatkov zaradi notranje napake","title":"Prilepi iz Worda","toolbar":"Prilepi iz Worda"},"maximize":{"maximize":"Maksimiraj","minimize":"Minimiraj"},"magicline":{"title":"Vstavite odstavek tukaj"},"list":{"bulletedlist":"Označen seznam","numberedlist":"Oštevilčen seznam"},"language":{"button":"Nastavi jezik","remove":"Odstrani jezik"},"justify":{"block":"Obojestranska poravnava","center":"Sredinska poravnava","left":"Leva poravnava","right":"Desna poravnava"},"indent":{"indent":"Povečaj zamik","outdent":"Zmanjšaj zamik"},"image2":{"alt":"Nadomestno besedilo","btnUpload":"Pošlji na strežnik","captioned":"Podnaslovljena slika","captionPlaceholder":"Napis","infoTab":"Podatki o sliki","lockRatio":"Zakleni razmerje","menu":"Lastnosti slike","pathName":"slika","pathNameCaption":"napis","resetSize":"Ponastavi velikost","resizer":"Kliknite in povlecite, da spremeniti velikost","title":"Lastnosti slike","uploadTab":"Naloži","urlMissing":"Manjka vir (URL) slike."},"horizontalrule":{"toolbar":"Vstavi vodoravno črto"},"format":{"label":"Oblika","panelTitle":"Oblika","tag_address":"Napis","tag_div":"Navaden (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Navaden","tag_pre":"Oblikovan"},"elementspath":{"eleLabel":"Pot elementov","eleTitle":"%1 element"},"contextmenu":{"options":"Možnosti Kontekstnega Menija"},"clipboard":{"copy":"Kopiraj","copyError":"Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).","paste":"Prilepi","pasteArea":"Prilepi Prostor","pasteMsg":"Prosim prilepite v sleči okvir s pomočjo tipkovnice (<STRONG>Ctrl/Cmd+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.","securityMsg":"Zaradi varnostnih nastavitev vašega brskalnika urejevalnik ne more neposredno dostopati do odložišča. Vsebino odložišča ponovno prilepite v to okno.","title":"Prilepi"},"button":{"selectedLabel":"%1 (Izbrano)"},"blockquote":{"toolbar":"Citat"},"basicstyles":{"bold":"Krepko","italic":"Ležeče","strike":"Prečrtano","subscript":"Podpisano","superscript":"Nadpisano","underline":"Podčrtano"},"about":{"copy":"Copyright &copy; $1. Vse pravice pridržane.","dlgTitle":"O programu CKEditor","help":"Preverite $1 za pomoč.","moreInfo":"Za informacijo o licenci prosim obiščite našo spletno stran:","title":"O programu CKEditor","userGuide":"CKEditor Navodila za Uporabo"},"editor":"Bogat Urejevalnik Besedila","editorPanel":"Rich Text Editor plošča","common":{"editorHelp":"Pritisnite ALT 0 za pomoč","browseServer":"Prebrskaj na strežniku","url":"URL","protocol":"Protokol","upload":"Naloži","uploadSubmit":"Pošlji na strežnik","image":"Slika","flash":"Flash","form":"Obrazec","checkbox":"Potrditveno polje","radio":"Izbirno polje","textField":"Vnosno polje","textarea":"Vnosno območje","hiddenField":"Skrito polje","button":"Gumb","select":"Spustno Polje","imageButton":"Slikovni Gumb","notSet":"<ni določen>","id":"Id","name":"Ime","langDir":"Smer jezika","langDirLtr":"Od leve proti desni (LTR)","langDirRtl":"Od desne proti levi (RTL)","langCode":"Koda Jezika","longDescr":"Dolg opis URL-ja","cssClass":"Razred stilne predloge","advisoryTitle":"Predlagani naslov","cssStyle":"Slog","ok":"V redu","cancel":"Prekliči","close":"Zapri","preview":"Predogled","resize":"Potegni za spremembo velikosti","generalTab":"Splošno","advancedTab":"Napredno","validateNumberFailed":"Ta vrednost ni število.","confirmNewPage":"Vse neshranjene spremembe te vsebine bodo izgubljene. Ali res želite naložiti novo stran?","confirmCancel":"Nekaj možnosti je bilo spremenjenih. Ali res želite zapreti okno?","options":"Možnosti","target":"Cilj","targetNew":"Novo Okno (_blank)","targetTop":"Vrhovno Okno (_top)","targetSelf":"Enako Okno (_self)","targetParent":"Matično Okno (_parent)","langDirLTR":"Od leve proti desni (LTR)","langDirRTL":"Od desne proti levi (RTL)","styles":"Slog","cssClasses":"Razred stilne predloge","width":"Širina","height":"Višina","align":"Poravnava","alignLeft":"Levo","alignRight":"Desno","alignCenter":"Sredinsko","alignJustify":"Obojestranska poravnava","alignTop":"Na vrh","alignMiddle":"V sredino","alignBottom":"Na dno","alignNone":"Brez poravnave","invalidValue":"Neveljavna vrednost.","invalidHeight":"Višina mora biti število.","invalidWidth":"Širina mora biti število.","invalidCssLength":"Vrednost določena za \"%1\" polje mora biti pozitivna številka z ali brez veljavne CSS enote za merjenje (px, %, in, cm, mm, em, ex, pt, ali pc).","invalidHtmlLength":"Vrednost določena za \"%1\" polje mora biti pozitivna številka z ali brez veljavne HTML enote za merjenje (px ali %).","invalidInlineStyle":"Vrednost določena za inline slog mora biti sestavljena iz ene ali več tork (tuples) z obliko \"ime : vrednost\", ločenih z podpičji.","cssLengthTooltip":"Vnesite številko za vrednost v slikovnih pikah (pixels) ali številko z veljavno CSS enoto (px, %, in, cm, mm, em, ex, pt, ali pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedosegljiv</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/sq.js b/core/assets/vendor/ckeditor/lang/sq.js
index 19d82a4..6a9af32 100644
--- a/core/assets/vendor/ckeditor/lang/sq.js
+++ b/core/assets/vendor/ckeditor/lang/sq.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['sq']={"widget":{"move":"Kliko dhe tërhiqe për ta lëvizur","label":"%1 widget"},"undo":{"redo":"Ribëje","undo":"Rizhbëje"},"toolbar":{"toolbarCollapse":"Zvogëlo Shiritin","toolbarExpand":"Zgjero Shiritin","toolbarGroups":{"document":"Dokument","clipboard":"Tabela Punës/Ribëje","editing":"Duke Redaktuar","forms":"Formular","basicstyles":"Stili Bazë","paragraph":"Paragraf","links":"Nyjet","insert":"Shto","styles":"Stil","colors":"Ngjyrat","tools":"Mjetet"},"toolbars":"Shiritet e Redaktuesit"},"table":{"border":"Madhësia e kornizave","caption":"Titull","cell":{"menu":"Qeli","insertBefore":"Shto Qeli Para","insertAfter":"Shto Qeli Prapa","deleteCell":"Gris Qelitë","merge":"Bashko Qelitë","mergeRight":"Bashko Djathtas","mergeDown":"Bashko Poshtë","splitHorizontal":"Ndaj Qelinë Horizontalisht","splitVertical":"Ndaj Qelinë Vertikalisht","title":"Rekuizitat e Qelisë","cellType":"Lloji i Qelisë","rowSpan":"Bashko Rreshtat","colSpan":"Bashko Kolonat","wordWrap":"Fund i Fjalës","hAlign":"Bashkimi Horizontal","vAlign":"Bashkimi Vertikal","alignBaseline":"Baza","bgColor":"Ngjyra e Prapavijës","borderColor":"Ngjyra e Kornizave","data":"Të dhënat","header":"Koka","yes":"Po","no":"Jo","invalidWidth":"Gjerësia e qelisë duhet të jetë numër.","invalidHeight":"Lartësia e qelisë duhet të jetë numër.","invalidRowSpan":"Hapësira e rreshtave duhet të jetë numër i plotë.","invalidColSpan":"Hapësira e kolonave duhet të jetë numër i plotë.","chooseColor":"Përzgjidh"},"cellPad":"Mbushja e qelisë","cellSpace":"Hapësira e qelisë","column":{"menu":"Kolona","insertBefore":"Vendos Kolonë Para","insertAfter":"Vendos Kolonë Pas","deleteColumn":"Gris Kolonat"},"columns":"Kolonat","deleteTable":"Gris Tabelën","headers":"Kokat","headersBoth":"Së bashku","headersColumn":"Kolona e parë","headersNone":"Asnjë","headersRow":"Rreshti i Parë","invalidBorder":"Madhësia e kufinjve duhet të jetë numër.","invalidCellPadding":"Mbushja e qelisë duhet të jetë numër pozitiv.","invalidCellSpacing":"Hapësira e qelisë duhet të jetë numër pozitiv.","invalidCols":"Numri i kolonave duhet të jetë numër më i madh se 0.","invalidHeight":"Lartësia e tabelës duhet të jetë numër.","invalidRows":"Numri i rreshtave duhet të jetë numër më i madh se 0.","invalidWidth":"Gjerësia e tabelës duhet të jetë numër.","menu":"Karakteristikat e Tabelës","row":{"menu":"Rreshti","insertBefore":"Shto Rresht Para","insertAfter":"Shto Rresht Prapa","deleteRow":"Gris Rreshtat"},"rows":"Rreshtat","summary":"Përmbledhje","title":"Karakteristikat e Tabelës","toolbar":"Tabela","widthPc":"përqind","widthPx":"piksell","widthUnit":"njësia e gjerësisë"},"stylescombo":{"label":"Stil","panelTitle":"Stilet e Formatimit","panelTitle1":"Stilet e Bllokut","panelTitle2":"Stili i Brendshëm","panelTitle3":"Stilet e Objektit"},"specialchar":{"options":"Mundësitë për Karaktere Speciale","title":"Përzgjidh Karakter Special","toolbar":"Vendos Karakter Special"},"sourcedialog":{"toolbar":"Burimi","title":"Burimi"},"sourcearea":{"toolbar":"Burimi"},"showblocks":{"toolbar":"Shfaq Blloqet"},"removeformat":{"toolbar":"Largo Formatin"},"pastetext":{"button":"Hidhe si tekst të thjeshtë","title":"Hidhe si Tekst të Thjeshtë"},"pastefromword":{"confirmCleanup":"Teksti që dëshironi të e hidhni siç duket është kopjuar nga Word-i. Dëshironi të e pastroni para se të e hidhni?","error":"Nuk ishte e mundur të fshiheshin të dhënat e hedhura për shkak të një gabimi të brendshëm","title":"Hidhe nga Word-i","toolbar":"Hidhe nga Word-i"},"maximize":{"maximize":"Zmadho","minimize":"Zvogëlo"},"magicline":{"title":"Vendos paragraf këtu"},"list":{"bulletedlist":"Vendos/Largo Listën me Pika","numberedlist":"Vendos/Largo Listën me Numra"},"language":{"button":"Përzgjidhni gjuhën","remove":"Largoni gjuhën"},"justify":{"block":"Zgjero","center":"Qendër","left":"Rreshto majtas","right":"Rreshto Djathtas"},"indent":{"indent":"Rrite Identin","outdent":"Zvogëlo Identin"},"image2":{"alt":"Tekst Alternativ","btnUpload":"Dërgo në server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Informacione mbi Fotografinë","lockRatio":"Mbyll Racionin","menu":"Karakteristikat e Fotografisë","pathName":"foto","pathNameCaption":"caption","resetSize":"Rikthe Madhësinë","resizer":"Click and drag to resize","title":"Karakteristikat e Fotografisë","uploadTab":"Ngarko","urlMissing":"Mungon URL e burimit të fotografisë."},"horizontalrule":{"toolbar":"Vendos Vijë Horizontale"},"format":{"label":"Formati","panelTitle":"Formati i Paragrafit","tag_address":"Adresa","tag_div":"Normal (DIV)","tag_h1":"Titulli 1","tag_h2":"Titulli 2","tag_h3":"Titulli 3","tag_h4":"Titulli 4","tag_h5":"Titulli 5","tag_h6":"Titulli 6","tag_p":"Normal","tag_pre":"Formatuar"},"elementspath":{"eleLabel":"Rruga e elementeve","eleTitle":"%1 element"},"contextmenu":{"options":"Mundësitë e Menysë së Kontekstit"},"clipboard":{"copy":"Kopjo","copyError":"Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e kopjimit. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+C).","cut":"Preje","cutError":"Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e prerjes. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+X).","paste":"Hidhe","pasteArea":"Hapësira Hedhëse","pasteMsg":"Ju lutemi hidhni brenda kutizës në vijim duke shfrytëzuar tastierën (<strong>Ctrl/Cmd+V</strong>) dhe shtypni Mirë.","securityMsg":"Për shkak të dhënave të sigurisë së shfletuesit tuaj, redaktuesi nuk është në gjendje të i qaset drejtpërdrejtë të dhanve të tabelës suaj të punës. Ju duhet të hidhni atë përsëri në këtë dritare.","title":"Hidhe"},"button":{"selectedLabel":"%1 (Përzgjedhur)"},"blockquote":{"toolbar":"Citatet"},"basicstyles":{"bold":"Trash","italic":"Pjerrët","strike":"Nëpërmes","subscript":"Nën-skriptë","superscript":"Super-skriptë","underline":"Nënvijëzuar"},"about":{"copy":"Të drejtat  e kopjimit &copy; $1. Të gjitha të drejtat e rezervuara.","dlgTitle":"Rreth CKEditor","help":"Kontrollo $1 për ndihmë.","moreInfo":"Për informacione rreth licencave shih faqen tonë:","title":"Rreth CKEditor","userGuide":"Udhëzuesi i Shfrytëzuesit të CKEditor"},"editor":"Redaktues i Pasur Teksti","editorPanel":"Paneli i redaktuesit të tekstit të plotë","common":{"editorHelp":"Shtyp ALT 0 për ndihmë","browseServer":"Shfleto në Server","url":"URL","protocol":"Protokolli","upload":"Ngarko","uploadSubmit":"Dërgo në server","image":"Imazh","flash":"Objekt flash","form":"Formular","checkbox":"Checkbox","radio":"Buton radio","textField":"Fushë tekst","textarea":"Hapësirë tekst","hiddenField":"Fushë e fshehur","button":"Buton","select":"Menu zgjedhjeje","imageButton":"Buton imazhi","notSet":"<e pazgjedhur>","id":"Id","name":"Emër","langDir":"Kod gjuhe","langDirLtr":"Nga e majta në të djathtë (LTR)","langDirRtl":"Nga e djathta në të majtë (RTL)","langCode":"Kod gjuhe","longDescr":"Përshkrim i hollësishëm","cssClass":"Klasa stili CSS","advisoryTitle":"Titull","cssStyle":"Stil","ok":"OK","cancel":"Anulo","close":"Mbyll","preview":"Parashiko","resize":"Ripërmaso","generalTab":"Të përgjithshme","advancedTab":"Të përparuara","validateNumberFailed":"Vlera e futur nuk është një numër","confirmNewPage":"Çdo ndryshim që nuk është ruajtur do humbasë. Je i sigurtë që dëshiron të krijosh një faqe të re?","confirmCancel":"Disa opsione kanë ndryshuar. Je i sigurtë që dëshiron ta mbyllësh dritaren?","options":"Opsione","target":"Objektivi","targetNew":"Dritare e re (_blank)","targetTop":"Dritare në plan të parë (_top)","targetSelf":"E njëjta dritare (_self)","targetParent":"Dritarja prind (_parent)","langDirLTR":"Nga e majta në të djathë (LTR)","langDirRTL":"Nga e djathta në të majtë (RTL)","styles":"Stil","cssClasses":"Klasa Stili CSS","width":"Gjerësi","height":"Lartësi","align":"Rreshtim","alignLeft":"Majtas","alignRight":"Djathtas","alignCenter":"Qendër","alignJustify":"Zgjero","alignTop":"Lart","alignMiddle":"Në mes","alignBottom":"Poshtë","alignNone":"Asnjë","invalidValue":"Vlerë e pavlefshme","invalidHeight":"Lartësia duhet të jetë një numër","invalidWidth":"Gjerësia duhet të jetë një numër","invalidCssLength":"Vlera e fushës \"%1\" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme CSS (px, %, in, cm, mm, em, ex, pt ose pc).","invalidHtmlLength":"Vlera e fushës \"%1\" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme HTML (px ose %)","invalidInlineStyle":"Stili inline duhet të jetë një apo disa vlera të formatit \"emër: vlerë\", ndarë nga pikëpresje.","cssLengthTooltip":"Fut një numër për vlerën në pixel apo një numër me një njësi të vlefshme CSS (px, %, in, cm, mm, ex, pt, ose pc).","unavailable":"%1<span class=\"cke_accessibility\">, i padisponueshëm</span>"}};
\ No newline at end of file
+CKEDITOR.lang['sq']={"widget":{"move":"Kliko dhe tërhiqe për ta lëvizur"},"undo":{"redo":"Ribëje","undo":"Rizhbëje"},"toolbar":{"toolbarCollapse":"Zvogëlo Shiritin","toolbarExpand":"Zgjero Shiritin","toolbarGroups":{"document":"Dokument","clipboard":"Tabela Punës/Ribëje","editing":"Duke Redaktuar","forms":"Formular","basicstyles":"Stili Bazë","paragraph":"Paragraf","links":"Nyjet","insert":"Shto","styles":"Stil","colors":"Ngjyrat","tools":"Mjetet"},"toolbars":"Shiritet e Redaktuesit"},"table":{"border":"Madhësia e kornizave","caption":"Titull","cell":{"menu":"Qeli","insertBefore":"Shto Qeli Para","insertAfter":"Shto Qeli Prapa","deleteCell":"Gris Qelitë","merge":"Bashko Qelitë","mergeRight":"Bashko Djathtas","mergeDown":"Bashko Poshtë","splitHorizontal":"Ndaj Qelinë Horizontalisht","splitVertical":"Ndaj Qelinë Vertikalisht","title":"Rekuizitat e Qelisë","cellType":"Lloji i Qelisë","rowSpan":"Bashko Rreshtat","colSpan":"Bashko Kolonat","wordWrap":"Fund i Fjalës","hAlign":"Bashkimi Horizontal","vAlign":"Bashkimi Vertikal","alignBaseline":"Baza","bgColor":"Ngjyra e Prapavijës","borderColor":"Ngjyra e Kornizave","data":"Të dhënat","header":"Koka","yes":"Po","no":"Jo","invalidWidth":"Gjerësia e qelisë duhet të jetë numër.","invalidHeight":"Lartësia e qelisë duhet të jetë numër.","invalidRowSpan":"Hapësira e rreshtave duhet të jetë numër i plotë.","invalidColSpan":"Hapësira e kolonave duhet të jetë numër i plotë.","chooseColor":"Përzgjidh"},"cellPad":"Mbushja e qelisë","cellSpace":"Hapësira e qelisë","column":{"menu":"Kolona","insertBefore":"Vendos Kolonë Para","insertAfter":"Vendos Kolonë Pas","deleteColumn":"Gris Kolonat"},"columns":"Kolonat","deleteTable":"Gris Tabelën","headers":"Kokat","headersBoth":"Së bashku","headersColumn":"Kolona e parë","headersNone":"Asnjë","headersRow":"Rreshti i Parë","invalidBorder":"Madhësia e kufinjve duhet të jetë numër.","invalidCellPadding":"Mbushja e qelisë duhet të jetë numër pozitiv.","invalidCellSpacing":"Hapësira e qelisë duhet të jetë numër pozitiv.","invalidCols":"Numri i kolonave duhet të jetë numër më i madh se 0.","invalidHeight":"Lartësia e tabelës duhet të jetë numër.","invalidRows":"Numri i rreshtave duhet të jetë numër më i madh se 0.","invalidWidth":"Gjerësia e tabelës duhet të jetë numër.","menu":"Karakteristikat e Tabelës","row":{"menu":"Rreshti","insertBefore":"Shto Rresht Para","insertAfter":"Shto Rresht Prapa","deleteRow":"Gris Rreshtat"},"rows":"Rreshtat","summary":"Përmbledhje","title":"Karakteristikat e Tabelës","toolbar":"Tabela","widthPc":"përqind","widthPx":"piksell","widthUnit":"njësia e gjerësisë"},"stylescombo":{"label":"Stil","panelTitle":"Stilet e Formatimit","panelTitle1":"Stilet e Bllokut","panelTitle2":"Stili i Brendshëm","panelTitle3":"Stilet e Objektit"},"specialchar":{"options":"Mundësitë për Karaktere Speciale","title":"Përzgjidh Karakter Special","toolbar":"Vendos Karakter Special"},"sourcedialog":{"toolbar":"Burimi","title":"Burimi"},"sourcearea":{"toolbar":"Burimi"},"showblocks":{"toolbar":"Shfaq Blloqet"},"removeformat":{"toolbar":"Largo Formatin"},"pastetext":{"button":"Hidhe si tekst të thjeshtë","title":"Hidhe si Tekst të Thjeshtë"},"pastefromword":{"confirmCleanup":"Teksti që dëshironi të e hidhni siç duket është kopjuar nga Word-i. Dëshironi të e pastroni para se të e hidhni?","error":"Nuk ishte e mundur të fshiheshin të dhënat e hedhura për shkak të një gabimi të brendshëm","title":"Hidhe nga Word-i","toolbar":"Hidhe nga Word-i"},"maximize":{"maximize":"Zmadho","minimize":"Zvogëlo"},"magicline":{"title":"Vendos paragraf këtu"},"list":{"bulletedlist":"Vendos/Largo Listën me Pika","numberedlist":"Vendos/Largo Listën me Numra"},"language":{"button":"Përzgjidhni gjuhën","remove":"Largoni gjuhën"},"justify":{"block":"Zgjero","center":"Qendër","left":"Rreshto majtas","right":"Rreshto Djathtas"},"indent":{"indent":"Rrite Identin","outdent":"Zvogëlo Identin"},"image2":{"alt":"Tekst Alternativ","btnUpload":"Dërgo në server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Informacione mbi Fotografinë","lockRatio":"Mbyll Racionin","menu":"Karakteristikat e Fotografisë","pathName":"foto","pathNameCaption":"caption","resetSize":"Rikthe Madhësinë","resizer":"Click and drag to resize","title":"Karakteristikat e Fotografisë","uploadTab":"Ngarko","urlMissing":"Mungon URL e burimit të fotografisë."},"horizontalrule":{"toolbar":"Vendos Vijë Horizontale"},"format":{"label":"Formati","panelTitle":"Formati i Paragrafit","tag_address":"Adresa","tag_div":"Normal (DIV)","tag_h1":"Titulli 1","tag_h2":"Titulli 2","tag_h3":"Titulli 3","tag_h4":"Titulli 4","tag_h5":"Titulli 5","tag_h6":"Titulli 6","tag_p":"Normal","tag_pre":"Formatuar"},"elementspath":{"eleLabel":"Rruga e elementeve","eleTitle":"%1 element"},"contextmenu":{"options":"Mundësitë e Menysë së Kontekstit"},"clipboard":{"copy":"Kopjo","copyError":"Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e kopjimit. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+C).","cut":"Preje","cutError":"Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e prerjes. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+X).","paste":"Hidhe","pasteArea":"Hapësira Hedhëse","pasteMsg":"Ju lutemi hidhni brenda kutizës në vijim duke shfrytëzuar tastierën (<strong>Ctrl/Cmd+V</strong>) dhe shtypni Mirë.","securityMsg":"Për shkak të dhënave të sigurisë së shfletuesit tuaj, redaktuesi nuk është në gjendje të i qaset drejtpërdrejtë të dhanve të tabelës suaj të punës. Ju duhet të hidhni atë përsëri në këtë dritare.","title":"Hidhe"},"button":{"selectedLabel":"%1 (Përzgjedhur)"},"blockquote":{"toolbar":"Citatet"},"basicstyles":{"bold":"Trash","italic":"Pjerrët","strike":"Nëpërmes","subscript":"Nën-skriptë","superscript":"Super-skriptë","underline":"Nënvijëzuar"},"about":{"copy":"Të drejtat  e kopjimit &copy; $1. Të gjitha të drejtat e rezervuara.","dlgTitle":"Rreth CKEditor","help":"Kontrollo $1 për ndihmë.","moreInfo":"Për informacione rreth licencave shih faqen tonë:","title":"Rreth CKEditor","userGuide":"Udhëzuesi i Shfrytëzuesit të CKEditor"},"editor":"Redaktues i Pasur Teksti","editorPanel":"Paneli i redaktuesit të tekstit të plotë","common":{"editorHelp":"Shtyp ALT 0 për ndihmë","browseServer":"Shfleto në Server","url":"URL","protocol":"Protokolli","upload":"Ngarko","uploadSubmit":"Dërgo në server","image":"Imazh","flash":"Objekt flash","form":"Formular","checkbox":"Checkbox","radio":"Buton radio","textField":"Fushë tekst","textarea":"Hapësirë tekst","hiddenField":"Fushë e fshehur","button":"Buton","select":"Menu zgjedhjeje","imageButton":"Buton imazhi","notSet":"<e pazgjedhur>","id":"Id","name":"Emër","langDir":"Kod gjuhe","langDirLtr":"Nga e majta në të djathtë (LTR)","langDirRtl":"Nga e djathta në të majtë (RTL)","langCode":"Kod gjuhe","longDescr":"Përshkrim i hollësishëm","cssClass":"Klasa stili CSS","advisoryTitle":"Titull","cssStyle":"Stil","ok":"OK","cancel":"Anulo","close":"Mbyll","preview":"Parashiko","resize":"Ripërmaso","generalTab":"Të përgjithshme","advancedTab":"Të përparuara","validateNumberFailed":"Vlera e futur nuk është një numër","confirmNewPage":"Çdo ndryshim që nuk është ruajtur do humbasë. Je i sigurtë që dëshiron të krijosh një faqe të re?","confirmCancel":"Disa opsione kanë ndryshuar. Je i sigurtë që dëshiron ta mbyllësh dritaren?","options":"Opsione","target":"Objektivi","targetNew":"Dritare e re (_blank)","targetTop":"Dritare në plan të parë (_top)","targetSelf":"E njëjta dritare (_self)","targetParent":"Dritarja prind (_parent)","langDirLTR":"Nga e majta në të djathë (LTR)","langDirRTL":"Nga e djathta në të majtë (RTL)","styles":"Stil","cssClasses":"Klasa Stili CSS","width":"Gjerësi","height":"Lartësi","align":"Rreshtim","alignLeft":"Majtas","alignRight":"Djathtas","alignCenter":"Qendër","alignJustify":"Zgjero","alignTop":"Lart","alignMiddle":"Në mes","alignBottom":"Poshtë","alignNone":"Asnjë","invalidValue":"Vlerë e pavlefshme","invalidHeight":"Lartësia duhet të jetë një numër","invalidWidth":"Gjerësia duhet të jetë një numër","invalidCssLength":"Vlera e fushës \"%1\" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme CSS (px, %, in, cm, mm, em, ex, pt ose pc).","invalidHtmlLength":"Vlera e fushës \"%1\" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme HTML (px ose %)","invalidInlineStyle":"Stili inline duhet të jetë një apo disa vlera të formatit \"emër: vlerë\", ndarë nga pikëpresje.","cssLengthTooltip":"Fut një numër për vlerën në pixel apo një numër me një njësi të vlefshme CSS (px, %, in, cm, mm, ex, pt, ose pc).","unavailable":"%1<span class=\"cke_accessibility\">, i padisponueshëm</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/sr-latn.js b/core/assets/vendor/ckeditor/lang/sr-latn.js
index 38771f0..97321e6 100644
--- a/core/assets/vendor/ckeditor/lang/sr-latn.js
+++ b/core/assets/vendor/ckeditor/lang/sr-latn.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['sr-latn']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Ponovi akciju","undo":"Poni�ti akciju"},"toolbar":{"toolbarCollapse":"Suzi alatnu traku","toolbarExpand":"Proširi alatnu traku","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Alatne trake"},"table":{"border":"Veličina okvira","caption":"Naslov tabele","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Obriši ćelije","merge":"Spoj celije","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Razmak ćelija","cellSpace":"Ćelijski prostor","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Obriši kolone"},"columns":"Kolona","deleteTable":"Izbriši tabelu","headers":"Zaglavlja","headersBoth":"Oba","headersColumn":"Prva kolona","headersNone":"None","headersRow":"Prvi red","invalidBorder":"Veličina okvira mora biti broj.","invalidCellPadding":"Padding polja mora biti pozitivan broj.","invalidCellSpacing":"Razmak između ćelija mora biti pozitivan broj.","invalidCols":"Broj kolona mora biti broj veći od 0.","invalidHeight":"Visina tabele mora biti broj.","invalidRows":"Broj redova mora biti veći od 0.","invalidWidth":"Širina tabele mora biti broj.","menu":"Osobine tabele","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Obriši redove"},"rows":"Redova","summary":"Sažetak","title":"Osobine tabele","toolbar":"Tabela","widthPc":"procenata","widthPx":"piksela","widthUnit":"jedinica za širinu"},"stylescombo":{"label":"Stil","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Odaberite specijalni karakter","toolbar":"Unesi specijalni karakter"},"sourcedialog":{"toolbar":"Kôd","title":"Kôd"},"sourcearea":{"toolbar":"Kôd"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Ukloni formatiranje"},"pastetext":{"button":"Zalepi kao čist tekst","title":"Zalepi kao čist tekst"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Zalepi iz Worda","toolbar":"Zalepi iz Worda"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Nenabrojiva lista","numberedlist":"Nabrojiva lista"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Obostrano ravnanje","center":"Centriran tekst","left":"Levo ravnanje","right":"Desno ravnanje"},"indent":{"indent":"Uvećaj levu marginu","outdent":"Smanji levu marginu"},"image2":{"alt":"Alternativni tekst","btnUpload":"Pošalji na server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info slike","lockRatio":"Zaključaj odnos","menu":"Osobine slika","pathName":"image","pathNameCaption":"caption","resetSize":"Resetuj veličinu","resizer":"Click and drag to resize","title":"Osobine slika","uploadTab":"Pošalji","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Unesi horizontalnu liniju"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adresa","tag_div":"Normalno (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Normal","tag_pre":"Formatirano"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+C).","cut":"Iseci","cutError":"Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+X).","paste":"Zalepi","pasteArea":"Prostor za lepljenje","pasteMsg":"Molimo Vas da zalepite unutar donje povrine koristeći tastaturnu prečicu (<STRONG>Ctrl/Cmd+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.","securityMsg":"Zbog sigurnosnih postavki vašeg pregledača, editor nije u mogućnosti da direktno pristupi podacima u klipbordu. Potrebno je da zalepite još jednom u ovom prozoru.","title":"Zalepi"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Podebljano","italic":"Kurziv","strike":"Precrtano","subscript":"Indeks","superscript":"Stepen","underline":"Podvučeno"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Bogati uređivač teksta","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Pretraži server","url":"URL","protocol":"Protokol","upload":"Pošalji","uploadSubmit":"Pošalji na server","image":"Slika","flash":"Fleš","form":"Forma","checkbox":"Polje za potvrdu","radio":"Radio-dugme","textField":"Tekstualno polje","textarea":"Zona teksta","hiddenField":"Skriveno polje","button":"Dugme","select":"Izborno polje","imageButton":"Dugme sa slikom","notSet":"<nije postavljeno>","id":"Id","name":"Naziv","langDir":"Smer jezika","langDirLtr":"S leva na desno (LTR)","langDirRtl":"S desna na levo (RTL)","langCode":"Kôd jezika","longDescr":"Pun opis URL","cssClass":"Stylesheet klase","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"Otkaži","close":"Zatvori","preview":"Izgled stranice","resize":"Resize","generalTab":"Opšte","advancedTab":"Napredni tagovi","validateNumberFailed":"Ova vrednost nije broj.","confirmNewPage":"Nesačuvane promene ovog sadržaja će biti izgubljene. Jeste li sigurni da želita da učitate novu stranu?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Opcije","target":"Meta","targetNew":"Novi prozor (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Isti prozor (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"S leva na desno (LTR)","langDirRTL":"S desna na levo (RTL)","styles":"Stil","cssClasses":"Stylesheet klase","width":"Širina","height":"Visina","align":"Ravnanje","alignLeft":"Levo","alignRight":"Desno","alignCenter":"Sredina","alignJustify":"Obostrano ravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dole","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Visina mora biti broj.","invalidWidth":"Širina mora biti broj.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['sr-latn']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Ponovi akciju","undo":"Poni�ti akciju"},"toolbar":{"toolbarCollapse":"Suzi alatnu traku","toolbarExpand":"Proširi alatnu traku","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Alatne trake"},"table":{"border":"Veličina okvira","caption":"Naslov tabele","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Obriši ćelije","merge":"Spoj celije","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Razmak ćelija","cellSpace":"Ćelijski prostor","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Obriši kolone"},"columns":"Kolona","deleteTable":"Izbriši tabelu","headers":"Zaglavlja","headersBoth":"Oba","headersColumn":"Prva kolona","headersNone":"None","headersRow":"Prvi red","invalidBorder":"Veličina okvira mora biti broj.","invalidCellPadding":"Padding polja mora biti pozitivan broj.","invalidCellSpacing":"Razmak između ćelija mora biti pozitivan broj.","invalidCols":"Broj kolona mora biti broj veći od 0.","invalidHeight":"Visina tabele mora biti broj.","invalidRows":"Broj redova mora biti veći od 0.","invalidWidth":"Širina tabele mora biti broj.","menu":"Osobine tabele","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Obriši redove"},"rows":"Redova","summary":"Sažetak","title":"Osobine tabele","toolbar":"Tabela","widthPc":"procenata","widthPx":"piksela","widthUnit":"jedinica za širinu"},"stylescombo":{"label":"Stil","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"Odaberite specijalni karakter","toolbar":"Unesi specijalni karakter"},"sourcedialog":{"toolbar":"Kôd","title":"Kôd"},"sourcearea":{"toolbar":"Kôd"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Ukloni formatiranje"},"pastetext":{"button":"Zalepi kao čist tekst","title":"Zalepi kao čist tekst"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Zalepi iz Worda","toolbar":"Zalepi iz Worda"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Nenabrojiva lista","numberedlist":"Nabrojiva lista"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Obostrano ravnanje","center":"Centriran tekst","left":"Levo ravnanje","right":"Desno ravnanje"},"indent":{"indent":"Uvećaj levu marginu","outdent":"Smanji levu marginu"},"image2":{"alt":"Alternativni tekst","btnUpload":"Pošalji na server","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Info slike","lockRatio":"Zaključaj odnos","menu":"Osobine slika","pathName":"image","pathNameCaption":"caption","resetSize":"Resetuj veličinu","resizer":"Click and drag to resize","title":"Osobine slika","uploadTab":"Pošalji","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Unesi horizontalnu liniju"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adresa","tag_div":"Normalno (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Normal","tag_pre":"Formatirano"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+C).","cut":"Iseci","cutError":"Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+X).","paste":"Zalepi","pasteArea":"Prostor za lepljenje","pasteMsg":"Molimo Vas da zalepite unutar donje povrine koristeći tastaturnu prečicu (<STRONG>Ctrl/Cmd+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.","securityMsg":"Zbog sigurnosnih postavki vašeg pregledača, editor nije u mogućnosti da direktno pristupi podacima u klipbordu. Potrebno je da zalepite još jednom u ovom prozoru.","title":"Zalepi"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Podebljano","italic":"Kurziv","strike":"Precrtano","subscript":"Indeks","superscript":"Stepen","underline":"Podvučeno"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Bogati uređivač teksta","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Pretraži server","url":"URL","protocol":"Protokol","upload":"Pošalji","uploadSubmit":"Pošalji na server","image":"Slika","flash":"Fleš","form":"Forma","checkbox":"Polje za potvrdu","radio":"Radio-dugme","textField":"Tekstualno polje","textarea":"Zona teksta","hiddenField":"Skriveno polje","button":"Dugme","select":"Izborno polje","imageButton":"Dugme sa slikom","notSet":"<nije postavljeno>","id":"Id","name":"Naziv","langDir":"Smer jezika","langDirLtr":"S leva na desno (LTR)","langDirRtl":"S desna na levo (RTL)","langCode":"Kôd jezika","longDescr":"Pun opis URL","cssClass":"Stylesheet klase","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"Otkaži","close":"Zatvori","preview":"Izgled stranice","resize":"Resize","generalTab":"Opšte","advancedTab":"Napredni tagovi","validateNumberFailed":"Ova vrednost nije broj.","confirmNewPage":"Nesačuvane promene ovog sadržaja će biti izgubljene. Jeste li sigurni da želita da učitate novu stranu?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Opcije","target":"Meta","targetNew":"Novi prozor (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Isti prozor (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"S leva na desno (LTR)","langDirRTL":"S desna na levo (RTL)","styles":"Stil","cssClasses":"Stylesheet klase","width":"Širina","height":"Visina","align":"Ravnanje","alignLeft":"Levo","alignRight":"Desno","alignCenter":"Sredina","alignJustify":"Obostrano ravnanje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dole","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Visina mora biti broj.","invalidWidth":"Širina mora biti broj.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/sr.js b/core/assets/vendor/ckeditor/lang/sr.js
index d01c2aa..dc0d7b9 100644
--- a/core/assets/vendor/ckeditor/lang/sr.js
+++ b/core/assets/vendor/ckeditor/lang/sr.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['sr']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"Понови акцију","undo":"Поништи акцију"},"toolbar":{"toolbarCollapse":"Склопи алатну траку","toolbarExpand":"Прошири алатну траку","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Едитор алатне траке"},"table":{"border":"Величина оквира","caption":"Наслов табеле","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Обриши ћелије","merge":"Спој ћелије","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Размак ћелија","cellSpace":"Ћелијски простор","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Обриши колоне"},"columns":"Kолона","deleteTable":"Обриши таблу","headers":"Поглавља","headersBoth":"Оба","headersColumn":"Прва колона","headersNone":"None","headersRow":"Први ред","invalidBorder":"Величина ивице треба да буде цифра.","invalidCellPadding":"Пуњење ћелије треба да буде позитивна цифра.","invalidCellSpacing":"Размак ћелије треба да буде позитивна цифра.","invalidCols":"Број колона треба да буде цифра већа од 0.","invalidHeight":"Висина табеле треба да буде цифра.","invalidRows":"Број реда треба да буде цифра већа од 0.","invalidWidth":"Ширина табеле треба да буде цифра.","menu":"Особине табеле","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Обриши редове"},"rows":"Редова","summary":"Резиме","title":"Особине табеле","toolbar":"Табела","widthPc":"процената","widthPx":"пиксела","widthUnit":"јединица ширине"},"stylescombo":{"label":"Стил","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Опције специјалног карактера","title":"Одаберите специјални карактер","toolbar":"Унеси специјални карактер"},"sourcedialog":{"toolbar":"Kôд","title":"Kôд"},"sourcearea":{"toolbar":"Kôд"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Уклони форматирање"},"pastetext":{"button":"Залепи као чист текст","title":"Залепи као чист текст"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Залепи из Worda","toolbar":"Залепи из Worda"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Ненабројива листа","numberedlist":"Набројиву листу"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Обострано равнање","center":"Центриран текст","left":"Лево равнање","right":"Десно равнање"},"indent":{"indent":"Увећај леву маргину","outdent":"Смањи леву маргину"},"image2":{"alt":"Алтернативни текст","btnUpload":"Пошаљи на сервер","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Инфо слике","lockRatio":"Закључај однос","menu":"Особине слика","pathName":"image","pathNameCaption":"caption","resetSize":"Ресетуј величину","resizer":"Click and drag to resize","title":"Особине слика","uploadTab":"Пошаљи","urlMissing":"Недостаје УРЛ слике."},"horizontalrule":{"toolbar":"Унеси хоризонталну линију"},"format":{"label":"Формат","panelTitle":"Формат","tag_address":"Adresa","tag_div":"Нормално (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatirano"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Копирај","copyError":"Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+C).","cut":"Исеци","cutError":"Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+X).","paste":"Залепи","pasteArea":"Залепи зону","pasteMsg":"Молимо Вас да залепите унутар доње површине користећи тастатурну пречицу (<STRONG>Ctrl/Cmd+V</STRONG>) и да притиснете <STRONG>OK</STRONG>.","securityMsg":"Због сигурносних подешавања претраживача, едитор не може да приступи оставу. Требате да га поново залепите у овом прозору.","title":"Залепи"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Подебљано","italic":"Курзив","strike":"Прецртано","subscript":"Индекс","superscript":"Степен","underline":"Подвучено"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Претражи сервер","url":"УРЛ","protocol":"Протокол","upload":"Пошаљи","uploadSubmit":"Пошаљи на сервер","image":"Слика","flash":"Флеш елемент","form":"Форма","checkbox":"Поље за потврду","radio":"Радио-дугме","textField":"Текстуално поље","textarea":"Зона текста","hiddenField":"Скривено поље","button":"Дугме","select":"Изборно поље","imageButton":"Дугме са сликом","notSet":"<није постављено>","id":"Ид","name":"Назив","langDir":"Смер језика","langDirLtr":"С лева на десно (LTR)","langDirRtl":"С десна на лево (RTL)","langCode":"Kôд језика","longDescr":"Пун опис УРЛ","cssClass":"Stylesheet класе","advisoryTitle":"Advisory наслов","cssStyle":"Стил","ok":"OK","cancel":"Oткажи","close":"Затвори","preview":"Изглед странице","resize":"Resize","generalTab":"Опште","advancedTab":"Напредни тагови","validateNumberFailed":"Ова вредност није цигра.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Опције","target":"Meтa","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"С лева на десно (LTR)","langDirRTL":"С десна на лево (RTL)","styles":"Стил","cssClasses":"Stylesheet класе","width":"Ширина","height":"Висина","align":"Равнање","alignLeft":"Лево","alignRight":"Десно","alignCenter":"Средина","alignJustify":"Обострано равнање","alignTop":"Врх","alignMiddle":"Средина","alignBottom":"Доле","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['sr']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"Понови акцију","undo":"Поништи акцију"},"toolbar":{"toolbarCollapse":"Склопи алатну траку","toolbarExpand":"Прошири алатну траку","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Едитор алатне траке"},"table":{"border":"Величина оквира","caption":"Наслов табеле","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Обриши ћелије","merge":"Спој ћелије","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Размак ћелија","cellSpace":"Ћелијски простор","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Обриши колоне"},"columns":"Kолона","deleteTable":"Обриши таблу","headers":"Поглавља","headersBoth":"Оба","headersColumn":"Прва колона","headersNone":"None","headersRow":"Први ред","invalidBorder":"Величина ивице треба да буде цифра.","invalidCellPadding":"Пуњење ћелије треба да буде позитивна цифра.","invalidCellSpacing":"Размак ћелије треба да буде позитивна цифра.","invalidCols":"Број колона треба да буде цифра већа од 0.","invalidHeight":"Висина табеле треба да буде цифра.","invalidRows":"Број реда треба да буде цифра већа од 0.","invalidWidth":"Ширина табеле треба да буде цифра.","menu":"Особине табеле","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Обриши редове"},"rows":"Редова","summary":"Резиме","title":"Особине табеле","toolbar":"Табела","widthPc":"процената","widthPx":"пиксела","widthUnit":"јединица ширине"},"stylescombo":{"label":"Стил","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Опције специјалног карактера","title":"Одаберите специјални карактер","toolbar":"Унеси специјални карактер"},"sourcedialog":{"toolbar":"Kôд","title":"Kôд"},"sourcearea":{"toolbar":"Kôд"},"showblocks":{"toolbar":"Show Blocks"},"removeformat":{"toolbar":"Уклони форматирање"},"pastetext":{"button":"Залепи као чист текст","title":"Залепи као чист текст"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Залепи из Worda","toolbar":"Залепи из Worda"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"Ненабројива листа","numberedlist":"Набројиву листу"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"Обострано равнање","center":"Центриран текст","left":"Лево равнање","right":"Десно равнање"},"indent":{"indent":"Увећај леву маргину","outdent":"Смањи леву маргину"},"image2":{"alt":"Алтернативни текст","btnUpload":"Пошаљи на сервер","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"Инфо слике","lockRatio":"Закључај однос","menu":"Особине слика","pathName":"image","pathNameCaption":"caption","resetSize":"Ресетуј величину","resizer":"Click and drag to resize","title":"Особине слика","uploadTab":"Пошаљи","urlMissing":"Недостаје УРЛ слике."},"horizontalrule":{"toolbar":"Унеси хоризонталну линију"},"format":{"label":"Формат","panelTitle":"Формат","tag_address":"Adresa","tag_div":"Нормално (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatirano"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Копирај","copyError":"Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+C).","cut":"Исеци","cutError":"Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+X).","paste":"Залепи","pasteArea":"Залепи зону","pasteMsg":"Молимо Вас да залепите унутар доње површине користећи тастатурну пречицу (<STRONG>Ctrl/Cmd+V</STRONG>) и да притиснете <STRONG>OK</STRONG>.","securityMsg":"Због сигурносних подешавања претраживача, едитор не може да приступи оставу. Требате да га поново залепите у овом прозору.","title":"Залепи"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"Подебљано","italic":"Курзив","strike":"Прецртано","subscript":"Индекс","superscript":"Степен","underline":"Подвучено"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Претражи сервер","url":"УРЛ","protocol":"Протокол","upload":"Пошаљи","uploadSubmit":"Пошаљи на сервер","image":"Слика","flash":"Флеш елемент","form":"Форма","checkbox":"Поље за потврду","radio":"Радио-дугме","textField":"Текстуално поље","textarea":"Зона текста","hiddenField":"Скривено поље","button":"Дугме","select":"Изборно поље","imageButton":"Дугме са сликом","notSet":"<није постављено>","id":"Ид","name":"Назив","langDir":"Смер језика","langDirLtr":"С лева на десно (LTR)","langDirRtl":"С десна на лево (RTL)","langCode":"Kôд језика","longDescr":"Пун опис УРЛ","cssClass":"Stylesheet класе","advisoryTitle":"Advisory наслов","cssStyle":"Стил","ok":"OK","cancel":"Oткажи","close":"Затвори","preview":"Изглед странице","resize":"Resize","generalTab":"Опште","advancedTab":"Напредни тагови","validateNumberFailed":"Ова вредност није цигра.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Опције","target":"Meтa","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"С лева на десно (LTR)","langDirRTL":"С десна на лево (RTL)","styles":"Стил","cssClasses":"Stylesheet класе","width":"Ширина","height":"Висина","align":"Равнање","alignLeft":"Лево","alignRight":"Десно","alignCenter":"Средина","alignJustify":"Обострано равнање","alignTop":"Врх","alignMiddle":"Средина","alignBottom":"Доле","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/sv.js b/core/assets/vendor/ckeditor/lang/sv.js
index cfc1096..4ca5c1a 100644
--- a/core/assets/vendor/ckeditor/lang/sv.js
+++ b/core/assets/vendor/ckeditor/lang/sv.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['sv']={"widget":{"move":"Klicka och drag för att flytta","label":"%1 widget"},"undo":{"redo":"Gör om","undo":"Ångra"},"toolbar":{"toolbarCollapse":"Dölj verktygsfält","toolbarExpand":"Visa verktygsfält","toolbarGroups":{"document":"Dokument","clipboard":"Urklipp/ångra","editing":"Redigering","forms":"Formulär","basicstyles":"Basstilar","paragraph":"Paragraf","links":"Länkar","insert":"Infoga","styles":"Stilar","colors":"Färger","tools":"Verktyg"},"toolbars":"Redigera verktygsfält"},"table":{"border":"Kantstorlek","caption":"Rubrik","cell":{"menu":"Cell","insertBefore":"Lägg till cell före","insertAfter":"Lägg till cell efter","deleteCell":"Radera celler","merge":"Sammanfoga celler","mergeRight":"Sammanfoga höger","mergeDown":"Sammanfoga ner","splitHorizontal":"Dela cell horisontellt","splitVertical":"Dela cell vertikalt","title":"Egenskaper för cell","cellType":"Celltyp","rowSpan":"Rad spann","colSpan":"Kolumnen spann","wordWrap":"Radbrytning","hAlign":"Horisontell justering","vAlign":"Vertikal justering","alignBaseline":"Baslinje","bgColor":"Bakgrundsfärg","borderColor":"Ramfärg","data":"Data","header":"Rubrik","yes":"Ja","no":"Nej","invalidWidth":"Cellens bredd måste vara ett nummer.","invalidHeight":"Cellens höjd måste vara ett nummer.","invalidRowSpan":"Radutvidgning måste vara ett heltal.","invalidColSpan":"Kolumn måste vara ett heltal.","chooseColor":"Välj"},"cellPad":"Cellutfyllnad","cellSpace":"Cellavstånd","column":{"menu":"Kolumn","insertBefore":"Lägg till kolumn före","insertAfter":"Lägg till kolumn efter","deleteColumn":"Radera kolumn"},"columns":"Kolumner","deleteTable":"Radera tabell","headers":"Rubriker","headersBoth":"Båda","headersColumn":"Första kolumnen","headersNone":"Ingen","headersRow":"Första raden","invalidBorder":"Ram måste vara ett nummer.","invalidCellPadding":"Luft i cell måste vara ett nummer.","invalidCellSpacing":"Luft i cell måste vara ett nummer.","invalidCols":"Antal kolumner måste vara ett nummer större än 0.","invalidHeight":"Tabellens höjd måste vara ett nummer.","invalidRows":"Antal rader måste vara större än 0.","invalidWidth":"Tabell måste vara ett nummer.","menu":"Tabellegenskaper","row":{"menu":"Rad","insertBefore":"Lägg till rad före","insertAfter":"Lägg till rad efter","deleteRow":"Radera rad"},"rows":"Rader","summary":"Sammanfattning","title":"Tabellegenskaper","toolbar":"Tabell","widthPc":"procent","widthPx":"pixlar","widthUnit":"enhet bredd"},"stylescombo":{"label":"Anpassad stil","panelTitle":"Formatmallar","panelTitle1":"Blockstil","panelTitle2":"Inbäddad stil","panelTitle3":"Objektets stil"},"specialchar":{"options":"Alternativ för utökade tecken","title":"Välj utökat tecken","toolbar":"Klistra in utökat tecken"},"sourcedialog":{"toolbar":"Källa","title":"Källa"},"sourcearea":{"toolbar":"Källa"},"showblocks":{"toolbar":"Visa block"},"removeformat":{"toolbar":"Radera formatering"},"pastetext":{"button":"Klistra in som vanlig text","title":"Klistra in som vanlig text"},"pastefromword":{"confirmCleanup":"Texten du vill klistra in verkar vara kopierad från Word. Vill du rensa den innan du klistrar in den?","error":"Det var inte möjligt att städa upp den inklistrade data på grund av ett internt fel","title":"Klistra in från Word","toolbar":"Klistra in från Word"},"maximize":{"maximize":"Maximera","minimize":"Minimera"},"magicline":{"title":"Infoga paragraf här"},"list":{"bulletedlist":"Infoga/ta bort punktlista","numberedlist":"Infoga/ta bort numrerad lista"},"language":{"button":"Sätt språk","remove":"Ta bort språk"},"justify":{"block":"Justera till marginaler","center":"Centrera","left":"Vänsterjustera","right":"Högerjustera"},"indent":{"indent":"Öka indrag","outdent":"Minska indrag"},"image2":{"alt":"Alternativ text","btnUpload":"Skicka till server","captioned":"Rubricerad bild","captionPlaceholder":"Bildtext","infoTab":"Bildinformation","lockRatio":"Lås höjd/bredd förhållanden","menu":"Bildegenskaper","pathName":"bild","pathNameCaption":"rubrik","resetSize":"Återställ storlek","resizer":"Klicka och drag för att ändra storlek","title":"Bildegenskaper","uploadTab":"Ladda upp","urlMissing":"Bildkällans URL saknas."},"horizontalrule":{"toolbar":"Infoga horisontal linje"},"format":{"label":"Teckenformat","panelTitle":"Teckenformat","tag_address":"Adress","tag_div":"Normal (DIV)","tag_h1":"Rubrik 1","tag_h2":"Rubrik 2","tag_h3":"Rubrik 3","tag_h4":"Rubrik 4","tag_h5":"Rubrik 5","tag_h6":"Rubrik 6","tag_p":"Normal","tag_pre":"Formaterad"},"elementspath":{"eleLabel":"Elementets sökväg","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Kopiera","copyError":"Säkerhetsinställningar i Er webbläsare tillåter inte åtgärden kopiera. Använd (Ctrl/Cmd+C) istället.","cut":"Klipp ut","cutError":"Säkerhetsinställningar i Er webbläsare tillåter inte åtgärden klipp ut. Använd (Ctrl/Cmd+X) istället.","paste":"Klistra in","pasteArea":"Paste Area","pasteMsg":"Var god och klistra in Er text i rutan nedan genom att använda (<strong>Ctrl/Cmd+V</strong>) klicka sen på OK.","securityMsg":"På grund av din webbläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.","title":"Klistra in"},"button":{"selectedLabel":"%1 (Vald)"},"blockquote":{"toolbar":"Blockcitat"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Genomstruken","subscript":"Nedsänkta tecken","superscript":"Upphöjda tecken","underline":"Understruken"},"about":{"copy":"Copyright &copy; $1. Alla rättigheter reserverade.","dlgTitle":"Om CKEditor","help":"Se $1 för hjälp.","moreInfo":"För information av licensiering besök vår hemsida:","title":"Om CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Tryck ALT 0 för hjälp","browseServer":"Bläddra på server","url":"URL","protocol":"Protokoll","upload":"Ladda upp","uploadSubmit":"Skicka till server","image":"Bild","flash":"Flash","form":"Formulär","checkbox":"Kryssruta","radio":"Alternativknapp","textField":"Textfält","textarea":"Textruta","hiddenField":"Dolt fält","button":"Knapp","select":"Flervalslista","imageButton":"Bildknapp","notSet":"<ej angivet>","id":"Id","name":"Namn","langDir":"Språkriktning","langDirLtr":"Vänster till Höger (VTH)","langDirRtl":"Höger till Vänster (HTV)","langCode":"Språkkod","longDescr":"URL-beskrivning","cssClass":"Stilmall","advisoryTitle":"Titel","cssStyle":"Stilmall","ok":"OK","cancel":"Avbryt","close":"Stäng","preview":"Förhandsgranska","resize":"Dra för att ändra storlek","generalTab":"Allmänt","advancedTab":"Avancerad","validateNumberFailed":"Värdet är inte ett nummer.","confirmNewPage":"Alla ändringar i innehållet kommer att förloras. Är du säker på att du vill ladda en ny sida?","confirmCancel":"Några av alternativen har ändrats. Är du säker på att du vill stänga dialogrutan?","options":"Alternativ","target":"Mål","targetNew":"Nytt fönster (_blank)","targetTop":"Översta fönstret (_top)","targetSelf":"Samma fönster (_self)","targetParent":"Föregående fönster (_parent)","langDirLTR":"Vänster till höger (LTR)","langDirRTL":"Höger till vänster (RTL)","styles":"Stil","cssClasses":"Stilmallar","width":"Bredd","height":"Höjd","align":"Justering","alignLeft":"Vänster","alignRight":"Höger","alignCenter":"Centrerad","alignJustify":"Justera till marginaler","alignTop":"Överkant","alignMiddle":"Mitten","alignBottom":"Nederkant","alignNone":"Ingen","invalidValue":"Felaktigt värde.","invalidHeight":"Höjd måste vara ett nummer.","invalidWidth":"Bredd måste vara ett nummer.","invalidCssLength":"Värdet för fältet \"%1\" måste vara ett positivt nummer med eller utan CSS-mätenheter (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Värdet för fältet \"%1\" måste vara ett positivt nummer med eller utan godkända HTML-mätenheter (px eller %).","invalidInlineStyle":"Det angivna värdet för style måste innehålla en eller flera tupler separerade med semikolon i följande format: \"name : value\"","cssLengthTooltip":"Ange ett nummer i pixlar eller ett nummer men godkänd CSS-mätenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, Ej tillgänglig</span>"}};
\ No newline at end of file
+CKEDITOR.lang['sv']={"widget":{"move":"Klicka och drag för att flytta"},"undo":{"redo":"Gör om","undo":"Ångra"},"toolbar":{"toolbarCollapse":"Dölj verktygsfält","toolbarExpand":"Visa verktygsfält","toolbarGroups":{"document":"Dokument","clipboard":"Urklipp/ångra","editing":"Redigering","forms":"Formulär","basicstyles":"Basstilar","paragraph":"Paragraf","links":"Länkar","insert":"Infoga","styles":"Stilar","colors":"Färger","tools":"Verktyg"},"toolbars":"Redigera verktygsfält"},"table":{"border":"Kantstorlek","caption":"Rubrik","cell":{"menu":"Cell","insertBefore":"Lägg till cell före","insertAfter":"Lägg till cell efter","deleteCell":"Radera celler","merge":"Sammanfoga celler","mergeRight":"Sammanfoga höger","mergeDown":"Sammanfoga ner","splitHorizontal":"Dela cell horisontellt","splitVertical":"Dela cell vertikalt","title":"Egenskaper för cell","cellType":"Celltyp","rowSpan":"Rad spann","colSpan":"Kolumnen spann","wordWrap":"Radbrytning","hAlign":"Horisontell justering","vAlign":"Vertikal justering","alignBaseline":"Baslinje","bgColor":"Bakgrundsfärg","borderColor":"Ramfärg","data":"Data","header":"Rubrik","yes":"Ja","no":"Nej","invalidWidth":"Cellens bredd måste vara ett nummer.","invalidHeight":"Cellens höjd måste vara ett nummer.","invalidRowSpan":"Radutvidgning måste vara ett heltal.","invalidColSpan":"Kolumn måste vara ett heltal.","chooseColor":"Välj"},"cellPad":"Cellutfyllnad","cellSpace":"Cellavstånd","column":{"menu":"Kolumn","insertBefore":"Lägg till kolumn före","insertAfter":"Lägg till kolumn efter","deleteColumn":"Radera kolumn"},"columns":"Kolumner","deleteTable":"Radera tabell","headers":"Rubriker","headersBoth":"Båda","headersColumn":"Första kolumnen","headersNone":"Ingen","headersRow":"Första raden","invalidBorder":"Ram måste vara ett nummer.","invalidCellPadding":"Luft i cell måste vara ett nummer.","invalidCellSpacing":"Luft i cell måste vara ett nummer.","invalidCols":"Antal kolumner måste vara ett nummer större än 0.","invalidHeight":"Tabellens höjd måste vara ett nummer.","invalidRows":"Antal rader måste vara större än 0.","invalidWidth":"Tabell måste vara ett nummer.","menu":"Tabellegenskaper","row":{"menu":"Rad","insertBefore":"Lägg till rad före","insertAfter":"Lägg till rad efter","deleteRow":"Radera rad"},"rows":"Rader","summary":"Sammanfattning","title":"Tabellegenskaper","toolbar":"Tabell","widthPc":"procent","widthPx":"pixlar","widthUnit":"enhet bredd"},"stylescombo":{"label":"Anpassad stil","panelTitle":"Formatmallar","panelTitle1":"Blockstil","panelTitle2":"Inbäddad stil","panelTitle3":"Objektets stil"},"specialchar":{"options":"Alternativ för utökade tecken","title":"Välj utökat tecken","toolbar":"Klistra in utökat tecken"},"sourcedialog":{"toolbar":"Källa","title":"Källa"},"sourcearea":{"toolbar":"Källa"},"showblocks":{"toolbar":"Visa block"},"removeformat":{"toolbar":"Radera formatering"},"pastetext":{"button":"Klistra in som vanlig text","title":"Klistra in som vanlig text"},"pastefromword":{"confirmCleanup":"Texten du vill klistra in verkar vara kopierad från Word. Vill du rensa den innan du klistrar in den?","error":"Det var inte möjligt att städa upp den inklistrade data på grund av ett internt fel","title":"Klistra in från Word","toolbar":"Klistra in från Word"},"maximize":{"maximize":"Maximera","minimize":"Minimera"},"magicline":{"title":"Infoga paragraf här"},"list":{"bulletedlist":"Infoga/ta bort punktlista","numberedlist":"Infoga/ta bort numrerad lista"},"language":{"button":"Sätt språk","remove":"Ta bort språk"},"justify":{"block":"Justera till marginaler","center":"Centrera","left":"Vänsterjustera","right":"Högerjustera"},"indent":{"indent":"Öka indrag","outdent":"Minska indrag"},"image2":{"alt":"Alternativ text","btnUpload":"Skicka till server","captioned":"Rubricerad bild","captionPlaceholder":"Bildtext","infoTab":"Bildinformation","lockRatio":"Lås höjd/bredd förhållanden","menu":"Bildegenskaper","pathName":"bild","pathNameCaption":"rubrik","resetSize":"Återställ storlek","resizer":"Klicka och drag för att ändra storlek","title":"Bildegenskaper","uploadTab":"Ladda upp","urlMissing":"Bildkällans URL saknas."},"horizontalrule":{"toolbar":"Infoga horisontal linje"},"format":{"label":"Teckenformat","panelTitle":"Teckenformat","tag_address":"Adress","tag_div":"Normal (DIV)","tag_h1":"Rubrik 1","tag_h2":"Rubrik 2","tag_h3":"Rubrik 3","tag_h4":"Rubrik 4","tag_h5":"Rubrik 5","tag_h6":"Rubrik 6","tag_p":"Normal","tag_pre":"Formaterad"},"elementspath":{"eleLabel":"Elementets sökväg","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"Kopiera","copyError":"Säkerhetsinställningar i Er webbläsare tillåter inte åtgärden kopiera. Använd (Ctrl/Cmd+C) istället.","cut":"Klipp ut","cutError":"Säkerhetsinställningar i Er webbläsare tillåter inte åtgärden klipp ut. Använd (Ctrl/Cmd+X) istället.","paste":"Klistra in","pasteArea":"Paste Area","pasteMsg":"Var god och klistra in Er text i rutan nedan genom att använda (<strong>Ctrl/Cmd+V</strong>) klicka sen på OK.","securityMsg":"På grund av din webbläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.","title":"Klistra in"},"button":{"selectedLabel":"%1 (Vald)"},"blockquote":{"toolbar":"Blockcitat"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Genomstruken","subscript":"Nedsänkta tecken","superscript":"Upphöjda tecken","underline":"Understruken"},"about":{"copy":"Copyright &copy; $1. Alla rättigheter reserverade.","dlgTitle":"Om CKEditor","help":"Se $1 för hjälp.","moreInfo":"För information av licensiering besök vår hemsida:","title":"Om CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Tryck ALT 0 för hjälp","browseServer":"Bläddra på server","url":"URL","protocol":"Protokoll","upload":"Ladda upp","uploadSubmit":"Skicka till server","image":"Bild","flash":"Flash","form":"Formulär","checkbox":"Kryssruta","radio":"Alternativknapp","textField":"Textfält","textarea":"Textruta","hiddenField":"Dolt fält","button":"Knapp","select":"Flervalslista","imageButton":"Bildknapp","notSet":"<ej angivet>","id":"Id","name":"Namn","langDir":"Språkriktning","langDirLtr":"Vänster till Höger (VTH)","langDirRtl":"Höger till Vänster (HTV)","langCode":"Språkkod","longDescr":"URL-beskrivning","cssClass":"Stilmall","advisoryTitle":"Titel","cssStyle":"Stilmall","ok":"OK","cancel":"Avbryt","close":"Stäng","preview":"Förhandsgranska","resize":"Dra för att ändra storlek","generalTab":"Allmänt","advancedTab":"Avancerad","validateNumberFailed":"Värdet är inte ett nummer.","confirmNewPage":"Alla ändringar i innehållet kommer att förloras. Är du säker på att du vill ladda en ny sida?","confirmCancel":"Några av alternativen har ändrats. Är du säker på att du vill stänga dialogrutan?","options":"Alternativ","target":"Mål","targetNew":"Nytt fönster (_blank)","targetTop":"Översta fönstret (_top)","targetSelf":"Samma fönster (_self)","targetParent":"Föregående fönster (_parent)","langDirLTR":"Vänster till höger (LTR)","langDirRTL":"Höger till vänster (RTL)","styles":"Stil","cssClasses":"Stilmallar","width":"Bredd","height":"Höjd","align":"Justering","alignLeft":"Vänster","alignRight":"Höger","alignCenter":"Centrerad","alignJustify":"Justera till marginaler","alignTop":"Överkant","alignMiddle":"Mitten","alignBottom":"Nederkant","alignNone":"Ingen","invalidValue":"Felaktigt värde.","invalidHeight":"Höjd måste vara ett nummer.","invalidWidth":"Bredd måste vara ett nummer.","invalidCssLength":"Värdet för fältet \"%1\" måste vara ett positivt nummer med eller utan CSS-mätenheter (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Värdet för fältet \"%1\" måste vara ett positivt nummer med eller utan godkända HTML-mätenheter (px eller %).","invalidInlineStyle":"Det angivna värdet för style måste innehålla en eller flera tupler separerade med semikolon i följande format: \"name : value\"","cssLengthTooltip":"Ange ett nummer i pixlar eller ett nummer men godkänd CSS-mätenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, Ej tillgänglig</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/th.js b/core/assets/vendor/ckeditor/lang/th.js
index 120b0ff..01c086e 100644
--- a/core/assets/vendor/ckeditor/lang/th.js
+++ b/core/assets/vendor/ckeditor/lang/th.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['th']={"widget":{"move":"Click and drag to move","label":"%1 widget"},"undo":{"redo":"ทำซ้ำคำสั่ง","undo":"ยกเลิกคำสั่ง"},"toolbar":{"toolbarCollapse":"ซ่อนแถบเครื่องมือ","toolbarExpand":"เปิดแถบเครื่องมือ","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"แถบเครื่องมือช่วยพิมพ์ข้อความ"},"table":{"border":"ขนาดเส้นขอบ","caption":"หัวเรื่องของตาราง","cell":{"menu":"ช่องตาราง","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"ลบช่อง","merge":"ผสานช่อง","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"ระยะแนวตั้ง","cellSpace":"ระยะแนวนอนน","column":{"menu":"คอลัมน์","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"ลบสดมน์"},"columns":"สดมน์","deleteTable":"ลบตาราง","headers":"ส่วนหัว","headersBoth":"ทั้งสองอย่าง","headersColumn":"คอลัมน์แรก","headersNone":"None","headersRow":"แถวแรก","invalidBorder":"ขนาดเส้นกรอบต้องเป็นจำนวนตัวเลข","invalidCellPadding":"ช่องว่างภายในเซลล์ต้องเลขจำนวนบวก","invalidCellSpacing":"ช่องว่างภายในเซลล์ต้องเป็นเลขจำนวนบวก","invalidCols":"จำนวนคอลัมน์ต้องเป็นจำนวนมากกว่า 0","invalidHeight":"ส่วนสูงของตารางต้องเป็นตัวเลข","invalidRows":"จำนวนของแถวต้องเป็นจำนวนมากกว่า 0","invalidWidth":"ความกว้างตารางต้องเป็นตัวเลข","menu":"คุณสมบัติของ ตาราง","row":{"menu":"แถว","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"ลบแถว"},"rows":"แถว","summary":"สรุปความ","title":"คุณสมบัติของ ตาราง","toolbar":"ตาราง","widthPc":"เปอร์เซ็น","widthPx":"จุดสี","widthUnit":"หน่วยความกว้าง"},"stylescombo":{"label":"ลักษณะ","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"แทรกตัวอักษรพิเศษ","toolbar":"แทรกตัวอักษรพิเศษ"},"sourcedialog":{"toolbar":"ดูรหัส HTML","title":"ดูรหัส HTML"},"sourcearea":{"toolbar":"ดูรหัส HTML"},"showblocks":{"toolbar":"แสดงบล็อคข้อมูล"},"removeformat":{"toolbar":"ล้างรูปแบบ"},"pastetext":{"button":"วางแบบตัวอักษรธรรมดา","title":"วางแบบตัวอักษรธรรมดา"},"pastefromword":{"confirmCleanup":"ข้อความที่คุณต้องการวางลงไปเป็นข้อความที่คัดลอกมาจากโปรแกรมไมโครซอฟท์เวิร์ด คุณต้องการล้างค่าข้อความดังกล่าวก่อนวางลงไปหรือไม่?","error":"ไม่สามารถล้างข้อมูลที่ต้องการวางได้เนื่องจากเกิดข้อผิดพลาดภายในระบบ","title":"วางสำเนาจากตัวอักษรเวิร์ด","toolbar":"วางสำเนาจากตัวอักษรเวิร์ด"},"maximize":{"maximize":"ขยายใหญ่","minimize":"ย่อขนาด"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"ลำดับรายการแบบสัญลักษณ์","numberedlist":"ลำดับรายการแบบตัวเลข"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"จัดพอดีหน้ากระดาษ","center":"จัดกึ่งกลาง","left":"จัดชิดซ้าย","right":"จัดชิดขวา"},"indent":{"indent":"เพิ่มระยะย่อหน้า","outdent":"ลดระยะย่อหน้า"},"image2":{"alt":"คำประกอบรูปภาพ","btnUpload":"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"ข้อมูลของรูปภาพ","lockRatio":"กำหนดอัตราส่วน กว้าง-สูง แบบคงที่","menu":"คุณสมบัติของ รูปภาพ","pathName":"image","pathNameCaption":"caption","resetSize":"กำหนดรูปเท่าขนาดจริง","resizer":"Click and drag to resize","title":"คุณสมบัติของ รูปภาพ","uploadTab":"อัพโหลดไฟล์","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"แทรกเส้นคั่นบรรทัด"},"format":{"label":"รูปแบบ","panelTitle":"รูปแบบ","tag_address":"Address","tag_div":"Paragraph (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"สำเนา","copyError":"ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว C พร้อมกัน).","cut":"ตัด","cutError":"ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว X พร้อมกัน).","paste":"วาง","pasteArea":"Paste Area","pasteMsg":"กรุณาใช้คีย์บอร์ดเท่านั้น โดยกดปุ๋ม (<strong>Ctrl/Cmd และ V</strong>)พร้อมๆกัน และกด <strong>OK</strong>.","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"วาง"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"ตัวหนา","italic":"ตัวเอียง","strike":"ตัวขีดเส้นทับ","subscript":"ตัวห้อย","superscript":"ตัวยก","underline":"ตัวขีดเส้นใต้"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"กด ALT 0 หากต้องการความช่วยเหลือ","browseServer":"เปิดหน้าต่างจัดการไฟล์อัพโหลด","url":"ที่อยู่อ้างอิง URL","protocol":"โปรโตคอล","upload":"อัพโหลดไฟล์","uploadSubmit":"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)","image":"รูปภาพ","flash":"ไฟล์ Flash","form":"แบบฟอร์ม","checkbox":"เช็คบ๊อก","radio":"เรดิโอบัตตอน","textField":"เท็กซ์ฟิลด์","textarea":"เท็กซ์แอเรีย","hiddenField":"ฮิดเดนฟิลด์","button":"ปุ่ม","select":"แถบตัวเลือก","imageButton":"ปุ่มแบบรูปภาพ","notSet":"<ไม่ระบุ>","id":"ไอดี","name":"ชื่อ","langDir":"การเขียน-อ่านภาษา","langDirLtr":"จากซ้ายไปขวา (LTR)","langDirRtl":"จากขวามาซ้าย (RTL)","langCode":"รหัสภาษา","longDescr":"คำอธิบายประกอบ URL","cssClass":"คลาสของไฟล์กำหนดลักษณะการแสดงผล","advisoryTitle":"คำเกริ่นนำ","cssStyle":"ลักษณะการแสดงผล","ok":"ตกลง","cancel":"ยกเลิก","close":"ปิด","preview":"ดูหน้าเอกสารตัวอย่าง","resize":"ปรับขนาด","generalTab":"ทั่วไป","advancedTab":"ขั้นสูง","validateNumberFailed":"ค่านี้ไม่ใช่ตัวเลข","confirmNewPage":"การเปลี่ยนแปลงใดๆ ในเนื้อหานี้ ที่ไม่ได้ถูกบันทึกไว้ จะสูญหายทั้งหมด คุณแน่ใจว่าจะเรียกหน้าใหม่?","confirmCancel":"ตัวเลือกบางตัวมีการเปลี่ยนแปลง คุณแน่ใจว่าจะปิดกล่องโต้ตอบนี้?","options":"ตัวเลือก","target":"การเปิดหน้าลิงค์","targetNew":"หน้าต่างใหม่ (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"หน้าต่างเดียวกัน (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"จากซ้ายไปขวา (LTR)","langDirRTL":"จากขวามาซ้าย (RTL)","styles":"ลักษณะการแสดงผล","cssClasses":"คลาสของไฟล์กำหนดลักษณะการแสดงผล","width":"ความกว้าง","height":"ความสูง","align":"การจัดวาง","alignLeft":"ชิดซ้าย","alignRight":"ชิดขวา","alignCenter":"กึ่งกลาง","alignJustify":"நியாயப்படுத்தவும்","alignTop":"บนสุด","alignMiddle":"กึ่งกลางแนวตั้ง","alignBottom":"ชิดด้านล่าง","alignNone":"None","invalidValue":"ค่าไม่ถูกต้อง","invalidHeight":"ความสูงต้องเป็นตัวเลข","invalidWidth":"ความกว้างต้องเป็นตัวเลข","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['th']={"widget":{"move":"Click and drag to move"},"undo":{"redo":"ทำซ้ำคำสั่ง","undo":"ยกเลิกคำสั่ง"},"toolbar":{"toolbarCollapse":"ซ่อนแถบเครื่องมือ","toolbarExpand":"เปิดแถบเครื่องมือ","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"แถบเครื่องมือช่วยพิมพ์ข้อความ"},"table":{"border":"ขนาดเส้นขอบ","caption":"หัวเรื่องของตาราง","cell":{"menu":"ช่องตาราง","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"ลบช่อง","merge":"ผสานช่อง","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"ระยะแนวตั้ง","cellSpace":"ระยะแนวนอนน","column":{"menu":"คอลัมน์","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"ลบสดมน์"},"columns":"สดมน์","deleteTable":"ลบตาราง","headers":"ส่วนหัว","headersBoth":"ทั้งสองอย่าง","headersColumn":"คอลัมน์แรก","headersNone":"None","headersRow":"แถวแรก","invalidBorder":"ขนาดเส้นกรอบต้องเป็นจำนวนตัวเลข","invalidCellPadding":"ช่องว่างภายในเซลล์ต้องเลขจำนวนบวก","invalidCellSpacing":"ช่องว่างภายในเซลล์ต้องเป็นเลขจำนวนบวก","invalidCols":"จำนวนคอลัมน์ต้องเป็นจำนวนมากกว่า 0","invalidHeight":"ส่วนสูงของตารางต้องเป็นตัวเลข","invalidRows":"จำนวนของแถวต้องเป็นจำนวนมากกว่า 0","invalidWidth":"ความกว้างตารางต้องเป็นตัวเลข","menu":"คุณสมบัติของ ตาราง","row":{"menu":"แถว","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"ลบแถว"},"rows":"แถว","summary":"สรุปความ","title":"คุณสมบัติของ ตาราง","toolbar":"ตาราง","widthPc":"เปอร์เซ็น","widthPx":"จุดสี","widthUnit":"หน่วยความกว้าง"},"stylescombo":{"label":"ลักษณะ","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"specialchar":{"options":"Special Character Options","title":"แทรกตัวอักษรพิเศษ","toolbar":"แทรกตัวอักษรพิเศษ"},"sourcedialog":{"toolbar":"ดูรหัส HTML","title":"ดูรหัส HTML"},"sourcearea":{"toolbar":"ดูรหัส HTML"},"showblocks":{"toolbar":"แสดงบล็อคข้อมูล"},"removeformat":{"toolbar":"ล้างรูปแบบ"},"pastetext":{"button":"วางแบบตัวอักษรธรรมดา","title":"วางแบบตัวอักษรธรรมดา"},"pastefromword":{"confirmCleanup":"ข้อความที่คุณต้องการวางลงไปเป็นข้อความที่คัดลอกมาจากโปรแกรมไมโครซอฟท์เวิร์ด คุณต้องการล้างค่าข้อความดังกล่าวก่อนวางลงไปหรือไม่?","error":"ไม่สามารถล้างข้อมูลที่ต้องการวางได้เนื่องจากเกิดข้อผิดพลาดภายในระบบ","title":"วางสำเนาจากตัวอักษรเวิร์ด","toolbar":"วางสำเนาจากตัวอักษรเวิร์ด"},"maximize":{"maximize":"ขยายใหญ่","minimize":"ย่อขนาด"},"magicline":{"title":"Insert paragraph here"},"list":{"bulletedlist":"ลำดับรายการแบบสัญลักษณ์","numberedlist":"ลำดับรายการแบบตัวเลข"},"language":{"button":"Set language","remove":"Remove language"},"justify":{"block":"จัดพอดีหน้ากระดาษ","center":"จัดกึ่งกลาง","left":"จัดชิดซ้าย","right":"จัดชิดขวา"},"indent":{"indent":"เพิ่มระยะย่อหน้า","outdent":"ลดระยะย่อหน้า"},"image2":{"alt":"คำประกอบรูปภาพ","btnUpload":"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)","captioned":"Captioned image","captionPlaceholder":"Caption","infoTab":"ข้อมูลของรูปภาพ","lockRatio":"กำหนดอัตราส่วน กว้าง-สูง แบบคงที่","menu":"คุณสมบัติของ รูปภาพ","pathName":"image","pathNameCaption":"caption","resetSize":"กำหนดรูปเท่าขนาดจริง","resizer":"Click and drag to resize","title":"คุณสมบัติของ รูปภาพ","uploadTab":"อัพโหลดไฟล์","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"แทรกเส้นคั่นบรรทัด"},"format":{"label":"รูปแบบ","panelTitle":"รูปแบบ","tag_address":"Address","tag_div":"Paragraph (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"contextmenu":{"options":"Context Menu Options"},"clipboard":{"copy":"สำเนา","copyError":"ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว C พร้อมกัน).","cut":"ตัด","cutError":"ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว X พร้อมกัน).","paste":"วาง","pasteArea":"Paste Area","pasteMsg":"กรุณาใช้คีย์บอร์ดเท่านั้น โดยกดปุ๋ม (<strong>Ctrl/Cmd และ V</strong>)พร้อมๆกัน และกด <strong>OK</strong>.","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"วาง"},"button":{"selectedLabel":"%1 (Selected)"},"blockquote":{"toolbar":"Block Quote"},"basicstyles":{"bold":"ตัวหนา","italic":"ตัวเอียง","strike":"ตัวขีดเส้นทับ","subscript":"ตัวห้อย","superscript":"ตัวยก","underline":"ตัวขีดเส้นใต้"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"กด ALT 0 หากต้องการความช่วยเหลือ","browseServer":"เปิดหน้าต่างจัดการไฟล์อัพโหลด","url":"ที่อยู่อ้างอิง URL","protocol":"โปรโตคอล","upload":"อัพโหลดไฟล์","uploadSubmit":"อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)","image":"รูปภาพ","flash":"ไฟล์ Flash","form":"แบบฟอร์ม","checkbox":"เช็คบ๊อก","radio":"เรดิโอบัตตอน","textField":"เท็กซ์ฟิลด์","textarea":"เท็กซ์แอเรีย","hiddenField":"ฮิดเดนฟิลด์","button":"ปุ่ม","select":"แถบตัวเลือก","imageButton":"ปุ่มแบบรูปภาพ","notSet":"<ไม่ระบุ>","id":"ไอดี","name":"ชื่อ","langDir":"การเขียน-อ่านภาษา","langDirLtr":"จากซ้ายไปขวา (LTR)","langDirRtl":"จากขวามาซ้าย (RTL)","langCode":"รหัสภาษา","longDescr":"คำอธิบายประกอบ URL","cssClass":"คลาสของไฟล์กำหนดลักษณะการแสดงผล","advisoryTitle":"คำเกริ่นนำ","cssStyle":"ลักษณะการแสดงผล","ok":"ตกลง","cancel":"ยกเลิก","close":"ปิด","preview":"ดูหน้าเอกสารตัวอย่าง","resize":"ปรับขนาด","generalTab":"ทั่วไป","advancedTab":"ขั้นสูง","validateNumberFailed":"ค่านี้ไม่ใช่ตัวเลข","confirmNewPage":"การเปลี่ยนแปลงใดๆ ในเนื้อหานี้ ที่ไม่ได้ถูกบันทึกไว้ จะสูญหายทั้งหมด คุณแน่ใจว่าจะเรียกหน้าใหม่?","confirmCancel":"ตัวเลือกบางตัวมีการเปลี่ยนแปลง คุณแน่ใจว่าจะปิดกล่องโต้ตอบนี้?","options":"ตัวเลือก","target":"การเปิดหน้าลิงค์","targetNew":"หน้าต่างใหม่ (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"หน้าต่างเดียวกัน (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"จากซ้ายไปขวา (LTR)","langDirRTL":"จากขวามาซ้าย (RTL)","styles":"ลักษณะการแสดงผล","cssClasses":"คลาสของไฟล์กำหนดลักษณะการแสดงผล","width":"ความกว้าง","height":"ความสูง","align":"การจัดวาง","alignLeft":"ชิดซ้าย","alignRight":"ชิดขวา","alignCenter":"กึ่งกลาง","alignJustify":"நியாயப்படுத்தவும்","alignTop":"บนสุด","alignMiddle":"กึ่งกลางแนวตั้ง","alignBottom":"ชิดด้านล่าง","alignNone":"None","invalidValue":"ค่าไม่ถูกต้อง","invalidHeight":"ความสูงต้องเป็นตัวเลข","invalidWidth":"ความกว้างต้องเป็นตัวเลข","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/tr.js b/core/assets/vendor/ckeditor/lang/tr.js
index cc5d708..9e3a0f8 100644
--- a/core/assets/vendor/ckeditor/lang/tr.js
+++ b/core/assets/vendor/ckeditor/lang/tr.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['tr']={"widget":{"move":"Taşımak için, tıklayın ve sürükleyin","label":"%1 widget"},"undo":{"redo":"Tekrarla","undo":"Geri Al"},"toolbar":{"toolbarCollapse":"Araç çubuklarını topla","toolbarExpand":"Araç çubuklarını aç","toolbarGroups":{"document":"Belge","clipboard":"Pano/Geri al","editing":"Düzenleme","forms":"Formlar","basicstyles":"Temel Stiller","paragraph":"Paragraf","links":"Bağlantılar","insert":"Ekle","styles":"Stiller","colors":"Renkler","tools":"Araçlar"},"toolbars":"Araç çubukları Editörü"},"table":{"border":"Kenar Kalınlığı","caption":"Başlık","cell":{"menu":"Hücre","insertBefore":"Hücre Ekle - Önce","insertAfter":"Hücre Ekle - Sonra","deleteCell":"Hücre Sil","merge":"Hücreleri Birleştir","mergeRight":"Birleştir - Sağdaki İle ","mergeDown":"Birleştir - Aşağıdaki İle ","splitHorizontal":"Hücreyi Yatay Böl","splitVertical":"Hücreyi Dikey Böl","title":"Hücre Özellikleri","cellType":"Hücre Tipi","rowSpan":"Satırlar Mesafesi (Span)","colSpan":"Sütünlar Mesafesi (Span)","wordWrap":"Kelime Kaydırma","hAlign":"Düşey Hizalama","vAlign":"Yataş Hizalama","alignBaseline":"Tabana","bgColor":"Arkaplan Rengi","borderColor":"Çerçeve Rengi","data":"Veri","header":"Başlık","yes":"Evet","no":"Hayır","invalidWidth":"Hücre genişliği sayı olmalıdır.","invalidHeight":"Hücre yüksekliği sayı olmalıdır.","invalidRowSpan":"Satırların mesafesi tam sayı olmalıdır.","invalidColSpan":"Sütünların mesafesi tam sayı olmalıdır.","chooseColor":"Seçiniz"},"cellPad":"Izgara yazı arası","cellSpace":"Izgara kalınlığı","column":{"menu":"Sütun","insertBefore":"Kolon Ekle - Önce","insertAfter":"Kolon Ekle - Sonra","deleteColumn":"Sütun Sil"},"columns":"Sütunlar","deleteTable":"Tabloyu Sil","headers":"Başlıklar","headersBoth":"Her İkisi","headersColumn":"İlk Sütun","headersNone":"Yok","headersRow":"İlk Satır","invalidBorder":"Çerceve büyüklüklüğü sayı olmalıdır.","invalidCellPadding":"Hücre aralığı (padding) sayı olmalıdır.","invalidCellSpacing":"Hücre boşluğu (spacing) sayı olmalıdır.","invalidCols":"Sütün sayısı 0 sayısından büyük olmalıdır.","invalidHeight":"Tablo yüksekliği sayı olmalıdır.","invalidRows":"Satır sayısı 0 sayısından büyük olmalıdır.","invalidWidth":"Tablo genişliği sayı olmalıdır.","menu":"Tablo Özellikleri","row":{"menu":"Satır","insertBefore":"Satır Ekle - Önce","insertAfter":"Satır Ekle - Sonra","deleteRow":"Satır Sil"},"rows":"Satırlar","summary":"Özet","title":"Tablo Özellikleri","toolbar":"Tablo","widthPc":"yüzde","widthPx":"piksel","widthUnit":"genişlik birimi"},"stylescombo":{"label":"Biçem","panelTitle":"Stilleri Düzenliyor","panelTitle1":"Blok Stilleri","panelTitle2":"Inline Stilleri","panelTitle3":"Nesne Stilleri"},"specialchar":{"options":"Özel Karakter Seçenekleri","title":"Özel Karakter Seç","toolbar":"Özel Karakter Ekle"},"sourcedialog":{"toolbar":"Kaynak","title":"Kaynak"},"sourcearea":{"toolbar":"Kaynak"},"showblocks":{"toolbar":"Blokları Göster"},"removeformat":{"toolbar":"Biçimi Kaldır"},"pastetext":{"button":"Düz Metin Olarak Yapıştır","title":"Düz Metin Olarak Yapıştır"},"pastefromword":{"confirmCleanup":"Yapıştırmaya çalıştığınız metin Word'den kopyalanmıştır. Yapıştırmadan önce silmek istermisiniz?","error":"Yapıştırmadaki veri bilgisi hata düzelene kadar silinmeyecektir","title":"Word'den Yapıştır","toolbar":"Word'den Yapıştır"},"maximize":{"maximize":"Büyült","minimize":"Küçült"},"magicline":{"title":"Parağrafı buraya ekle"},"list":{"bulletedlist":"Simgeli Liste","numberedlist":"Numaralı Liste"},"language":{"button":"Dili seç","remove":"Dili kaldır"},"justify":{"block":"İki Kenara Yaslanmış","center":"Ortalanmış","left":"Sola Dayalı","right":"Sağa Dayalı"},"indent":{"indent":"Sekme Arttır","outdent":"Sekme Azalt"},"image2":{"alt":"Alternatif Yazı","btnUpload":"Sunucuya Yolla","captioned":"Başlıklı resim","captionPlaceholder":"Başlık","infoTab":"Resim Bilgisi","lockRatio":"Oranı Kilitle","menu":"Resim Özellikleri","pathName":"Resim","pathNameCaption":"başlık","resetSize":"Boyutu Başa Döndür","resizer":"Boyutlandırmak için, tıklayın ve sürükleyin","title":"Resim Özellikleri","uploadTab":"Karşıya Yükle","urlMissing":"Resmin URL kaynağı bulunamadı."},"horizontalrule":{"toolbar":"Yatay Satır Ekle"},"format":{"label":"Biçim","panelTitle":"Biçim","tag_address":"Adres","tag_div":"Paragraf (DIV)","tag_h1":"Başlık 1","tag_h2":"Başlık 2","tag_h3":"Başlık 3","tag_h4":"Başlık 4","tag_h5":"Başlık 5","tag_h6":"Başlık 6","tag_p":"Normal","tag_pre":"Biçimli"},"elementspath":{"eleLabel":"Elementlerin yolu","eleTitle":"%1 elementi"},"contextmenu":{"options":"İçerik Menüsü Seçenekleri"},"clipboard":{"copy":"Kopyala","copyError":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl/Cmd+C) tuşlarını kullanın.","cut":"Kes","cutError":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl/Cmd+X) tuşlarını kullanın.","paste":"Yapıştır","pasteArea":"Yapıştırma Alanı","pasteMsg":"Lütfen aşağıdaki kutunun içine yapıştırın. (<STRONG>Ctrl/Cmd+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.","securityMsg":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin direkt olarak panoya erişimine izin vermiyor. Bu pencere içine tekrar yapıştırmalısınız..","title":"Yapıştır"},"button":{"selectedLabel":"%1 (Seçilmiş)"},"blockquote":{"toolbar":"Blok Oluştur"},"basicstyles":{"bold":"Kalın","italic":"İtalik","strike":"Üstü Çizgili","subscript":"Alt Simge","superscript":"Üst Simge","underline":"Altı Çizgili"},"about":{"copy":"Copyright &copy; $1. Tüm hakları saklıdır.","dlgTitle":"CKEditor Hakkında","help":"Yardım için $1 kontrol edin.","moreInfo":"Lisanslama hakkında daha fazla bilgi almak için lütfen sitemizi ziyaret edin:","title":"CKEditor Hakkında","userGuide":"CKEditor Kullanıcı Kılavuzu"},"editor":"Zengin Metin Editörü","editorPanel":"Zengin Metin Editör Paneli","common":{"editorHelp":"Yardım için ALT 0 tuşlarına basın","browseServer":"Sunucuya Gözat","url":"URL","protocol":"Protokol","upload":"Karşıya Yükle","uploadSubmit":"Sunucuya Gönder","image":"Resim","flash":"Flash","form":"Form","checkbox":"Onay Kutusu","radio":"Seçenek Düğmesi","textField":"Metin Kutusu","textarea":"Metin Alanı","hiddenField":"Gizli Alan","button":"Düğme","select":"Seçme Alanı","imageButton":"Resim Düğmesi","notSet":"<tanımlanmamış>","id":"Kimlik","name":"İsim","langDir":"Dil Yönü","langDirLtr":"Soldan Sağa (LTR)","langDirRtl":"Sağdan Sola (RTL)","langCode":"Dil Kodlaması","longDescr":"Uzun Tanımlı URL","cssClass":"Biçem Sayfası Sınıfları","advisoryTitle":"Öneri Başlığı","cssStyle":"Biçem","ok":"Tamam","cancel":"İptal","close":"Kapat","preview":"Önizleme","resize":"Yeniden Boyutlandır","generalTab":"Genel","advancedTab":"Gelişmiş","validateNumberFailed":"Bu değer bir sayı değildir.","confirmNewPage":"Bu içerikle ilgili kaydedilmemiş tüm bilgiler kaybolacaktır. Yeni bir sayfa yüklemek istediğinizden emin misiniz?","confirmCancel":"Bazı seçenekleri değiştirdiniz. İletişim penceresini kapatmak istediğinizden emin misiniz?","options":"Seçenekler","target":"Hedef","targetNew":"Yeni Pencere (_blank)","targetTop":"En Üstteki Pencere (_top)","targetSelf":"Aynı Pencere (_self)","targetParent":"Üst Pencere (_parent)","langDirLTR":"Soldan Sağa (LTR)","langDirRTL":"Sağdan Sola (RTL)","styles":"Biçem","cssClasses":"Biçem Sayfası Sınıfları","width":"Genişlik","height":"Yükseklik","align":"Hizalama","alignLeft":"Sol","alignRight":"Sağ","alignCenter":"Ortala","alignJustify":"İki Kenara Yaslanmış","alignTop":"Üst","alignMiddle":"Orta","alignBottom":"Alt","alignNone":"Hiçbiri","invalidValue":"Geçersiz değer.","invalidHeight":"Yükseklik değeri bir sayı olmalıdır.","invalidWidth":"Genişlik değeri bir sayı olmalıdır.","invalidCssLength":"\"%1\" alanı için verilen değer, geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt, veya pc) içeren veya içermeyen pozitif bir sayı olmalıdır.","invalidHtmlLength":"Belirttiğiniz sayı \"%1\" alanı için pozitif bir sayı HTML birim değeri olmalıdır (px veya %).","invalidInlineStyle":"Satıriçi biçem için verilen değer, \"isim : değer\" biçiminde birbirinden noktalı virgüllerle ayrılan bir veya daha fazla değişkenler grubundan oluşmalıdır.","cssLengthTooltip":"Piksel türünde bir sayı veya geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt veya pc) içeren bir sayı girin.","unavailable":"%1<span class=\"cke_accessibility\">, kullanılamaz</span>"}};
\ No newline at end of file
+CKEDITOR.lang['tr']={"widget":{"move":"Taşımak için, tıklayın ve sürükleyin"},"undo":{"redo":"Tekrarla","undo":"Geri Al"},"toolbar":{"toolbarCollapse":"Araç çubuklarını topla","toolbarExpand":"Araç çubuklarını aç","toolbarGroups":{"document":"Belge","clipboard":"Pano/Geri al","editing":"Düzenleme","forms":"Formlar","basicstyles":"Temel Stiller","paragraph":"Paragraf","links":"Bağlantılar","insert":"Ekle","styles":"Stiller","colors":"Renkler","tools":"Araçlar"},"toolbars":"Araç çubukları Editörü"},"table":{"border":"Kenar Kalınlığı","caption":"Başlık","cell":{"menu":"Hücre","insertBefore":"Hücre Ekle - Önce","insertAfter":"Hücre Ekle - Sonra","deleteCell":"Hücre Sil","merge":"Hücreleri Birleştir","mergeRight":"Birleştir - Sağdaki İle ","mergeDown":"Birleştir - Aşağıdaki İle ","splitHorizontal":"Hücreyi Yatay Böl","splitVertical":"Hücreyi Dikey Böl","title":"Hücre Özellikleri","cellType":"Hücre Tipi","rowSpan":"Satırlar Mesafesi (Span)","colSpan":"Sütünlar Mesafesi (Span)","wordWrap":"Kelime Kaydırma","hAlign":"Düşey Hizalama","vAlign":"Yataş Hizalama","alignBaseline":"Tabana","bgColor":"Arkaplan Rengi","borderColor":"Çerçeve Rengi","data":"Veri","header":"Başlık","yes":"Evet","no":"Hayır","invalidWidth":"Hücre genişliği sayı olmalıdır.","invalidHeight":"Hücre yüksekliği sayı olmalıdır.","invalidRowSpan":"Satırların mesafesi tam sayı olmalıdır.","invalidColSpan":"Sütünların mesafesi tam sayı olmalıdır.","chooseColor":"Seçiniz"},"cellPad":"Izgara yazı arası","cellSpace":"Izgara kalınlığı","column":{"menu":"Sütun","insertBefore":"Kolon Ekle - Önce","insertAfter":"Kolon Ekle - Sonra","deleteColumn":"Sütun Sil"},"columns":"Sütunlar","deleteTable":"Tabloyu Sil","headers":"Başlıklar","headersBoth":"Her İkisi","headersColumn":"İlk Sütun","headersNone":"Yok","headersRow":"İlk Satır","invalidBorder":"Çerceve büyüklüklüğü sayı olmalıdır.","invalidCellPadding":"Hücre aralığı (padding) sayı olmalıdır.","invalidCellSpacing":"Hücre boşluğu (spacing) sayı olmalıdır.","invalidCols":"Sütün sayısı 0 sayısından büyük olmalıdır.","invalidHeight":"Tablo yüksekliği sayı olmalıdır.","invalidRows":"Satır sayısı 0 sayısından büyük olmalıdır.","invalidWidth":"Tablo genişliği sayı olmalıdır.","menu":"Tablo Özellikleri","row":{"menu":"Satır","insertBefore":"Satır Ekle - Önce","insertAfter":"Satır Ekle - Sonra","deleteRow":"Satır Sil"},"rows":"Satırlar","summary":"Özet","title":"Tablo Özellikleri","toolbar":"Tablo","widthPc":"yüzde","widthPx":"piksel","widthUnit":"genişlik birimi"},"stylescombo":{"label":"Biçem","panelTitle":"Stilleri Düzenliyor","panelTitle1":"Blok Stilleri","panelTitle2":"Inline Stilleri","panelTitle3":"Nesne Stilleri"},"specialchar":{"options":"Özel Karakter Seçenekleri","title":"Özel Karakter Seç","toolbar":"Özel Karakter Ekle"},"sourcedialog":{"toolbar":"Kaynak","title":"Kaynak"},"sourcearea":{"toolbar":"Kaynak"},"showblocks":{"toolbar":"Blokları Göster"},"removeformat":{"toolbar":"Biçimi Kaldır"},"pastetext":{"button":"Düz Metin Olarak Yapıştır","title":"Düz Metin Olarak Yapıştır"},"pastefromword":{"confirmCleanup":"Yapıştırmaya çalıştığınız metin Word'den kopyalanmıştır. Yapıştırmadan önce silmek istermisiniz?","error":"Yapıştırmadaki veri bilgisi hata düzelene kadar silinmeyecektir","title":"Word'den Yapıştır","toolbar":"Word'den Yapıştır"},"maximize":{"maximize":"Büyült","minimize":"Küçült"},"magicline":{"title":"Parağrafı buraya ekle"},"list":{"bulletedlist":"Simgeli Liste","numberedlist":"Numaralı Liste"},"language":{"button":"Dili seç","remove":"Dili kaldır"},"justify":{"block":"İki Kenara Yaslanmış","center":"Ortalanmış","left":"Sola Dayalı","right":"Sağa Dayalı"},"indent":{"indent":"Sekme Arttır","outdent":"Sekme Azalt"},"image2":{"alt":"Alternatif Yazı","btnUpload":"Sunucuya Yolla","captioned":"Başlıklı resim","captionPlaceholder":"Başlık","infoTab":"Resim Bilgisi","lockRatio":"Oranı Kilitle","menu":"Resim Özellikleri","pathName":"Resim","pathNameCaption":"başlık","resetSize":"Boyutu Başa Döndür","resizer":"Boyutlandırmak için, tıklayın ve sürükleyin","title":"Resim Özellikleri","uploadTab":"Karşıya Yükle","urlMissing":"Resmin URL kaynağı bulunamadı."},"horizontalrule":{"toolbar":"Yatay Satır Ekle"},"format":{"label":"Biçim","panelTitle":"Biçim","tag_address":"Adres","tag_div":"Paragraf (DIV)","tag_h1":"Başlık 1","tag_h2":"Başlık 2","tag_h3":"Başlık 3","tag_h4":"Başlık 4","tag_h5":"Başlık 5","tag_h6":"Başlık 6","tag_p":"Normal","tag_pre":"Biçimli"},"elementspath":{"eleLabel":"Elementlerin yolu","eleTitle":"%1 elementi"},"contextmenu":{"options":"İçerik Menüsü Seçenekleri"},"clipboard":{"copy":"Kopyala","copyError":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl/Cmd+C) tuşlarını kullanın.","cut":"Kes","cutError":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl/Cmd+X) tuşlarını kullanın.","paste":"Yapıştır","pasteArea":"Yapıştırma Alanı","pasteMsg":"Lütfen aşağıdaki kutunun içine yapıştırın. (<STRONG>Ctrl/Cmd+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.","securityMsg":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin direkt olarak panoya erişimine izin vermiyor. Bu pencere içine tekrar yapıştırmalısınız..","title":"Yapıştır"},"button":{"selectedLabel":"%1 (Seçilmiş)"},"blockquote":{"toolbar":"Blok Oluştur"},"basicstyles":{"bold":"Kalın","italic":"İtalik","strike":"Üstü Çizgili","subscript":"Alt Simge","superscript":"Üst Simge","underline":"Altı Çizgili"},"about":{"copy":"Copyright &copy; $1. Tüm hakları saklıdır.","dlgTitle":"CKEditor Hakkında","help":"Yardım için $1 kontrol edin.","moreInfo":"Lisanslama hakkında daha fazla bilgi almak için lütfen sitemizi ziyaret edin:","title":"CKEditor Hakkında","userGuide":"CKEditor Kullanıcı Kılavuzu"},"editor":"Zengin Metin Editörü","editorPanel":"Zengin Metin Editör Paneli","common":{"editorHelp":"Yardım için ALT 0 tuşlarına basın","browseServer":"Sunucuya Gözat","url":"URL","protocol":"Protokol","upload":"Karşıya Yükle","uploadSubmit":"Sunucuya Gönder","image":"Resim","flash":"Flash","form":"Form","checkbox":"Onay Kutusu","radio":"Seçenek Düğmesi","textField":"Metin Kutusu","textarea":"Metin Alanı","hiddenField":"Gizli Alan","button":"Düğme","select":"Seçme Alanı","imageButton":"Resim Düğmesi","notSet":"<tanımlanmamış>","id":"Kimlik","name":"İsim","langDir":"Dil Yönü","langDirLtr":"Soldan Sağa (LTR)","langDirRtl":"Sağdan Sola (RTL)","langCode":"Dil Kodlaması","longDescr":"Uzun Tanımlı URL","cssClass":"Biçem Sayfası Sınıfları","advisoryTitle":"Öneri Başlığı","cssStyle":"Biçem","ok":"Tamam","cancel":"İptal","close":"Kapat","preview":"Önizleme","resize":"Yeniden Boyutlandır","generalTab":"Genel","advancedTab":"Gelişmiş","validateNumberFailed":"Bu değer bir sayı değildir.","confirmNewPage":"Bu içerikle ilgili kaydedilmemiş tüm bilgiler kaybolacaktır. Yeni bir sayfa yüklemek istediğinizden emin misiniz?","confirmCancel":"Bazı seçenekleri değiştirdiniz. İletişim penceresini kapatmak istediğinizden emin misiniz?","options":"Seçenekler","target":"Hedef","targetNew":"Yeni Pencere (_blank)","targetTop":"En Üstteki Pencere (_top)","targetSelf":"Aynı Pencere (_self)","targetParent":"Üst Pencere (_parent)","langDirLTR":"Soldan Sağa (LTR)","langDirRTL":"Sağdan Sola (RTL)","styles":"Biçem","cssClasses":"Biçem Sayfası Sınıfları","width":"Genişlik","height":"Yükseklik","align":"Hizalama","alignLeft":"Sol","alignRight":"Sağ","alignCenter":"Ortala","alignJustify":"İki Kenara Yaslanmış","alignTop":"Üst","alignMiddle":"Orta","alignBottom":"Alt","alignNone":"Hiçbiri","invalidValue":"Geçersiz değer.","invalidHeight":"Yükseklik değeri bir sayı olmalıdır.","invalidWidth":"Genişlik değeri bir sayı olmalıdır.","invalidCssLength":"\"%1\" alanı için verilen değer, geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt, veya pc) içeren veya içermeyen pozitif bir sayı olmalıdır.","invalidHtmlLength":"Belirttiğiniz sayı \"%1\" alanı için pozitif bir sayı HTML birim değeri olmalıdır (px veya %).","invalidInlineStyle":"Satıriçi biçem için verilen değer, \"isim : değer\" biçiminde birbirinden noktalı virgüllerle ayrılan bir veya daha fazla değişkenler grubundan oluşmalıdır.","cssLengthTooltip":"Piksel türünde bir sayı veya geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt veya pc) içeren bir sayı girin.","unavailable":"%1<span class=\"cke_accessibility\">, kullanılamaz</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/tt.js b/core/assets/vendor/ckeditor/lang/tt.js
index 311b069..4426834 100644
--- a/core/assets/vendor/ckeditor/lang/tt.js
+++ b/core/assets/vendor/ckeditor/lang/tt.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['tt']={"widget":{"move":"Күчереп куер өчен басып шудырыгыз","label":"%1 widget"},"undo":{"redo":"Кабатлау","undo":"Кайтару"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Документ","clipboard":"Алмашу буферы/Кайтару","editing":"Төзәтү","forms":"Формалар","basicstyles":"Төп стильләр","paragraph":"Параграф","links":"Сылталамалар","insert":"Өстәү","styles":"Стильләр","colors":"Төсләр","tools":"Кораллар"},"toolbars":"Editor toolbars"},"table":{"border":"Чик калынлыгы","caption":"Исем","cell":{"menu":"Күзәнәк","insertBefore":"Алдына күзәнәк өстәү","insertAfter":"Артына күзәнәк өстәү","deleteCell":"Күзәнәкләрне бетерү","merge":"Күзәнәкләрне берләштерү","mergeRight":"Уң яктагы белән берләштерү","mergeDown":"Астагы белән берләштерү","splitHorizontal":"Күзәнәкне юлларга бүлү","splitVertical":"Күзәнәкне баганаларга бүлү","title":"Күзәнәк үзлекләре","cellType":"Күзәнәк төре","rowSpan":"Юлларны берләштерү","colSpan":"Баганаларны берләштерү","wordWrap":"Текстны күчерү","hAlign":"Ятма тигезләү","vAlign":"Асма тигезләү","alignBaseline":"Таяныч сызыгы","bgColor":"Фон төсе","borderColor":"Чик төсе","data":"Мәгълүмат","header":"Башлык","yes":"Әйе","no":"Юк","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Сайлау"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Багана","insertBefore":"Сулдан баганалар өстәү","insertAfter":"Уңнан баганалар өстәү","deleteColumn":"Баганаларны бетерү"},"columns":"Баганалар","deleteTable":"Таблицаны бетерү","headers":"Башлыклар","headersBoth":"Икесе дә","headersColumn":"Беренче багана","headersNone":"Һичбер","headersRow":"Беренче юл","invalidBorder":"Чик киңлеге сан булырга тиеш.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Күзәнәкләр аралары уңай сан булырга тиеш.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Таблица биеклеге сан булырга тиеш.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Таблица киңлеге сан булырга тиеш","menu":"Таблица үзлекләре","row":{"menu":"Юл","insertBefore":"Өстән юллар өстәү","insertAfter":"Астан юллар өстәү","deleteRow":"Юлларны бетерү"},"rows":"Юллар","summary":"Йомгаклау","title":"Таблица үзлекләре","toolbar":"Таблица","widthPc":"процент","widthPx":"Нокталар","widthUnit":"киңлек берәмлеге"},"stylescombo":{"label":"Стильләр","panelTitle":"Форматлау стильләре","panelTitle1":"Блоклар стильләре","panelTitle2":"Эчке стильләр","panelTitle3":"Объектлар стильләре"},"specialchar":{"options":"Махсус символ үзлекләре","title":"Махсус символ сайлау","toolbar":"Махсус символ өстәү"},"sourcedialog":{"toolbar":"Чыганак","title":"Чыганак"},"sourcearea":{"toolbar":"Чыганак"},"showblocks":{"toolbar":"Блокларны күрсәтү"},"removeformat":{"toolbar":"Форматлауны бетерү"},"pastetext":{"button":"Форматлаусыз текст өстәү","title":"Форматлаусыз текст өстәү"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Word'тан өстәү","toolbar":"Word'тан өстәү"},"maximize":{"maximize":"Зурайту","minimize":"Кечерәйтү"},"magicline":{"title":"Бирегә параграф өстәү"},"list":{"bulletedlist":"Маркерлы тезмә өстәү/бетерү","numberedlist":" Номерланган тезмә өстәү/бетерү"},"language":{"button":"Тел сайлау","remove":"Телне бетерү"},"justify":{"block":"Киңлеккә карап тигезләү","center":"Үзәккә тигезләү","left":"Сул як кырыйдан тигезләү","right":"Уң як кырыйдан тигезләү"},"indent":{"indent":"Отступны арттыру","outdent":"Отступны кечерәйтү"},"image2":{"alt":"Альтернатив текст","btnUpload":"Серверга җибәрү","captioned":"Исеме куелган рәсем","captionPlaceholder":"Исем","infoTab":"Рәсем тасвирламасы","lockRatio":"Lock Ratio","menu":"Рәсем үзлекләре","pathName":"рәсем","pathNameCaption":"исем","resetSize":"Баштагы зурлык","resizer":"Күчереп куер өчен басып шудырыгыз","title":"Рәсем үзлекләре","uploadTab":"Йөкләү","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Ятма сызык өстәү"},"format":{"label":"Форматлау","panelTitle":"Параграф форматлавы","tag_address":"Адрес","tag_div":"Гади (DIV)","tag_h1":"Башлам 1","tag_h2":"Башлам 2","tag_h3":"Башлам 3","tag_h4":"Башлам 4","tag_h5":"Башлам 5","tag_h6":"Башлам 6","tag_p":"Гади","tag_pre":"Форматлаулы"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 элемент"},"contextmenu":{"options":"Контекст меню үзлекләре"},"clipboard":{"copy":"Күчермәләү","copyError":"Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.","cut":"Кисеп алу","cutError":"Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.","paste":"Өстәү","pasteArea":"Өстәү мәйданы","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Өстәү"},"button":{"selectedLabel":"%1 (Сайланган)"},"blockquote":{"toolbar":"Өземтә блогы"},"basicstyles":{"bold":"Калын","italic":"Курсив","strike":"Сызылган","subscript":"Аскы индекс","superscript":"Өске индекс","underline":"Астына сызылган"},"about":{"copy":"Copyright &copy; $1. Бар хокуклар сакланган","dlgTitle":"CKEditor турында","help":"Ярдәм өчен $1 тикшереп карагыз.","moreInfo":"For licensing information please visit our web site:","title":"CKEditor турында","userGuide":"CKEditor кулланмасы"},"editor":"Форматлаулы текст өлкәсе","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Ярдәм өчен ALT 0 басыгыз","browseServer":"Сервер карап чыгу","url":"Сылталама","protocol":"Протокол","upload":"Йөкләү","uploadSubmit":"Серверга җибәрү","image":"Рәсем","flash":"Флеш","form":"Форма","checkbox":"Чекбокс","radio":"Радио төймә","textField":"Текст кыры","textarea":"Текст мәйданы","hiddenField":"Яшерен кыр","button":"Төймə","select":"Сайлау кыры","imageButton":"Рәсемле төймə","notSet":"<билгеләнмәгән>","id":"Id","name":"Исем","langDir":"Язылыш юнəлеше","langDirLtr":"Сулдан уңга язылыш (LTR)","langDirRtl":"Уңнан сулга язылыш (RTL)","langCode":"Тел коды","longDescr":"Җентекле тасвирламага сылталама","cssClass":"Стильләр класслары","advisoryTitle":"Киңәш исем","cssStyle":"Стиль","ok":"Тәмам","cancel":"Баш тарту","close":"Чыгу","preview":"Карап алу","resize":"Зурлыкны үзгәртү","generalTab":"Төп","advancedTab":"Киңәйтелгән көйләүләр","validateNumberFailed":"Әлеге кыйммәт сан түгел.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Үзлекләр","target":"Максат","targetNew":"Яңа тәрәзә (_blank)","targetTop":"Өске тәрәзә (_top)","targetSelf":"Шул үк тәрәзә (_self)","targetParent":"Ана тәрәзә (_parent)","langDirLTR":"Сулдан уңга язылыш (LTR)","langDirRTL":"Уңнан сулга язылыш (RTL)","styles":"Стиль","cssClasses":"Стильләр класслары","width":"Киңлек","height":"Биеклек","align":"Тигезләү","alignLeft":"Сул якка","alignRight":"Уң якка","alignCenter":"Үзәккә","alignJustify":"Киңлеккә карап тигезләү","alignTop":"Өскә","alignMiddle":"Уртага","alignBottom":"Аска","alignNone":"Һичбер","invalidValue":"Дөрес булмаган кыйммәт.","invalidHeight":"Биеклек сан булырга тиеш.","invalidWidth":"Киңлек сан булырга тиеш.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
+CKEDITOR.lang['tt']={"widget":{"move":"Күчереп куер өчен басып шудырыгыз"},"undo":{"redo":"Кабатлау","undo":"Кайтару"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Документ","clipboard":"Алмашу буферы/Кайтару","editing":"Төзәтү","forms":"Формалар","basicstyles":"Төп стильләр","paragraph":"Параграф","links":"Сылталамалар","insert":"Өстәү","styles":"Стильләр","colors":"Төсләр","tools":"Кораллар"},"toolbars":"Editor toolbars"},"table":{"border":"Чик калынлыгы","caption":"Исем","cell":{"menu":"Күзәнәк","insertBefore":"Алдына күзәнәк өстәү","insertAfter":"Артына күзәнәк өстәү","deleteCell":"Күзәнәкләрне бетерү","merge":"Күзәнәкләрне берләштерү","mergeRight":"Уң яктагы белән берләштерү","mergeDown":"Астагы белән берләштерү","splitHorizontal":"Күзәнәкне юлларга бүлү","splitVertical":"Күзәнәкне баганаларга бүлү","title":"Күзәнәк үзлекләре","cellType":"Күзәнәк төре","rowSpan":"Юлларны берләштерү","colSpan":"Баганаларны берләштерү","wordWrap":"Текстны күчерү","hAlign":"Ятма тигезләү","vAlign":"Асма тигезләү","alignBaseline":"Таяныч сызыгы","bgColor":"Фон төсе","borderColor":"Чик төсе","data":"Мәгълүмат","header":"Башлык","yes":"Әйе","no":"Юк","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Сайлау"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Багана","insertBefore":"Сулдан баганалар өстәү","insertAfter":"Уңнан баганалар өстәү","deleteColumn":"Баганаларны бетерү"},"columns":"Баганалар","deleteTable":"Таблицаны бетерү","headers":"Башлыклар","headersBoth":"Икесе дә","headersColumn":"Беренче багана","headersNone":"Һичбер","headersRow":"Беренче юл","invalidBorder":"Чик киңлеге сан булырга тиеш.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Күзәнәкләр аралары уңай сан булырга тиеш.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Таблица биеклеге сан булырга тиеш.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Таблица киңлеге сан булырга тиеш","menu":"Таблица үзлекләре","row":{"menu":"Юл","insertBefore":"Өстән юллар өстәү","insertAfter":"Астан юллар өстәү","deleteRow":"Юлларны бетерү"},"rows":"Юллар","summary":"Йомгаклау","title":"Таблица үзлекләре","toolbar":"Таблица","widthPc":"процент","widthPx":"Нокталар","widthUnit":"киңлек берәмлеге"},"stylescombo":{"label":"Стильләр","panelTitle":"Форматлау стильләре","panelTitle1":"Блоклар стильләре","panelTitle2":"Эчке стильләр","panelTitle3":"Объектлар стильләре"},"specialchar":{"options":"Махсус символ үзлекләре","title":"Махсус символ сайлау","toolbar":"Махсус символ өстәү"},"sourcedialog":{"toolbar":"Чыганак","title":"Чыганак"},"sourcearea":{"toolbar":"Чыганак"},"showblocks":{"toolbar":"Блокларны күрсәтү"},"removeformat":{"toolbar":"Форматлауны бетерү"},"pastetext":{"button":"Форматлаусыз текст өстәү","title":"Форматлаусыз текст өстәү"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Word'тан өстәү","toolbar":"Word'тан өстәү"},"maximize":{"maximize":"Зурайту","minimize":"Кечерәйтү"},"magicline":{"title":"Бирегә параграф өстәү"},"list":{"bulletedlist":"Маркерлы тезмә өстәү/бетерү","numberedlist":" Номерланган тезмә өстәү/бетерү"},"language":{"button":"Тел сайлау","remove":"Телне бетерү"},"justify":{"block":"Киңлеккә карап тигезләү","center":"Үзәккә тигезләү","left":"Сул як кырыйдан тигезләү","right":"Уң як кырыйдан тигезләү"},"indent":{"indent":"Отступны арттыру","outdent":"Отступны кечерәйтү"},"image2":{"alt":"Альтернатив текст","btnUpload":"Серверга җибәрү","captioned":"Исеме куелган рәсем","captionPlaceholder":"Исем","infoTab":"Рәсем тасвирламасы","lockRatio":"Lock Ratio","menu":"Рәсем үзлекләре","pathName":"рәсем","pathNameCaption":"исем","resetSize":"Баштагы зурлык","resizer":"Күчереп куер өчен басып шудырыгыз","title":"Рәсем үзлекләре","uploadTab":"Йөкләү","urlMissing":"Image source URL is missing."},"horizontalrule":{"toolbar":"Ятма сызык өстәү"},"format":{"label":"Форматлау","panelTitle":"Параграф форматлавы","tag_address":"Адрес","tag_div":"Гади (DIV)","tag_h1":"Башлам 1","tag_h2":"Башлам 2","tag_h3":"Башлам 3","tag_h4":"Башлам 4","tag_h5":"Башлам 5","tag_h6":"Башлам 6","tag_p":"Гади","tag_pre":"Форматлаулы"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 элемент"},"contextmenu":{"options":"Контекст меню үзлекләре"},"clipboard":{"copy":"Күчермәләү","copyError":"Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.","cut":"Кисеп алу","cutError":"Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.","paste":"Өстәү","pasteArea":"Өстәү мәйданы","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Өстәү"},"button":{"selectedLabel":"%1 (Сайланган)"},"blockquote":{"toolbar":"Өземтә блогы"},"basicstyles":{"bold":"Калын","italic":"Курсив","strike":"Сызылган","subscript":"Аскы индекс","superscript":"Өске индекс","underline":"Астына сызылган"},"about":{"copy":"Copyright &copy; $1. Бар хокуклар сакланган","dlgTitle":"CKEditor турында","help":"Ярдәм өчен $1 тикшереп карагыз.","moreInfo":"For licensing information please visit our web site:","title":"CKEditor турында","userGuide":"CKEditor кулланмасы"},"editor":"Форматлаулы текст өлкәсе","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Ярдәм өчен ALT 0 басыгыз","browseServer":"Сервер карап чыгу","url":"Сылталама","protocol":"Протокол","upload":"Йөкләү","uploadSubmit":"Серверга җибәрү","image":"Рәсем","flash":"Флеш","form":"Форма","checkbox":"Чекбокс","radio":"Радио төймә","textField":"Текст кыры","textarea":"Текст мәйданы","hiddenField":"Яшерен кыр","button":"Төймə","select":"Сайлау кыры","imageButton":"Рәсемле төймə","notSet":"<билгеләнмәгән>","id":"Id","name":"Исем","langDir":"Язылыш юнəлеше","langDirLtr":"Сулдан уңга язылыш (LTR)","langDirRtl":"Уңнан сулга язылыш (RTL)","langCode":"Тел коды","longDescr":"Җентекле тасвирламага сылталама","cssClass":"Стильләр класслары","advisoryTitle":"Киңәш исем","cssStyle":"Стиль","ok":"Тәмам","cancel":"Баш тарту","close":"Чыгу","preview":"Карап алу","resize":"Зурлыкны үзгәртү","generalTab":"Төп","advancedTab":"Киңәйтелгән көйләүләр","validateNumberFailed":"Әлеге кыйммәт сан түгел.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Үзлекләр","target":"Максат","targetNew":"Яңа тәрәзә (_blank)","targetTop":"Өске тәрәзә (_top)","targetSelf":"Шул үк тәрәзә (_self)","targetParent":"Ана тәрәзә (_parent)","langDirLTR":"Сулдан уңга язылыш (LTR)","langDirRTL":"Уңнан сулга язылыш (RTL)","styles":"Стиль","cssClasses":"Стильләр класслары","width":"Киңлек","height":"Биеклек","align":"Тигезләү","alignLeft":"Сул якка","alignRight":"Уң якка","alignCenter":"Үзәккә","alignJustify":"Киңлеккә карап тигезләү","alignTop":"Өскә","alignMiddle":"Уртага","alignBottom":"Аска","alignNone":"Һичбер","invalidValue":"Дөрес булмаган кыйммәт.","invalidHeight":"Биеклек сан булырга тиеш.","invalidWidth":"Киңлек сан булырга тиеш.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/ug.js b/core/assets/vendor/ckeditor/lang/ug.js
index 83d35de..3e726d3 100644
--- a/core/assets/vendor/ckeditor/lang/ug.js
+++ b/core/assets/vendor/ckeditor/lang/ug.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['ug']={"widget":{"move":"يۆتكەشتە چېكىپ سۆرەڭ","label":"%1 widget"},"undo":{"redo":"قايتىلا ","undo":"يېنىۋال"},"toolbar":{"toolbarCollapse":"قورال بالداقنى قاتلا","toolbarExpand":"قورال بالداقنى ياي","toolbarGroups":{"document":"پۈتۈك","clipboard":"چاپلاش تاختىسى/يېنىۋال","editing":"تەھرىر","forms":"جەدۋەل","basicstyles":"ئاساسىي ئۇسلۇب","paragraph":"ئابزاس","links":"ئۇلانما","insert":"قىستۇر","styles":"ئۇسلۇب","colors":"رەڭ","tools":"قورال"},"toolbars":"قورال بالداق"},"table":{"border":"گىرۋەك","caption":"ماۋزۇ","cell":{"menu":"كاتەكچە","insertBefore":"سولغا كاتەكچە قىستۇر","insertAfter":"ئوڭغا كاتەكچە قىستۇر","deleteCell":"كەتەكچە ئۆچۈر","merge":"كاتەكچە بىرلەشتۈر","mergeRight":"كاتەكچىنى ئوڭغا بىرلەشتۈر","mergeDown":"كاتەكچىنى ئاستىغا بىرلەشتۈر","splitHorizontal":"كاتەكچىنى توغرىسىغا بىرلەشتۈر","splitVertical":"كاتەكچىنى بويىغا بىرلەشتۈر","title":"كاتەكچە خاسلىقى","cellType":"كاتەكچە تىپى","rowSpan":"بويىغا چات ئارىسى قۇر سانى","colSpan":"توغرىسىغا چات ئارىسى ئىستون سانى","wordWrap":"ئۆزلۈكىدىن قۇر قاتلا","hAlign":"توغرىسىغا توغرىلا","vAlign":"بويىغا توغرىلا","alignBaseline":"ئاساسىي سىزىق","bgColor":"تەگلىك رەڭگى","borderColor":"گىرۋەك رەڭگى","data":"سانلىق مەلۇمات","header":"جەدۋەل باشى","yes":"ھەئە","no":"ياق","invalidWidth":"كاتەكچە كەڭلىكى چوقۇم سان بولىدۇ","invalidHeight":"كاتەكچە ئېگىزلىكى چوقۇم سان بولىدۇ","invalidRowSpan":"قۇر چات ئارىسى چوقۇم پۈتۈن سان بولىدۇ ","invalidColSpan":"ئىستون چات ئارىسى چوقۇم پۈتۈن سان بولىدۇ","chooseColor":"تاللاڭ"},"cellPad":"يان ئارىلىق","cellSpace":"ئارىلىق","column":{"menu":"ئىستون","insertBefore":"سولغا ئىستون قىستۇر","insertAfter":"ئوڭغا ئىستون قىستۇر","deleteColumn":"ئىستون ئۆچۈر"},"columns":"ئىستون سانى","deleteTable":"جەدۋەل ئۆچۈر","headers":"ماۋزۇ كاتەكچە","headersBoth":"بىرىنچى ئىستون ۋە بىرىنچى قۇر","headersColumn":"بىرىنچى ئىستون","headersNone":"يوق","headersRow":"بىرىنچى قۇر","invalidBorder":"گىرۋەك توملۇقى چوقۇم سان بولىدۇ","invalidCellPadding":"كاتەكچىگە چوقۇم سان تولدۇرۇلىدۇ","invalidCellSpacing":"كاتەكچە ئارىلىقى چوقۇم سان بولىدۇ","invalidCols":"بەلگىلەنگەن قۇر سانى چوقۇم نۆلدىن چوڭ بولىدۇ","invalidHeight":"جەدۋەل ئېگىزلىكى چوقۇم سان بولىدۇ","invalidRows":"بەلگىلەنگەن ئىستون سانى چوقۇم نۆلدىن چوڭ بولىدۇ","invalidWidth":"جەدۋەل كەڭلىكى چوقۇم سان بولىدۇ","menu":"جەدۋەل خاسلىقى","row":{"menu":"قۇر","insertBefore":"ئۈستىگە قۇر قىستۇر","insertAfter":"ئاستىغا قۇر قىستۇر","deleteRow":"قۇر ئۆچۈر"},"rows":"قۇر سانى","summary":"ئۈزۈندە","title":"جەدۋەل خاسلىقى","toolbar":"جەدۋەل","widthPc":"پىرسەنت","widthPx":"پىكسېل","widthUnit":"كەڭلىك بىرلىكى"},"stylescombo":{"label":"ئۇسلۇب","panelTitle":"ئۇسلۇب","panelTitle1":"بۆلەك دەرىجىسىدىكى ئېلېمېنت ئۇسلۇبى","panelTitle2":"ئىچكى باغلانما ئېلېمېنت ئۇسلۇبى","panelTitle3":"نەڭ (Object) ئېلېمېنت ئۇسلۇبى"},"specialchar":{"options":"ئالاھىدە ھەرپ تاللانمىسى","title":"ئالاھىدە ھەرپ تاللاڭ","toolbar":"ئالاھىدە ھەرپ قىستۇر"},"sourcedialog":{"toolbar":"مەنبە","title":"مەنبە"},"sourcearea":{"toolbar":"مەنبە"},"showblocks":{"toolbar":"بۆلەكنى كۆرسەت"},"removeformat":{"toolbar":"پىچىمنى چىقىرىۋەت"},"pastetext":{"button":"پىچىمى يوق تېكىست سۈپىتىدە چاپلا","title":"پىچىمى يوق تېكىست سۈپىتىدە چاپلا"},"pastefromword":{"confirmCleanup":"سىز چاپلىماقچى بولغان مەزمۇن MS Word تىن كەلگەندەك قىلىدۇ، MS Word پىچىمىنى تازىلىۋەتكەندىن كېيىن ئاندىن چاپلامدۇ؟","error":"ئىچكى خاتالىق سەۋەبىدىن چاپلايدىغان سانلىق مەلۇماتنى تازىلىيالمايدۇ","title":"MS Word تىن چاپلا","toolbar":"MS Word تىن چاپلا"},"maximize":{"maximize":"چوڭايت","minimize":"كىچىكلەت"},"magicline":{"title":"بۇ جايغا ئابزاس قىستۇر"},"list":{"bulletedlist":"تۈر بەلگە تىزىمى","numberedlist":"تەرتىپ نومۇر تىزىمى"},"language":{"button":"تىل تەڭشەك","remove":"تىلنى چىقىرىۋەت"},"justify":{"block":"ئىككى تەرەپتىن توغرىلا","center":"ئوتتۇرىغا توغرىلا","left":"سولغا توغرىلا","right":"ئوڭغا توغرىلا"},"indent":{"indent":"تارايت","outdent":"كەڭەيت"},"image2":{"alt":"تېكىست ئالماشتۇر","btnUpload":"مۇلازىمېتىرغا يۈكلە","captioned":"ماۋزۇلۇق سۈرەت","captionPlaceholder":"Caption","infoTab":"سۈرەت","lockRatio":"نىسبەتنى قۇلۇپلا","menu":"سۈرەت خاسلىقى","pathName":"image","pathNameCaption":"caption","resetSize":"ئەسلى چوڭلۇق","resizer":"Click and drag to resize","title":"سۈرەت خاسلىقى","uploadTab":"يۈكلە","urlMissing":"سۈرەتنىڭ ئەسلى ھۆججەت ئادرېسى كەم"},"horizontalrule":{"toolbar":"توغرا سىزىق قىستۇر"},"format":{"label":"پىچىم","panelTitle":"پىچىم","tag_address":"ئادرېس","tag_div":"ئابزاس (DIV)","tag_h1":"ماۋزۇ 1","tag_h2":"ماۋزۇ 2","tag_h3":"ماۋزۇ 3","tag_h4":"ماۋزۇ 4","tag_h5":"ماۋزۇ 5","tag_h6":"ماۋزۇ 6","tag_p":"ئادەتتىكى","tag_pre":"تىزىلغان پىچىم"},"elementspath":{"eleLabel":"ئېلېمېنت يولى","eleTitle":"%1 ئېلېمېنت"},"contextmenu":{"options":"قىسقا يول تىزىملىك تاللانمىسى"},"clipboard":{"copy":"كۆچۈر","copyError":"تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كۆچۈر مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+C) ئارقىلىق تاماملاڭ","cut":"كەس","cutError":"تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كەس مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+X) ئارقىلىق تاماملاڭ","paste":"چاپلا","pasteArea":"چاپلاش دائىرىسى","pasteMsg":"ھەرپتاختا تېز كۇنۇپكا (<STRONG>Ctrl/Cmd+V</STRONG>) نى ئىشلىتىپ مەزمۇننى تۆۋەندىكى رامكىغا كۆچۈرۈڭ، ئاندىن <STRONG>جەزملە</STRONG>نى بېسىڭ","securityMsg":"توركۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى سەۋەبىدىن بۇ تەھرىرلىگۈچ چاپلاش تاختىسىدىكى مەزمۇننى بىۋاستە زىيارەت قىلالمايدۇ، بۇ كۆزنەكتە قايتا بىر قېتىم چاپلىشىڭىز كېرەك.","title":"چاپلا"},"button":{"selectedLabel":"%1 (تاللاندى)"},"blockquote":{"toolbar":"بۆلەك نەقىل"},"basicstyles":{"bold":"توم","italic":"يانتۇ","strike":"ئۆچۈرۈش سىزىقى","subscript":"تۆۋەن ئىندېكس","superscript":"يۇقىرى ئىندېكس","underline":"ئاستى سىزىق"},"about":{"copy":"Copyright &copy; $1. نەشر ھوقۇقىغا ئىگە","dlgTitle":"CKEditor ھەققىدە","help":"$1 نى زىيارەت قىلىپ ياردەمگە ئېرىشىڭ","moreInfo":"تور تۇرايىمىزنى زىيارەت قىلىپ كېلىشىمگە ئائىت تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىڭ","title":"CKEditor ھەققىدە","userGuide":"CKEditor ئىشلەتكۈچى قوللانمىسى"},"editor":"تەھرىرلىگۈچ","editorPanel":"مول تېكست تەھرىرلىگۈچ تاختىسى","common":{"editorHelp":"ALT+0 نى بېسىپ ياردەمنى كۆرۈڭ","browseServer":"كۆرسىتىش مۇلازىمېتىر","url":"ئەسلى ھۆججەت","protocol":"كېلىشىم","upload":"يۈكلە","uploadSubmit":"مۇلازىمېتىرغا يۈكلە","image":"سۈرەت","flash":"Flash","form":"جەدۋەل","checkbox":"كۆپ تاللاش رامكىسى","radio":"يەككە تاللاش توپچىسى","textField":"يەككە قۇر تېكىست","textarea":"كۆپ قۇر تېكىست","hiddenField":"يوشۇرۇن دائىرە","button":"توپچا","select":"تىزىم/تىزىملىك","imageButton":"سۈرەت دائىرە","notSet":"‹تەڭشەلمىگەن›","id":"ID","name":"ئات","langDir":"تىل يۆنىلىشى","langDirLtr":"سولدىن ئوڭغا (LTR)","langDirRtl":"ئوڭدىن سولغا (RTL)","langCode":"تىل كودى","longDescr":"تەپسىلىي چۈشەندۈرۈش ئادرېسى","cssClass":"ئۇسلۇب خىلىنىڭ ئاتى","advisoryTitle":"ماۋزۇ","cssStyle":"قۇر ئىچىدىكى ئۇسلۇبى","ok":"جەزملە","cancel":"ۋاز كەچ","close":"تاقا","preview":"ئالدىن كۆزەت","resize":"چوڭلۇقىنى ئۆزگەرت","generalTab":"ئادەتتىكى","advancedTab":"ئالىي","validateNumberFailed":"سان پىچىمىدا كىرگۈزۈش زۆرۈر","confirmNewPage":"نۆۋەتتىكى پۈتۈك مەزمۇنى ساقلانمىدى، يېڭى پۈتۈك قۇرامسىز؟","confirmCancel":"قىسمەن ئۆزگەرتىش ساقلانمىدى، بۇ سۆزلەشكۈنى تاقامسىز؟","options":"تاللانما","target":"نىشان كۆزنەك","targetNew":"يېڭى كۆزنەك (_blank)","targetTop":"پۈتۈن بەت (_top)","targetSelf":"مەزكۇر كۆزنەك (_self)","targetParent":"ئاتا كۆزنەك (_parent)","langDirLTR":"سولدىن ئوڭغا (LTR)","langDirRTL":"ئوڭدىن سولغا (RTL)","styles":"ئۇسلۇبلار","cssClasses":"ئۇسلۇب خىللىرى","width":"كەڭلىك","height":"ئېگىزلىك","align":"توغرىلىنىشى","alignLeft":"سول","alignRight":"ئوڭ","alignCenter":"ئوتتۇرا","alignJustify":"ئىككى تەرەپتىن توغرىلا","alignTop":"ئۈستى","alignMiddle":"ئوتتۇرا","alignBottom":"ئاستى","alignNone":"يوق","invalidValue":"ئىناۋەتسىز قىممەت.","invalidHeight":"ئېگىزلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر","invalidWidth":"كەڭلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر","invalidCssLength":"بۇ سۆز بۆلىكى چوقۇم مۇۋاپىق بولغان CSS ئۇزۇنلۇق قىممىتى بولۇشى زۆرۈر، بىرلىكى (px, %, in, cm, mm, em, ex, pt ياكى pc)","invalidHtmlLength":"بۇ سۆز بۆلىكى چوقۇم بىرىكمە HTML ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px ياكى %)","invalidInlineStyle":"ئىچكى باغلانما ئۇسلۇبى چوقۇم چېكىتلىك پەش بىلەن ئايرىلغان بىر ياكى كۆپ «خاسلىق ئاتى:خاسلىق قىممىتى» پىچىمىدا بولۇشى لازىم","cssLengthTooltip":"بۇ سۆز بۆلىكى بىرىكمە CSS ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px, %, in, cm, mm, em, ex, pt ياكى pc)","unavailable":"%1<span class=\\\\\"cke_accessibility\\\\\">، ئىشلەتكىلى بولمايدۇ</span>"}};
\ No newline at end of file
+CKEDITOR.lang['ug']={"widget":{"move":"يۆتكەشتە چېكىپ سۆرەڭ"},"undo":{"redo":"قايتىلا ","undo":"يېنىۋال"},"toolbar":{"toolbarCollapse":"قورال بالداقنى قاتلا","toolbarExpand":"قورال بالداقنى ياي","toolbarGroups":{"document":"پۈتۈك","clipboard":"چاپلاش تاختىسى/يېنىۋال","editing":"تەھرىر","forms":"جەدۋەل","basicstyles":"ئاساسىي ئۇسلۇب","paragraph":"ئابزاس","links":"ئۇلانما","insert":"قىستۇر","styles":"ئۇسلۇب","colors":"رەڭ","tools":"قورال"},"toolbars":"قورال بالداق"},"table":{"border":"گىرۋەك","caption":"ماۋزۇ","cell":{"menu":"كاتەكچە","insertBefore":"سولغا كاتەكچە قىستۇر","insertAfter":"ئوڭغا كاتەكچە قىستۇر","deleteCell":"كەتەكچە ئۆچۈر","merge":"كاتەكچە بىرلەشتۈر","mergeRight":"كاتەكچىنى ئوڭغا بىرلەشتۈر","mergeDown":"كاتەكچىنى ئاستىغا بىرلەشتۈر","splitHorizontal":"كاتەكچىنى توغرىسىغا بىرلەشتۈر","splitVertical":"كاتەكچىنى بويىغا بىرلەشتۈر","title":"كاتەكچە خاسلىقى","cellType":"كاتەكچە تىپى","rowSpan":"بويىغا چات ئارىسى قۇر سانى","colSpan":"توغرىسىغا چات ئارىسى ئىستون سانى","wordWrap":"ئۆزلۈكىدىن قۇر قاتلا","hAlign":"توغرىسىغا توغرىلا","vAlign":"بويىغا توغرىلا","alignBaseline":"ئاساسىي سىزىق","bgColor":"تەگلىك رەڭگى","borderColor":"گىرۋەك رەڭگى","data":"سانلىق مەلۇمات","header":"جەدۋەل باشى","yes":"ھەئە","no":"ياق","invalidWidth":"كاتەكچە كەڭلىكى چوقۇم سان بولىدۇ","invalidHeight":"كاتەكچە ئېگىزلىكى چوقۇم سان بولىدۇ","invalidRowSpan":"قۇر چات ئارىسى چوقۇم پۈتۈن سان بولىدۇ ","invalidColSpan":"ئىستون چات ئارىسى چوقۇم پۈتۈن سان بولىدۇ","chooseColor":"تاللاڭ"},"cellPad":"يان ئارىلىق","cellSpace":"ئارىلىق","column":{"menu":"ئىستون","insertBefore":"سولغا ئىستون قىستۇر","insertAfter":"ئوڭغا ئىستون قىستۇر","deleteColumn":"ئىستون ئۆچۈر"},"columns":"ئىستون سانى","deleteTable":"جەدۋەل ئۆچۈر","headers":"ماۋزۇ كاتەكچە","headersBoth":"بىرىنچى ئىستون ۋە بىرىنچى قۇر","headersColumn":"بىرىنچى ئىستون","headersNone":"يوق","headersRow":"بىرىنچى قۇر","invalidBorder":"گىرۋەك توملۇقى چوقۇم سان بولىدۇ","invalidCellPadding":"كاتەكچىگە چوقۇم سان تولدۇرۇلىدۇ","invalidCellSpacing":"كاتەكچە ئارىلىقى چوقۇم سان بولىدۇ","invalidCols":"بەلگىلەنگەن قۇر سانى چوقۇم نۆلدىن چوڭ بولىدۇ","invalidHeight":"جەدۋەل ئېگىزلىكى چوقۇم سان بولىدۇ","invalidRows":"بەلگىلەنگەن ئىستون سانى چوقۇم نۆلدىن چوڭ بولىدۇ","invalidWidth":"جەدۋەل كەڭلىكى چوقۇم سان بولىدۇ","menu":"جەدۋەل خاسلىقى","row":{"menu":"قۇر","insertBefore":"ئۈستىگە قۇر قىستۇر","insertAfter":"ئاستىغا قۇر قىستۇر","deleteRow":"قۇر ئۆچۈر"},"rows":"قۇر سانى","summary":"ئۈزۈندە","title":"جەدۋەل خاسلىقى","toolbar":"جەدۋەل","widthPc":"پىرسەنت","widthPx":"پىكسېل","widthUnit":"كەڭلىك بىرلىكى"},"stylescombo":{"label":"ئۇسلۇب","panelTitle":"ئۇسلۇب","panelTitle1":"بۆلەك دەرىجىسىدىكى ئېلېمېنت ئۇسلۇبى","panelTitle2":"ئىچكى باغلانما ئېلېمېنت ئۇسلۇبى","panelTitle3":"نەڭ (Object) ئېلېمېنت ئۇسلۇبى"},"specialchar":{"options":"ئالاھىدە ھەرپ تاللانمىسى","title":"ئالاھىدە ھەرپ تاللاڭ","toolbar":"ئالاھىدە ھەرپ قىستۇر"},"sourcedialog":{"toolbar":"مەنبە","title":"مەنبە"},"sourcearea":{"toolbar":"مەنبە"},"showblocks":{"toolbar":"بۆلەكنى كۆرسەت"},"removeformat":{"toolbar":"پىچىمنى چىقىرىۋەت"},"pastetext":{"button":"پىچىمى يوق تېكىست سۈپىتىدە چاپلا","title":"پىچىمى يوق تېكىست سۈپىتىدە چاپلا"},"pastefromword":{"confirmCleanup":"سىز چاپلىماقچى بولغان مەزمۇن MS Word تىن كەلگەندەك قىلىدۇ، MS Word پىچىمىنى تازىلىۋەتكەندىن كېيىن ئاندىن چاپلامدۇ؟","error":"ئىچكى خاتالىق سەۋەبىدىن چاپلايدىغان سانلىق مەلۇماتنى تازىلىيالمايدۇ","title":"MS Word تىن چاپلا","toolbar":"MS Word تىن چاپلا"},"maximize":{"maximize":"چوڭايت","minimize":"كىچىكلەت"},"magicline":{"title":"بۇ جايغا ئابزاس قىستۇر"},"list":{"bulletedlist":"تۈر بەلگە تىزىمى","numberedlist":"تەرتىپ نومۇر تىزىمى"},"language":{"button":"تىل تەڭشەك","remove":"تىلنى چىقىرىۋەت"},"justify":{"block":"ئىككى تەرەپتىن توغرىلا","center":"ئوتتۇرىغا توغرىلا","left":"سولغا توغرىلا","right":"ئوڭغا توغرىلا"},"indent":{"indent":"تارايت","outdent":"كەڭەيت"},"image2":{"alt":"تېكىست ئالماشتۇر","btnUpload":"مۇلازىمېتىرغا يۈكلە","captioned":"ماۋزۇلۇق سۈرەت","captionPlaceholder":"Caption","infoTab":"سۈرەت","lockRatio":"نىسبەتنى قۇلۇپلا","menu":"سۈرەت خاسلىقى","pathName":"image","pathNameCaption":"caption","resetSize":"ئەسلى چوڭلۇق","resizer":"Click and drag to resize","title":"سۈرەت خاسلىقى","uploadTab":"يۈكلە","urlMissing":"سۈرەتنىڭ ئەسلى ھۆججەت ئادرېسى كەم"},"horizontalrule":{"toolbar":"توغرا سىزىق قىستۇر"},"format":{"label":"پىچىم","panelTitle":"پىچىم","tag_address":"ئادرېس","tag_div":"ئابزاس (DIV)","tag_h1":"ماۋزۇ 1","tag_h2":"ماۋزۇ 2","tag_h3":"ماۋزۇ 3","tag_h4":"ماۋزۇ 4","tag_h5":"ماۋزۇ 5","tag_h6":"ماۋزۇ 6","tag_p":"ئادەتتىكى","tag_pre":"تىزىلغان پىچىم"},"elementspath":{"eleLabel":"ئېلېمېنت يولى","eleTitle":"%1 ئېلېمېنت"},"contextmenu":{"options":"قىسقا يول تىزىملىك تاللانمىسى"},"clipboard":{"copy":"كۆچۈر","copyError":"تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كۆچۈر مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+C) ئارقىلىق تاماملاڭ","cut":"كەس","cutError":"تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كەس مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+X) ئارقىلىق تاماملاڭ","paste":"چاپلا","pasteArea":"چاپلاش دائىرىسى","pasteMsg":"ھەرپتاختا تېز كۇنۇپكا (<STRONG>Ctrl/Cmd+V</STRONG>) نى ئىشلىتىپ مەزمۇننى تۆۋەندىكى رامكىغا كۆچۈرۈڭ، ئاندىن <STRONG>جەزملە</STRONG>نى بېسىڭ","securityMsg":"توركۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى سەۋەبىدىن بۇ تەھرىرلىگۈچ چاپلاش تاختىسىدىكى مەزمۇننى بىۋاستە زىيارەت قىلالمايدۇ، بۇ كۆزنەكتە قايتا بىر قېتىم چاپلىشىڭىز كېرەك.","title":"چاپلا"},"button":{"selectedLabel":"%1 (تاللاندى)"},"blockquote":{"toolbar":"بۆلەك نەقىل"},"basicstyles":{"bold":"توم","italic":"يانتۇ","strike":"ئۆچۈرۈش سىزىقى","subscript":"تۆۋەن ئىندېكس","superscript":"يۇقىرى ئىندېكس","underline":"ئاستى سىزىق"},"about":{"copy":"Copyright &copy; $1. نەشر ھوقۇقىغا ئىگە","dlgTitle":"CKEditor ھەققىدە","help":"$1 نى زىيارەت قىلىپ ياردەمگە ئېرىشىڭ","moreInfo":"تور تۇرايىمىزنى زىيارەت قىلىپ كېلىشىمگە ئائىت تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىڭ","title":"CKEditor ھەققىدە","userGuide":"CKEditor ئىشلەتكۈچى قوللانمىسى"},"editor":"تەھرىرلىگۈچ","editorPanel":"مول تېكست تەھرىرلىگۈچ تاختىسى","common":{"editorHelp":"ALT+0 نى بېسىپ ياردەمنى كۆرۈڭ","browseServer":"كۆرسىتىش مۇلازىمېتىر","url":"ئەسلى ھۆججەت","protocol":"كېلىشىم","upload":"يۈكلە","uploadSubmit":"مۇلازىمېتىرغا يۈكلە","image":"سۈرەت","flash":"Flash","form":"جەدۋەل","checkbox":"كۆپ تاللاش رامكىسى","radio":"يەككە تاللاش توپچىسى","textField":"يەككە قۇر تېكىست","textarea":"كۆپ قۇر تېكىست","hiddenField":"يوشۇرۇن دائىرە","button":"توپچا","select":"تىزىم/تىزىملىك","imageButton":"سۈرەت دائىرە","notSet":"‹تەڭشەلمىگەن›","id":"ID","name":"ئات","langDir":"تىل يۆنىلىشى","langDirLtr":"سولدىن ئوڭغا (LTR)","langDirRtl":"ئوڭدىن سولغا (RTL)","langCode":"تىل كودى","longDescr":"تەپسىلىي چۈشەندۈرۈش ئادرېسى","cssClass":"ئۇسلۇب خىلىنىڭ ئاتى","advisoryTitle":"ماۋزۇ","cssStyle":"قۇر ئىچىدىكى ئۇسلۇبى","ok":"جەزملە","cancel":"ۋاز كەچ","close":"تاقا","preview":"ئالدىن كۆزەت","resize":"چوڭلۇقىنى ئۆزگەرت","generalTab":"ئادەتتىكى","advancedTab":"ئالىي","validateNumberFailed":"سان پىچىمىدا كىرگۈزۈش زۆرۈر","confirmNewPage":"نۆۋەتتىكى پۈتۈك مەزمۇنى ساقلانمىدى، يېڭى پۈتۈك قۇرامسىز؟","confirmCancel":"قىسمەن ئۆزگەرتىش ساقلانمىدى، بۇ سۆزلەشكۈنى تاقامسىز؟","options":"تاللانما","target":"نىشان كۆزنەك","targetNew":"يېڭى كۆزنەك (_blank)","targetTop":"پۈتۈن بەت (_top)","targetSelf":"مەزكۇر كۆزنەك (_self)","targetParent":"ئاتا كۆزنەك (_parent)","langDirLTR":"سولدىن ئوڭغا (LTR)","langDirRTL":"ئوڭدىن سولغا (RTL)","styles":"ئۇسلۇبلار","cssClasses":"ئۇسلۇب خىللىرى","width":"كەڭلىك","height":"ئېگىزلىك","align":"توغرىلىنىشى","alignLeft":"سول","alignRight":"ئوڭ","alignCenter":"ئوتتۇرا","alignJustify":"ئىككى تەرەپتىن توغرىلا","alignTop":"ئۈستى","alignMiddle":"ئوتتۇرا","alignBottom":"ئاستى","alignNone":"يوق","invalidValue":"ئىناۋەتسىز قىممەت.","invalidHeight":"ئېگىزلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر","invalidWidth":"كەڭلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر","invalidCssLength":"بۇ سۆز بۆلىكى چوقۇم مۇۋاپىق بولغان CSS ئۇزۇنلۇق قىممىتى بولۇشى زۆرۈر، بىرلىكى (px, %, in, cm, mm, em, ex, pt ياكى pc)","invalidHtmlLength":"بۇ سۆز بۆلىكى چوقۇم بىرىكمە HTML ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px ياكى %)","invalidInlineStyle":"ئىچكى باغلانما ئۇسلۇبى چوقۇم چېكىتلىك پەش بىلەن ئايرىلغان بىر ياكى كۆپ «خاسلىق ئاتى:خاسلىق قىممىتى» پىچىمىدا بولۇشى لازىم","cssLengthTooltip":"بۇ سۆز بۆلىكى بىرىكمە CSS ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px, %, in, cm, mm, em, ex, pt ياكى pc)","unavailable":"%1<span class=\\\\\"cke_accessibility\\\\\">، ئىشلەتكىلى بولمايدۇ</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/uk.js b/core/assets/vendor/ckeditor/lang/uk.js
index 9dbe6d4..4e5811c 100644
--- a/core/assets/vendor/ckeditor/lang/uk.js
+++ b/core/assets/vendor/ckeditor/lang/uk.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['uk']={"widget":{"move":"Клікніть і потягніть для переміщення","label":"%1 widget"},"undo":{"redo":"Повторити","undo":"Повернути"},"toolbar":{"toolbarCollapse":"Згорнути панель інструментів","toolbarExpand":"Розгорнути панель інструментів","toolbarGroups":{"document":"Документ","clipboard":"Буфер обміну / Скасувати","editing":"Редагування","forms":"Форми","basicstyles":"Основний Стиль","paragraph":"Параграф","links":"Посилання","insert":"Вставити","styles":"Стилі","colors":"Кольори","tools":"Інструменти"},"toolbars":"Панель інструментів редактора"},"table":{"border":"Розмір рамки","caption":"Заголовок таблиці","cell":{"menu":"Комірки","insertBefore":"Вставити комірку перед","insertAfter":"Вставити комірку після","deleteCell":"Видалити комірки","merge":"Об'єднати комірки","mergeRight":"Об'єднати справа","mergeDown":"Об'єднати донизу","splitHorizontal":"Розділити комірку по горизонталі","splitVertical":"Розділити комірку по вертикалі","title":"Властивості комірки","cellType":"Тип комірки","rowSpan":"Об'єднання рядків","colSpan":"Об'єднання стовпців","wordWrap":"Автоперенесення тексту","hAlign":"Гориз. вирівнювання","vAlign":"Верт. вирівнювання","alignBaseline":"По базовій лінії","bgColor":"Колір фону","borderColor":"Колір рамки","data":"Дані","header":"Заголовок","yes":"Так","no":"Ні","invalidWidth":"Ширина комірки повинна бути цілим числом.","invalidHeight":"Висота комірки повинна бути цілим числом.","invalidRowSpan":"Кількість об'єднуваних рядків повинна бути цілим числом.","invalidColSpan":"Кількість об'єднуваних стовбців повинна бути цілим числом.","chooseColor":"Обрати"},"cellPad":"Внутр. відступ","cellSpace":"Проміжок","column":{"menu":"Стовбці","insertBefore":"Вставити стовбець перед","insertAfter":"Вставити стовбець після","deleteColumn":"Видалити стовбці"},"columns":"Стовбці","deleteTable":"Видалити таблицю","headers":"Заголовки стовбців/рядків","headersBoth":"Стовбці і рядки","headersColumn":"Стовбці","headersNone":"Без заголовків","headersRow":"Рядки","invalidBorder":"Розмір рамки повинен бути цілим числом.","invalidCellPadding":"Внутр. відступ комірки повинен бути цілим числом.","invalidCellSpacing":"Проміжок між комірками повинен бути цілим числом.","invalidCols":"Кількість стовбців повинна бути більшою 0.","invalidHeight":"Висота таблиці повинна бути цілим числом.","invalidRows":"Кількість рядків повинна бути більшою 0.","invalidWidth":"Ширина таблиці повинна бути цілим числом.","menu":"Властивості таблиці","row":{"menu":"Рядки","insertBefore":"Вставити рядок перед","insertAfter":"Вставити рядок після","deleteRow":"Видалити рядки"},"rows":"Рядки","summary":"Детальний опис заголовку таблиці","title":"Властивості таблиці","toolbar":"Таблиця","widthPc":"відсотків","widthPx":"пікселів","widthUnit":"Одиниці вимір."},"stylescombo":{"label":"Стиль","panelTitle":"Стилі форматування","panelTitle1":"Блочні стилі","panelTitle2":"Рядкові стилі","panelTitle3":"Об'єктні стилі"},"specialchar":{"options":"Опції","title":"Оберіть спеціальний символ","toolbar":"Спеціальний символ"},"sourcedialog":{"toolbar":"Джерело","title":"Джерело"},"sourcearea":{"toolbar":"Джерело"},"showblocks":{"toolbar":"Показувати блоки"},"removeformat":{"toolbar":"Видалити форматування"},"pastetext":{"button":"Вставити тільки текст","title":"Вставити тільки текст"},"pastefromword":{"confirmCleanup":"Текст, що Ви намагаєтесь вставити, схожий на скопійований з Word. Бажаєте очистити його форматування перед вставлянням?","error":"Неможливо очистити форматування через внутрішню помилку.","title":"Вставити з Word","toolbar":"Вставити з Word"},"maximize":{"maximize":"Максимізувати","minimize":"Мінімізувати"},"magicline":{"title":"Вставити абзац"},"list":{"bulletedlist":"Маркірований список","numberedlist":"Нумерований список"},"language":{"button":"Установити мову","remove":"Вилучити мову"},"justify":{"block":"По ширині","center":"По центру","left":"По лівому краю","right":"По правому краю"},"indent":{"indent":"Збільшити відступ","outdent":"Зменшити відступ"},"image2":{"alt":"Альтернативний текст","btnUpload":"Надіслати на сервер","captioned":"Підписане зображення","captionPlaceholder":"Заголовок","infoTab":"Інформація про зображення","lockRatio":"Зберегти пропорції","menu":"Властивості зображення","pathName":"Зображення","pathNameCaption":"заголовок","resetSize":"Очистити поля розмірів","resizer":"Клікніть та потягніть для зміни розмірів","title":"Властивості зображення","uploadTab":"Надіслати","urlMissing":"Вкажіть URL зображення."},"horizontalrule":{"toolbar":"Горизонтальна лінія"},"format":{"label":"Форматування","panelTitle":"Форматування параграфа","tag_address":"Адреса","tag_div":"Нормальний (div)","tag_h1":"Заголовок 1","tag_h2":"Заголовок 2","tag_h3":"Заголовок 3","tag_h4":"Заголовок 4","tag_h5":"Заголовок 5","tag_h6":"Заголовок 6","tag_p":"Нормальний","tag_pre":"Форматований"},"elementspath":{"eleLabel":"Шлях","eleTitle":"%1 елемент"},"contextmenu":{"options":"Опції контекстного меню"},"clipboard":{"copy":"Копіювати","copyError":"Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+C).","cut":"Вирізати","cutError":"Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+X)","paste":"Вставити","pasteArea":"Область вставки","pasteMsg":"Будь ласка, вставте інформацію з буфера обміну в цю область, користуючись комбінацією клавіш (<STRONG>Ctrl/Cmd+V</STRONG>), та натисніть <STRONG>OK</STRONG>.","securityMsg":"Редактор не може отримати прямий доступ до буферу обміну у зв'язку з налаштуваннями Вашого браузера. Вам потрібно вставити інформацію в це вікно.","title":"Вставити"},"button":{"selectedLabel":"%1 (Вибрано)"},"blockquote":{"toolbar":"Цитата"},"basicstyles":{"bold":"Жирний","italic":"Курсив","strike":"Закреслений","subscript":"Нижній індекс","superscript":"Верхній індекс","underline":"Підкреслений"},"about":{"copy":"Copyright &copy; $1. Всі права застережено.","dlgTitle":"Про CKEditor","help":"Перевірте $1 для допомоги.","moreInfo":"Щодо інформації з ліцензування завітайте на наш сайт:","title":"Про CKEditor","userGuide":"Інструкція Користувача для CKEditor"},"editor":"Текстовий редактор","editorPanel":"Панель текстового редактора","common":{"editorHelp":"натисніть ALT 0 для довідки","browseServer":"Огляд Сервера","url":"URL","protocol":"Протокол","upload":"Надіслати","uploadSubmit":"Надіслати на сервер","image":"Зображення","flash":"Flash","form":"Форма","checkbox":"Галочка","radio":"Кнопка вибору","textField":"Текстове поле","textarea":"Текстова область","hiddenField":"Приховане поле","button":"Кнопка","select":"Список","imageButton":"Кнопка із зображенням","notSet":"<не визначено>","id":"Ідентифікатор","name":"Ім'я","langDir":"Напрямок мови","langDirLtr":"Зліва направо (LTR)","langDirRtl":"Справа наліво (RTL)","langCode":"Код мови","longDescr":"Довгий опис URL","cssClass":"Клас CSS","advisoryTitle":"Заголовок","cssStyle":"Стиль CSS","ok":"ОК","cancel":"Скасувати","close":"Закрити","preview":"Попередній перегляд","resize":"Потягніть для зміни розмірів","generalTab":"Основне","advancedTab":"Додаткове","validateNumberFailed":"Значення не є цілим числом.","confirmNewPage":"Всі незбережені зміни будуть втрачені. Ви впевнені, що хочете завантажити нову сторінку?","confirmCancel":"Деякі опції змінено. Закрити вікно без збереження змін?","options":"Опції","target":"Ціль","targetNew":"Нове вікно (_blank)","targetTop":"Поточне вікно (_top)","targetSelf":"Поточний фрейм/вікно (_self)","targetParent":"Батьківський фрейм/вікно (_parent)","langDirLTR":"Зліва направо (LTR)","langDirRTL":"Справа наліво (RTL)","styles":"Стиль CSS","cssClasses":"Клас CSS","width":"Ширина","height":"Висота","align":"Вирівнювання","alignLeft":"По лівому краю","alignRight":"По правому краю","alignCenter":"По центру","alignJustify":"По ширині","alignTop":"По верхньому краю","alignMiddle":"По середині","alignBottom":"По нижньому краю","alignNone":"Нема","invalidValue":"Невірне значення.","invalidHeight":"Висота повинна бути цілим числом.","invalidWidth":"Ширина повинна бути цілим числом.","invalidCssLength":"Значення, вказане для \"%1\" в полі повинно бути позитивним числом або без дійсного виміру CSS блоку (px, %, in, cm, mm, em, ex, pt або pc).","invalidHtmlLength":"Значення, вказане для \"%1\" в полі повинно бути позитивним числом або без дійсного виміру HTML блоку (px або %).","invalidInlineStyle":"Значення, вказане для вбудованого стилю повинне складатися з одного чи кількох кортежів у форматі \"ім'я : значення\", розділених крапкою з комою.","cssLengthTooltip":"Введіть номер значення в пікселях або число з дійсною одиниці CSS (px, %, in, cm, mm, em, ex, pt або pc).","unavailable":"%1<span class=\"cke_accessibility\">, не доступне</span>"}};
\ No newline at end of file
+CKEDITOR.lang['uk']={"widget":{"move":"Клікніть і потягніть для переміщення"},"undo":{"redo":"Повторити","undo":"Повернути"},"toolbar":{"toolbarCollapse":"Згорнути панель інструментів","toolbarExpand":"Розгорнути панель інструментів","toolbarGroups":{"document":"Документ","clipboard":"Буфер обміну / Скасувати","editing":"Редагування","forms":"Форми","basicstyles":"Основний Стиль","paragraph":"Параграф","links":"Посилання","insert":"Вставити","styles":"Стилі","colors":"Кольори","tools":"Інструменти"},"toolbars":"Панель інструментів редактора"},"table":{"border":"Розмір рамки","caption":"Заголовок таблиці","cell":{"menu":"Комірки","insertBefore":"Вставити комірку перед","insertAfter":"Вставити комірку після","deleteCell":"Видалити комірки","merge":"Об'єднати комірки","mergeRight":"Об'єднати справа","mergeDown":"Об'єднати донизу","splitHorizontal":"Розділити комірку по горизонталі","splitVertical":"Розділити комірку по вертикалі","title":"Властивості комірки","cellType":"Тип комірки","rowSpan":"Об'єднання рядків","colSpan":"Об'єднання стовпців","wordWrap":"Автоперенесення тексту","hAlign":"Гориз. вирівнювання","vAlign":"Верт. вирівнювання","alignBaseline":"По базовій лінії","bgColor":"Колір фону","borderColor":"Колір рамки","data":"Дані","header":"Заголовок","yes":"Так","no":"Ні","invalidWidth":"Ширина комірки повинна бути цілим числом.","invalidHeight":"Висота комірки повинна бути цілим числом.","invalidRowSpan":"Кількість об'єднуваних рядків повинна бути цілим числом.","invalidColSpan":"Кількість об'єднуваних стовбців повинна бути цілим числом.","chooseColor":"Обрати"},"cellPad":"Внутр. відступ","cellSpace":"Проміжок","column":{"menu":"Стовбці","insertBefore":"Вставити стовбець перед","insertAfter":"Вставити стовбець після","deleteColumn":"Видалити стовбці"},"columns":"Стовбці","deleteTable":"Видалити таблицю","headers":"Заголовки стовбців/рядків","headersBoth":"Стовбці і рядки","headersColumn":"Стовбці","headersNone":"Без заголовків","headersRow":"Рядки","invalidBorder":"Розмір рамки повинен бути цілим числом.","invalidCellPadding":"Внутр. відступ комірки повинен бути цілим числом.","invalidCellSpacing":"Проміжок між комірками повинен бути цілим числом.","invalidCols":"Кількість стовбців повинна бути більшою 0.","invalidHeight":"Висота таблиці повинна бути цілим числом.","invalidRows":"Кількість рядків повинна бути більшою 0.","invalidWidth":"Ширина таблиці повинна бути цілим числом.","menu":"Властивості таблиці","row":{"menu":"Рядки","insertBefore":"Вставити рядок перед","insertAfter":"Вставити рядок після","deleteRow":"Видалити рядки"},"rows":"Рядки","summary":"Детальний опис заголовку таблиці","title":"Властивості таблиці","toolbar":"Таблиця","widthPc":"відсотків","widthPx":"пікселів","widthUnit":"Одиниці вимір."},"stylescombo":{"label":"Стиль","panelTitle":"Стилі форматування","panelTitle1":"Блочні стилі","panelTitle2":"Рядкові стилі","panelTitle3":"Об'єктні стилі"},"specialchar":{"options":"Опції","title":"Оберіть спеціальний символ","toolbar":"Спеціальний символ"},"sourcedialog":{"toolbar":"Джерело","title":"Джерело"},"sourcearea":{"toolbar":"Джерело"},"showblocks":{"toolbar":"Показувати блоки"},"removeformat":{"toolbar":"Видалити форматування"},"pastetext":{"button":"Вставити тільки текст","title":"Вставити тільки текст"},"pastefromword":{"confirmCleanup":"Текст, що Ви намагаєтесь вставити, схожий на скопійований з Word. Бажаєте очистити його форматування перед вставлянням?","error":"Неможливо очистити форматування через внутрішню помилку.","title":"Вставити з Word","toolbar":"Вставити з Word"},"maximize":{"maximize":"Максимізувати","minimize":"Мінімізувати"},"magicline":{"title":"Вставити абзац"},"list":{"bulletedlist":"Маркірований список","numberedlist":"Нумерований список"},"language":{"button":"Установити мову","remove":"Вилучити мову"},"justify":{"block":"По ширині","center":"По центру","left":"По лівому краю","right":"По правому краю"},"indent":{"indent":"Збільшити відступ","outdent":"Зменшити відступ"},"image2":{"alt":"Альтернативний текст","btnUpload":"Надіслати на сервер","captioned":"Підписане зображення","captionPlaceholder":"Заголовок","infoTab":"Інформація про зображення","lockRatio":"Зберегти пропорції","menu":"Властивості зображення","pathName":"Зображення","pathNameCaption":"заголовок","resetSize":"Очистити поля розмірів","resizer":"Клікніть та потягніть для зміни розмірів","title":"Властивості зображення","uploadTab":"Надіслати","urlMissing":"Вкажіть URL зображення."},"horizontalrule":{"toolbar":"Горизонтальна лінія"},"format":{"label":"Форматування","panelTitle":"Форматування параграфа","tag_address":"Адреса","tag_div":"Нормальний (div)","tag_h1":"Заголовок 1","tag_h2":"Заголовок 2","tag_h3":"Заголовок 3","tag_h4":"Заголовок 4","tag_h5":"Заголовок 5","tag_h6":"Заголовок 6","tag_p":"Нормальний","tag_pre":"Форматований"},"elementspath":{"eleLabel":"Шлях","eleTitle":"%1 елемент"},"contextmenu":{"options":"Опції контекстного меню"},"clipboard":{"copy":"Копіювати","copyError":"Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+C).","cut":"Вирізати","cutError":"Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+X)","paste":"Вставити","pasteArea":"Область вставки","pasteMsg":"Будь ласка, вставте інформацію з буфера обміну в цю область, користуючись комбінацією клавіш (<STRONG>Ctrl/Cmd+V</STRONG>), та натисніть <STRONG>OK</STRONG>.","securityMsg":"Редактор не може отримати прямий доступ до буферу обміну у зв'язку з налаштуваннями Вашого браузера. Вам потрібно вставити інформацію в це вікно.","title":"Вставити"},"button":{"selectedLabel":"%1 (Вибрано)"},"blockquote":{"toolbar":"Цитата"},"basicstyles":{"bold":"Жирний","italic":"Курсив","strike":"Закреслений","subscript":"Нижній індекс","superscript":"Верхній індекс","underline":"Підкреслений"},"about":{"copy":"Copyright &copy; $1. Всі права застережено.","dlgTitle":"Про CKEditor","help":"Перевірте $1 для допомоги.","moreInfo":"Щодо інформації з ліцензування завітайте на наш сайт:","title":"Про CKEditor","userGuide":"Інструкція Користувача для CKEditor"},"editor":"Текстовий редактор","editorPanel":"Панель текстового редактора","common":{"editorHelp":"натисніть ALT 0 для довідки","browseServer":"Огляд Сервера","url":"URL","protocol":"Протокол","upload":"Надіслати","uploadSubmit":"Надіслати на сервер","image":"Зображення","flash":"Flash","form":"Форма","checkbox":"Галочка","radio":"Кнопка вибору","textField":"Текстове поле","textarea":"Текстова область","hiddenField":"Приховане поле","button":"Кнопка","select":"Список","imageButton":"Кнопка із зображенням","notSet":"<не визначено>","id":"Ідентифікатор","name":"Ім'я","langDir":"Напрямок мови","langDirLtr":"Зліва направо (LTR)","langDirRtl":"Справа наліво (RTL)","langCode":"Код мови","longDescr":"Довгий опис URL","cssClass":"Клас CSS","advisoryTitle":"Заголовок","cssStyle":"Стиль CSS","ok":"ОК","cancel":"Скасувати","close":"Закрити","preview":"Попередній перегляд","resize":"Потягніть для зміни розмірів","generalTab":"Основне","advancedTab":"Додаткове","validateNumberFailed":"Значення не є цілим числом.","confirmNewPage":"Всі незбережені зміни будуть втрачені. Ви впевнені, що хочете завантажити нову сторінку?","confirmCancel":"Деякі опції змінено. Закрити вікно без збереження змін?","options":"Опції","target":"Ціль","targetNew":"Нове вікно (_blank)","targetTop":"Поточне вікно (_top)","targetSelf":"Поточний фрейм/вікно (_self)","targetParent":"Батьківський фрейм/вікно (_parent)","langDirLTR":"Зліва направо (LTR)","langDirRTL":"Справа наліво (RTL)","styles":"Стиль CSS","cssClasses":"Клас CSS","width":"Ширина","height":"Висота","align":"Вирівнювання","alignLeft":"По лівому краю","alignRight":"По правому краю","alignCenter":"По центру","alignJustify":"По ширині","alignTop":"По верхньому краю","alignMiddle":"По середині","alignBottom":"По нижньому краю","alignNone":"Нема","invalidValue":"Невірне значення.","invalidHeight":"Висота повинна бути цілим числом.","invalidWidth":"Ширина повинна бути цілим числом.","invalidCssLength":"Значення, вказане для \"%1\" в полі повинно бути позитивним числом або без дійсного виміру CSS блоку (px, %, in, cm, mm, em, ex, pt або pc).","invalidHtmlLength":"Значення, вказане для \"%1\" в полі повинно бути позитивним числом або без дійсного виміру HTML блоку (px або %).","invalidInlineStyle":"Значення, вказане для вбудованого стилю повинне складатися з одного чи кількох кортежів у форматі \"ім'я : значення\", розділених крапкою з комою.","cssLengthTooltip":"Введіть номер значення в пікселях або число з дійсною одиниці CSS (px, %, in, cm, mm, em, ex, pt або pc).","unavailable":"%1<span class=\"cke_accessibility\">, не доступне</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/vi.js b/core/assets/vendor/ckeditor/lang/vi.js
index 44fcdab..12a836c 100644
--- a/core/assets/vendor/ckeditor/lang/vi.js
+++ b/core/assets/vendor/ckeditor/lang/vi.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['vi']={"widget":{"move":"Nhấp chuột và kéo để di chuyển","label":"%1 widget"},"undo":{"redo":"Làm lại thao tác","undo":"Khôi phục thao tác"},"toolbar":{"toolbarCollapse":"Thu gọn thanh công cụ","toolbarExpand":"Mở rộng thnah công cụ","toolbarGroups":{"document":"Tài liệu","clipboard":"Clipboard/Undo","editing":"Chỉnh sửa","forms":"Bảng biểu","basicstyles":"Kiểu cơ bản","paragraph":"Đoạn","links":"Liên kết","insert":"Chèn","styles":"Kiểu","colors":"Màu sắc","tools":"Công cụ"},"toolbars":"Thanh công cụ"},"table":{"border":"Kích thước đường viền","caption":"Đầu đề","cell":{"menu":"Ô","insertBefore":"Chèn ô Phía trước","insertAfter":"Chèn ô Phía sau","deleteCell":"Xoá ô","merge":"Kết hợp ô","mergeRight":"Kết hợp sang phải","mergeDown":"Kết hợp xuống dưới","splitHorizontal":"Phân tách ô theo chiều ngang","splitVertical":"Phân tách ô theo chiều dọc","title":"Thuộc tính của ô","cellType":"Kiểu của ô","rowSpan":"Kết hợp hàng","colSpan":"Kết hợp cột","wordWrap":"Chữ liền hàng","hAlign":"Canh lề ngang","vAlign":"Canh lề dọc","alignBaseline":"Đường cơ sở","bgColor":"Màu nền","borderColor":"Màu viền","data":"Dữ liệu","header":"Đầu đề","yes":"Có","no":"Không","invalidWidth":"Chiều rộng của ô phải là một số nguyên.","invalidHeight":"Chiều cao của ô phải là một số nguyên.","invalidRowSpan":"Số hàng kết hợp phải là một số nguyên.","invalidColSpan":"Số cột kết hợp phải là một số nguyên.","chooseColor":"Chọn màu"},"cellPad":"Khoảng đệm giữ ô và nội dung","cellSpace":"Khoảng cách giữa các ô","column":{"menu":"Cột","insertBefore":"Chèn cột phía trước","insertAfter":"Chèn cột phía sau","deleteColumn":"Xoá cột"},"columns":"Số cột","deleteTable":"Xóa bảng","headers":"Đầu đề","headersBoth":"Cả hai","headersColumn":"Cột đầu tiên","headersNone":"Không có","headersRow":"Hàng đầu tiên","invalidBorder":"Kích cỡ của đường biên phải là một số nguyên.","invalidCellPadding":"Khoảng đệm giữa ô và nội dung phải là một số nguyên.","invalidCellSpacing":"Khoảng cách giữa các ô phải là một số nguyên.","invalidCols":"Số lượng cột phải là một số lớn hơn 0.","invalidHeight":"Chiều cao của bảng phải là một số nguyên.","invalidRows":"Số lượng hàng phải là một số lớn hơn 0.","invalidWidth":"Chiều rộng của bảng phải là một số nguyên.","menu":"Thuộc tính bảng","row":{"menu":"Hàng","insertBefore":"Chèn hàng phía trước","insertAfter":"Chèn hàng phía sau","deleteRow":"Xoá hàng"},"rows":"Số hàng","summary":"Tóm lược","title":"Thuộc tính bảng","toolbar":"Bảng","widthPc":"Phần trăm (%)","widthPx":"Điểm ảnh (px)","widthUnit":"Đơn vị"},"stylescombo":{"label":"Kiểu","panelTitle":"Phong cách định dạng","panelTitle1":"Kiểu khối","panelTitle2":"Kiểu trực tiếp","panelTitle3":"Kiểu đối tượng"},"specialchar":{"options":"Tùy chọn các ký tự đặc biệt","title":"Hãy chọn ký tự đặc biệt","toolbar":"Chèn ký tự đặc biệt"},"sourcedialog":{"toolbar":"Mã HTML","title":"Mã HTML"},"sourcearea":{"toolbar":"Mã HTML"},"showblocks":{"toolbar":"Hiển thị các khối"},"removeformat":{"toolbar":"Xoá định dạng"},"pastetext":{"button":"Dán theo định dạng văn bản thuần","title":"Dán theo định dạng văn bản thuần"},"pastefromword":{"confirmCleanup":"Văn bản bạn muốn dán có kèm định dạng của Word. Bạn có muốn loại bỏ định dạng Word trước khi dán?","error":"Không thể để làm sạch các dữ liệu dán do một lỗi nội bộ","title":"Dán với định dạng Word","toolbar":"Dán với định dạng Word"},"maximize":{"maximize":"Phóng to tối đa","minimize":"Thu nhỏ"},"magicline":{"title":"Chèn đoạn vào đây"},"list":{"bulletedlist":"Chèn/Xoá Danh sách không thứ tự","numberedlist":"Chèn/Xoá Danh sách có thứ tự"},"language":{"button":"Thiết lập ngôn ngữ","remove":"Loại bỏ ngôn ngữ"},"justify":{"block":"Canh đều","center":"Canh giữa","left":"Canh trái","right":"Canh phải"},"indent":{"indent":"Dịch vào trong","outdent":"Dịch ra ngoài"},"image2":{"alt":"Chú thích ảnh","btnUpload":"Tải lên máy chủ","captioned":"Ảnh có chú thích","captionPlaceholder":"Nhãn","infoTab":"Thông tin của ảnh","lockRatio":"Giữ nguyên tỷ lệ","menu":"Thuộc tính của ảnh","pathName":"ảnh","pathNameCaption":"chú thích","resetSize":"Kích thước gốc","resizer":"Kéo rê để thay đổi kích cỡ","title":"Thuộc tính của ảnh","uploadTab":"Tải lên","urlMissing":"Thiếu đường dẫn hình ảnh"},"horizontalrule":{"toolbar":"Chèn đường phân cách ngang"},"format":{"label":"Định dạng","panelTitle":"Định dạng","tag_address":"Address","tag_div":"Bình thường (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Bình thường (P)","tag_pre":"Đã thiết lập"},"elementspath":{"eleLabel":"Nhãn thành phần","eleTitle":"%1 thành phần"},"contextmenu":{"options":"Tùy chọn menu bổ xung"},"clipboard":{"copy":"Sao chép","copyError":"Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).","cut":"Cắt","cutError":"Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).","paste":"Dán","pasteArea":"Khu vực dán","pasteMsg":"Hãy dán nội dung vào trong khung bên dưới, sử dụng tổ hợp phím (<STRONG>Ctrl/Cmd+V</STRONG>) và nhấn vào nút <STRONG>Đồng ý</STRONG>.","securityMsg":"Do thiết lập bảo mật của trình duyệt nên trình biên tập không thể truy cập trực tiếp vào nội dung đã sao chép. Bạn cần phải dán lại nội dung vào cửa sổ này.","title":"Dán"},"button":{"selectedLabel":"%1 (Đã chọn)"},"blockquote":{"toolbar":"Khối trích dẫn"},"basicstyles":{"bold":"Đậm","italic":"Nghiêng","strike":"Gạch xuyên ngang","subscript":"Chỉ số dưới","superscript":"Chỉ số trên","underline":"Gạch chân"},"about":{"copy":"Bản quyền &copy; $1. Giữ toàn quyền.","dlgTitle":"Thông tin về CKEditor","help":"Kiểm tra $1 để được giúp đỡ.","moreInfo":"Vui lòng ghé thăm trang web của chúng tôi để có thông tin về giấy phép:","title":"Thông tin về CKEditor","userGuide":"Hướng dẫn sử dụng CKEditor"},"editor":"Bộ soạn thảo văn bản có định dạng","editorPanel":"Bảng điều khiển Rich Text Editor","common":{"editorHelp":"Nhấn ALT + 0 để được giúp đỡ","browseServer":"Duyệt máy chủ","url":"URL","protocol":"Giao thức","upload":"Tải lên","uploadSubmit":"Tải lên máy chủ","image":"Hình ảnh","flash":"Flash","form":"Biểu mẫu","checkbox":"Nút kiểm","radio":"Nút chọn","textField":"Trường văn bản","textarea":"Vùng văn bản","hiddenField":"Trường ẩn","button":"Nút","select":"Ô chọn","imageButton":"Nút hình ảnh","notSet":"<không thiết lập>","id":"Định danh","name":"Tên","langDir":"Hướng ngôn ngữ","langDirLtr":"Trái sang phải (LTR)","langDirRtl":"Phải sang trái (RTL)","langCode":"Mã ngôn ngữ","longDescr":"Mô tả URL","cssClass":"Lớp Stylesheet","advisoryTitle":"Nhan đề hướng dẫn","cssStyle":"Kiểu ","ok":"Đồng ý","cancel":"Bỏ qua","close":"Đóng","preview":"Xem trước","resize":"Kéo rê để thay đổi kích cỡ","generalTab":"Tab chung","advancedTab":"Tab mở rộng","validateNumberFailed":"Giá trị này không phải là số.","confirmNewPage":"Mọi thay đổi không được lưu lại, nội dung này sẽ bị mất. Bạn có chắc chắn muốn tải một trang mới?","confirmCancel":"Một vài tùy chọn đã bị thay đổi. Bạn có chắc chắn muốn đóng hộp thoại?","options":"Tùy chọn","target":"Đích đến","targetNew":"Cửa sổ mới (_blank)","targetTop":"Cửa sổ trên cùng (_top)","targetSelf":"Tại trang (_self)","targetParent":"Cửa sổ cha (_parent)","langDirLTR":"Trái sang phải (LTR)","langDirRTL":"Phải sang trái (RTL)","styles":"Kiểu","cssClasses":"Lớp CSS","width":"Chiều rộng","height":"Chiều cao","align":"Vị trí","alignLeft":"Trái","alignRight":"Phải","alignCenter":"Giữa","alignJustify":"Sắp chữ","alignTop":"Trên","alignMiddle":"Giữa","alignBottom":"Dưới","alignNone":"Không","invalidValue":"Giá trị không hợp lệ.","invalidHeight":"Chiều cao phải là số nguyên.","invalidWidth":"Chiều rộng phải là số nguyên.","invalidCssLength":"Giá trị quy định cho trường \"%1\" phải là một số dương có hoặc không có một đơn vị đo CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).","invalidHtmlLength":"Giá trị quy định cho trường \"%1\" phải là một số dương có hoặc không có một đơn vị đo HTML hợp lệ (px hoặc %).","invalidInlineStyle":"Giá trị quy định cho kiểu nội tuyến phải bao gồm một hoặc nhiều dữ liệu với định dạng \"tên:giá trị\", cách nhau bằng dấu chấm phẩy.","cssLengthTooltip":"Nhập một giá trị theo pixel hoặc một số với một đơn vị CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).","unavailable":"%1<span class=\"cke_accessibility\">, không có</span>"}};
\ No newline at end of file
+CKEDITOR.lang['vi']={"widget":{"move":"Nhấp chuột và kéo để di chuyển"},"undo":{"redo":"Làm lại thao tác","undo":"Khôi phục thao tác"},"toolbar":{"toolbarCollapse":"Thu gọn thanh công cụ","toolbarExpand":"Mở rộng thnah công cụ","toolbarGroups":{"document":"Tài liệu","clipboard":"Clipboard/Undo","editing":"Chỉnh sửa","forms":"Bảng biểu","basicstyles":"Kiểu cơ bản","paragraph":"Đoạn","links":"Liên kết","insert":"Chèn","styles":"Kiểu","colors":"Màu sắc","tools":"Công cụ"},"toolbars":"Thanh công cụ"},"table":{"border":"Kích thước đường viền","caption":"Đầu đề","cell":{"menu":"Ô","insertBefore":"Chèn ô Phía trước","insertAfter":"Chèn ô Phía sau","deleteCell":"Xoá ô","merge":"Kết hợp ô","mergeRight":"Kết hợp sang phải","mergeDown":"Kết hợp xuống dưới","splitHorizontal":"Phân tách ô theo chiều ngang","splitVertical":"Phân tách ô theo chiều dọc","title":"Thuộc tính của ô","cellType":"Kiểu của ô","rowSpan":"Kết hợp hàng","colSpan":"Kết hợp cột","wordWrap":"Chữ liền hàng","hAlign":"Canh lề ngang","vAlign":"Canh lề dọc","alignBaseline":"Đường cơ sở","bgColor":"Màu nền","borderColor":"Màu viền","data":"Dữ liệu","header":"Đầu đề","yes":"Có","no":"Không","invalidWidth":"Chiều rộng của ô phải là một số nguyên.","invalidHeight":"Chiều cao của ô phải là một số nguyên.","invalidRowSpan":"Số hàng kết hợp phải là một số nguyên.","invalidColSpan":"Số cột kết hợp phải là một số nguyên.","chooseColor":"Chọn màu"},"cellPad":"Khoảng đệm giữ ô và nội dung","cellSpace":"Khoảng cách giữa các ô","column":{"menu":"Cột","insertBefore":"Chèn cột phía trước","insertAfter":"Chèn cột phía sau","deleteColumn":"Xoá cột"},"columns":"Số cột","deleteTable":"Xóa bảng","headers":"Đầu đề","headersBoth":"Cả hai","headersColumn":"Cột đầu tiên","headersNone":"Không có","headersRow":"Hàng đầu tiên","invalidBorder":"Kích cỡ của đường biên phải là một số nguyên.","invalidCellPadding":"Khoảng đệm giữa ô và nội dung phải là một số nguyên.","invalidCellSpacing":"Khoảng cách giữa các ô phải là một số nguyên.","invalidCols":"Số lượng cột phải là một số lớn hơn 0.","invalidHeight":"Chiều cao của bảng phải là một số nguyên.","invalidRows":"Số lượng hàng phải là một số lớn hơn 0.","invalidWidth":"Chiều rộng của bảng phải là một số nguyên.","menu":"Thuộc tính bảng","row":{"menu":"Hàng","insertBefore":"Chèn hàng phía trước","insertAfter":"Chèn hàng phía sau","deleteRow":"Xoá hàng"},"rows":"Số hàng","summary":"Tóm lược","title":"Thuộc tính bảng","toolbar":"Bảng","widthPc":"Phần trăm (%)","widthPx":"Điểm ảnh (px)","widthUnit":"Đơn vị"},"stylescombo":{"label":"Kiểu","panelTitle":"Phong cách định dạng","panelTitle1":"Kiểu khối","panelTitle2":"Kiểu trực tiếp","panelTitle3":"Kiểu đối tượng"},"specialchar":{"options":"Tùy chọn các ký tự đặc biệt","title":"Hãy chọn ký tự đặc biệt","toolbar":"Chèn ký tự đặc biệt"},"sourcedialog":{"toolbar":"Mã HTML","title":"Mã HTML"},"sourcearea":{"toolbar":"Mã HTML"},"showblocks":{"toolbar":"Hiển thị các khối"},"removeformat":{"toolbar":"Xoá định dạng"},"pastetext":{"button":"Dán theo định dạng văn bản thuần","title":"Dán theo định dạng văn bản thuần"},"pastefromword":{"confirmCleanup":"Văn bản bạn muốn dán có kèm định dạng của Word. Bạn có muốn loại bỏ định dạng Word trước khi dán?","error":"Không thể để làm sạch các dữ liệu dán do một lỗi nội bộ","title":"Dán với định dạng Word","toolbar":"Dán với định dạng Word"},"maximize":{"maximize":"Phóng to tối đa","minimize":"Thu nhỏ"},"magicline":{"title":"Chèn đoạn vào đây"},"list":{"bulletedlist":"Chèn/Xoá Danh sách không thứ tự","numberedlist":"Chèn/Xoá Danh sách có thứ tự"},"language":{"button":"Thiết lập ngôn ngữ","remove":"Loại bỏ ngôn ngữ"},"justify":{"block":"Canh đều","center":"Canh giữa","left":"Canh trái","right":"Canh phải"},"indent":{"indent":"Dịch vào trong","outdent":"Dịch ra ngoài"},"image2":{"alt":"Chú thích ảnh","btnUpload":"Tải lên máy chủ","captioned":"Ảnh có chú thích","captionPlaceholder":"Nhãn","infoTab":"Thông tin của ảnh","lockRatio":"Giữ nguyên tỷ lệ","menu":"Thuộc tính của ảnh","pathName":"ảnh","pathNameCaption":"chú thích","resetSize":"Kích thước gốc","resizer":"Kéo rê để thay đổi kích cỡ","title":"Thuộc tính của ảnh","uploadTab":"Tải lên","urlMissing":"Thiếu đường dẫn hình ảnh"},"horizontalrule":{"toolbar":"Chèn đường phân cách ngang"},"format":{"label":"Định dạng","panelTitle":"Định dạng","tag_address":"Address","tag_div":"Bình thường (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Bình thường (P)","tag_pre":"Đã thiết lập"},"elementspath":{"eleLabel":"Nhãn thành phần","eleTitle":"%1 thành phần"},"contextmenu":{"options":"Tùy chọn menu bổ xung"},"clipboard":{"copy":"Sao chép","copyError":"Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).","cut":"Cắt","cutError":"Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).","paste":"Dán","pasteArea":"Khu vực dán","pasteMsg":"Hãy dán nội dung vào trong khung bên dưới, sử dụng tổ hợp phím (<STRONG>Ctrl/Cmd+V</STRONG>) và nhấn vào nút <STRONG>Đồng ý</STRONG>.","securityMsg":"Do thiết lập bảo mật của trình duyệt nên trình biên tập không thể truy cập trực tiếp vào nội dung đã sao chép. Bạn cần phải dán lại nội dung vào cửa sổ này.","title":"Dán"},"button":{"selectedLabel":"%1 (Đã chọn)"},"blockquote":{"toolbar":"Khối trích dẫn"},"basicstyles":{"bold":"Đậm","italic":"Nghiêng","strike":"Gạch xuyên ngang","subscript":"Chỉ số dưới","superscript":"Chỉ số trên","underline":"Gạch chân"},"about":{"copy":"Bản quyền &copy; $1. Giữ toàn quyền.","dlgTitle":"Thông tin về CKEditor","help":"Kiểm tra $1 để được giúp đỡ.","moreInfo":"Vui lòng ghé thăm trang web của chúng tôi để có thông tin về giấy phép:","title":"Thông tin về CKEditor","userGuide":"Hướng dẫn sử dụng CKEditor"},"editor":"Bộ soạn thảo văn bản có định dạng","editorPanel":"Bảng điều khiển Rich Text Editor","common":{"editorHelp":"Nhấn ALT + 0 để được giúp đỡ","browseServer":"Duyệt máy chủ","url":"URL","protocol":"Giao thức","upload":"Tải lên","uploadSubmit":"Tải lên máy chủ","image":"Hình ảnh","flash":"Flash","form":"Biểu mẫu","checkbox":"Nút kiểm","radio":"Nút chọn","textField":"Trường văn bản","textarea":"Vùng văn bản","hiddenField":"Trường ẩn","button":"Nút","select":"Ô chọn","imageButton":"Nút hình ảnh","notSet":"<không thiết lập>","id":"Định danh","name":"Tên","langDir":"Hướng ngôn ngữ","langDirLtr":"Trái sang phải (LTR)","langDirRtl":"Phải sang trái (RTL)","langCode":"Mã ngôn ngữ","longDescr":"Mô tả URL","cssClass":"Lớp Stylesheet","advisoryTitle":"Nhan đề hướng dẫn","cssStyle":"Kiểu ","ok":"Đồng ý","cancel":"Bỏ qua","close":"Đóng","preview":"Xem trước","resize":"Kéo rê để thay đổi kích cỡ","generalTab":"Tab chung","advancedTab":"Tab mở rộng","validateNumberFailed":"Giá trị này không phải là số.","confirmNewPage":"Mọi thay đổi không được lưu lại, nội dung này sẽ bị mất. Bạn có chắc chắn muốn tải một trang mới?","confirmCancel":"Một vài tùy chọn đã bị thay đổi. Bạn có chắc chắn muốn đóng hộp thoại?","options":"Tùy chọn","target":"Đích đến","targetNew":"Cửa sổ mới (_blank)","targetTop":"Cửa sổ trên cùng (_top)","targetSelf":"Tại trang (_self)","targetParent":"Cửa sổ cha (_parent)","langDirLTR":"Trái sang phải (LTR)","langDirRTL":"Phải sang trái (RTL)","styles":"Kiểu","cssClasses":"Lớp CSS","width":"Chiều rộng","height":"Chiều cao","align":"Vị trí","alignLeft":"Trái","alignRight":"Phải","alignCenter":"Giữa","alignJustify":"Sắp chữ","alignTop":"Trên","alignMiddle":"Giữa","alignBottom":"Dưới","alignNone":"Không","invalidValue":"Giá trị không hợp lệ.","invalidHeight":"Chiều cao phải là số nguyên.","invalidWidth":"Chiều rộng phải là số nguyên.","invalidCssLength":"Giá trị quy định cho trường \"%1\" phải là một số dương có hoặc không có một đơn vị đo CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).","invalidHtmlLength":"Giá trị quy định cho trường \"%1\" phải là một số dương có hoặc không có một đơn vị đo HTML hợp lệ (px hoặc %).","invalidInlineStyle":"Giá trị quy định cho kiểu nội tuyến phải bao gồm một hoặc nhiều dữ liệu với định dạng \"tên:giá trị\", cách nhau bằng dấu chấm phẩy.","cssLengthTooltip":"Nhập một giá trị theo pixel hoặc một số với một đơn vị CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).","unavailable":"%1<span class=\"cke_accessibility\">, không có</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/zh-cn.js b/core/assets/vendor/ckeditor/lang/zh-cn.js
index cc75fb5..efb1eee 100644
--- a/core/assets/vendor/ckeditor/lang/zh-cn.js
+++ b/core/assets/vendor/ckeditor/lang/zh-cn.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['zh-cn']={"widget":{"move":"点击并拖拽以移动","label":"%1 widget"},"undo":{"redo":"重做","undo":"撤消"},"toolbar":{"toolbarCollapse":"折叠工具栏","toolbarExpand":"展开工具栏","toolbarGroups":{"document":"文档","clipboard":"剪贴板/撤销","editing":"编辑","forms":"表单","basicstyles":"基本格式","paragraph":"段落","links":"链接","insert":"插入","styles":"样式","colors":"颜色","tools":"工具"},"toolbars":"工具栏"},"table":{"border":"边框","caption":"标题","cell":{"menu":"单元格","insertBefore":"在左侧插入单元格","insertAfter":"在右侧插入单元格","deleteCell":"删除单元格","merge":"合并单元格","mergeRight":"向右合并单元格","mergeDown":"向下合并单元格","splitHorizontal":"水平拆分单元格","splitVertical":"垂直拆分单元格","title":"单元格属性","cellType":"单元格类型","rowSpan":"纵跨行数","colSpan":"横跨列数","wordWrap":"自动换行","hAlign":"水平对齐","vAlign":"垂直对齐","alignBaseline":"基线","bgColor":"背景颜色","borderColor":"边框颜色","data":"数据","header":"表头","yes":"是","no":"否","invalidWidth":"单元格宽度必须为数字格式","invalidHeight":"单元格高度必须为数字格式","invalidRowSpan":"行跨度必须为整数格式","invalidColSpan":"列跨度必须为整数格式","chooseColor":"选择"},"cellPad":"边距","cellSpace":"间距","column":{"menu":"列","insertBefore":"在左侧插入列","insertAfter":"在右侧插入列","deleteColumn":"删除列"},"columns":"列数","deleteTable":"删除表格","headers":"标题单元格","headersBoth":"第一列和第一行","headersColumn":"第一列","headersNone":"无","headersRow":"第一行","invalidBorder":"边框粗细必须为数字格式","invalidCellPadding":"单元格填充必须为数字格式","invalidCellSpacing":"单元格间距必须为数字格式","invalidCols":"指定的行数必须大于零","invalidHeight":"表格高度必须为数字格式","invalidRows":"指定的列数必须大于零","invalidWidth":"表格宽度必须为数字格式","menu":"表格属性","row":{"menu":"行","insertBefore":"在上方插入行","insertAfter":"在下方插入行","deleteRow":"删除行"},"rows":"行数","summary":"摘要","title":"表格属性","toolbar":"表格","widthPc":"百分比","widthPx":"像素","widthUnit":"宽度单位"},"stylescombo":{"label":"样式","panelTitle":"样式","panelTitle1":"块级元素样式","panelTitle2":"内联元素样式","panelTitle3":"对象元素样式"},"specialchar":{"options":"特殊符号选项","title":"选择特殊符号","toolbar":"插入特殊符号"},"sourcedialog":{"toolbar":"源码","title":"源码"},"sourcearea":{"toolbar":"源码"},"showblocks":{"toolbar":"显示区块"},"removeformat":{"toolbar":"清除格式"},"pastetext":{"button":"粘贴为无格式文本","title":"粘贴为无格式文本"},"pastefromword":{"confirmCleanup":"您要粘贴的内容好像是来自 MS Word，是否要清除 MS Word 格式后再粘贴？","error":"由于内部错误无法清理要粘贴的数据","title":"从 MS Word 粘贴","toolbar":"从 MS Word 粘贴"},"maximize":{"maximize":"全屏","minimize":"最小化"},"magicline":{"title":"在这插入段落"},"list":{"bulletedlist":"项目列表","numberedlist":"编号列表"},"language":{"button":"设置语言","remove":"移除语言"},"justify":{"block":"两端对齐","center":"居中","left":"左对齐","right":"右对齐"},"indent":{"indent":"增加缩进量","outdent":"减少缩进量"},"image2":{"alt":"替换文本","btnUpload":"上传到服务器","captioned":"带标题图像","captionPlaceholder":"标题","infoTab":"图像信息","lockRatio":"锁定比例","menu":"图像属性","pathName":"图像","pathNameCaption":"标题","resetSize":"原始尺寸","resizer":"点击并拖拽以改变尺寸","title":"图像属性","uploadTab":"上传","urlMissing":"缺少图像源文件地址"},"horizontalrule":{"toolbar":"插入水平线"},"format":{"label":"格式","panelTitle":"格式","tag_address":"地址","tag_div":"段落(DIV)","tag_h1":"标题 1","tag_h2":"标题 2","tag_h3":"标题 3","tag_h4":"标题 4","tag_h5":"标题 5","tag_h6":"标题 6","tag_p":"普通","tag_pre":"已编排格式"},"elementspath":{"eleLabel":"元素路径","eleTitle":"%1 元素"},"contextmenu":{"options":"快捷菜单选项"},"clipboard":{"copy":"复制","copyError":"您的浏览器安全设置不允许编辑器自动执行复制操作，请使用键盘快捷键(Ctrl/Cmd+C)来完成。","cut":"剪切","cutError":"您的浏览器安全设置不允许编辑器自动执行剪切操作，请使用键盘快捷键(Ctrl/Cmd+X)来完成。","paste":"粘贴","pasteArea":"粘贴区域","pasteMsg":"请使用键盘快捷键(<STRONG>Ctrl/Cmd+V</STRONG>)把内容粘贴到下面的方框里，再按 <STRONG>确定</STRONG>","securityMsg":"因为您的浏览器的安全设置原因，本编辑器不能直接访问您的剪贴板内容，你需要在本窗口重新粘贴一次。","title":"粘贴"},"button":{"selectedLabel":"已选中 %1 项"},"blockquote":{"toolbar":"块引用"},"basicstyles":{"bold":"加粗","italic":"倾斜","strike":"删除线","subscript":"下标","superscript":"上标","underline":"下划线"},"about":{"copy":"版权所有 &copy; $1。<br />保留所有权利。","dlgTitle":"关于 CKEditor","help":"访问 $1 以获取帮助。","moreInfo":"相关授权许可信息请访问我们的网站：","title":"关于 CKEditor","userGuide":"CKEditor 用户向导"},"editor":"所见即所得编辑器","editorPanel":"所见即所得编辑器面板","common":{"editorHelp":"按 ALT+0 获得帮助","browseServer":"浏览服务器","url":"URL","protocol":"协议","upload":"上传","uploadSubmit":"上传到服务器","image":"图像","flash":"Flash","form":"表单","checkbox":"复选框","radio":"单选按钮","textField":"单行文本","textarea":"多行文本","hiddenField":"隐藏域","button":"按钮","select":"列表/菜单","imageButton":"图像按钮","notSet":"<没有设置>","id":"ID","name":"名称","langDir":"语言方向","langDirLtr":"从左到右 (LTR)","langDirRtl":"从右到左 (RTL)","langCode":"语言代码","longDescr":"详细说明 URL","cssClass":"样式类名称","advisoryTitle":"标题","cssStyle":"行内样式","ok":"确定","cancel":"取消","close":"关闭","preview":"预览","resize":"拖拽以改变大小","generalTab":"常规","advancedTab":"高级","validateNumberFailed":"需要输入数字格式","confirmNewPage":"当前文档内容未保存，是否确认新建文档？","confirmCancel":"部分修改尚未保存，是否确认关闭对话框？","options":"选项","target":"目标窗口","targetNew":"新窗口 (_blank)","targetTop":"整页 (_top)","targetSelf":"本窗口 (_self)","targetParent":"父窗口 (_parent)","langDirLTR":"从左到右 (LTR)","langDirRTL":"从右到左 (RTL)","styles":"样式","cssClasses":"样式类","width":"宽度","height":"高度","align":"对齐方式","alignLeft":"左对齐","alignRight":"右对齐","alignCenter":"居中","alignJustify":"两端对齐","alignTop":"顶端","alignMiddle":"居中","alignBottom":"底部","alignNone":"无","invalidValue":"无效的值。","invalidHeight":"高度必须为数字格式","invalidWidth":"宽度必须为数字格式","invalidCssLength":"此“%1”字段的值必须为正数，可以包含或不包含一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)","invalidHtmlLength":"此“%1”字段的值必须为正数，可以包含或不包含一个有效的 HTML 长度单位(px 或 %)","invalidInlineStyle":"内联样式必须为格式是以分号分隔的一个或多个“属性名 : 属性值”。","cssLengthTooltip":"输入一个表示像素值的数字，或加上一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)。","unavailable":"%1<span class=\"cke_accessibility\">，不可用</span>"}};
\ No newline at end of file
+CKEDITOR.lang['zh-cn']={"widget":{"move":"点击并拖拽以移动"},"undo":{"redo":"重做","undo":"撤消"},"toolbar":{"toolbarCollapse":"折叠工具栏","toolbarExpand":"展开工具栏","toolbarGroups":{"document":"文档","clipboard":"剪贴板/撤销","editing":"编辑","forms":"表单","basicstyles":"基本格式","paragraph":"段落","links":"链接","insert":"插入","styles":"样式","colors":"颜色","tools":"工具"},"toolbars":"工具栏"},"table":{"border":"边框","caption":"标题","cell":{"menu":"单元格","insertBefore":"在左侧插入单元格","insertAfter":"在右侧插入单元格","deleteCell":"删除单元格","merge":"合并单元格","mergeRight":"向右合并单元格","mergeDown":"向下合并单元格","splitHorizontal":"水平拆分单元格","splitVertical":"垂直拆分单元格","title":"单元格属性","cellType":"单元格类型","rowSpan":"纵跨行数","colSpan":"横跨列数","wordWrap":"自动换行","hAlign":"水平对齐","vAlign":"垂直对齐","alignBaseline":"基线","bgColor":"背景颜色","borderColor":"边框颜色","data":"数据","header":"表头","yes":"是","no":"否","invalidWidth":"单元格宽度必须为数字格式","invalidHeight":"单元格高度必须为数字格式","invalidRowSpan":"行跨度必须为整数格式","invalidColSpan":"列跨度必须为整数格式","chooseColor":"选择"},"cellPad":"边距","cellSpace":"间距","column":{"menu":"列","insertBefore":"在左侧插入列","insertAfter":"在右侧插入列","deleteColumn":"删除列"},"columns":"列数","deleteTable":"删除表格","headers":"标题单元格","headersBoth":"第一列和第一行","headersColumn":"第一列","headersNone":"无","headersRow":"第一行","invalidBorder":"边框粗细必须为数字格式","invalidCellPadding":"单元格填充必须为数字格式","invalidCellSpacing":"单元格间距必须为数字格式","invalidCols":"指定的行数必须大于零","invalidHeight":"表格高度必须为数字格式","invalidRows":"指定的列数必须大于零","invalidWidth":"表格宽度必须为数字格式","menu":"表格属性","row":{"menu":"行","insertBefore":"在上方插入行","insertAfter":"在下方插入行","deleteRow":"删除行"},"rows":"行数","summary":"摘要","title":"表格属性","toolbar":"表格","widthPc":"百分比","widthPx":"像素","widthUnit":"宽度单位"},"stylescombo":{"label":"样式","panelTitle":"样式","panelTitle1":"块级元素样式","panelTitle2":"内联元素样式","panelTitle3":"对象元素样式"},"specialchar":{"options":"特殊符号选项","title":"选择特殊符号","toolbar":"插入特殊符号"},"sourcedialog":{"toolbar":"源码","title":"源码"},"sourcearea":{"toolbar":"源码"},"showblocks":{"toolbar":"显示区块"},"removeformat":{"toolbar":"清除格式"},"pastetext":{"button":"粘贴为无格式文本","title":"粘贴为无格式文本"},"pastefromword":{"confirmCleanup":"您要粘贴的内容好像是来自 MS Word，是否要清除 MS Word 格式后再粘贴？","error":"由于内部错误无法清理要粘贴的数据","title":"从 MS Word 粘贴","toolbar":"从 MS Word 粘贴"},"maximize":{"maximize":"全屏","minimize":"最小化"},"magicline":{"title":"在这插入段落"},"list":{"bulletedlist":"项目列表","numberedlist":"编号列表"},"language":{"button":"设置语言","remove":"移除语言"},"justify":{"block":"两端对齐","center":"居中","left":"左对齐","right":"右对齐"},"indent":{"indent":"增加缩进量","outdent":"减少缩进量"},"image2":{"alt":"替换文本","btnUpload":"上传到服务器","captioned":"带标题图像","captionPlaceholder":"标题","infoTab":"图像信息","lockRatio":"锁定比例","menu":"图像属性","pathName":"图像","pathNameCaption":"标题","resetSize":"原始尺寸","resizer":"点击并拖拽以改变尺寸","title":"图像属性","uploadTab":"上传","urlMissing":"缺少图像源文件地址"},"horizontalrule":{"toolbar":"插入水平线"},"format":{"label":"格式","panelTitle":"格式","tag_address":"地址","tag_div":"段落(DIV)","tag_h1":"标题 1","tag_h2":"标题 2","tag_h3":"标题 3","tag_h4":"标题 4","tag_h5":"标题 5","tag_h6":"标题 6","tag_p":"普通","tag_pre":"已编排格式"},"elementspath":{"eleLabel":"元素路径","eleTitle":"%1 元素"},"contextmenu":{"options":"快捷菜单选项"},"clipboard":{"copy":"复制","copyError":"您的浏览器安全设置不允许编辑器自动执行复制操作，请使用键盘快捷键(Ctrl/Cmd+C)来完成。","cut":"剪切","cutError":"您的浏览器安全设置不允许编辑器自动执行剪切操作，请使用键盘快捷键(Ctrl/Cmd+X)来完成。","paste":"粘贴","pasteArea":"粘贴区域","pasteMsg":"请使用键盘快捷键(<STRONG>Ctrl/Cmd+V</STRONG>)把内容粘贴到下面的方框里，再按 <STRONG>确定</STRONG>","securityMsg":"因为您的浏览器的安全设置原因，本编辑器不能直接访问您的剪贴板内容，你需要在本窗口重新粘贴一次。","title":"粘贴"},"button":{"selectedLabel":"已选中 %1 项"},"blockquote":{"toolbar":"块引用"},"basicstyles":{"bold":"加粗","italic":"倾斜","strike":"删除线","subscript":"下标","superscript":"上标","underline":"下划线"},"about":{"copy":"版权所有 &copy; $1。<br />保留所有权利。","dlgTitle":"关于 CKEditor","help":"访问 $1 以获取帮助。","moreInfo":"相关授权许可信息请访问我们的网站：","title":"关于 CKEditor","userGuide":"CKEditor 用户向导"},"editor":"所见即所得编辑器","editorPanel":"所见即所得编辑器面板","common":{"editorHelp":"按 ALT+0 获得帮助","browseServer":"浏览服务器","url":"URL","protocol":"协议","upload":"上传","uploadSubmit":"上传到服务器","image":"图像","flash":"Flash","form":"表单","checkbox":"复选框","radio":"单选按钮","textField":"单行文本","textarea":"多行文本","hiddenField":"隐藏域","button":"按钮","select":"列表/菜单","imageButton":"图像按钮","notSet":"<没有设置>","id":"ID","name":"名称","langDir":"语言方向","langDirLtr":"从左到右 (LTR)","langDirRtl":"从右到左 (RTL)","langCode":"语言代码","longDescr":"详细说明 URL","cssClass":"样式类名称","advisoryTitle":"标题","cssStyle":"行内样式","ok":"确定","cancel":"取消","close":"关闭","preview":"预览","resize":"拖拽以改变大小","generalTab":"常规","advancedTab":"高级","validateNumberFailed":"需要输入数字格式","confirmNewPage":"当前文档内容未保存，是否确认新建文档？","confirmCancel":"部分修改尚未保存，是否确认关闭对话框？","options":"选项","target":"目标窗口","targetNew":"新窗口 (_blank)","targetTop":"整页 (_top)","targetSelf":"本窗口 (_self)","targetParent":"父窗口 (_parent)","langDirLTR":"从左到右 (LTR)","langDirRTL":"从右到左 (RTL)","styles":"样式","cssClasses":"样式类","width":"宽度","height":"高度","align":"对齐方式","alignLeft":"左对齐","alignRight":"右对齐","alignCenter":"居中","alignJustify":"两端对齐","alignTop":"顶端","alignMiddle":"居中","alignBottom":"底部","alignNone":"无","invalidValue":"无效的值。","invalidHeight":"高度必须为数字格式","invalidWidth":"宽度必须为数字格式","invalidCssLength":"此“%1”字段的值必须为正数，可以包含或不包含一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)","invalidHtmlLength":"此“%1”字段的值必须为正数，可以包含或不包含一个有效的 HTML 长度单位(px 或 %)","invalidInlineStyle":"内联样式必须为格式是以分号分隔的一个或多个“属性名 : 属性值”。","cssLengthTooltip":"输入一个表示像素值的数字，或加上一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)。","unavailable":"%1<span class=\"cke_accessibility\">，不可用</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/lang/zh.js b/core/assets/vendor/ckeditor/lang/zh.js
index 14506cd..598790a 100644
--- a/core/assets/vendor/ckeditor/lang/zh.js
+++ b/core/assets/vendor/ckeditor/lang/zh.js
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['zh']={"widget":{"move":"拖曳以移動","label":"%1 小工具"},"undo":{"redo":"取消復原","undo":"復原"},"toolbar":{"toolbarCollapse":"摺疊工具列","toolbarExpand":"展開工具列","toolbarGroups":{"document":"文件","clipboard":"剪貼簿/復原","editing":"編輯選項","forms":"格式","basicstyles":"基本樣式","paragraph":"段落","links":"連結","insert":"插入","styles":"樣式","colors":"顏色","tools":"工具"},"toolbars":"編輯器工具列"},"table":{"border":"框線大小","caption":"標題","cell":{"menu":"儲存格","insertBefore":"前方插入儲存格","insertAfter":"後方插入儲存格","deleteCell":"刪除儲存格","merge":"合併儲存格","mergeRight":"向右合併","mergeDown":"向下合併","splitHorizontal":"水平分割儲存格","splitVertical":"垂直分割儲存格","title":"儲存格屬性","cellType":"儲存格類型","rowSpan":"列全長","colSpan":"行全長","wordWrap":"自動斷行","hAlign":"水平對齊","vAlign":"垂直對齊","alignBaseline":"基準線","bgColor":"背景顏色","borderColor":"框線顏色","data":"資料","header":"頁首","yes":"是","no":"否","invalidWidth":"儲存格寬度必須為數字。","invalidHeight":"儲存格高度必須為數字。","invalidRowSpan":"列全長必須是整數。","invalidColSpan":"行全長必須是整數。","chooseColor":"選擇"},"cellPad":"儲存格邊距","cellSpace":"儲存格間距","column":{"menu":"行","insertBefore":"左方插入行","insertAfter":"右方插入行","deleteColumn":"刪除行"},"columns":"行","deleteTable":"刪除表格","headers":"頁首","headersBoth":"同時","headersColumn":"第一行","headersNone":"無","headersRow":"第一列","invalidBorder":"框線大小必須是整數。","invalidCellPadding":"儲存格邊距必須為正數。","invalidCellSpacing":"儲存格間距必須為正數。","invalidCols":"行數須為大於 0 的正整數。","invalidHeight":"表格高度必須為數字。","invalidRows":"列數須為大於 0 的正整數。","invalidWidth":"表格寬度必須為數字。","menu":"表格屬性","row":{"menu":"列","insertBefore":"上方插入列","insertAfter":"下方插入列","deleteRow":"刪除列"},"rows":"列","summary":"總結","title":"表格屬性","toolbar":"表格","widthPc":"百分比","widthPx":"像素","widthUnit":"寬度單位"},"stylescombo":{"label":"樣式","panelTitle":"格式化樣式","panelTitle1":"區塊樣式","panelTitle2":"內嵌樣式","panelTitle3":"物件樣式"},"specialchar":{"options":"特殊字元選項","title":"選取特殊字元","toolbar":"插入特殊字元"},"sourcedialog":{"toolbar":"原始碼","title":"原始碼"},"sourcearea":{"toolbar":"原始碼"},"showblocks":{"toolbar":"顯示區塊"},"removeformat":{"toolbar":"移除格式"},"pastetext":{"button":"貼成純文字","title":"貼成純文字"},"pastefromword":{"confirmCleanup":"您想貼上的文字似乎是自 Word 複製而來，請問您是否要先清除 Word 的格式後再行貼上？","error":"由於發生內部錯誤，無法清除清除 Word 的格式。","title":"自 Word 貼上","toolbar":"自 Word 貼上"},"maximize":{"maximize":"最大化","minimize":"最小化"},"magicline":{"title":"在此插入段落"},"list":{"bulletedlist":"插入/移除項目符號清單","numberedlist":"插入/移除編號清單清單"},"language":{"button":"設定語言","remove":"移除語言"},"justify":{"block":"左右對齊","center":"置中","left":"靠左對齊","right":"靠右對齊"},"indent":{"indent":"增加縮排","outdent":"減少縮排"},"image2":{"alt":"替代文字","btnUpload":"傳送至伺服器","captioned":"已加標題之圖片","captionPlaceholder":"標題","infoTab":"影像資訊","lockRatio":"固定比例","menu":"影像屬性","pathName":"圖片","pathNameCaption":"標題","resetSize":"重設大小","resizer":"拖曳以改變大小","title":"影像屬性","uploadTab":"上傳","urlMissing":"遺失圖片來源之 URL "},"horizontalrule":{"toolbar":"插入水平線"},"format":{"label":"格式","panelTitle":"段落格式","tag_address":"地址","tag_div":"標準 (DIV)","tag_h1":"標題 1","tag_h2":"標題 2","tag_h3":"標題 3","tag_h4":"標題 4","tag_h5":"標題 5","tag_h6":"標題 6","tag_p":"標準","tag_pre":"格式設定"},"elementspath":{"eleLabel":"元件路徑","eleTitle":"%1 個元件"},"contextmenu":{"options":"內容功能表選項"},"clipboard":{"copy":"複製","copyError":"瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用鍵盤快捷鍵 (Ctrl/Cmd+C) 複製。","cut":"剪下","cutError":"瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用鏐盤快捷鍵 (Ctrl/Cmd+X) 剪下。","paste":"貼上","pasteArea":"貼上區","pasteMsg":"請使用鍵盤快捷鍵 (<strong>Ctrl/Cmd+V</strong>) 貼到下方區域中並按下「確定」。","securityMsg":"因為瀏覽器的安全性設定，本編輯器無法直接存取您的剪貼簿資料，請您自行在本視窗進行貼上動作。","title":"貼上"},"button":{"selectedLabel":"%1 (已選取)"},"blockquote":{"toolbar":"引用段落"},"basicstyles":{"bold":"粗體","italic":"斜體","strike":"刪除線","subscript":"下標","superscript":"上標","underline":"底線"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"關於 CKEditor","help":"檢閱 $1 尋求幫助。","moreInfo":"關於授權資訊，請參閱我們的網站：","title":"關於 CKEditor","userGuide":"CKEditor 使用者手冊"},"editor":"RTF 編輯器","editorPanel":"RTF 編輯器面板","common":{"editorHelp":"按下 ALT 0 取得說明。","browseServer":"瀏覽伺服器","url":"URL","protocol":"通訊協定","upload":"上傳","uploadSubmit":"傳送至伺服器","image":"圖像","flash":"Flash","form":"表格","checkbox":"核取方塊","radio":"選項按鈕","textField":"文字欄位","textarea":"文字區域","hiddenField":"隱藏欄位","button":"按鈕","select":"選取欄位","imageButton":"影像按鈕","notSet":"<未設定>","id":"ID","name":"名稱","langDir":"語言方向","langDirLtr":"由左至右 (LTR)","langDirRtl":"由右至左 (RTL)","langCode":"語言代碼","longDescr":"完整描述 URL","cssClass":"樣式表類別","advisoryTitle":"標題","cssStyle":"樣式","ok":"確定","cancel":"取消","close":"關閉","preview":"預覽","resize":"調整大小","generalTab":"一般","advancedTab":"進階","validateNumberFailed":"此值不是數值。","confirmNewPage":"現存的修改尚未儲存，要開新檔案？","confirmCancel":"部份選項尚未儲存，要關閉對話框？","options":"選項","target":"目標","targetNew":"開新視窗 (_blank)","targetTop":"最上層視窗 (_top)","targetSelf":"相同視窗 (_self)","targetParent":"父視窗 (_parent)","langDirLTR":"由左至右 (LTR)","langDirRTL":"由右至左 (RTL)","styles":"樣式","cssClasses":"樣式表類別","width":"寬度","height":"高度","align":"對齊方式","alignLeft":"靠左對齊","alignRight":"靠右對齊","alignCenter":"置中對齊","alignJustify":"左右對齊","alignTop":"頂端","alignMiddle":"中間對齊","alignBottom":"底端","alignNone":"無","invalidValue":"無效值。","invalidHeight":"高度必須為數字。","invalidWidth":"寬度必須為數字。","invalidCssLength":"「%1」的值應為正數，並可包含有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。","invalidHtmlLength":"「%1」的值應為正數，並可包含有效的 HTML 單位 (px 或 %)。","invalidInlineStyle":"行內樣式的值應包含一個以上的變數值組，其格式如「名稱:值」，並以分號區隔之。","cssLengthTooltip":"請輸入數值，單位是像素或有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。","unavailable":"%1<span class=\"cke_accessibility\">，無法使用</span>"}};
\ No newline at end of file
+CKEDITOR.lang['zh']={"widget":{"move":"拖曳以移動"},"undo":{"redo":"取消復原","undo":"復原"},"toolbar":{"toolbarCollapse":"摺疊工具列","toolbarExpand":"展開工具列","toolbarGroups":{"document":"文件","clipboard":"剪貼簿/復原","editing":"編輯選項","forms":"格式","basicstyles":"基本樣式","paragraph":"段落","links":"連結","insert":"插入","styles":"樣式","colors":"顏色","tools":"工具"},"toolbars":"編輯器工具列"},"table":{"border":"框線大小","caption":"標題","cell":{"menu":"儲存格","insertBefore":"前方插入儲存格","insertAfter":"後方插入儲存格","deleteCell":"刪除儲存格","merge":"合併儲存格","mergeRight":"向右合併","mergeDown":"向下合併","splitHorizontal":"水平分割儲存格","splitVertical":"垂直分割儲存格","title":"儲存格屬性","cellType":"儲存格類型","rowSpan":"列全長","colSpan":"行全長","wordWrap":"自動斷行","hAlign":"水平對齊","vAlign":"垂直對齊","alignBaseline":"基準線","bgColor":"背景顏色","borderColor":"框線顏色","data":"資料","header":"頁首","yes":"是","no":"否","invalidWidth":"儲存格寬度必須為數字。","invalidHeight":"儲存格高度必須為數字。","invalidRowSpan":"列全長必須是整數。","invalidColSpan":"行全長必須是整數。","chooseColor":"選擇"},"cellPad":"儲存格邊距","cellSpace":"儲存格間距","column":{"menu":"行","insertBefore":"左方插入行","insertAfter":"右方插入行","deleteColumn":"刪除行"},"columns":"行","deleteTable":"刪除表格","headers":"頁首","headersBoth":"同時","headersColumn":"第一行","headersNone":"無","headersRow":"第一列","invalidBorder":"框線大小必須是整數。","invalidCellPadding":"儲存格邊距必須為正數。","invalidCellSpacing":"儲存格間距必須為正數。","invalidCols":"行數須為大於 0 的正整數。","invalidHeight":"表格高度必須為數字。","invalidRows":"列數須為大於 0 的正整數。","invalidWidth":"表格寬度必須為數字。","menu":"表格屬性","row":{"menu":"列","insertBefore":"上方插入列","insertAfter":"下方插入列","deleteRow":"刪除列"},"rows":"列","summary":"總結","title":"表格屬性","toolbar":"表格","widthPc":"百分比","widthPx":"像素","widthUnit":"寬度單位"},"stylescombo":{"label":"樣式","panelTitle":"格式化樣式","panelTitle1":"區塊樣式","panelTitle2":"內嵌樣式","panelTitle3":"物件樣式"},"specialchar":{"options":"特殊字元選項","title":"選取特殊字元","toolbar":"插入特殊字元"},"sourcedialog":{"toolbar":"原始碼","title":"原始碼"},"sourcearea":{"toolbar":"原始碼"},"showblocks":{"toolbar":"顯示區塊"},"removeformat":{"toolbar":"移除格式"},"pastetext":{"button":"貼成純文字","title":"貼成純文字"},"pastefromword":{"confirmCleanup":"您想貼上的文字似乎是自 Word 複製而來，請問您是否要先清除 Word 的格式後再行貼上？","error":"由於發生內部錯誤，無法清除清除 Word 的格式。","title":"自 Word 貼上","toolbar":"自 Word 貼上"},"maximize":{"maximize":"最大化","minimize":"最小化"},"magicline":{"title":"在此插入段落"},"list":{"bulletedlist":"插入/移除項目符號清單","numberedlist":"插入/移除編號清單清單"},"language":{"button":"設定語言","remove":"移除語言"},"justify":{"block":"左右對齊","center":"置中","left":"靠左對齊","right":"靠右對齊"},"indent":{"indent":"增加縮排","outdent":"減少縮排"},"image2":{"alt":"替代文字","btnUpload":"傳送至伺服器","captioned":"已加標題之圖片","captionPlaceholder":"標題","infoTab":"影像資訊","lockRatio":"固定比例","menu":"影像屬性","pathName":"圖片","pathNameCaption":"標題","resetSize":"重設大小","resizer":"拖曳以改變大小","title":"影像屬性","uploadTab":"上傳","urlMissing":"遺失圖片來源之 URL "},"horizontalrule":{"toolbar":"插入水平線"},"format":{"label":"格式","panelTitle":"段落格式","tag_address":"地址","tag_div":"標準 (DIV)","tag_h1":"標題 1","tag_h2":"標題 2","tag_h3":"標題 3","tag_h4":"標題 4","tag_h5":"標題 5","tag_h6":"標題 6","tag_p":"標準","tag_pre":"格式設定"},"elementspath":{"eleLabel":"元件路徑","eleTitle":"%1 個元件"},"contextmenu":{"options":"內容功能表選項"},"clipboard":{"copy":"複製","copyError":"瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用鍵盤快捷鍵 (Ctrl/Cmd+C) 複製。","cut":"剪下","cutError":"瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用鏐盤快捷鍵 (Ctrl/Cmd+X) 剪下。","paste":"貼上","pasteArea":"貼上區","pasteMsg":"請使用鍵盤快捷鍵 (<strong>Ctrl/Cmd+V</strong>) 貼到下方區域中並按下「確定」。","securityMsg":"因為瀏覽器的安全性設定，本編輯器無法直接存取您的剪貼簿資料，請您自行在本視窗進行貼上動作。","title":"貼上"},"button":{"selectedLabel":"%1 (已選取)"},"blockquote":{"toolbar":"引用段落"},"basicstyles":{"bold":"粗體","italic":"斜體","strike":"刪除線","subscript":"下標","superscript":"上標","underline":"底線"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"關於 CKEditor","help":"檢閱 $1 尋求幫助。","moreInfo":"關於授權資訊，請參閱我們的網站：","title":"關於 CKEditor","userGuide":"CKEditor 使用者手冊"},"editor":"RTF 編輯器","editorPanel":"RTF 編輯器面板","common":{"editorHelp":"按下 ALT 0 取得說明。","browseServer":"瀏覽伺服器","url":"URL","protocol":"通訊協定","upload":"上傳","uploadSubmit":"傳送至伺服器","image":"圖像","flash":"Flash","form":"表格","checkbox":"核取方塊","radio":"選項按鈕","textField":"文字欄位","textarea":"文字區域","hiddenField":"隱藏欄位","button":"按鈕","select":"選取欄位","imageButton":"影像按鈕","notSet":"<未設定>","id":"ID","name":"名稱","langDir":"語言方向","langDirLtr":"由左至右 (LTR)","langDirRtl":"由右至左 (RTL)","langCode":"語言代碼","longDescr":"完整描述 URL","cssClass":"樣式表類別","advisoryTitle":"標題","cssStyle":"樣式","ok":"確定","cancel":"取消","close":"關閉","preview":"預覽","resize":"調整大小","generalTab":"一般","advancedTab":"進階","validateNumberFailed":"此值不是數值。","confirmNewPage":"現存的修改尚未儲存，要開新檔案？","confirmCancel":"部份選項尚未儲存，要關閉對話框？","options":"選項","target":"目標","targetNew":"開新視窗 (_blank)","targetTop":"最上層視窗 (_top)","targetSelf":"相同視窗 (_self)","targetParent":"父視窗 (_parent)","langDirLTR":"由左至右 (LTR)","langDirRTL":"由右至左 (RTL)","styles":"樣式","cssClasses":"樣式表類別","width":"寬度","height":"高度","align":"對齊方式","alignLeft":"靠左對齊","alignRight":"靠右對齊","alignCenter":"置中對齊","alignJustify":"左右對齊","alignTop":"頂端","alignMiddle":"中間對齊","alignBottom":"底端","alignNone":"無","invalidValue":"無效值。","invalidHeight":"高度必須為數字。","invalidWidth":"寬度必須為數字。","invalidCssLength":"「%1」的值應為正數，並可包含有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。","invalidHtmlLength":"「%1」的值應為正數，並可包含有效的 HTML 單位 (px 或 %)。","invalidInlineStyle":"行內樣式的值應包含一個以上的變數值組，其格式如「名稱:值」，並以分號區隔之。","cssLengthTooltip":"請輸入數值，單位是像素或有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。","unavailable":"%1<span class=\"cke_accessibility\">，無法使用</span>"}};
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js b/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
index 83816ce..8a734d5 100644
--- a/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
+++ b/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
@@ -2,11 +2,11 @@
  Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.plugins.setLang("a11yhelp","fr",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide. Pour fermer cette fenêtre, appuyez sur la touche Échap.",legend:[{name:"Général",items:[{name:"Barre d'outils de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers les groupes suivant ou précédent de la barre d'outil avec les touches MAJ et MAJ+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d'outils avec les touches FLÈCHE DROITE et FLÈCHE GAUCHE. Appuyer sur la barre d'espace ou la touche ENTRÉE pour activer le bouton de barre d'outils."},
-{name:"Fenêtre de l'éditeur",legend:"Dans une boîte de dialogue, appuyer sur Tab pour passer à l'élément suivant, appuyer sur Maj+Tab pour passer à l'élément précédent, appuyer sur Entrée pour valider, appuyer sur Échap pour annuler. Quand une boîte de dialogue possède des onglets, la liste peut être atteinte avec Alt+F10 ou avec Tab. Dans la liste des onglets, se déplacer vers le suivant et le précédent avec les flèches Droite et Gauche respectivement."},{name:"Menu contextuel de l'éditeur",legend:"Appuyer sur ${contextMenu} ou sur la touche Menu pour ouvrir le menu contextuel. Se déplacer ensuite vers l'option suivante du menu avec la touche Tab ou la flèche Bas. Se déplacer vers l'option précédente avec le raccourci Maj+Tab ou la flèche Haut. appuyer sur la Barre d'espace ou la touche Entrée pour sélectionner l'option du menu. Appuyer sur la Barre d'espace, la touche Entrée ou la flèche Droite pour ouvrir le sous-menu de l'option sélectionnée. Revenir à l'élément de menu parent avec la touche Échap ou la flèche Gauche. Fermer le menu contextuel avec Échap."},
-{name:"Zone de liste de l'éditeur",legend:"Dans la liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec la touche Tab ou la flèche Bas. Se déplacer vers l'élément précédent de la liste avec le raccourci Maj+Tab ou la flèche Haut. Appuyer sur la Barre d'espace ou sur Entrée pour sélectionner l'option dans la liste. Appuyer sur Échap pour fermer le menu déroulant."},{name:"Barre du chemin d'éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre du fil d'Ariane des éléments. Se déplacer vers le bouton d'élément suivant avec la touche Tab ou la flèche Droite. Se déplacer vers le bouton d'élément précédent avec le raccourci Maj+Tab ou la flèche Gauche. Appuyer sur la Barre d'espace ou sur Entrée pour sélectionner l'élément dans l'éditeur."}]},
-{name:"Commandes",items:[{name:" Annuler la commande",legend:"Appuyer sur ${undo}"},{name:"Commande restaurer",legend:"Appuyer sur ${redo}"},{name:" Commande gras",legend:"Appuyer sur ${bold}"},{name:" Commande italique",legend:"Appuyer sur ${italic}"},{name:" Commande souligné",legend:"Appuyer sur ${underline}"},{name:" Commande lien",legend:"Appuyer sur ${link}"},{name:" Commande enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Commande d'accès à l'élément sélectionnable précédent",
-legend:"Appuyer sur ${accessNextSpace} pour accéder à l'élément sélectionnable inatteignable le plus proche avant le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables précédents."},{name:"Commande d'accès à l'élément sélectionnable suivant",legend:"Appuyer sur ${accessNextSpace} pour accéder à l'élément sélectionnable inatteignable le plus proche après le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables suivants."},
-{name:" Aide sur l'accessibilité",legend:"Appuyer sur ${a11yHelp}"}]}],backspace:"Retour arrière",tab:"Tabulation",enter:"Entrée",shift:"Majuscule",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Verr. Maj.",escape:"Échap",pageUp:"Page supérieure",pageDown:"Page suivante",end:"Fin",home:"Origine",leftArrow:"Flèche gauche",upArrow:"Flèche haut",rightArrow:"Flèche droite",downArrow:"Flèche basse",insert:"Inser","delete":"Supprimer",leftWindowKey:"Touche Windows gauche",rightWindowKey:"Touche Windows droite",
-selectKey:"Touche Sélectionner",numpad0:"0 du pavé numérique",numpad1:"1 du pavé numérique",numpad2:"2 du pavé numérique",numpad3:"3 du pavé numérique",numpad4:"4 du pavé numérique",numpad5:"5 du pavé numérique",numpad6:"6 du pavé numérique",numpad7:"7 du pavé numérique",numpad8:"Pavé numérique 8",numpad9:"9 du pavé numérique",multiply:"Multiplier",add:"Plus",subtract:"Moins",decimalPoint:"Point décimal",divide:"Diviser",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",
-f11:"F11",f12:"F12",numLock:"Verr. Num.",scrollLock:"Arrêt défil.",semiColon:"Point-virgule",equalSign:"Signe égal",comma:"Virgule",dash:"Tiret",period:"Point",forwardSlash:"Barre oblique",graveAccent:"Accent grave",openBracket:"Parenthèse ouvrante",backSlash:"Barre oblique inverse",closeBracket:"Parenthèse fermante",singleQuote:"Apostrophe"});
\ No newline at end of file
+CKEDITOR.plugins.setLang("a11yhelp","fr",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide. Pour fermer ce dialogue, appuyez sur la touche ÉCHAP (Echappement).",legend:[{name:"Général",items:[{name:"Barre d'outils de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers les groupes suivant ou précédent de la barre d'outil avec les touches MAJ et MAJ+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d'outils avec les touches FLÈCHE DROITE et FLÈCHE GAUCHE. Appuyer sur la barre d'espace ou la touche ENTRÉE pour activer le bouton de barre d'outils."},
+{name:"Dialogue de l'éditeur",legend:"Dans un dialogue, appuyer sur TAB pour aller à l'élément suivant du dialogue, appuyer sur MAJ+TAB pour aller à l'élément précédent du dialogue, appuyer sur ECHAP pour annuler le dialogue. Quand un dialogue a de multiples onglets, on peut accéder à la liste des onglets avec ALT+F10 ou avec TAB. Dans la liste des onglets, se déplacer vers le suivant ou le précédent avec les FLECHES DROITE et GAUCHE respectivement."},{name:"Menu contextuel de l'éditeur",legend:"Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l'option suivante du menu avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l'option précédente avec les touches  MAJ+TAB ou FLÈCHE HAUT. appuyer sur la BARRE D'ESPACE ou la touche ENTRÉE pour sélectionner l'option du menu. Oovrir le sous-menu de l'option courante avec la BARRE D'ESPACE ou les touches ENTRÉE ou FLÈCHE DROITE. Revenir à l'élément de menu parent avec les touches ÉCHAP ou FLÈCHE GAUCHE. Fermer le menu contextuel avec ÉCHAP."},
+{name:"Zone de liste de l'éditeur",legend:"Dans la liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l'élément précédent de la liste avec les touches MAJ+TAB ou FLÈCHE HAUT. Appuyer sur la BARRE D'ESPACE ou sur ENTRÉE pour sélectionner l'option dans la liste. Appuyer sur ÉCHAP pour fermer le menu déroulant."},{name:"Barre d'emplacement des éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d'emplacement des éléments de l'éditeur. Se déplacer vers le bouton d'élément suivant avec les touches TAB ou FLÈCHE DROITE. Se déplacer vers le bouton d'élément précédent avec les touches MAJ+TAB ou FLÈCHE GAUCHE. Appuyer sur la BARRE D'ESPACE ou sur ENTRÉE pour sélectionner l'élément dans l'éditeur."}]},
+{name:"Commandes",items:[{name:" Annuler la commande",legend:"Appuyer sur ${undo}"},{name:"Refaire la commande",legend:"Appuyer sur ${redo}"},{name:" Commande gras",legend:"Appuyer sur ${bold}"},{name:" Commande italique",legend:"Appuyer sur ${italic}"},{name:" Commande souligné",legend:"Appuyer sur ${underline}"},{name:" Commande lien",legend:"Appuyer sur ${link}"},{name:" Commande enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Accéder à la précédente commande d'espace de mise au point",
+legend:"Appuyez sur ${accessPreviousSpace} pour accéder à l'espace hors d'atteinte le plus proche avant le caret, par exemple: deux éléments HR adjacents. Répétez la combinaison de touches pour atteindre les espaces de mise au point distants."},{name:"Accès à la prochaine commande de l'espace de mise au point",legend:"Appuyez sur ${accessNextSpace} pour accéder au plus proche espace de mise au point hors d'atteinte après le caret, par exemple: deux éléments HR adjacents. répétez la combinaison de touches pour atteindre les espace de mise au point distants."},
+{name:" Aide Accessibilité",legend:"Appuyer sur ${a11yHelp}"}]}],backspace:"Retour arrière",tab:"Tabulation",enter:"Entrée",shift:"Majuscule",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Verr. Maj.",escape:"Échap",pageUp:"Page supérieure",pageDown:"Page inférieure",end:"Fin",home:"Retour",leftArrow:"Flèche gauche",upArrow:"Flèche haute",rightArrow:"Flèche droite",downArrow:"Flèche basse",insert:"Insertion","delete":"Supprimer",leftWindowKey:"Touche Windows gauche",rightWindowKey:"Touche Windows droite",
+selectKey:"Touche menu",numpad0:"Pavé numérique 0",numpad1:"Pavé numérique 1",numpad2:"Pavé numérique 2",numpad3:"Pavé numérique 3",numpad4:"Pavé numérique 4",numpad5:"Pavé numérique 5",numpad6:"Pavé numérique 6",numpad7:"Pavé numérique 7",numpad8:"Pavé numérique 8",numpad9:"Pavé numérique 9",multiply:"Multiplier",add:"Addition",subtract:"Soustraire",decimalPoint:"Point décimal",divide:"Diviser",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",
+numLock:"Verrouillage numérique",scrollLock:"Arrêt défilement",semiColon:"Point virgule",equalSign:"Signe égal",comma:"Virgule",dash:"Tiret",period:"Point",forwardSlash:"Barre oblique",graveAccent:"Accent grave",openBracket:"Parenthèse ouvrante",backSlash:"Barre oblique inverse",closeBracket:"Parenthèse fermante",singleQuote:"Apostrophe"});
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js b/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
index 1b5b610..620dcbe 100644
--- a/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
+++ b/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
@@ -2,11 +2,11 @@
  Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.plugins.setLang("a11yhelp","pt",{title:"Instruções de acessibilidade",contents:"Conteúdo de ajuda. Use a tecla ESC para fechar esta janela.",legend:[{name:"Geral",items:[{name:"Barra de ferramentas do editor",legend:"Clique em ${toolbarFocus} para navegar na barra de ferramentas. Para navegar entre o grupo da barra de ferramentas anterior e seguinte use TAB e SHIFT+TAB. Para navegar entre o botão da barra de ferramentas seguinte e anterior use a SETA DIREITA ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."},
-{name:"Janela do editor",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu de contexto do editor",legend:"Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com  SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu.  Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. GVá para o item do menu parente  com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC."},
-{name:"Editor de caixa em lista",legend:"Dentro de uma lista, para navegar para o item seguinte da lista use TAB ou SETA PARA BAIXO. Para o item anterior da lista use SHIFT+TAB ou SETA PARA BAIXO. Carregue em ESPAÇO ou ENTER para selecionar a opção lista. Carregue em ESC para fechar a caixa da lista."},{name:"Editor da barra de caminho dos elementos",legend:"Clique em ${elementsPathFocus} para navegar na barra de caminho dos elementos. Para o botão do elemento seguinte use TAB ou SETA DIREITA. para o botão anterior use SHIFT+TAB ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para selecionar o elemento no editor."}]},
-{name:"Comandos",items:[{name:"Comando de anular",legend:"Carregar ${undo}"},{name:"Comando de refazer",legend:"Clique ${redo}"},{name:"Comando de negrito",legend:"Pressione ${bold}"},{name:"Comando de itálico",legend:"Pressione ${italic}"},{name:"Comando de sublinhado",legend:"Pressione ${underline}"},{name:"Comando de hiperligação",legend:"Pressione ${link}"},{name:"Comando de ocultar barra de ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Aceder ao comando espaço de foco anterior",
+CKEDITOR.plugins.setLang("a11yhelp","pt",{title:"Instruções de acessibilidade",contents:"Conteúdo de ajuda. Use a tecla ESC para fechar esta janela.",legend:[{name:"Geral",items:[{name:"Barra de ferramentas do editor",legend:"Clique em ${toolbarFocus} para navegar para a barra de ferramentas. Vá para o grupo da barra de ferramentas anterior e seguinte com TAB e SHIFT+TAB. Vá para o botão da barra de ferramentas anterior com a SETA DIREITA ou ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."},
+{name:"Janela do Editor",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu de Contexto do Editor",legend:"Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com  SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu.  Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. GVá para o item do menu parente  com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC."},
+{name:"Editor de caixa em lista",legend:"Dentro da caixa da lista, vá para o itemda lista seguinte com TAB ou SETA PARA BAIXO. Move Vá parao item da lista anterior com SHIFT+TAB ou SETA PARA BAIXO. Pressione ESPAÇO ou ENTER para selecionar a opção da lista. Pressione ESC para fechar a caisa da lista."},{name:"Caminho Barra Elemento Editor",legend:"Clique em ${elementsPathFocus} para navegar para a barra do caminho dos elementos. Vá para o botão do elemento seguinte com TAB ou SETA DIREITA. Vá para o botão anterior com SHIFT+TAB ou SETA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor."}]},
+{name:"Comandos",items:[{name:"Comando de Anular",legend:"Carregar ${undo}"},{name:"Comando de Refazer",legend:"Pressione ${redo}"},{name:"Comando de Negrito",legend:"Pressione ${bold}"},{name:"Comando de Itálico",legend:"Pressione ${italic}"},{name:"Comando de Sublinhado",legend:"Pressione ${underline}"},{name:"Comando de Hiperligação",legend:"Pressione ${link}"},{name:"Comando de Ocultar Barra de Ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Acesso comando do espaço focus anterior",
 legend:"Clique em ${accessPreviousSpace} para aceder ao espaço do focos inalcançável mais perto antes do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes."},{name:"Acesso comando do espaço focus seguinte",legend:"Pressione ${accessNextSpace} para aceder ao espaço do focos inalcançável mais perto depois do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes."},
 {name:"Ajuda a acessibilidade",legend:"Pressione ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Maiúsculas",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",end:"Fim",home:"Entrada",leftArrow:"Seta esquerda",upArrow:"Seta para cima",rightArrow:"Seta direita",downArrow:"Seta para baixo",insert:"Inserir","delete":"Eliminar",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",
-numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiplicar",add:"Adicionar",subtract:"Subtrair",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Vírgula",dash:"Cardinal",period:"Ponto",
-forwardSlash:"Forward Slash",graveAccent:"Acento grave",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Plica"});
\ No newline at end of file
+numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiplicar",add:"Adicionar",subtract:"Subtrair",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Vírgula",dash:"Dash",period:"Period",
+forwardSlash:"Forward Slash",graveAccent:"Acento grave",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js b/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
index eab5ea9..0671357 100644
--- a/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
+++ b/core/assets/vendor/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
@@ -2,10 +2,10 @@
  Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.plugins.setLang("a11yhelp","sl",{title:"Navodila za dostopnost",contents:"Vsebina pomoči. Če želite zapreti pogovorno okno, pritisnite ESC.",legend:[{name:"Splošno",items:[{name:"Orodna vrstica urejevalnika",legend:"Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice."},
-{name:"Urejevalno Pogovorno Okno",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstni meni urejevalnika",legend:"Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC."},
+CKEDITOR.plugins.setLang("a11yhelp","sl",{title:"Navodila Dostopnosti",contents:"Vsebina Pomoči. Če želite zapreti to pogovorno okno pritisnite ESC.",legend:[{name:"Splošno",items:[{name:"Urejevalna Orodna Vrstica",legend:"Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice."},
+{name:"Urejevalno Pogovorno Okno",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Urejevalni Kontekstni Meni",legend:"Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC."},
 {name:"Urejevalno Seznamsko Polje",legend:"Znotraj seznama, se premaknete na naslednji element seznama s tipko TAB ali PUŠČICO DOL. Z SHIFT+TAB ali PUŠČICO GOR se premaknete na prejšnji element seznama. Pritisnite tipko SPACE ali ENTER za izbiro elementa. Pritisnite tipko ESC, da zaprete seznam."},{name:"Urejevalna vrstica poti elementa",legend:"Pritisnite ${elementsPathFocus} za pomikanje po vrstici elementnih poti. S TAB ali DESNA PUŠČICA se premaknete na naslednji gumb elementa. Z SHIFT+TAB ali LEVO PUŠČICO se premaknete na prejšnji gumb elementa. Pritisnite SPACE ali ENTER za izbiro elementa v urejevalniku."}]},
 {name:"Ukazi",items:[{name:"Razveljavi ukaz",legend:"Pritisnite ${undo}"},{name:"Ponovi ukaz",legend:"Pritisnite ${redo}"},{name:"Krepki ukaz",legend:"Pritisnite ${bold}"},{name:"Ležeči ukaz",legend:"Pritisnite ${italic}"},{name:"Poudarni ukaz",legend:"Pritisnite ${underline}"},{name:"Ukaz povezave",legend:"Pritisnite ${link}"},{name:"Skrči Orodno Vrstico Ukaz",legend:"Pritisnite ${toolbarCollapse}"},{name:"Dostop do prejšnjega ukaza ostrenja",legend:"Pritisnite ${accessPreviousSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora pred strešico, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},
-{name:"Dostop do naslednjega ukaza ostrenja",legend:"Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},{name:"Pomoč dostopnosti",legend:"Pritisnite ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",
-home:"Home",leftArrow:"Puščica levo",upArrow:"Puščica gor",rightArrow:"Puščica desno",downArrow:"Puščica dol",insert:"Insert","delete":"Delete",leftWindowKey:"Leva tipka Windows",rightWindowKey:"Desna tipka Windows",selectKey:"Select tipka",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Zmnoži",add:"Dodaj",subtract:"Odštej",decimalPoint:"Decimalna vejica",
-divide:"Deli",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Podpičje",equalSign:"Enačaj",comma:"Vejica",dash:"Vezaj",period:"Pika",forwardSlash:"Desna poševnica",graveAccent:"Krativec",openBracket:"Oklepaj",backSlash:"Leva poševnica",closeBracket:"Zaklepaj",singleQuote:"Opuščaj"});
\ No newline at end of file
+{name:"Dostop do naslednjega ukaza ostrenja",legend:"Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},{name:"Pomoč Dostopnosti",legend:"Pritisnite ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",
+home:"Home",leftArrow:"Levo puščica",upArrow:"Gor puščica",rightArrow:"Desno puščica",downArrow:"Dol puščica",insert:"Insert","delete":"Delete",leftWindowKey:"Leva Windows tipka",rightWindowKey:"Desna Windows tipka",selectKey:"Select tipka",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Zmnoži",add:"Dodaj",subtract:"Odštej",decimalPoint:"Decimalna vejica",
+divide:"Deli",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Podpičje",equalSign:"enačaj",comma:"Vejica",dash:"Vezaj",period:"Pika",forwardSlash:"Desna poševnica",graveAccent:"Krativec",openBracket:"Oklepaj",backSlash:"Leva poševnica",closeBracket:"Oklepaj",singleQuote:"Opuščaj"});
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/fr.js
index 88a98de..e84fa13 100644
--- a/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/fr.js
+++ b/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/fr.js
@@ -2,11 +2,10 @@
  Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret demi-cadratin",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole Cent",pound:"Symbole Livre sterling",curren:"Symbole monétaire",yen:"Symbole Yen",brvbar:"Barre verticale scindée",sect:"Signe de section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",
-laquo:"Guillemet français ouvrant",not:"Crochet de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Symbole degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigu",micro:"Symbole micro",para:"Symbole pied-de-mouche",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Fraction un quart",frac12:"Fraction un demi",frac34:"Fraction trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A accent grave majuscule",
-Aacute:"A accent aigu majuscule",Acirc:"A accent circonflexe majuscule",Atilde:"A caron majuscule",Auml:"A tréma majuscule",Aring:"A rond majuscule",AElig:"Ligature Æ majuscule",Ccedil:"C cédille majuscule",Egrave:"E accent grave majuscule",Eacute:"E accent aigu majuscule",Ecirc:"E accent circonflexe majuscule",Euml:"E tréma majuscule",Igrave:"I accent grave majuscule",Iacute:"I accent aigu majuscule",Icirc:"I accent circonflexe majuscule",Iuml:"I tréma majuscule",ETH:"Lettre majuscule islandaise ED",
-Ntilde:"N caron majuscule",Ograve:"O accent grave majuscule",Oacute:"O accent aigu majuscule",Ocirc:"O accent circonflexe majuscule",Otilde:"O caron majuscule",Ouml:"O tréma majuscule",times:"Symbole de multiplication",Oslash:"O barré majuscule",Ugrave:"U accent grave majuscule",Uacute:"U accent aigu majuscule",Ucirc:"U accent circonflexe majuscule",Uuml:"U tréma majuscule",Yacute:"Y accent aigu majuscule",THORN:"Lettre islandaise thorn majuscule",szlig:"Lettre minuscule allemande S dur",agrave:"A accent grave minuscule",
-aacute:"A accent aigu minuscule",acirc:"A accent circonflexe minuscule",atilde:"A tilde minuscule",auml:"A tréma minuscule",aring:"A rond minuscule",aelig:"Ligature Æ minuscule",ccedil:"C cédille minuscule",egrave:"E accent grave minuscule",eacute:"E accent aigu minuscule",ecirc:"E accent circonflexe minuscule",euml:"E tréma minuscule",igrave:"I accent grave minuscule",iacute:"I accent aigu minuscule",icirc:"I accent circonflexe minuscule",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",
-ntilde:"N caron minuscule",ograve:"O minuscule accent grave",oacute:"O accent aigu minuscule",ocirc:"O accent circonflexe minuscule",otilde:"O tilde minuscule",ouml:"O tréma minuscule",divide:"Symbole de division",oslash:"O barré minuscule",ugrave:"U accent grave minuscule",uacute:"U accent aigu minuscule",ucirc:"U accent circonflexe minuscule",uuml:"U tréma minuscule",yacute:"Y accent aigu minuscule",thorn:"Lettre islandaise thorn minuscule",yuml:"Y tréma minuscule",OElig:"Ligature Œ majuscule",
-oelig:"Ligature Œ minuscule",372:"W accent circonflexe majuscule",374:"Y accent circonflexe majuscule",373:"W accent circonflexe minuscule",375:"Y accent circonflexe minuscule",sbquo:"Guillemet simple fermant inférieur",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque commerciale",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite",
-hArr:"Double flèche vers la gauche",diams:"Losange noir",asymp:"Environ égal"});
\ No newline at end of file
+CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole Cent",pound:"Symbole Livre Sterling",curren:"Symbole monétaire",yen:"Symbole Yen",brvbar:"Barre verticale scindée",sect:"Section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant",
+not:"Crochet de négation",reg:"Marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigu",micro:"Omicron",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Un demi",frac34:"Trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A majuscule accent grave",Aacute:"A majuscule accent aigu",Acirc:"A majuscule accent circonflexe",Atilde:"A majuscule avec caron",
+Auml:"A majuscule tréma",Aring:"A majuscule avec un rond au-dessus",AElig:"Æ majuscule ligaturés",Ccedil:"C majuscule cédille",Egrave:"E majuscule accent grave",Eacute:"E majuscule accent aigu",Ecirc:"E majuscule accent circonflexe",Euml:"E majuscule tréma",Igrave:"I majuscule accent grave",Iacute:"I majuscule accent aigu",Icirc:"I majuscule accent circonflexe",Iuml:"I majuscule tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N majuscule avec caron",Ograve:"O majuscule accent grave",Oacute:"O majuscule accent aigu",
+Ocirc:"O majuscule accent circonflexe",Otilde:"O majuscule avec caron",Ouml:"O majuscule tréma",times:"Multiplication",Oslash:"O majuscule barré",Ugrave:"U majuscule accent grave",Uacute:"U majuscule accent aigu",Ucirc:"U majuscule accent circonflexe",Uuml:"U majuscule tréma",Yacute:"Y majuscule accent aigu",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a minuscule accent grave",aacute:"a minuscule accent aigu",acirc:"a minuscule accent circonflexe",atilde:"a minuscule avec caron",
+auml:"a minuscule tréma",aring:"a minuscule avec un rond au-dessus",aelig:"æ minuscule ligaturés",ccedil:"c minuscule cédille",egrave:"e minuscule accent grave",eacute:"e minuscule accent aigu",ecirc:"e minuscule accent circonflexe",euml:"e minuscule tréma",igrave:"i minuscule accent grave",iacute:"i minuscule accent aigu",icirc:"i minuscule accent circonflexe",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",ntilde:"n minuscule avec caron",ograve:"o minuscule accent grave",oacute:"o minuscule accent aigu",
+ocirc:"o minuscule accent circonflexe",otilde:"o minuscule avec caron",ouml:"o minuscule tréma",divide:"Division",oslash:"o minuscule barré",ugrave:"u minuscule accent grave",uacute:"u minuscule accent aigu",ucirc:"u minuscule accent circonflexe",uuml:"u minuscule tréma",yacute:"y minuscule accent aigu",thorn:"Lettre islandaise thorn minuscule",yuml:"y minuscule tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W majuscule accent circonflexe",374:"Y majuscule accent circonflexe",
+373:"w minuscule accent circonflexe",375:"y minuscule accent circonflexe",sbquo:"Guillemet simple fermant (anglais)",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Marque commerciale (trade mark)",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite",hArr:"Double flèche vers la gauche",diams:"Carreau noir",asymp:"Presque égal"});
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/it.js b/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/it.js
index f1f9466..ca36dc2 100644
--- a/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/it.js
+++ b/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/it.js
@@ -4,7 +4,7 @@
 */
 CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte",
 not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave",
-Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina Æ",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso",
+Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina AE",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso",
 Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso",
 Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S",
 agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto",
diff --git a/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/pt.js b/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/pt.js
index a94bd58..3f76dd5 100644
--- a/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/pt.js
+++ b/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/pt.js
@@ -2,12 +2,12 @@
  Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo de Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão simples",mdash:"Travessão longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo de cêntimo",pound:"Símbolo de Libra",curren:"Símbolo de Moeda",yen:"Símbolo de Iene",brvbar:"Barra quebrada",sect:"Símbolo de secção",uml:"Trema",copy:"Símbolo de direitos de autor",ordf:"Indicador ordinal feminino",laquo:"Aspa esquerda ângulo duplo",
-not:"Não símbolo",reg:"Símbolo de registado",macr:"Mácron",deg:"Símbolo de graus",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de micro",para:"Símbolo de parágrafo",middot:"Ponto do meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo para a direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrogação invertido",Agrave:"Letra maiúscula latina A com acento grave",Aacute:"Letra maiúscula latina A com acento agudo",
-Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra maiúscula latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema",Igrave:"Letra maiúscula latina I com acento grave",
-Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema",times:"Símbolo de multiplicação",Oslash:"Letra maiúscula O com barra",
-Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo",atilde:"Letra minúscula latina a com til",
-auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo",icirc:"Letra minúscula latina i com circunflexo",
-iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave",uacute:"Letra minúscula latina u com acento agudo",
-ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo",sbquo:"Aspa Simples inferior-9",
-8219:"Aspa simples superior invertida-9",bdquo:"Aspa duplas inferior-9",hellip:"Elipse horizontal ",trade:"Símbolo de marca registada",9658:"Ponteiro preto direito",bull:"Marca",rarr:"Seta para a direita",rArr:"Seta dupla para a direita",hArr:"Seta dupla direita esquerda",diams:"Naipe diamante preto",asymp:"Quase igual a "});
\ No newline at end of file
+CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo do Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão Simples",mdash:"Travessão Longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo do Cêntimo",pound:"Símbolo da Libra",curren:"Símbolo de Moeda",yen:"Símbolo do Iene",brvbar:"Barra quebrada",sect:"Símbolo de Secção",uml:"Trema",copy:"Símbolo dos Direitos de Autor",ordf:"Indicador ordinal feminino",
+laquo:"Aspa esquerda ângulo duplo",not:"Não Símbolo",reg:"Símbolo de Registado",macr:"Mácron",deg:"Símbolo de Grau",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de Micro",para:"Símbolo de Parágrafo",middot:"Ponto do Meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo pra Direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrogação invertido",Agrave:"Letra maiúscula latina A com acento grave",
+Aacute:"Letra maiúscula latina A com acento agudo",Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra maiúscula latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema",
+Igrave:"Letra maiúscula latina I com acento grave",Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema",
+times:"Símbolo de multiplicação",Oslash:"Letra maiúscula O com barra",Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo",
+atilde:"Letra minúscula latina a com til",auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo",
+icirc:"Letra minúscula latina i com circunflexo",iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave",
+uacute:"Letra minúscula latina u com acento agudo",ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo",
+sbquo:"Aspa Simples inferior-9",8219:"Aspa Simples superior invertida-9",bdquo:"Aspa duplas inferior-9",hellip:"Elipse Horizontal ",trade:"Símbolo de Marca Registada",9658:"Ponteiro preto direito",bull:"Marca",rarr:"Seta para a direita",rArr:"Seta dupla para a direita",hArr:"Seta dupla direita esquerda",diams:"Naipe diamante preto",asymp:"Quase igual a "});
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/sl.js b/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/sl.js
index 8c5ef11..653afc5 100644
--- a/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/sl.js
+++ b/core/assets/vendor/ckeditor/plugins/specialchar/dialogs/lang/sl.js
@@ -2,11 +2,11 @@
  Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Znak za evro",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"Pomišljaj",mdash:"Dolgi pomišljaj",iexcl:"Obrnjen klicaj",cent:"Znak za cent",pound:"Znak za funt",curren:"Znak valute",yen:"Znak za jen",brvbar:"Zlomljena črta",sect:"Znak za člen",uml:"Diereza",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi dvojni lomljeni narekovaj",not:"Znak za ne",
-reg:"Registrirani znak",macr:"Nadčrtano",deg:"Znak za stopinje",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Znak za mikro",para:"Znak za odstavek",middot:"Usredinjena pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico",
-Atilde:"Velika latinska črka A z tildo",Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico",
-Iuml:"Velika latinska črka I z diaeresis-om",ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico",
-Uuml:"Velika latinska črka U z diaeresis-om",Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem",
-eacute:"Mala latinska črka e z ostrivcem",ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo",
-ouml:"Mala latinska črka o z diaeresis-om",divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico",
-374:"Velika latinska črka Y s strešico",373:"Mala latinska črka w s strešico",375:"Mala latinska črka y s strešico",sbquo:"Enojni nizki-9 narekovaj",8219:"Enojni visoki-obrnjen-9 narekovaj",bdquo:"Dvojni nizki-9 narekovaj",hellip:"Horizontalni izpust",trade:"Znak blagovne znamke",9658:"Črni desno-usmerjen kazalec",bull:"Krogla",rarr:"Desno-usmerjena puščica",rArr:"Desno-usmerjena dvojna puščica",hArr:"Leva in desna dvojna puščica",diams:"Črna kara",asymp:"Skoraj enako"});
\ No newline at end of file
+CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Evro znak",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"En pomišljaj",mdash:"Em pomišljaj",iexcl:"Obrnjen klicaj",cent:"Cent znak",pound:"Funt znak",curren:"Znak valute",yen:"Jen znak",brvbar:"Zlomljena črta",sect:"Znak oddelka",uml:"Diaeresis",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi obrnjen dvojni kotni narekovaj",not:"Ne znak",reg:"Registrirani znak",
+macr:"Macron",deg:"Znak stopinj",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Mikro znak",para:"Pilcrow znak",middot:"Sredinska pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico",Atilde:"Velika latinska črka A z tildo",
+Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico",Iuml:"Velika latinska črka I z diaeresis-om",
+ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico",Uuml:"Velika latinska črka U z diaeresis-om",
+Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem",eacute:"Mala latinska črka e z ostrivcem",
+ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo",ouml:"Mala latinska črka o z diaeresis-om",
+divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico",374:"Velika latinska črka Y s strešico",
+373:"Mala latinska črka w s strešico",375:"Mala latinska črka y s strešico",sbquo:"Enojni nizki-9 narekovaj",8219:"Enojni visoki-obrnjen-9 narekovaj",bdquo:"Dvojni nizki-9 narekovaj",hellip:"Horizontalni izpust",trade:"Znak blagovne znamke",9658:"Črni desno-usmerjen kazalec",bull:"Krogla",rarr:"Desno-usmerjena puščica",rArr:"Desno-usmerjena dvojna puščica",hArr:"Leva in desna dvojna puščica",diams:"Črna kara",asymp:"Skoraj enako"});
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/dialog.css b/core/assets/vendor/ckeditor/skins/moono/dialog.css
index 4394f15..89b78c6 100644
--- a/core/assets/vendor/ckeditor/skins/moono/dialog.css
+++ b/core/assets/vendor/ckeditor/skins/moono/dialog.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/dialog_ie.css b/core/assets/vendor/ckeditor/skins/moono/dialog_ie.css
index eb1d271..5bccd40 100644
--- a/core/assets/vendor/ckeditor/skins/moono/dialog_ie.css
+++ b/core/assets/vendor/ckeditor/skins/moono/dialog_ie.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/dialog_ie7.css b/core/assets/vendor/ckeditor/skins/moono/dialog_ie7.css
index 629d436..469981a 100644
--- a/core/assets/vendor/ckeditor/skins/moono/dialog_ie7.css
+++ b/core/assets/vendor/ckeditor/skins/moono/dialog_ie7.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/dialog_ie8.css b/core/assets/vendor/ckeditor/skins/moono/dialog_ie8.css
index 9e9a771..756811b 100644
--- a/core/assets/vendor/ckeditor/skins/moono/dialog_ie8.css
+++ b/core/assets/vendor/ckeditor/skins/moono/dialog_ie8.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block}
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/dialog_iequirks.css b/core/assets/vendor/ckeditor/skins/moono/dialog_iequirks.css
index 0d65050..689e7f1 100644
--- a/core/assets/vendor/ckeditor/skins/moono/dialog_iequirks.css
+++ b/core/assets/vendor/ckeditor/skins/moono/dialog_iequirks.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""}
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/editor.css b/core/assets/vendor/ckeditor/skins/moono/editor.css
index 073ce81..8d55378 100644
--- a/core/assets/vendor/ckeditor/skins/moono/editor.css
+++ b/core/assets/vendor/ckeditor/skins/moono/editor.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -2256px!important}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/editor_gecko.css b/core/assets/vendor/ckeditor/skins/moono/editor_gecko.css
index a9dd9f6..9a7bd3c 100644
--- a/core/assets/vendor/ckeditor/skins/moono/editor_gecko.css
+++ b/core/assets/vendor/ckeditor/skins/moono/editor_gecko.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -2256px!important}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/editor_ie.css b/core/assets/vendor/ckeditor/skins/moono/editor_ie.css
index 779d4fa..ce453d3 100644
--- a/core/assets/vendor/ckeditor/skins/moono/editor_ie.css
+++ b/core/assets/vendor/ckeditor/skins/moono/editor_ie.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/editor_ie7.css b/core/assets/vendor/ckeditor/skins/moono/editor_ie7.css
index 3fb379d..0c4b7c8 100644
--- a/core/assets/vendor/ckeditor/skins/moono/editor_ie7.css
+++ b/core/assets/vendor/ckeditor/skins/moono/editor_ie7.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/editor_ie8.css b/core/assets/vendor/ckeditor/skins/moono/editor_ie8.css
index 6aeb8b4..0a24458 100644
--- a/core/assets/vendor/ckeditor/skins/moono/editor_ie8.css
+++ b/core/assets/vendor/ckeditor/skins/moono/editor_ie8.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor/skins/moono/editor_iequirks.css b/core/assets/vendor/ckeditor/skins/moono/editor_iequirks.css
index 04bd021..8e24021 100644
--- a/core/assets/vendor/ckeditor/skins/moono/editor_iequirks.css
+++ b/core/assets/vendor/ckeditor/skins/moono/editor_iequirks.css
@@ -2,4 +2,4 @@
 Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png?t=G6DJ) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png?t=G6DJ) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background:url(icons.png) no-repeat 0 -0px!important}.cke_button__bold_icon{background:url(icons.png) no-repeat 0 -24px!important}.cke_button__italic_icon{background:url(icons.png) no-repeat 0 -48px!important}.cke_button__strike_icon{background:url(icons.png) no-repeat 0 -72px!important}.cke_button__subscript_icon{background:url(icons.png) no-repeat 0 -96px!important}.cke_button__superscript_icon{background:url(icons.png) no-repeat 0 -120px!important}.cke_button__underline_icon{background:url(icons.png) no-repeat 0 -144px!important}.cke_button__blockquote_icon{background:url(icons.png) no-repeat 0 -168px!important}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -192px!important}.cke_ltr .cke_button__copy_icon{background:url(icons.png) no-repeat 0 -216px!important}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -240px!important}.cke_ltr .cke_button__cut_icon{background:url(icons.png) no-repeat 0 -264px!important}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -288px!important}.cke_ltr .cke_button__paste_icon{background:url(icons.png) no-repeat 0 -312px!important}.cke_button__horizontalrule_icon{background:url(icons.png) no-repeat 0 -336px!important}.cke_button__image_icon{background:url(icons.png) no-repeat 0 -360px!important}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -384px!important}.cke_ltr .cke_button__indent_icon{background:url(icons.png) no-repeat 0 -408px!important}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -432px!important}.cke_ltr .cke_button__outdent_icon{background:url(icons.png) no-repeat 0 -456px!important}.cke_button__justifyblock_icon{background:url(icons.png) no-repeat 0 -480px!important}.cke_button__justifycenter_icon{background:url(icons.png) no-repeat 0 -504px!important}.cke_button__justifyleft_icon{background:url(icons.png) no-repeat 0 -528px!important}.cke_button__justifyright_icon{background:url(icons.png) no-repeat 0 -552px!important}.cke_button__language_icon{background:url(icons.png) no-repeat 0 -576px!important}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -600px!important}.cke_ltr .cke_button__bulletedlist_icon{background:url(icons.png) no-repeat 0 -624px!important}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -648px!important}.cke_ltr .cke_button__numberedlist_icon{background:url(icons.png) no-repeat 0 -672px!important}.cke_button__maximize_icon{background:url(icons.png) no-repeat 0 -696px!important}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -720px!important}.cke_ltr .cke_button__pastefromword_icon{background:url(icons.png) no-repeat 0 -744px!important}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -768px!important}.cke_ltr .cke_button__pastetext_icon{background:url(icons.png) no-repeat 0 -792px!important}.cke_button__removeformat_icon{background:url(icons.png) no-repeat 0 -816px!important}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -840px!important}.cke_ltr .cke_button__showblocks_icon{background:url(icons.png) no-repeat 0 -864px!important}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons.png) no-repeat 0 -888px!important}.cke_ltr .cke_button__source_icon{background:url(icons.png) no-repeat 0 -912px!important}.cke_rtl .cke_button__sourcedialog_icon,.cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -936px!important}.cke_ltr .cke_button__sourcedialog_icon{background:url(icons.png) no-repeat 0 -960px!important}.cke_button__specialchar_icon{background:url(icons.png) no-repeat 0 -984px!important}.cke_button__table_icon{background:url(icons.png) no-repeat 0 -1008px!important}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1032px!important}.cke_ltr .cke_button__redo_icon{background:url(icons.png) no-repeat 0 -1056px!important}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1080px!important}.cke_ltr .cke_button__undo_icon{background:url(icons.png) no-repeat 0 -1104px!important}.cke_button__simplebox_icon{background:url(icons.png) no-repeat 0 -1128px!important}.cke_hidpi .cke_button__about_icon{background:url(icons_hidpi.png) no-repeat 0 -0px!important;background-size:16px!important}.cke_hidpi .cke_button__bold_icon{background:url(icons_hidpi.png) no-repeat 0 -24px!important;background-size:16px!important}.cke_hidpi .cke_button__italic_icon{background:url(icons_hidpi.png) no-repeat 0 -48px!important;background-size:16px!important}.cke_hidpi .cke_button__strike_icon{background:url(icons_hidpi.png) no-repeat 0 -72px!important;background-size:16px!important}.cke_hidpi .cke_button__subscript_icon{background:url(icons_hidpi.png) no-repeat 0 -96px!important;background-size:16px!important}.cke_hidpi .cke_button__superscript_icon{background:url(icons_hidpi.png) no-repeat 0 -120px!important;background-size:16px!important}.cke_hidpi .cke_button__underline_icon{background:url(icons_hidpi.png) no-repeat 0 -144px!important;background-size:16px!important}.cke_hidpi .cke_button__blockquote_icon{background:url(icons_hidpi.png) no-repeat 0 -168px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__copy_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -192px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon{background:url(icons_hidpi.png) no-repeat 0 -216px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__cut_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -240px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon{background:url(icons_hidpi.png) no-repeat 0 -264px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__paste_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -288px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon{background:url(icons_hidpi.png) no-repeat 0 -312px!important;background-size:16px!important}.cke_hidpi .cke_button__horizontalrule_icon{background:url(icons_hidpi.png) no-repeat 0 -336px!important;background-size:16px!important}.cke_hidpi .cke_button__image_icon{background:url(icons_hidpi.png) no-repeat 0 -360px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__indent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -384px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon{background:url(icons_hidpi.png) no-repeat 0 -408px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__outdent_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -432px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon{background:url(icons_hidpi.png) no-repeat 0 -456px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyblock_icon{background:url(icons_hidpi.png) no-repeat 0 -480px!important;background-size:16px!important}.cke_hidpi .cke_button__justifycenter_icon{background:url(icons_hidpi.png) no-repeat 0 -504px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyleft_icon{background:url(icons_hidpi.png) no-repeat 0 -528px!important;background-size:16px!important}.cke_hidpi .cke_button__justifyright_icon{background:url(icons_hidpi.png) no-repeat 0 -552px!important;background-size:16px!important}.cke_hidpi .cke_button__language_icon{background:url(icons_hidpi.png) no-repeat 0 -576px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -600px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -624px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -648px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon{background:url(icons_hidpi.png) no-repeat 0 -672px!important;background-size:16px!important}.cke_hidpi .cke_button__maximize_icon{background:url(icons_hidpi.png) no-repeat 0 -696px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -720px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon{background:url(icons_hidpi.png) no-repeat 0 -744px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__pastetext_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -768px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon{background:url(icons_hidpi.png) no-repeat 0 -792px!important;background-size:16px!important}.cke_hidpi .cke_button__removeformat_icon{background:url(icons_hidpi.png) no-repeat 0 -816px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__showblocks_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -840px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon{background:url(icons_hidpi.png) no-repeat 0 -864px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__source_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -888px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon{background:url(icons_hidpi.png) no-repeat 0 -912px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__sourcedialog_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -936px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__sourcedialog_icon,.cke_ltr.cke_hidpi .cke_button__sourcedialog_icon{background:url(icons_hidpi.png) no-repeat 0 -960px!important;background-size:16px!important}.cke_hidpi .cke_button__specialchar_icon{background:url(icons_hidpi.png) no-repeat 0 -984px!important;background-size:16px!important}.cke_hidpi .cke_button__table_icon{background:url(icons_hidpi.png) no-repeat 0 -1008px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__redo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1032px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon{background:url(icons_hidpi.png) no-repeat 0 -1056px!important;background-size:16px!important}.cke_rtl.cke_hidpi .cke_button__undo_icon,.cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1080px!important;background-size:16px!important}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon{background:url(icons_hidpi.png) no-repeat 0 -1104px!important;background-size:16px!important}.cke_hidpi .cke_button__simplebox_icon{background:url(icons_hidpi.png) no-repeat 0 -2256px!important}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}
\ No newline at end of file
diff --git a/core/authorize.php b/core/authorize.php
index 073770a..4752799 100644
--- a/core/authorize.php
+++ b/core/authorize.php
@@ -21,7 +21,6 @@
  */
 
 use Drupal\Core\DrupalKernel;
-use Drupal\Core\Form\EnforcedResponseException;
 use Drupal\Core\Url;
 use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
 use Symfony\Component\HttpFoundation\Request;
@@ -170,13 +169,7 @@ function authorize_access_allowed(Request $request) {
     }
     elseif (!$batch = batch_get()) {
       // We have a batch to process, show the filetransfer form.
-      try {
-        $content = \Drupal::formBuilder()->getForm('Drupal\Core\FileTransfer\Form\FileTransferAuthorizeForm');
-      }
-      catch (EnforcedResponseException $e) {
-        $e->getResponse()->send();
-        exit;
-      }
+      $content = \Drupal::formBuilder()->getForm('Drupal\Core\FileTransfer\Form\FileTransferAuthorizeForm');
     }
   }
   // We defer the display of messages until all operations are done.
diff --git a/core/composer.json b/core/composer.json
index 3109649..1266df3 100644
--- a/core/composer.json
+++ b/core/composer.json
@@ -21,8 +21,8 @@
         "twig/twig": "^1.23.1",
         "doctrine/common": "2.5.*",
         "doctrine/annotations": "1.2.*",
-        "guzzlehttp/guzzle": "^6.2.1",
-        "symfony-cmf/routing": "~1.4",
+        "guzzlehttp/guzzle": "~6.1",
+        "symfony-cmf/routing": "1.3.*",
         "easyrdf/easyrdf": "0.9.*",
         "zendframework/zend-feed": "~2.4",
         "stack/builder": "1.0.*",
@@ -52,7 +52,6 @@
         "drupal/big_pipe": "self.version",
         "drupal/block": "self.version",
         "drupal/block_content": "self.version",
-        "drupal/block_place": "self.version",
         "drupal/book": "self.version",
         "drupal/breakpoint": "self.version",
         "drupal/ckeditor": "self.version",
@@ -65,10 +64,8 @@
         "drupal/content_translation": "self.version",
         "drupal/contextual": "self.version",
         "drupal/core-annotation": "self.version",
-        "drupal/core-assertion": "self.version",
         "drupal/core-bridge": "self.version",
         "drupal/core-datetime": "self.version",
-        "drupal/core-dependency-injection": "self.version",
         "drupal/core-diff": "self.version",
         "drupal/core-discovery": "self.version",
         "drupal/core-event-dispatcher": "self.version",
@@ -76,11 +73,9 @@
         "drupal/core-filesystem": "self.version",
         "drupal/core-gettext": "self.version",
         "drupal/core-graph": "self.version",
-        "drupal/core-http-foundation": "self.version",
         "drupal/core-php-storage": "self.version",
         "drupal/core-plugin": "self.version",
         "drupal/core-proxy-builder": "self.version",
-        "drupal/core-render": "self.version",
         "drupal/core-serialization": "self.version",
         "drupal/core-transliteration": "self.version",
         "drupal/core-utility": "self.version",
diff --git a/core/core.api.php b/core/core.api.php
index 4b2fe62..5fc58ef 100644
--- a/core/core.api.php
+++ b/core/core.api.php
@@ -461,8 +461,7 @@
  * caches.
  *
  * Other common cache bins are the following:
- *   - bootstrap: Data needed from the beginning to the end of most requests,
- *     that has a very strict limit on variations and is invalidated rarely.
+ *   - bootstrap: Small caches needed for the bootstrap on every request.
  *   - render: Contains cached HTML strings like cached pages and blocks, can
  *     grow to large size.
  *   - data: Contains data that can vary by path or similar context.
diff --git a/core/core.libraries.yml b/core/core.libraries.yml
index e21acf2..5376512 100644
--- a/core/core.libraries.yml
+++ b/core/core.libraries.yml
@@ -24,10 +24,10 @@ classList:
 
 ckeditor:
   remote: https://github.com/ckeditor/ckeditor-dev
-  version: "4.5.10"
+  version: "4.5.7"
   license:
     name: GNU-GPL-2.0-or-later
-    url: https://github.com/ckeditor/ckeditor-dev/blob/4.5.10/LICENSE.md
+    url: https://github.com/ckeditor/ckeditor-dev/blob/4.5.7/LICENSE.md
     gpl-compatible: true
   js:
     assets/vendor/ckeditor/ckeditor.js: { preprocess: false, minified: true }
diff --git a/core/core.services.yml b/core/core.services.yml
index 2f7da56..6049d3b 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -424,7 +424,7 @@ services:
     class: Drupal\Core\Path\AliasWhitelist
     tags:
       - { name: needs_destruction }
-    arguments: [path_alias_whitelist, '@cache.bootstrap', '@lock', '@state', '@path.alias_storage']
+    arguments: [path_alias_whitelist, '@cache.default', '@lock', '@state', '@path.alias_storage']
   path.alias_manager:
     class: Drupal\Core\Path\AliasManager
     arguments: ['@path.alias_storage', '@path.alias_whitelist', '@language_manager', '@cache.data']
@@ -504,13 +504,10 @@ services:
   theme_installer:
     class: Drupal\Core\Extension\ThemeInstaller
     arguments: ['@theme_handler', '@config.factory', '@config.installer', '@module_handler', '@config.manager', '@asset.css.collection_optimizer', '@router.builder', '@logger.channel.default', '@state']
-  # @deprecated in Drupal 8.0.x and will be removed before 9.0.0. Use the other
-  #   entity* services instead.
   entity.manager:
-    # We cannot set the deprecated property here because many test cases still
-    # rely on this service and they would fail with deprecation warnings.
     class: Drupal\Core\Entity\EntityManager
     parent: container.trait
+    deprecated: '%service_id%-no-warning'
     # @todo Remove this tag in https://www.drupal.org/node/2549143.
     tags:
       - { name: plugin_manager_cache_clear }
@@ -1259,7 +1256,7 @@ services:
       - { name: backend_overridable }
   plugin.manager.mail:
     class: Drupal\Core\Mail\MailManager
-    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory', '@logger.factory', '@string_translation', '@renderer']
+    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory', '@logger.factory', '@string_translation']
   plugin.manager.condition:
     class: Drupal\Core\Condition\ConditionManager
     parent: default_plugin_manager
@@ -1408,7 +1405,7 @@ services:
     arguments: ['@app.root', '@theme_handler', '@cache.bootstrap', '@module_handler']
   theme.registry:
     class: Drupal\Core\Theme\Registry
-    arguments: ['@app.root', '@cache.default', '@lock', '@module_handler', '@theme_handler', '@theme.initialization', null, '@cache.bootstrap']
+    arguments: ['@app.root', '@cache.default', '@lock', '@module_handler', '@theme_handler', '@theme.initialization']
     tags:
       - { name: needs_destruction }
     calls:
@@ -1430,7 +1427,7 @@ services:
     arguments: ['@current_user', '@session_handler.write_safe']
   user_permissions_hash_generator:
     class: Drupal\Core\Session\PermissionsHashGenerator
-    arguments: ['@private_key', '@cache.bootstrap', '@cache.static']
+    arguments: ['@private_key', '@cache.default', '@cache.static']
   current_user:
     class: Drupal\Core\Session\AccountProxy
   session_configuration:
diff --git a/core/includes/batch.inc b/core/includes/batch.inc
index f84c01b..a4b5378 100644
--- a/core/includes/batch.inc
+++ b/core/includes/batch.inc
@@ -34,7 +34,7 @@
 function _batch_page(Request $request) {
   $batch = &batch_get();
 
-  if (!($request_id = $request->query->get('id'))) {
+  if (!($request_id = $request->get('id'))) {
     return FALSE;
   }
 
@@ -61,7 +61,7 @@ function _batch_page(Request $request) {
     }
   }
 
-  $op = $request->query->get('op', '');
+  $op = $request->get('op', '');
   switch ($op) {
     case 'start':
     case 'do_nojs':
diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index ec12097..2294d47 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -153,7 +153,6 @@ function config_get_config_directory($type) {
   if (!empty($config_directories[$type])) {
     return $config_directories[$type];
   }
-  // @todo https://www.drupal.org/node/2696103 Throw a more specific exception.
   throw new \Exception("The configuration directory type '$type' does not exist");
 }
 
diff --git a/core/includes/entity.inc b/core/includes/entity.inc
index 03d40a9..d48aa4e 100644
--- a/core/includes/entity.inc
+++ b/core/includes/entity.inc
@@ -32,13 +32,12 @@ function entity_render_cache_clear() {
  *   The bundle info for a specific entity type, or all entity types.
  *
  * @deprecated in Drupal 8.x-dev and will be removed before Drupal 9.0.0. Use
- *   \Drupal\Core\Entity\EntityTypeBundleInfoInterface::getBundleInfo() for a
- *   single bundle, or
- *   \Drupal\Core\Entity\EntityTypeBundleInfoInterface::getAllBundleInfo() for
- *   all bundles.
+ *   \Drupal\Core\Entity\EntityManagerInterface::getBundleInfo() for a single
+ *   bundle, or \Drupal\Core\Entity\EntityManagerInterface::getAllBundleInfo()
+ *   for all bundles.
  *
- * @see \Drupal\Core\Entity\EntityTypeBundleInfoInterface::getBundleInfo()
- * @see \Drupal\Core\Entity\EntityTypeBundleInfoInterface::getAllBundleInfo()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getBundleInfo()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getAllBundleInfo()
  */
 function entity_get_bundles($entity_type = NULL) {
   if (isset($entity_type)) {
@@ -68,11 +67,11 @@ function entity_get_bundles($entity_type = NULL) {
  *   entity type is variable, use the entity manager service to load the entity
  *   from the entity storage:
  * @code
- * \Drupal::entityTypeManager()->getStorage($entity_type)->load($id);
+ * \Drupal::entityManager()->getStorage($entity_type)->load($id)
  * @endcode
  *
  * @see \Drupal\Core\Entity\EntityInterface::load()
- * @see \Drupal\Core\Entity\EntityTypeManagerInterface::getStorage()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getStorage()
  * @see \Drupal\Core\Entity\EntityStorageInterface::load()
  * @see \Drupal\Core\Entity\Sql\SqlContentEntityStorage
  * @see \Drupal\Core\Entity\Query\QueryInterface
@@ -101,12 +100,10 @@ function entity_load($entity_type, $id, $reset = FALSE) {
  *   the entity storage's loadRevision() method to load a specific entity
  *   revision:
  * @code
- * \Drupal::entityTypeManager()
- *   ->getStorage($entity_type)
- *   ->loadRevision($revision_id);
+ * \Drupal::entityManager()->getStorage($entity_type)->loadRevision($revision_id);
  * @endcode
  *
- * @see \Drupal\Core\Entity\EntityTypeManagerInterface::getStorage()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getStorage()
  * @see \Drupal\Core\Entity\EntityStorageInterface::loadRevision()
  * @see \Drupal\Core\Entity\Sql\SqlContentEntityStorage
  */
@@ -128,12 +125,10 @@ function entity_revision_load($entity_type, $revision_id) {
  *   the entity storage's deleteRevision() method to delete a specific entity
  *   revision:
  * @code
- * \Drupal::entityTypeManager()
- *   ->getStorage($entity_type)
- *   ->deleteRevision($revision_id);
+ * \Drupal::entityManager()->getStorage($entity_type)>deleteRevision($revision_id);
  * @endcode
  *
- * @see \Drupal\Core\Entity\EntityTypeManagerInterface::getStorage()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getStorage()
  * @see \Drupal\Core\Entity\EntityStorageInterface::deleteRevision()
  */
 function entity_revision_delete($entity_type, $revision_id) {
@@ -176,11 +171,11 @@ function entity_revision_delete($entity_type, $revision_id) {
  *   the entity type is variable, use the entity manager service to load the
  *   entity from the entity storage:
  * @code
- * \Drupal::entityTypeManager()->getStorage($entity_type)->loadMultiple($id);
+ * \Drupal::entityManager()->getStorage($entity_type)->loadMultiple($id)
  * @endcode
  *
  * @see \Drupal\Core\Entity\EntityInterface::loadMultiple()
- * @see \Drupal\Core\Entity\EntityTypeManagerInterface::getStorage()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getStorage()
  * @see \Drupal\Core\Entity\EntityStorageInterface::loadMultiple()
  * @see \Drupal\Core\Entity\Sql\SqlContentEntityStorage
  * @see \Drupal\Core\Entity\Query\QueryInterface
@@ -210,12 +205,10 @@ function entity_load_multiple($entity_type, array $ids = NULL, $reset = FALSE) {
  *   the entity storage's loadByProperties() method to load an entity by their
  *   property values:
  * @code
- * \Drupal::entityTypeManager()
- *   ->getStorage($entity_type)
- *   ->loadByProperties($values);
+ * \Drupal::entityManager()->getStorage($entity_type)->loadByProperties($values);
  * @endcode
  *
- * @see \Drupal\Core\Entity\EntityTypeManagerInterface::getStorage()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getStorage()
  * @see \Drupal\Core\Entity\EntityStorageInterface::loadByProperties()
  */
 function entity_load_multiple_by_properties($entity_type, array $values) {
@@ -243,10 +236,10 @@ function entity_load_multiple_by_properties($entity_type, array $values) {
  * @deprecated as of Drupal 8.0.x, will be removed before Drupal 9.0.0. Use
  *   the entity storage's loadUnchanged() method to load an unchanged entity:
  * @code
- * \Drupal::entityTypeManager()->getStorage($entity_type)->loadUnchanged($id);
+ * \Drupal::entityManager()->getStorage($entity_type)->loadUnchanged($id).
  * @endcode
  *
- * @see \Drupal\Core\Entity\EntityTypeManagerInterface::getStorage()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getStorage()
  * @see \Drupal\Core\Entity\EntityStorageInterface::loadUnchanged()
  */
 function entity_load_unchanged($entity_type, $id) {
@@ -266,12 +259,12 @@ function entity_load_unchanged($entity_type, $id) {
  * @deprecated as of Drupal 8.0.x, will be removed before Drupal 9.0.0. Use
  *   the entity storage's delete() method to delete multiple entities:
  * @code
- * $storage_handler = \Drupal::entityTypeManager()->getStorage($entity_type);
+ * $storage_handler = \Drupal::entityManager()->getStorage($entity_type);
  * $entities = $storage_handler->loadMultiple($ids);
  * $storage_handler->delete($entities);
  * @endcode
  *
- * @see \Drupal\Core\Entity\EntityTypeManagerInterface::getStorage()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getStorage()
  * @see \Drupal\Core\Entity\EntityStorageInterface::loadMultiple()
  * @see \Drupal\Core\Entity\EntityStorageInterface::delete()
  */
@@ -299,10 +292,10 @@ function entity_delete_multiple($entity_type, array $ids) {
  *   entity type is variable, use the entity storage's create() method to
  *   construct a new entity:
  * @code
- * \Drupal::entityTypeManager()->getStorage($entity_type)->create($values);
+ * \Drupal::entityManager()->getStorage($entity_type)->create($values)
  * @endcode
  *
- * @see \Drupal\Core\Entity\EntityTypeManagerInterface::getStorage()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getStorage()
  * @see \Drupal\Core\Entity\EntityStorageInterface::create()
  */
 function entity_create($entity_type, array $values = array()) {
@@ -356,12 +349,11 @@ function entity_page_label(EntityInterface $entity, $langcode = NULL) {
  * @deprecated as of Drupal 8.0.x, will be removed before Drupal 9.0.0.
  *   Use the entity view builder's view() method for creating a render array:
  * @code
- * $view_builder = \Drupal::entityTypeManager()
- *   ->getViewBuilder($entity->getEntityTypeId());
+ * $view_builder = \Drupal::entityManager()->getViewBuilder($entity->getEntityTypeId());
  * return $view_builder->view($entity, $view_mode, $langcode);
  * @endcode
  *
- * @see \Drupal\Core\Entity\EntityTypeManagerInterface::getViewBuilder()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getViewBuilder()
  * @see \Drupal\Core\Entity\EntityViewBuilderInterface::view()
  */
 function entity_view(EntityInterface $entity, $view_mode, $langcode = NULL, $reset = FALSE) {
@@ -394,12 +386,11 @@ function entity_view(EntityInterface $entity, $view_mode, $langcode = NULL, $res
  *   Use the entity view builder's viewMultiple() method for creating a render
  *   array for the provided entities:
  * @code
- * $view_builder = \Drupal::entityTypeManager()
- *   ->getViewBuilder($entity->getEntityTypeId());
+ * $view_builder = \Drupal::entityManager()->getViewBuilder($entity->getEntityTypeId());
  * return $view_builder->viewMultiple($entities, $view_mode, $langcode);
  * @endcode
  *
- * @see \Drupal\Core\Entity\EntityTypeManagerInterface::getViewBuilder()
+ * @see \Drupal\Core\Entity\EntityManagerInterface::getViewBuilder()
  * @see \Drupal\Core\Entity\EntityViewBuilderInterface::viewMultiple()
  */
 function entity_view_multiple(array $entities, $view_mode, $langcode = NULL, $reset = FALSE) {
@@ -452,9 +443,7 @@ function entity_view_multiple(array $entities, $view_mode, $langcode = NULL, $re
  * @deprecated as of Drupal 8.0.x, will be removed before Drupal 9.0.0.
  *   If the display is available in configuration use:
  *   @code
- *   \Drupal::entityTypeManager()
- *     ->getStorage('entity_view_display')
- *     ->load($entity_type . '.' . $bundle . '.' . $view_mode);
+ *   \Drupal::entityManager()->getStorage('entity_view_display')->load($entity_type . '.' . $bundle . '.' . $view_mode);
  *   @endcode
  *   When the display is not available in configuration, you can create a new
  *   EntityViewDisplay object using:
@@ -465,9 +454,7 @@ function entity_view_multiple(array $entities, $view_mode, $langcode = NULL, $re
  *     'mode' => $view_mode,
  *     'status' => TRUE,
  *   ));
- *   \Drupal::entityTypeManager()
- *     ->getStorage('entity_view_display')
- *     ->create($values);
+ *   \Drupal::entityManager()->getStorage('entity_view_display')->create($values);
  *   @endcode
  *
  * @see \Drupal\Core\Entity\EntityStorageInterface::create()
@@ -475,7 +462,7 @@ function entity_view_multiple(array $entities, $view_mode, $langcode = NULL, $re
  */
 function entity_get_display($entity_type, $bundle, $view_mode) {
   // Try loading the display from configuration.
-  $display = EntityViewDisplay::load($entity_type . '.' . $bundle . '.' . $view_mode);
+  $display = entity_load('entity_view_display', $entity_type . '.' . $bundle . '.' . $view_mode);
 
   // If not found, create a fresh display object. We do not preemptively create
   // new entity_view_display configuration entries for each existing entity type
@@ -532,12 +519,10 @@ function entity_get_display($entity_type, $bundle, $view_mode) {
  * @deprecated as of Drupal 8.0.x, will be removed before Drupal 9.0.0.
  *   If the entity form display is available in configuration use:
  * @code
- *   \Drupal::entityTypeManager()
- *     ->getStorage('entity_form_display')
- *     ->load($entity_type . '.' . $bundle . '.' . $form_mode);
+ *   \Drupal::entityManager()->getStorage('entity_form_display')->load($entity_type . '.' . $bundle . '.' . $form_mode);
  * @endcode
- *   When the entity form display is not available in configuration, you can
- *   create a new EntityFormDisplay object using:
+ *   When the entity form display is not available in configuration, you can create a new
+ *   EntityFormDisplay object using:
  * @code
  * $values = ('entity_form_display', array(
  *  'targetEntityType' => $entity_type,
@@ -545,9 +530,7 @@ function entity_get_display($entity_type, $bundle, $view_mode) {
  *  'mode' => $form_mode,
  *  'status' => TRUE,
  * ));
- * \Drupal::entityTypeManager()
- *   ->getStorage('entity_form_display')
- *   ->create($values);
+ * \Drupal::entityManager()->getStorage('entity_form_display')->create($values);
  * @endcode
  *
  * @see \Drupal\Core\Entity\EntityStorageInterface::create()
@@ -555,7 +538,7 @@ function entity_get_display($entity_type, $bundle, $view_mode) {
  */
 function entity_get_form_display($entity_type, $bundle, $form_mode) {
   // Try loading the entity from configuration.
-  $entity_form_display = EntityFormDisplay::load($entity_type . '.' . $bundle . '.' . $form_mode);
+  $entity_form_display = entity_load('entity_form_display', $entity_type . '.' . $bundle . '.' . $form_mode);
 
   // If not found, create a fresh entity object. We do not preemptively create
   // new entity form display configuration entries for each existing entity type
diff --git a/core/includes/file.inc b/core/includes/file.inc
index fe4bf54..3e5eb8c 100644
--- a/core/includes/file.inc
+++ b/core/includes/file.inc
@@ -10,7 +10,6 @@
 use Drupal\Component\PhpStorage\FileStorage;
 use Drupal\Component\Utility\Bytes;
 use Drupal\Core\File\FileSystem;
-use Drupal\Core\Site\Settings;
 use Drupal\Core\StreamWrapper\PublicStream;
 use Drupal\Core\StreamWrapper\PrivateStream;
 
@@ -34,6 +33,23 @@
  * @defgroup file File interface
  * @{
  * Common file handling functions.
+ *
+ * Fields on the file entity:
+ * - fid: File ID
+ * - uid: The {users}.uid of the user who is associated with the file.
+ * - filename: Name of the file with no path components. This may differ from
+ *   the basename of the filepath if the file is renamed to avoid overwriting
+ *   an existing file.
+ * - uri: URI of the file.
+ * - filemime: The file's MIME type.
+ * - filesize: The size of the file in bytes.
+ * - status: A bitmapped field indicating the status of the file. The first 8
+ *   bits are reserved for Drupal core. The least significant bit indicates
+ *   temporary (0) or permanent (1). Temporary files will be removed during
+ *   cron runs if they are older than the configuration value
+ *   "system.file.temporary_maximum_age", and if clean-up is enabled. Permanent
+ *   files will not be removed.
+ * - timestamp: UNIX timestamp for the date the file was added to the database.
  */
 
 /**
@@ -316,22 +332,7 @@ function file_ensure_htaccess() {
     file_save_htaccess('private://', TRUE);
   }
   file_save_htaccess('temporary://', TRUE);
-
-  // If a staging directory exists then it should contain a .htaccess file.
-  // @todo https://www.drupal.org/node/2696103 catch a more specific exception
-  //   and simplify this code.
-  try {
-    $staging = config_get_config_directory(CONFIG_SYNC_DIRECTORY);
-  }
-  catch (\Exception $e) {
-    $staging = FALSE;
-  }
-  if ($staging) {
-    // Note that we log an error here if we can't write the .htaccess file. This
-    // can occur if the staging directory is read-only. If it is then it is the
-    // user's responsibility to create the .htaccess file.
-    file_save_htaccess($staging, TRUE);
-  }
+  file_save_htaccess(config_get_config_directory(CONFIG_SYNC_DIRECTORY), TRUE);
 }
 
 /**
@@ -413,7 +414,7 @@ function file_valid_uri($uri) {
 }
 
 /**
- * Copies a file to a new location without database changes or hook invocation.
+ * Copies a file to a new location without invoking the file API.
  *
  * This is a powerful function that in many ways performs like an advanced
  * version of copy().
@@ -423,9 +424,10 @@ function file_valid_uri($uri) {
  * - If the $source and $destination are equal, the behavior depends on the
  *   $replace parameter. FILE_EXISTS_REPLACE will error out. FILE_EXISTS_RENAME
  *   will rename the file until the $destination is unique.
- * - Works around a PHP bug where copy() does not properly support streams if
- *   safe_mode or open_basedir are enabled.
- *   @see https://bugs.php.net/bug.php?id=60456
+ * - Provides a fallback using realpaths if the move fails using stream
+ *   wrappers. This can occur because PHP's copy() function does not properly
+ *   support streams if open_basedir is enabled. See
+ *   https://bugs.php.net/bug.php?id=60456
  *
  * @param $source
  *   A string specifying the filepath or URI of the source file.
@@ -446,66 +448,18 @@ function file_valid_uri($uri) {
  * @see file_copy()
  */
 function file_unmanaged_copy($source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
-  if (!file_unmanaged_prepare($source, $destination, $replace)) {
-    return FALSE;
-  }
-  // Attempt to resolve the URIs. This is necessary in certain configurations
-  // (see above).
-  $real_source = drupal_realpath($source) ?: $source;
-  $real_destination = drupal_realpath($destination) ?: $destination;
-  // Perform the copy operation.
-  if (!@copy($real_source, $real_destination)) {
-    \Drupal::logger('file')->error('The specified file %file could not be copied to %destination.', array('%file' => $source, '%destination' => $destination));
-    return FALSE;
-  }
-  // Set the permissions on the new file.
-  drupal_chmod($destination);
-  return $destination;
-}
-
-/**
- * Internal function that prepares the destination for a file_unmanaged_copy or
- * file_unmanaged_move operation.
- *
- * - Checks if $source and $destination are valid and readable/writable.
- * - Checks that $source is not equal to $destination; if they are an error
- *   is reported.
- * - If file already exists in $destination either the call will error out,
- *   replace the file or rename the file based on the $replace parameter.
- *
- * @param $source
- *   A string specifying the filepath or URI of the source file.
- * @param $destination
- *   A URI containing the destination that $source should be moved/copied to.
- *   The URI may be a bare filepath (without a scheme) and in that case the
- *   default scheme (file://) will be used. If this value is omitted, Drupal's
- *   default files scheme will be used, usually "public://".
- * @param $replace
- *   Replace behavior when the destination file already exists:
- *   - FILE_EXISTS_REPLACE - Replace the existing file.
- *   - FILE_EXISTS_RENAME - Append _{incrementing number} until the filename is
- *       unique.
- *   - FILE_EXISTS_ERROR - Do nothing and return FALSE.
- *
- * @return
- *   TRUE, or FALSE in the event of an error.
- *
- * @see file_unmanaged_copy()
- * @see file_unmanaged_move()
- */
-function file_unmanaged_prepare($source, &$destination = NULL, $replace = FILE_EXISTS_RENAME) {
   $original_source = $source;
   $logger = \Drupal::logger('file');
 
   // Assert that the source file actually exists.
   if (!file_exists($source)) {
     // @todo Replace drupal_set_message() calls with exceptions instead.
-    drupal_set_message(t('The specified file %file could not be moved/copied because no file by that name exists. Please check that you supplied the correct filename.', array('%file' => $original_source)), 'error');
+    drupal_set_message(t('The specified file %file could not be copied because no file by that name exists. Please check that you supplied the correct filename.', array('%file' => $original_source)), 'error');
     if (($realpath = drupal_realpath($original_source)) !== FALSE) {
-      $logger->notice('File %file (%realpath) could not be moved/copied because it does not exist.', array('%file' => $original_source, '%realpath' => $realpath));
+      $logger->notice('File %file (%realpath) could not be copied because it does not exist.', array('%file' => $original_source, '%realpath' => $realpath));
     }
     else {
-      $logger->notice('File %file could not be moved/copied because it does not exist.', array('%file' => $original_source));
+      $logger->notice('File %file could not be copied because it does not exist.', array('%file' => $original_source));
     }
     return FALSE;
   }
@@ -526,8 +480,8 @@ function file_unmanaged_prepare($source, &$destination = NULL, $replace = FILE_E
     $dirname = drupal_dirname($destination);
     if (!file_prepare_directory($dirname)) {
       // The destination is not valid.
-      $logger->notice('File %file could not be moved/copied because the destination directory %destination is not configured correctly.', array('%file' => $original_source, '%destination' => $dirname));
-      drupal_set_message(t('The specified file %file could not be moved/copied because the destination directory is not properly configured. This may be caused by a problem with file or directory permissions. More information is available in the system log.', array('%file' => $original_source)), 'error');
+      $logger->notice('File %file could not be copied because the destination directory %destination is not configured correctly.', array('%file' => $original_source, '%destination' => $dirname));
+      drupal_set_message(t('The specified file %file could not be copied because the destination directory is not properly configured. This may be caused by a problem with file or directory permissions. More information is available in the system log.', array('%file' => $original_source)), 'error');
       return FALSE;
     }
   }
@@ -535,8 +489,8 @@ function file_unmanaged_prepare($source, &$destination = NULL, $replace = FILE_E
   // Determine whether we can perform this operation based on overwrite rules.
   $destination = file_destination($destination, $replace);
   if ($destination === FALSE) {
-    drupal_set_message(t('The file %file could not be moved/copied because a file by that name already exists in the destination directory.', array('%file' => $original_source)), 'error');
-    $logger->notice('File %file could not be moved/copied because a file by that name already exists in the destination directory (%destination)', array('%file' => $original_source, '%destination' => $destination));
+    drupal_set_message(t('The file %file could not be copied because a file by that name already exists in the destination directory.', array('%file' => $original_source)), 'error');
+    $logger->notice('File %file could not be copied because a file by that name already exists in the destination directory (%destination)', array('%file' => $original_source, '%destination' => $destination));
     return FALSE;
   }
 
@@ -544,13 +498,26 @@ function file_unmanaged_prepare($source, &$destination = NULL, $replace = FILE_E
   $real_source = drupal_realpath($source);
   $real_destination = drupal_realpath($destination);
   if ($source == $destination || ($real_source !== FALSE) && ($real_source == $real_destination)) {
-    drupal_set_message(t('The specified file %file was not moved/copied because it would overwrite itself.', array('%file' => $source)), 'error');
-    $logger->notice('File %file could not be moved/copied because it would overwrite itself.', array('%file' => $source));
+    drupal_set_message(t('The specified file %file was not copied because it would overwrite itself.', array('%file' => $source)), 'error');
+    $logger->notice('File %file could not be copied because it would overwrite itself.', array('%file' => $source));
     return FALSE;
   }
   // Make sure the .htaccess files are present.
   file_ensure_htaccess();
-  return TRUE;
+  // Perform the copy operation.
+  if (!@copy($source, $destination)) {
+    // If the copy failed and realpaths exist, retry the operation using them
+    // instead.
+    if ($real_source === FALSE || $real_destination === FALSE || !@copy($real_source, $real_destination)) {
+      $logger->error('The specified file %file could not be copied to %destination.', array('%file' => $source, '%destination' => $destination));
+      return FALSE;
+    }
+  }
+
+  // Set the permissions on the new file.
+  drupal_chmod($destination);
+
+  return $destination;
 }
 
 /**
@@ -601,24 +568,12 @@ function file_destination($destination, $replace) {
 /**
  * Moves a file to a new location without database changes or hook invocation.
  *
- * This is a powerful function that in many ways performs like an advanced
- * version of rename().
- * - Checks if $source and $destination are valid and readable/writable.
- * - Checks that $source is not equal to $destination; if they are an error
- *   is reported.
- * - If file already exists in $destination either the call will error out,
- *   replace the file or rename the file based on the $replace parameter.
- * - Works around a PHP bug where rename() does not properly support streams if
- *   safe_mode or open_basedir are enabled.
- *   @see https://bugs.php.net/bug.php?id=60456
- *
  * @param $source
- *   A string specifying the filepath or URI of the source file.
+ *   A string specifying the filepath or URI of the original file.
  * @param $destination
- *   A URI containing the destination that $source should be moved to. The
- *   URI may be a bare filepath (without a scheme) and in that case the default
- *   scheme (file://) will be used. If this value is omitted, Drupal's default
- *   files scheme will be used, usually "public://".
+ *   A string containing the destination that $source should be moved to.
+ *   This must be a stream wrapper URI. If this value is omitted, Drupal's
+ *   default files scheme will be used, usually "public://".
  * @param $replace
  *   Replace behavior when the destination file already exists:
  *   - FILE_EXISTS_REPLACE - Replace the existing file.
@@ -627,37 +582,16 @@ function file_destination($destination, $replace) {
  *   - FILE_EXISTS_ERROR - Do nothing and return FALSE.
  *
  * @return
- *   The path to the new file, or FALSE in the event of an error.
+ *   The URI of the moved file, or FALSE in the event of an error.
  *
  * @see file_move()
  */
 function file_unmanaged_move($source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
-  if (!file_unmanaged_prepare($source, $destination, $replace)) {
+  $filepath = file_unmanaged_copy($source, $destination, $replace);
+  if ($filepath == FALSE || file_unmanaged_delete($source) == FALSE) {
     return FALSE;
   }
-  // Ensure compatibility with Windows.
-  // @see drupal_unlink()
-  if ((substr(PHP_OS, 0, 3) == 'WIN') && (!file_stream_wrapper_valid_scheme(file_uri_scheme($source)))) {
-    chmod($source, 0600);
-  }
-  // Attempt to resolve the URIs. This is necessary in certain configurations
-  // (see above) and can also permit fast moves across local schemes.
-  $real_source = drupal_realpath($source) ?: $source;
-  $real_destination = drupal_realpath($destination) ?: $destination;
-  // Perform the move operation.
-  if (!@rename($real_source, $real_destination)) {
-    // Fall back to slow copy and unlink procedure. This is necessary for
-    // renames across schemes that are not local, or where rename() has not been
-    // implemented. It's not necessary to use drupal_unlink() as the Windows
-    // issue has already been resolved above.
-    if (!@copy($real_source, $real_destination) || !@unlink($real_source)) {
-      \Drupal::logger('file')->error('The specified file %file could not be moved to %destination.', array('%file' => $source, '%destination' => $destination));
-      return FALSE;
-    }
-  }
-  // Set the permissions on the new file.
-  drupal_chmod($destination);
-  return $destination;
+  return $filepath;
 }
 
 /**
@@ -979,7 +913,7 @@ function file_unmanaged_save_data($data, $destination = NULL, $replace = FILE_EX
  * @param $options
  *   An associative array of additional options, with the following elements:
  *   - 'nomask': The preg_match() regular expression for files to be excluded.
- *     Defaults to the 'file_scan_ignore_directories' setting.
+ *     There is no default.
  *   - 'callback': The callback function to call for each match. There is no
  *     default callback.
  *   - 'recurse': When TRUE, the directory scan will recurse the entire tree
@@ -1012,18 +946,6 @@ function file_scan_directory($dir, $mask, $options = array(), $depth = 0) {
     $dir_has_slash = (substr($dir, -1) === '/');
   }
 
-  // Allow directories specified in settings.php to be ignored. You can use this
-  // to not check for files in common special-purpose directories. For example,
-  // node_modules and bower_components. Ignoring irrelevant directories is a
-  // performance boost.
-  if (!isset($options['nomask'])) {
-    $ignore_directories = Settings::get('file_scan_ignore_directories', []);
-    array_walk($ignore_directories, function(&$value) {
-      $value = preg_quote($value, '/');
-    });
-    $default_nomask = '/^' . implode('|', $ignore_directories) . '$/';
-  }
-
   $options['key'] = in_array($options['key'], array('uri', 'filename', 'name')) ? $options['key'] : 'uri';
   $files = array();
   // Avoid warnings when opendir does not have the permissions to open a
@@ -1032,10 +954,7 @@ function file_scan_directory($dir, $mask, $options = array(), $depth = 0) {
     if ($handle = @opendir($dir)) {
       while (FALSE !== ($filename = readdir($handle))) {
         // Skip this file if it matches the nomask or starts with a dot.
-        if ($filename[0] != '.'
-          && !(isset($options['nomask']) && preg_match($options['nomask'], $filename))
-          && !(!empty($default_nomask) && preg_match($default_nomask, $filename))
-          ) {
+        if ($filename[0] != '.' && !(isset($options['nomask']) && preg_match($options['nomask'], $filename))) {
           if ($depth == 0 && $dir_has_slash) {
             $uri = "$dir$filename";
           }
diff --git a/core/includes/form.inc b/core/includes/form.inc
index c98e9e8..aaa8408 100644
--- a/core/includes/form.inc
+++ b/core/includes/form.inc
@@ -592,8 +592,7 @@ function template_preprocess_form_element_label(&$variables) {
  *   //   1 (or no value explicitly set) means the operation is finished
  *   //   and the batch processing can continue to the next operation.
  *
- *   $nodes = \Drupal::entityTypeManager()->getStorage('node')
- *     ->loadByProperties(['uid' => $uid, 'type' => $type]);
+ *   $nodes = entity_load_multiple_by_properties('node', array('uid' => $uid, 'type' => $type));
  *   $node = reset($nodes);
  *   $context['results'][] = $node->id() . ' : ' . SafeMarkup::checkPlain($node->label());
  *   $context['message'] = SafeMarkup::checkPlain($node->label());
diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index 1019270..5052611 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -361,13 +361,7 @@ function install_begin_request($class_loader, &$install_state) {
   \Drupal::setContainer($container);
 
   // Determine whether base system services are ready to operate.
-  try {
-    $sync_directory = config_get_config_directory(CONFIG_SYNC_DIRECTORY);
-    $install_state['config_verified'] = file_exists($sync_directory);
-  }
-  catch (Exception $e) {
-    $install_state['config_verified'] = FALSE;
-  }
+  $install_state['config_verified'] = install_ensure_config_directory(CONFIG_SYNC_DIRECTORY);
   $install_state['database_verified'] = install_verify_database_settings($site_path);
   $install_state['settings_verified'] = $install_state['config_verified'] && $install_state['database_verified'];
 
@@ -1090,7 +1084,7 @@ function install_verify_completed_task() {
  *   The site path.
  *
  * @return bool
- *   TRUE if there are no database errors.
+ *  TRUE if there are no database errors.
  */
 function install_verify_database_settings($site_path) {
   if ($database = Database::getConnectionInfo()) {
diff --git a/core/includes/install.inc b/core/includes/install.inc
index 3a9c2bc..88ca1e2a 100644
--- a/core/includes/install.inc
+++ b/core/includes/install.inc
@@ -115,8 +115,8 @@ function drupal_install_profile_distribution_name() {
  * Loads the installation profile, extracting its defined version.
  *
  * @return string Distribution version defined in the profile's .info.yml file.
- *   Defaults to \Drupal::VERSION if no version is explicitly provided
- *   by the installation profile.
+ * Defaults to \Drupal::VERSION if no version is explicitly provided
+ * by the installation profile.
  *
  * @see install_profile_info()
  */
@@ -139,7 +139,7 @@ function drupal_install_profile_distribution_version() {
  * Detects all supported databases that are compiled into PHP.
  *
  * @return
- *   An array of database types compiled into PHP.
+ *  An array of database types compiled into PHP.
  */
 function drupal_detect_database_types() {
   $databases = drupal_get_database_types();
@@ -486,12 +486,16 @@ function drupal_install_config_directories() {
 
   // Add a randomized config directory name to settings.php, unless it was
   // manually defined in the existing already.
+  $settings = [];
+  $config_directories_hash = Crypt::randomBytesBase64(55);
   if (empty($config_directories[CONFIG_SYNC_DIRECTORY])) {
-    $config_directories[CONFIG_SYNC_DIRECTORY] = \Drupal::service('site.path') . '/files/config_' . Crypt::randomBytesBase64(55) . '/sync';
     $settings['config_directories'][CONFIG_SYNC_DIRECTORY] = (object) [
-      'value' => $config_directories[CONFIG_SYNC_DIRECTORY],
+      'value' => \Drupal::service('site.path') . '/files/config_' . $config_directories_hash . '/sync',
       'required' => TRUE,
     ];
+  }
+
+  if (!empty($settings)) {
     // Rewrite settings.php, which also sets the value as global variable.
     drupal_rewrite_settings($settings);
   }
@@ -502,21 +506,19 @@ function drupal_install_config_directories() {
   // public files directory, which has already been verified to be writable
   // itself. But if it somehow fails anyway, the installation cannot proceed.
   // Bail out using a similar error message as in system_requirements().
-  if (!file_prepare_directory($config_directories[CONFIG_SYNC_DIRECTORY], FILE_CREATE_DIRECTORY)
-    && !file_exists($config_directories[CONFIG_SYNC_DIRECTORY])) {
-    throw new Exception(t('The directory %directory could not be created. To proceed with the installation, either create the directory or ensure that the installer has the permissions to create it automatically. For more information, see the <a href=":handbook_url">online handbook</a>.', array(
+  if (!install_ensure_config_directory(CONFIG_SYNC_DIRECTORY)) {
+    throw new Exception(t('The directory %directory could not be created or could not be made writable. To proceed with the installation, either create the directory and modify its permissions manually or ensure that the installer has the permissions to create it automatically. For more information, see the <a href=":handbook_url">online handbook</a>.', array(
       '%directory' => config_get_config_directory(CONFIG_SYNC_DIRECTORY),
       ':handbook_url' => 'https://www.drupal.org/server-permissions',
     )));
   }
-  elseif (is_writable($config_directories[CONFIG_SYNC_DIRECTORY])) {
-    // Put a README.txt into the sync config directory. This is required so that
-    // they can later be added to git. Since this directory is auto-created, we
-    // have to write out the README rather than just adding it to the drupal core
-    // repo.
-    $text = 'This directory contains configuration to be imported into your Drupal site. To make this configuration active, visit admin/config/development/configuration/sync.' . ' For information about deploying configuration between servers, see https://www.drupal.org/documentation/administer/config';
-    file_put_contents(config_get_config_directory(CONFIG_SYNC_DIRECTORY) . '/README.txt', $text);
-  }
+
+  // Put a README.txt into the sync config directory. This is required so that
+  // they can later be added to git. Since this directory is auto-created, we
+  // have to write out the README rather than just adding it to the drupal core
+  // repo.
+  $text = 'This directory contains configuration to be imported into your Drupal site. To make this configuration active, visit admin/config/development/configuration/sync.' . ' For information about deploying configuration between servers, see https://www.drupal.org/documentation/administer/config';
+  file_put_contents(config_get_config_directory(CONFIG_SYNC_DIRECTORY) . '/README.txt', $text);
 }
 
 /**
@@ -527,9 +529,6 @@ function drupal_install_config_directories() {
  *
  * @return bool
  *   TRUE if the config directory exists and is writable.
- *
- * @deprecated in Drupal 8.1.x, will be removed before Drupal 9.0.x. Use
- *   config_get_config_directory() and file_prepare_directory() instead.
  */
 function install_ensure_config_directory($type) {
   // The config directory must be defined in settings.php.
@@ -725,7 +724,7 @@ function drupal_verify_install_file($file, $mask = NULL, $type = 'file') {
  *   (optional) Whether to output messages. Defaults to TRUE.
  *
  * @return
- *   TRUE/FALSE whether or not the directory was successfully created.
+ *  TRUE/FALSE whether or not the directory was successfully created.
  */
 function drupal_install_mkdir($file, $mask, $message = TRUE) {
   $mod = 0;
@@ -774,7 +773,7 @@ function drupal_install_mkdir($file, $mask, $message = TRUE) {
  *   (optional) Whether to output messages. Defaults to TRUE.
  *
  * @return
- *   TRUE/FALSE whether or not we were able to fix the file's permissions.
+ *  TRUE/FALSE whether or not we were able to fix the file's permissions.
  */
 function drupal_install_fix_file($file, $mask, $message = TRUE) {
   // If $file does not exist, fileperms() issues a PHP warning.
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 9b89250..ec97db2 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -13,11 +13,8 @@
 use Drupal\Component\Utility\Html;
 use Drupal\Component\Render\MarkupInterface;
 use Drupal\Component\Utility\Unicode;
-use Drupal\Core\Cache\CacheableDependencyInterface;
 use Drupal\Core\Config\Config;
 use Drupal\Core\Config\StorageException;
-use Drupal\Core\Render\AttachmentsInterface;
-use Drupal\Core\Render\BubbleableMetadata;
 use Drupal\Core\Render\RenderableInterface;
 use Drupal\Core\Template\Attribute;
 use Drupal\Core\Theme\ThemeSettings;
@@ -402,17 +399,6 @@ function theme_get_setting($setting_name, $theme = NULL) {
  *   https://www.drupal.org/node/2575065
  */
 function theme_render_and_autoescape($arg) {
-  // If it's a renderable, then it'll be up to the generated render array it
-  // returns to contain the necessary cacheability & attachment metadata. If
-  // it doesn't implement CacheableDependencyInterface or AttachmentsInterface
-  // then there is nothing to do here.
-  if (!($arg instanceof RenderableInterface) && ($arg instanceof CacheableDependencyInterface || $arg instanceof AttachmentsInterface)) {
-    $arg_bubbleable = [];
-    BubbleableMetadata::createFromObject($arg)
-      ->applyTo($arg_bubbleable);
-    \Drupal::service('renderer')->render($arg_bubbleable);
-  }
-
   if ($arg instanceof MarkupInterface) {
     return (string) $arg;
   }
@@ -596,7 +582,7 @@ function template_preprocess_datetime_wrapper(&$variables) {
  *
  * Unfortunately links templates duplicate the "active" class handling of l()
  * and LinkGenerator::generate() because it needs to be able to set the "active"
- * class not on the links themselves (<a> tags), but on the list items (<li>
+ * class not on the links themselves ("a" tags), but on the list items ("li"
  * tags) that contain the links. This is necessary for CSS to be able to style
  * list items differently when the link is active, since CSS does not yet allow
  * one to style list items only if it contains a certain element with a certain
@@ -656,7 +642,7 @@ function template_preprocess_links(&$variables) {
   if (!empty($links)) {
     // Prepend the heading to the list, if any.
     if (!empty($heading)) {
-      // Convert a string heading into an array, using a <h2> tag by default.
+      // Convert a string heading into an array, using a H2 tag by default.
       if (is_string($heading)) {
         $heading = array('text' => $heading);
       }
@@ -858,28 +844,28 @@ function template_preprocess_image(&$variables) {
  *   - colgroups: An array of column groups. Each element of the array can be
  *     either:
  *     - An array of columns, each of which is an associative array of HTML
- *       attributes applied to the <col> element.
- *     - An array of attributes applied to the <colgroup> element, which must
- *       include a "data" attribute. To add attributes to <col> elements,
- *       set the "data" attribute with an array of columns, each of which is an
+ *       attributes applied to the COL element.
+ *     - An array of attributes applied to the COLGROUP element, which must
+ *       include a "data" attribute. To add attributes to COL elements, set the
+ *       "data" attribute with an array of columns, each of which is an
  *       associative array of HTML attributes.
  *     Here's an example for $colgroup:
  *     @code
  *     $colgroup = array(
- *       // <colgroup> with one <col> element.
+ *       // COLGROUP with one COL element.
  *       array(
  *         array(
- *           'class' => array('funky'), // Attribute for the <col> element.
+ *           'class' => array('funky'), // Attribute for the COL element.
  *         ),
  *       ),
- *       // <colgroup> with attributes and inner <col> elements.
+ *       // Colgroup with attributes and inner COL elements.
  *       array(
  *         'data' => array(
  *           array(
- *             'class' => array('funky'), // Attribute for the <col> element.
+ *             'class' => array('funky'), // Attribute for the COL element.
  *           ),
  *         ),
- *         'class' => array('jazzy'), // Attribute for the <colgroup> element.
+ *         'class' => array('jazzy'), // Attribute for the COLGROUP element.
  *       ),
  *     );
  *     @endcode
@@ -1157,7 +1143,7 @@ function template_preprocess_container(&$variables) {
  *   An associative array containing:
  *   - items: An associative array of maintenance tasks.
  *     It's the caller's responsibility to ensure this array's items contain no
- *     dangerous HTML such as <script> tags.
+ *     dangerous HTML such as SCRIPT tags.
  *   - active: The key for the currently active maintenance task.
  */
 function template_preprocess_maintenance_task_list(&$variables) {
@@ -1267,7 +1253,7 @@ function template_preprocess_html(&$variables) {
 
   $variables['html_attributes'] = new Attribute();
 
-  // <html> element attributes.
+  // HTML element attributes.
   $language_interface = \Drupal::languageManager()->getCurrentLanguage();
   $variables['html_attributes']['lang'] = $language_interface->getId();
   $variables['html_attributes']['dir'] = $language_interface->getDirection();
diff --git a/core/includes/update.inc b/core/includes/update.inc
index 2c020db..a07595e 100644
--- a/core/includes/update.inc
+++ b/core/includes/update.inc
@@ -65,7 +65,7 @@ function update_check_incompatibility($name, $type = 'module') {
  * Returns whether the minimum schema requirement has been satisfied.
  *
  * @return array
- *   A requirements info array.
+ *  A requirements info array.
  */
 function update_system_schema_requirements() {
   $requirements = array();
diff --git a/core/lib/Drupal/Component/Annotation/Plugin.php b/core/lib/Drupal/Component/Annotation/Plugin.php
index 29f3675..9ec9b90 100644
--- a/core/lib/Drupal/Component/Annotation/Plugin.php
+++ b/core/lib/Drupal/Component/Annotation/Plugin.php
@@ -49,7 +49,7 @@ public function __construct($values) {
    *   The annotation array.
    *
    * @return array
-   *   The parsed annotation as a definition.
+   *  The parsed annotation as a definition.
    */
   protected function parse(array $values) {
     $definitions = array();
diff --git a/core/lib/Drupal/Component/Annotation/Plugin/Discovery/AnnotatedClassDiscovery.php b/core/lib/Drupal/Component/Annotation/Plugin/Discovery/AnnotatedClassDiscovery.php
index e564fd0..50d8856 100644
--- a/core/lib/Drupal/Component/Annotation/Plugin/Discovery/AnnotatedClassDiscovery.php
+++ b/core/lib/Drupal/Component/Annotation/Plugin/Discovery/AnnotatedClassDiscovery.php
@@ -3,7 +3,6 @@
 namespace Drupal\Component\Annotation\Plugin\Discovery;
 
 use Drupal\Component\Annotation\AnnotationInterface;
-use Drupal\Component\FileCache\FileCacheFactory;
 use Drupal\Component\Plugin\Discovery\DiscoveryInterface;
 use Drupal\Component\Annotation\Reflection\MockFileFinder;
 use Doctrine\Common\Annotations\SimpleAnnotationReader;
@@ -50,13 +49,6 @@ class AnnotatedClassDiscovery implements DiscoveryInterface {
   protected $annotationNamespaces = [];
 
   /**
-   * The file cache object.
-   *
-   * @var \Drupal\Component\FileCache\FileCacheInterface
-   */
-  protected $fileCache;
-
-  /**
    * Constructs a new instance.
    *
    * @param string[] $plugin_namespaces
@@ -72,10 +64,6 @@ function __construct($plugin_namespaces = array(), $plugin_definition_annotation
     $this->pluginNamespaces = $plugin_namespaces;
     $this->pluginDefinitionAnnotationName = $plugin_definition_annotation_name;
     $this->annotationNamespaces = $annotation_namespaces;
-
-    $file_cache_suffix = str_replace('\\', '_', $plugin_definition_annotation_name);
-    $file_cache_suffix .= ':' . hash('crc32b', serialize($annotation_namespaces));
-    $this->fileCache = FileCacheFactory::get('annotation_discovery:' . $file_cache_suffix);
   }
 
   /**
@@ -122,14 +110,6 @@ public function getDefinitions() {
           );
           foreach ($iterator as $fileinfo) {
             if ($fileinfo->getExtension() == 'php') {
-              if ($cached = $this->fileCache->get($fileinfo->getPathName())) {
-                if (isset($cached['id'])) {
-                  // Explicitly unserialize this to create a new object instance.
-                  $definitions[$cached['id']] = unserialize($cached['content']);
-                }
-                continue;
-              }
-
               $sub_path = $iterator->getSubIterator()->getSubPath();
               $sub_path = $sub_path ? str_replace(DIRECTORY_SEPARATOR, '\\', $sub_path) . '\\' : '';
               $class = $namespace . '\\' . $sub_path . $fileinfo->getBasename('.php');
@@ -143,16 +123,7 @@ public function getDefinitions() {
               /** @var $annotation \Drupal\Component\Annotation\AnnotationInterface */
               if ($annotation = $reader->getClassAnnotation($parser->getReflectionClass(), $this->pluginDefinitionAnnotationName)) {
                 $this->prepareAnnotationDefinition($annotation, $class);
-
-                $id = $annotation->getId();
-                $content = $annotation->get();
-                $definitions[$id] = $content;
-                // Explicitly serialize this to create a new object instance.
-                $this->fileCache->set($fileinfo->getPathName(), ['id' => $id, 'content' => serialize($content)]);
-              }
-              else {
-                // Store a NULL object, so the file is not reparsed again.
-                $this->fileCache->set($fileinfo->getPathName(), [NULL]);
+                $definitions[$annotation->getId()] = $annotation->get();
               }
             }
           }
diff --git a/core/lib/Drupal/Component/Annotation/composer.json b/core/lib/Drupal/Component/Annotation/composer.json
index 76254ea..ac59021 100644
--- a/core/lib/Drupal/Component/Annotation/composer.json
+++ b/core/lib/Drupal/Component/Annotation/composer.json
@@ -8,7 +8,6 @@
     "php": ">=5.5.9",
     "doctrine/common": "2.5.*",
     "doctrine/annotations": "1.2.*",
-    "drupal/core-fileCache": "~8.2",
     "drupal/core-plugin": "~8.2",
     "drupal/core-utility": "~8.2"
   },
diff --git a/core/lib/Drupal/Component/Datetime/DateTimePlus.php b/core/lib/Drupal/Component/Datetime/DateTimePlus.php
index 56bd92f..377bb27 100644
--- a/core/lib/Drupal/Component/Datetime/DateTimePlus.php
+++ b/core/lib/Drupal/Component/Datetime/DateTimePlus.php
@@ -455,7 +455,7 @@ public function checkErrors() {
   /**
    * Detects if there were errors in the processing of this date.
    *
-   * @return bool
+   * @return boolean
    *   TRUE if there were errors in the processing of this date, FALSE
    *   otherwise.
    */
diff --git a/core/lib/Drupal/Component/DependencyInjection/Container.php b/core/lib/Drupal/Component/DependencyInjection/Container.php
index 452a2c8..733490c 100644
--- a/core/lib/Drupal/Component/DependencyInjection/Container.php
+++ b/core/lib/Drupal/Component/DependencyInjection/Container.php
@@ -373,7 +373,7 @@ public function set($id, $service, $scope = ContainerInterface::SCOPE_CONTAINER)
    * {@inheritdoc}
    */
   public function has($id) {
-    return isset($this->aliases[$id]) || isset($this->services[$id]) || isset($this->serviceDefinitions[$id]);
+    return isset($this->services[$id]) || isset($this->serviceDefinitions[$id]);
   }
 
   /**
diff --git a/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php b/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php
index 317f2c4..d52fb89 100644
--- a/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php
+++ b/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php
@@ -60,7 +60,6 @@ public function dump(array $options = array()) {
    */
   public function getArray() {
     $definition = array();
-    $this->aliases = $this->getAliases();
     $definition['aliases'] = $this->getAliases();
     $definition['parameters'] = $this->getParameters();
     $definition['services'] = $this->getServiceDefinitions();
@@ -455,9 +454,6 @@ protected function getReferenceCall($id, Reference $reference = NULL) {
     }
 
     // Private shared service.
-    if (isset($this->aliases[$id])) {
-      $id = $this->aliases[$id];
-    }
     $definition = $this->container->getDefinition($id);
     if (!$definition->isPublic()) {
       // The ContainerBuilder does not share a private service, but this means a
diff --git a/core/lib/Drupal/Component/DependencyInjection/composer.json b/core/lib/Drupal/Component/DependencyInjection/composer.json
index 7701313..28dc031 100644
--- a/core/lib/Drupal/Component/DependencyInjection/composer.json
+++ b/core/lib/Drupal/Component/DependencyInjection/composer.json
@@ -12,10 +12,8 @@
   },
   "require": {
     "php": ">=5.5.9",
-    "symfony/dependency-injection": "~2.8"
-  },
-  "suggest": {
-    "symfony/expression-language": "For using expressions in service container configuration"
+    "symfony/dependency-injection": "2.7.*",
+    "symfony/expression-language": "2.7.*"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php b/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php
index a933b06..85df62e 100644
--- a/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php
+++ b/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php
@@ -159,35 +159,6 @@ public function getListeners($event_name = NULL) {
   /**
    * {@inheritdoc}
    */
-  public function getListenerPriority($eventName, $listener) {
-    // Parts copied from \Symfony\Component\EventDispatcher, that's why you see
-    // a yoda condition here.
-    if (!isset($this->listeners[$eventName])) {
-      return;
-    }
-    foreach ($this->listeners[$eventName] as $priority => $listeners) {
-      if (FALSE !== ($key = array_search(['callable' => $listener], $listeners, TRUE))) {
-        return $priority;
-      }
-    }
-    // Resolve service definitions if the listener has not been found so far.
-    foreach ($this->listeners[$eventName] as $priority => &$definitions) {
-      foreach ($definitions as $key => &$definition) {
-        if (!isset($definition['callable'])) {
-          // Once the callable is retrieved we keep it for subsequent method
-          // invocations on this class.
-          $definition['callable'] = [$this->container->get($definition['service'][0]), $definition['service'][1]];
-          if ($definition['callable'] === $listener) {
-            return $priority;
-          }
-        }
-      }
-    }
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function hasListeners($event_name = NULL) {
     return (bool) count($this->getListeners($event_name));
   }
diff --git a/core/lib/Drupal/Component/EventDispatcher/composer.json b/core/lib/Drupal/Component/EventDispatcher/composer.json
index be66232..2132841 100644
--- a/core/lib/Drupal/Component/EventDispatcher/composer.json
+++ b/core/lib/Drupal/Component/EventDispatcher/composer.json
@@ -6,8 +6,8 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "symfony/dependency-injection": "~2.8",
-    "symfony/event-dispatcher": "~2.7"
+    "symfony/dependency-injection": "2.7.*",
+    "symfony/event-dispatcher": "2.7.*"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/FileCache/FileCacheFactory.php b/core/lib/Drupal/Component/FileCache/FileCacheFactory.php
index 15b2026..d0860b4 100644
--- a/core/lib/Drupal/Component/FileCache/FileCacheFactory.php
+++ b/core/lib/Drupal/Component/FileCache/FileCacheFactory.php
@@ -8,11 +8,6 @@
 class FileCacheFactory {
 
   /**
-   * The configuration key to disable FileCache completely.
-   */
-  const DISABLE_CACHE = 'file_cache_disable';
-
-  /**
    * The configuration used to create FileCache objects.
    *
    * @var array $configuration
@@ -39,35 +34,23 @@ class FileCacheFactory {
    *   The initialized FileCache object.
    */
   public static function get($collection, $default_configuration = []) {
-    // If there is a special key in the configuration, disable FileCache completely.
-    if (!empty(static::$configuration[static::DISABLE_CACHE])) {
-      return new NullFileCache('', '');
-    }
-
-    $configuration = [];
-
-    // Check for a collection specific setting first.
-    if (isset(static::$configuration[$collection])) {
-      $configuration += static::$configuration[$collection];
-    }
-    // Then check if a default configuration has been provided.
-    if (!empty($default_configuration)) {
-      $configuration += $default_configuration;
-    }
-    // Last check if a default setting has been provided.
-    if (isset(static::$configuration['default'])) {
-      $configuration += static::$configuration['default'];
-    }
-
-    // Ensure that all properties are set.
-    $fallback_configuration = [
+    $default_configuration += [
       'class' => '\Drupal\Component\FileCache\FileCache',
       'collection' => $collection,
       'cache_backend_class' => NULL,
       'cache_backend_configuration' => [],
     ];
 
-    $configuration = $configuration + $fallback_configuration;
+    $configuration = [];
+    if (isset(static::$configuration[$collection])) {
+      $configuration = static::$configuration[$collection];
+    }
+    elseif (isset(static::$configuration['default'])) {
+      $configuration = static::$configuration['default'];
+    }
+
+    // Add defaults to the configuration.
+    $configuration = $configuration + $default_configuration;
 
     $class = $configuration['class'];
     return new $class(static::getPrefix(), $configuration['collection'], $configuration['cache_backend_class'], $configuration['cache_backend_configuration']);
diff --git a/core/lib/Drupal/Component/FileCache/composer.json b/core/lib/Drupal/Component/FileCache/composer.json
index db9a275..23a9357 100644
--- a/core/lib/Drupal/Component/FileCache/composer.json
+++ b/core/lib/Drupal/Component/FileCache/composer.json
@@ -1,5 +1,5 @@
 {
-  "name": "drupal/core-file-cache",
+  "name": "drupal/core-fileCache",
   "description": "FileCache.",
   "keywords": ["drupal"],
   "homepage": "https://www.drupal.org/project/drupal",
diff --git a/core/lib/Drupal/Component/HttpFoundation/composer.json b/core/lib/Drupal/Component/HttpFoundation/composer.json
index 1b3920b..57c929d 100644
--- a/core/lib/Drupal/Component/HttpFoundation/composer.json
+++ b/core/lib/Drupal/Component/HttpFoundation/composer.json
@@ -1,12 +1,12 @@
 {
-  "name": "drupal/core-http-foundation",
+  "name": "drupal/core-httpFoundation",
   "description": "HttpFoundation.",
   "keywords": ["drupal"],
   "homepage": "https://www.drupal.org/project/drupal",
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "symfony/http-foundation": "~2.7"
+    "symfony/http-foundation": "2.7.*"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/PhpStorage/composer.json b/core/lib/Drupal/Component/PhpStorage/composer.json
index 16b561d..3c3b398 100644
--- a/core/lib/Drupal/Component/PhpStorage/composer.json
+++ b/core/lib/Drupal/Component/PhpStorage/composer.json
@@ -1,5 +1,5 @@
 {
-  "name": "drupal/core-php-storage",
+  "name": "drupal/core-phpStorage",
   "description": "PhpStorage.",
   "keywords": ["drupal"],
   "homepage": "https://www.drupal.org/project/drupal",
diff --git a/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php b/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php
index 7d076fa..b065de9 100644
--- a/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php
+++ b/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php
@@ -30,8 +30,8 @@ public function getDefinition($plugin_id, $exception_on_invalid = TRUE) {
    * @param string $plugin_id
    *   A plugin id.
    * @param bool $exception_on_invalid
-   *   If TRUE, an invalid plugin ID will cause an exception to be thrown; if
-   *   FALSE, NULL will be returned.
+   *   (optional) If TRUE, an invalid plugin ID will throw an exception.
+   *   Defaults to FALSE.
    *
    * @return array|null
    *   A plugin definition, or NULL if the plugin ID is invalid and
diff --git a/core/lib/Drupal/Component/Plugin/composer.json b/core/lib/Drupal/Component/Plugin/composer.json
index 4ffeeed..1acc8c5 100644
--- a/core/lib/Drupal/Component/Plugin/composer.json
+++ b/core/lib/Drupal/Component/Plugin/composer.json
@@ -6,7 +6,7 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "symfony/validator": "~2.7"
+    "symfony/validator": "2.7.*"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Render/OutputStrategyInterface.php b/core/lib/Drupal/Component/Render/OutputStrategyInterface.php
index 3ed9725..3406e80 100644
--- a/core/lib/Drupal/Component/Render/OutputStrategyInterface.php
+++ b/core/lib/Drupal/Component/Render/OutputStrategyInterface.php
@@ -7,7 +7,7 @@
  *
  * Output strategies assist in transforming HTML strings into strings that are
  * appropriate for a given context (e.g. plain-text), through performing the
- * relevant formatting. No sanitization is applied.
+ * relevant formatting. No santization is applied.
  */
 interface OutputStrategyInterface {
 
diff --git a/core/lib/Drupal/Component/Serialization/composer.json b/core/lib/Drupal/Component/Serialization/composer.json
index 5d629cf..ff62221 100644
--- a/core/lib/Drupal/Component/Serialization/composer.json
+++ b/core/lib/Drupal/Component/Serialization/composer.json
@@ -6,7 +6,7 @@
   "license": "GPL-2.0+",
   "require": {
     "php": ">=5.5.9",
-    "symfony/yaml": "~2.7"
+    "symfony/yaml": "2.7.*"
   },
   "autoload": {
     "psr-4": {
diff --git a/core/lib/Drupal/Component/Utility/Crypt.php b/core/lib/Drupal/Component/Utility/Crypt.php
index ace4ebd..2c18d91 100644
--- a/core/lib/Drupal/Component/Utility/Crypt.php
+++ b/core/lib/Drupal/Component/Utility/Crypt.php
@@ -123,7 +123,7 @@ public static function hashEquals($known_string, $user_string) {
    *   The number of random bytes to fetch and base64 encode.
    *
    * @return string
-   *   The base64 encoded result will have a length of up to 4 * $count.
+   *   The base64 encoded result will have a length of up to 4 * $byte_count.
    *
    * @see \Drupal\Component\Utility\Crypt::randomBytes()
    */
diff --git a/core/lib/Drupal/Component/Uuid/Com.php b/core/lib/Drupal/Component/Uuid/Com.php
index f9305f5..0701132 100644
--- a/core/lib/Drupal/Component/Uuid/Com.php
+++ b/core/lib/Drupal/Component/Uuid/Com.php
@@ -3,7 +3,7 @@
 namespace Drupal\Component\Uuid;
 
 /**
- * Generates a UUID using the Windows internal GUID extension.
+ * UUID implementation using the Windows internal GUID extension.
  *
  * @see http://php.net/com_create_guid
  */
diff --git a/core/lib/Drupal/Component/Uuid/Pecl.php b/core/lib/Drupal/Component/Uuid/Pecl.php
index 554d6a2..88e0c63 100644
--- a/core/lib/Drupal/Component/Uuid/Pecl.php
+++ b/core/lib/Drupal/Component/Uuid/Pecl.php
@@ -3,7 +3,7 @@
 namespace Drupal\Component\Uuid;
 
 /**
- * Generates a UUID using the PECL extension.
+ * UUID implementation using the PECL extension.
  */
 class Pecl implements UuidInterface {
 
diff --git a/core/lib/Drupal/Component/Uuid/Uuid.php b/core/lib/Drupal/Component/Uuid/Uuid.php
index c6ba2ec..0bd022a 100644
--- a/core/lib/Drupal/Component/Uuid/Uuid.php
+++ b/core/lib/Drupal/Component/Uuid/Uuid.php
@@ -13,7 +13,7 @@ class Uuid {
   const VALID_PATTERN = '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}';
 
   /**
-   * Checks whether a string appears to be in the format of a UUID.
+   * Checks that a string appears to be in the format of a UUID.
    *
    * Implementations should not implement validation, since UUIDs should be in
    * a consistent format across all implementations.
diff --git a/core/lib/Drupal/Core/Cache/Cache.php b/core/lib/Drupal/Core/Cache/Cache.php
index 2d0c220..06b4ac2 100644
--- a/core/lib/Drupal/Core/Cache/Cache.php
+++ b/core/lib/Drupal/Core/Cache/Cache.php
@@ -149,7 +149,7 @@ public static function invalidateTags(array $tags) {
    * Gets all cache bin services.
    *
    * @return array
-   *   An array of cache backend objects keyed by cache bins.
+   *  An array of cache backend objects keyed by cache bins.
    */
   public static function getBins() {
     $bins = array();
diff --git a/core/lib/Drupal/Core/Cache/CacheFactory.php b/core/lib/Drupal/Core/Cache/CacheFactory.php
index d9b39e4..8547ac4 100644
--- a/core/lib/Drupal/Core/Cache/CacheFactory.php
+++ b/core/lib/Drupal/Core/Cache/CacheFactory.php
@@ -64,20 +64,16 @@ public function __construct(Settings $settings, array $default_bin_backends = ar
    */
   public function get($bin) {
     $cache_settings = $this->settings->get('cache');
-    // First, look for a cache bin specific setting.
     if (isset($cache_settings['bins'][$bin])) {
       $service_name = $cache_settings['bins'][$bin];
     }
-    // Second, use the default backend specified by the cache bin.
-    elseif (isset($this->defaultBinBackends[$bin])) {
-      $service_name = $this->defaultBinBackends[$bin];
-    }
-    // Third, use configured default backend.
     elseif (isset($cache_settings['default'])) {
       $service_name = $cache_settings['default'];
     }
+    elseif (isset($this->defaultBinBackends[$bin])) {
+      $service_name = $this->defaultBinBackends[$bin];
+    }
     else {
-      // Fall back to the database backend if nothing else is configured.
       $service_name = 'cache.backend.database';
     }
     return $this->container->get($service_name)->get($bin);
diff --git a/core/lib/Drupal/Core/Cache/CacheableDependencyInterface.php b/core/lib/Drupal/Core/Cache/CacheableDependencyInterface.php
index cbce6aa..2bb89ba 100644
--- a/core/lib/Drupal/Core/Cache/CacheableDependencyInterface.php
+++ b/core/lib/Drupal/Core/Cache/CacheableDependencyInterface.php
@@ -37,7 +37,7 @@ public function getCacheContexts();
    * When this object is modified, these cache tags will be invalidated.
    *
    * @return string[]
-   *   A set of cache tags.
+   *  A set of cache tags.
    */
   public function getCacheTags();
 
diff --git a/core/lib/Drupal/Core/Cache/ChainedFastBackend.php b/core/lib/Drupal/Core/Cache/ChainedFastBackend.php
index 5c0750d..62839c2 100644
--- a/core/lib/Drupal/Core/Cache/ChainedFastBackend.php
+++ b/core/lib/Drupal/Core/Cache/ChainedFastBackend.php
@@ -87,16 +87,8 @@ class ChainedFastBackend implements CacheBackendInterface, CacheTagsInvalidatorI
    *   The fast cache backend.
    * @param string $bin
    *   The cache bin for which the object is created.
-   *
-   * @throws \Exception
-   *   When the consistent cache backend and the fast cache backend are the same
-   *   service.
    */
   public function __construct(CacheBackendInterface $consistent_backend, CacheBackendInterface $fast_backend, $bin) {
-    if ($consistent_backend == $fast_backend) {
-      // @todo: should throw a proper exception. See https://www.drupal.org/node/2751847.
-      trigger_error('Consistent cache backend and fast cache backend cannot use the same service.', E_USER_ERROR);
-    }
     $this->consistentBackend = $consistent_backend;
     $this->fastBackend = $fast_backend;
     $this->bin = 'cache_' . $bin;
diff --git a/core/lib/Drupal/Core/Cache/Context/QueryArgsCacheContext.php b/core/lib/Drupal/Core/Cache/Context/QueryArgsCacheContext.php
index a486644..606e378 100644
--- a/core/lib/Drupal/Core/Cache/Context/QueryArgsCacheContext.php
+++ b/core/lib/Drupal/Core/Cache/Context/QueryArgsCacheContext.php
@@ -25,22 +25,11 @@ public static function getLabel() {
    */
   public function getContext($query_arg = NULL) {
     if ($query_arg === NULL) {
-      // All arguments requested. Use normalized query string to minimize
-      // variations.
-      $value = $this->requestStack->getCurrentRequest()->getQueryString();
-      return ($value !== NULL) ? $value : '';
+      return $this->requestStack->getCurrentRequest()->getQueryString();
     }
-    elseif ($this->requestStack->getCurrentRequest()->query->has($query_arg)) {
-      $value = $this->requestStack->getCurrentRequest()->query->get($query_arg);
-      if (is_array($value)) {
-        return http_build_query($value);
-      }
-      elseif ($value !== '') {
-        return $value;
-      }
-      return '?valueless?';
+    else {
+      return $this->requestStack->getCurrentRequest()->query->get($query_arg);
     }
-    return '';
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Condition/ConditionAccessResolverTrait.php b/core/lib/Drupal/Core/Condition/ConditionAccessResolverTrait.php
index 1af9816..106eeec 100644
--- a/core/lib/Drupal/Core/Condition/ConditionAccessResolverTrait.php
+++ b/core/lib/Drupal/Core/Condition/ConditionAccessResolverTrait.php
@@ -26,9 +26,8 @@ protected function resolveConditions($conditions, $condition_logic) {
         $pass = $condition->execute();
       }
       catch (ContextException $e) {
-        // If a condition is missing context and is not negated, consider that a
-        // fail.
-        $pass = $condition->isNegated();
+        // If a condition is missing context, consider that a fail.
+        $pass = FALSE;
       }
 
       // If a condition fails and all conditions were needed, deny access.
diff --git a/core/lib/Drupal/Core/Config/ConfigInstaller.php b/core/lib/Drupal/Core/Config/ConfigInstaller.php
index 97c3688..cc0d88f 100644
--- a/core/lib/Drupal/Core/Config/ConfigInstaller.php
+++ b/core/lib/Drupal/Core/Config/ConfigInstaller.php
@@ -511,7 +511,6 @@ protected function findDefaultConfigWithUnmetDependencies(StorageInterface $stor
    *   TRUE if the dependencies are met, FALSE if not.
    */
   protected function validateDependencies($config_name, array $data, array $enabled_extensions, array $all_config) {
-    list($provider) = explode('.', $config_name, 2);
     if (isset($data['dependencies'])) {
       $all_dependencies = $data['dependencies'];
 
@@ -522,6 +521,7 @@ protected function validateDependencies($config_name, array $data, array $enable
       }
       // Ensure the configuration entity type provider is in the list of
       // dependencies.
+      list($provider) = explode('.', $config_name, 2);
       if (!isset($all_dependencies['module'])) {
         $all_dependencies['module'][] = $provider;
       }
@@ -548,10 +548,6 @@ protected function validateDependencies($config_name, array $data, array $enable
         }
       }
     }
-    else {
-      // Simple config or a config entity without dependencies.
-      return in_array($provider, $enabled_extensions, TRUE);
-    }
     return TRUE;
   }
 
diff --git a/core/lib/Drupal/Core/Config/ConfigManager.php b/core/lib/Drupal/Core/Config/ConfigManager.php
index 11d7c84..1ab9fdb 100644
--- a/core/lib/Drupal/Core/Config/ConfigManager.php
+++ b/core/lib/Drupal/Core/Config/ConfigManager.php
@@ -307,9 +307,8 @@ public function getConfigEntitiesToChangeOnDependencyRemoval($type, array $names
 
     // Try to fix any dependencies and find out what will happen to the
     // dependency graph. Entities are processed in the order of most dependent
-    // first. For example, this ensures that Menu UI third party dependencies on
-    // node types are fixed before processing the node type's other
-    // dependencies.
+    // first. For example, this ensures that fields are removed before
+    // field storages.
     while ($dependent = array_pop($dependents)) {
       /** @var \Drupal\Core\Config\Entity\ConfigEntityInterface $dependent */
       if ($dry_run) {
@@ -347,9 +346,7 @@ public function getConfigEntitiesToChangeOnDependencyRemoval($type, array $names
       // If the entity cannot be fixed then it has to be deleted.
       if (!$fixed) {
         $delete_uuids[] = $dependent->uuid();
-        // Deletes should occur in the order of the least dependent first. For
-        // example, this ensures that fields are removed before field storages.
-        array_unshift($return['delete'], $dependent);
+        $return['delete'][] = $dependent;
       }
     }
     // Use the lists of UUIDs to filter the original list to work out which
diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigDependencyManager.php b/core/lib/Drupal/Core/Config/Entity/ConfigDependencyManager.php
index ef522ad..377f7c4 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigDependencyManager.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigDependencyManager.php
@@ -173,9 +173,7 @@ public function getDependentEntities($type, $name) {
     // dependent is at the top. For example, this ensures that fields are
     // always after field storages. This is because field storages need to be
     // created before a field.
-    $graph = $this->getGraph();
-    uasort($graph, array($this, 'sortGraph'));
-    return array_replace(array_intersect_key($graph, $dependencies), $dependencies);
+    return array_reverse(array_intersect_key($this->graph, $dependencies));
   }
 
   /**
@@ -187,32 +185,10 @@ public function getDependentEntities($type, $name) {
    */
   public function sortAll() {
     $graph = $this->getGraph();
-    // Sort by weight and alphabetically. The most dependent entities
+    // Sort by reverse weight and alphabetically. The most dependent entities
     // are last and entities with the same weight are alphabetically ordered.
-    uasort($graph, array($this, 'sortGraphByWeight'));
-    // Use array_intersect_key() to exclude modules and themes from the list.
-    return array_keys(array_intersect_key($graph, $this->data));
-  }
-
-  /**
-   * Sorts the dependency graph by weight and alphabetically.
-   *
-   * @param array $a
-   *   First item for comparison. The compared items should be associative
-   *   arrays that include a 'weight' and a 'name' key.
-   * @param array $b
-   *   Second item for comparison.
-   *
-   * @return int
-   *   The comparison result for uasort().
-   */
-  protected static function sortGraphByWeight(array $a, array $b) {
-    $weight_cmp = SortArray::sortByKeyInt($a, $b, 'weight');
-
-    if ($weight_cmp === 0) {
-      return SortArray::sortByKeyString($a, $b, 'name');
-    }
-    return $weight_cmp;
+    uasort($graph, array($this, 'sortGraph'));
+    return array_keys($graph);
   }
 
   /**
@@ -220,18 +196,18 @@ protected static function sortGraphByWeight(array $a, array $b) {
    *
    * @param array $a
    *   First item for comparison. The compared items should be associative
-   *   arrays that include a 'weight' and a 'name' key.
+   *   arrays that include a 'weight' and a 'component' key.
    * @param array $b
    *   Second item for comparison.
    *
    * @return int
    *   The comparison result for uasort().
    */
-  public static function sortGraph(array $a, array $b) {
+  public function sortGraph(array $a, array $b) {
     $weight_cmp = SortArray::sortByKeyInt($a, $b, 'weight') * -1;
 
     if ($weight_cmp === 0) {
-      return SortArray::sortByKeyString($a, $b, 'name');
+      return SortArray::sortByKeyString($a, $b, 'component');
     }
     return $weight_cmp;
   }
@@ -252,11 +228,9 @@ protected function createGraphConfigEntityDependencies($entities_to_check) {
     $graph = $this->getGraph();
 
     foreach ($entities_to_check as $entity) {
-      if (isset($graph[$entity]) && !empty($graph[$entity]['paths'])) {
-        foreach ($graph[$entity]['paths'] as $dependency => $value) {
-          if (isset($this->data[$dependency])) {
-            $dependent_entities[$dependency] = $this->data[$dependency];
-          }
+      if (isset($graph[$entity]) && !empty($graph[$entity]['reverse_paths'])) {
+        foreach ($graph[$entity]['reverse_paths'] as $dependency => $value) {
+          $dependent_entities[$dependency] = $this->data[$dependency];
         }
       }
     }
@@ -274,21 +248,14 @@ protected function getGraph() {
       $graph = array();
       foreach ($this->data as $entity) {
         $graph_key = $entity->getConfigDependencyName();
-        if (!isset($graph[$graph_key])) {
-          $graph[$graph_key] = [
-            'edges' => [],
-            'name' => $graph_key,
-          ];
-        }
-        // Include all dependencies in the graph so that topographical sorting
-        // works.
-        foreach (array_merge($entity->getDependencies('config'), $entity->getDependencies('module'), $entity->getDependencies('theme')) as $dependency) {
-          $graph[$dependency]['edges'][$graph_key] = TRUE;
-          $graph[$dependency]['name'] = $dependency;
+        $graph[$graph_key]['edges'] = array();
+        $dependencies = $entity->getDependencies('config');
+        if (!empty($dependencies)) {
+          foreach ($dependencies as $dependency) {
+            $graph[$graph_key]['edges'][$dependency] = TRUE;
+          }
         }
       }
-      // Ensure that order of the graph is consistent.
-      krsort($graph);
       $graph_object = new Graph($graph);
       $this->graph = $graph_object->searchAndSort();
     }
diff --git a/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php b/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php
index dc0ac92..d6cd127 100644
--- a/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php
+++ b/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php
@@ -135,7 +135,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $form['actions']['#type'] = 'actions';
     $form['actions']['submit'] = array(
       '#type' => 'submit',
-      '#value' => t('Save'),
+      '#value' => t('Save order'),
       '#button_type' => 'primary',
     );
 
diff --git a/core/lib/Drupal/Core/Config/ExtensionInstallStorage.php b/core/lib/Drupal/Core/Config/ExtensionInstallStorage.php
index 14e80dd..bdeb023 100644
--- a/core/lib/Drupal/Core/Config/ExtensionInstallStorage.php
+++ b/core/lib/Drupal/Core/Config/ExtensionInstallStorage.php
@@ -44,8 +44,9 @@ class ExtensionInstallStorage extends InstallStorage {
    *   search and to get overrides from.
    */
   public function __construct(StorageInterface $config_storage, $directory = self::CONFIG_INSTALL_DIRECTORY, $collection = StorageInterface::DEFAULT_COLLECTION, $include_profile = TRUE) {
-    parent::__construct($directory, $collection);
     $this->configStorage = $config_storage;
+    $this->directory = $directory;
+    $this->collection = $collection;
     $this->includeProfile = $include_profile;
   }
 
diff --git a/core/lib/Drupal/Core/Config/FileStorage.php b/core/lib/Drupal/Core/Config/FileStorage.php
index 2548203..eb485cf 100644
--- a/core/lib/Drupal/Core/Config/FileStorage.php
+++ b/core/lib/Drupal/Core/Config/FileStorage.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\Core\Config;
 
-use Drupal\Component\FileCache\FileCacheFactory;
 use Drupal\Component\Serialization\Yaml;
 use Drupal\Component\Serialization\Exception\InvalidDataTypeException;
 
@@ -26,13 +25,6 @@ class FileStorage implements StorageInterface {
   protected $directory = '';
 
   /**
-   * The file cache object.
-   *
-   * @var \Drupal\Component\FileCache\FileCacheInterface
-   */
-  protected $fileCache;
-
-  /**
    * Constructs a new FileStorage.
    *
    * @param string $directory
@@ -44,11 +36,6 @@ class FileStorage implements StorageInterface {
   public function __construct($directory, $collection = StorageInterface::DEFAULT_COLLECTION) {
     $this->directory = $directory;
     $this->collection = $collection;
-
-    // Use a NULL File Cache backend by default. This will ensure only the
-    // internal statc caching of FileCache is used and thus avoids blowing up
-    // the APCu cache.
-    $this->fileCache = FileCacheFactory::get('config', ['cache_backend_class' => NULL]);
   }
 
   /**
@@ -103,12 +90,7 @@ public function read($name) {
     if (!$this->exists($name)) {
       return FALSE;
     }
-
     $filepath = $this->getFilePath($name);
-    if ($data = $this->fileCache->get($filepath)) {
-      return $data;
-    }
-
     $data = file_get_contents($filepath);
     try {
       $data = $this->decode($data);
@@ -116,8 +98,6 @@ public function read($name) {
     catch (InvalidDataTypeException $e) {
       throw new UnsupportedDataTypeConfigException('Invalid data type in config ' . $name . ', found in file' . $filepath . ' : ' . $e->getMessage());
     }
-    $this->fileCache->set($filepath, $data);
-
     return $data;
   }
 
@@ -139,18 +119,18 @@ public function readMultiple(array $names) {
    */
   public function write($name, array $data) {
     try {
-      $encoded_data = $this->encode($data);
+      $data = $this->encode($data);
     }
     catch (InvalidDataTypeException $e) {
       throw new StorageException("Invalid data type in config $name: {$e->getMessage()}");
     }
 
     $target = $this->getFilePath($name);
-    $status = @file_put_contents($target, $encoded_data);
+    $status = @file_put_contents($target, $data);
     if ($status === FALSE) {
       // Try to make sure the directory exists and try writing again.
       $this->ensureStorage();
-      $status = @file_put_contents($target, $encoded_data);
+      $status = @file_put_contents($target, $data);
     }
     if ($status === FALSE) {
       throw new StorageException('Failed to write configuration file: ' . $this->getFilePath($name));
@@ -158,9 +138,6 @@ public function write($name, array $data) {
     else {
       drupal_chmod($target);
     }
-
-    $this->fileCache->set($target, $data);
-
     return TRUE;
   }
 
@@ -175,7 +152,6 @@ public function delete($name) {
       }
       return FALSE;
     }
-    $this->fileCache->delete($this->getFilePath($name));
     return drupal_unlink($this->getFilePath($name));
   }
 
@@ -187,8 +163,6 @@ public function rename($name, $new_name) {
     if ($status === FALSE) {
       throw new StorageException('Failed to rename configuration file from: ' . $this->getFilePath($name) . ' to: ' . $this->getFilePath($new_name));
     }
-    $this->fileCache->delete($this->getFilePath($name));
-    $this->fileCache->delete($this->getFilePath($new_name));
     return TRUE;
   }
 
diff --git a/core/lib/Drupal/Core/Config/InstallStorage.php b/core/lib/Drupal/Core/Config/InstallStorage.php
index bd9bf30..a5e8494 100644
--- a/core/lib/Drupal/Core/Config/InstallStorage.php
+++ b/core/lib/Drupal/Core/Config/InstallStorage.php
@@ -58,7 +58,8 @@ class InstallStorage extends FileStorage {
    *   default collection.
    */
   public function __construct($directory = self::CONFIG_INSTALL_DIRECTORY, $collection = StorageInterface::DEFAULT_COLLECTION) {
-    parent::__construct($directory, $collection);
+    $this->directory = $directory;
+    $this->collection = $collection;
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Config/StorageInterface.php b/core/lib/Drupal/Core/Config/StorageInterface.php
index 18a7126..49bc916 100644
--- a/core/lib/Drupal/Core/Config/StorageInterface.php
+++ b/core/lib/Drupal/Core/Config/StorageInterface.php
@@ -93,28 +93,28 @@ public function rename($name, $new_name);
   /**
    * Encodes configuration data into the storage-specific format.
    *
-   * This is a publicly accessible static method to allow for alternative
-   * usages in data conversion scripts and also tests.
-   *
    * @param array $data
    *   The configuration data to encode.
    *
    * @return string
    *   The encoded configuration data.
+   *
+   * This is a publicly accessible static method to allow for alternative
+   * usages in data conversion scripts and also tests.
    */
   public function encode($data);
 
   /**
    * Decodes configuration data from the storage-specific format.
    *
-   * This is a publicly accessible static method to allow for alternative
-   * usages in data conversion scripts and also tests.
-   *
    * @param string $raw
    *   The raw configuration data string to decode.
    *
    * @return array
    *   The decoded configuration data as an associative array.
+   *
+   * This is a publicly accessible static method to allow for alternative
+   * usages in data conversion scripts and also tests.
    */
   public function decode($raw);
 
diff --git a/core/lib/Drupal/Core/Controller/ControllerBase.php b/core/lib/Drupal/Core/Controller/ControllerBase.php
index fef0910..16f9c2a 100644
--- a/core/lib/Drupal/Core/Controller/ControllerBase.php
+++ b/core/lib/Drupal/Core/Controller/ControllerBase.php
@@ -3,7 +3,6 @@
 namespace Drupal\Core\Controller;
 
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
-use Drupal\Core\Logger\LoggerChannelTrait;
 use Drupal\Core\Routing\LinkGeneratorTrait;
 use Drupal\Core\Routing\RedirectDestinationTrait;
 use Drupal\Core\Routing\UrlGeneratorTrait;
@@ -34,7 +33,6 @@
 abstract class ControllerBase implements ContainerInjectionInterface {
 
   use LinkGeneratorTrait;
-  use LoggerChannelTrait;
   use RedirectDestinationTrait;
   use StringTranslationTrait;
   use UrlGeneratorTrait;
@@ -110,6 +108,13 @@
   protected $formBuilder;
 
   /**
+   * The logger factory.
+   *
+   * @var \Psr\Log\LoggerInterface
+   */
+  protected $loggerFactory;
+
+  /**
    * {@inheritdoc}
    */
   public static function create(ContainerInterface $container) {
@@ -280,6 +285,23 @@ protected function languageManager() {
   }
 
   /**
+   * Returns a channel logger object.
+   *
+   * @param string $channel
+   *   The name of the channel. Can be any string, but the general practice is
+   *   to use the name of the subsystem calling this.
+   *
+   * @return \Psr\Log\LoggerInterface
+   *   The logger for this channel.
+   */
+  protected function getLogger($channel) {
+    if (!$this->loggerFactory) {
+      $this->loggerFactory = $this->container()->get('logger.factory');
+    }
+    return $this->loggerFactory->get($channel);
+  }
+
+  /**
    * Returns the service container.
    *
    * This method is marked private to prevent sub-classes from retrieving
diff --git a/core/lib/Drupal/Core/CoreServiceProvider.php b/core/lib/Drupal/Core/CoreServiceProvider.php
index 013dec1..9117891 100644
--- a/core/lib/Drupal/Core/CoreServiceProvider.php
+++ b/core/lib/Drupal/Core/CoreServiceProvider.php
@@ -4,7 +4,6 @@
 
 use Drupal\Core\Cache\Context\CacheContextsPass;
 use Drupal\Core\Cache\ListCacheBinsPass;
-use Drupal\Core\DependencyInjection\Compiler\AuthenticationProviderPass;
 use Drupal\Core\DependencyInjection\Compiler\BackendCompilerPass;
 use Drupal\Core\DependencyInjection\Compiler\GuzzleMiddlewarePass;
 use Drupal\Core\DependencyInjection\Compiler\ContextProvidersPass;
@@ -91,7 +90,6 @@ public function register(ContainerBuilder $container) {
     $container->addCompilerPass(new ListCacheBinsPass());
     $container->addCompilerPass(new CacheContextsPass());
     $container->addCompilerPass(new ContextProvidersPass());
-    $container->addCompilerPass(new AuthenticationProviderPass());
 
     // Register plugin managers.
     $container->addCompilerPass(new PluginManagerPass());
diff --git a/core/lib/Drupal/Core/Cron.php b/core/lib/Drupal/Core/Cron.php
index 8662d68..9927043 100644
--- a/core/lib/Drupal/Core/Cron.php
+++ b/core/lib/Drupal/Core/Cron.php
@@ -160,8 +160,7 @@ protected function processQueues() {
         $queue_worker = $this->queueManager->createInstance($queue_name);
         $end = time() + (isset($info['cron']['time']) ? $info['cron']['time'] : 15);
         $queue = $this->queueFactory->get($queue_name);
-        $lease_time = isset($info['cron']['time']) ?: NULL;
-        while (time() < $end && ($item = $queue->claimItem($lease_time))) {
+        while (time() < $end && ($item = $queue->claimItem())) {
           try {
             $queue_worker->processItem($item->data);
             $queue->deleteItem($item);
diff --git a/core/lib/Drupal/Core/Database/Connection.php b/core/lib/Drupal/Core/Database/Connection.php
index 791bf7a..2002e9e 100644
--- a/core/lib/Drupal/Core/Database/Connection.php
+++ b/core/lib/Drupal/Core/Database/Connection.php
@@ -753,11 +753,14 @@ protected function expandArguments(&$query, &$args) {
    */
   public function getDriverClass($class) {
     if (empty($this->driverClasses[$class])) {
-      if (empty($this->connectionOptions['namespace'])) {
-        // Fallback for Drupal 7 settings.php and the test runner script.
-        $this->connectionOptions['namespace'] = (new \ReflectionObject($this))->getNamespaceName();
+      $driver = $this->driver();
+      if (!empty($this->connectionOptions['namespace'])) {
+        $driver_class  = $this->connectionOptions['namespace'] . '\\' . $class;
+      }
+      else {
+        // Fallback for Drupal 7 settings.php.
+        $driver_class = "Drupal\\Core\\Database\\Driver\\{$driver}\\{$class}";
       }
-      $driver_class = $this->connectionOptions['namespace'] . '\\' . $class;
       $this->driverClasses[$class] = class_exists($driver_class) ? $driver_class : $class;
     }
     return $this->driverClasses[$class];
diff --git a/core/lib/Drupal/Core/Database/Database.php b/core/lib/Drupal/Core/Database/Database.php
index 8fe1c45..e1a5c2a 100644
--- a/core/lib/Drupal/Core/Database/Database.php
+++ b/core/lib/Drupal/Core/Database/Database.php
@@ -129,7 +129,7 @@
    */
   final public static function getLog($logging_key, $key = 'default') {
     if (empty(self::$logs[$key])) {
-      return [];
+      return NULL;
     }
     $queries = self::$logs[$key]->get($logging_key);
     self::$logs[$key]->end($logging_key);
diff --git a/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php b/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php
index 6fd999e..107495b 100644
--- a/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php
+++ b/core/lib/Drupal/Core/Database/Driver/mysql/Schema.php
@@ -411,11 +411,6 @@ public function addField($table, $field, $spec, $keys_new = array()) {
         ->fields(array($field => $spec['initial']))
         ->execute();
     }
-    if (isset($spec['initial_from_field'])) {
-      $this->connection->update($table)
-        ->expression($field, $spec['initial_from_field'])
-        ->execute();
-    }
     if ($fixnull) {
       $spec['not null'] = TRUE;
       $this->changeField($table, $field, $field, $spec);
diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php
index 8049796..4688cde 100644
--- a/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php
+++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php
@@ -210,8 +210,13 @@ public function escapeField($field) {
       // need to be escaped.
       $escaped = $this->escapeTable($table) . '.' . $this->escapeAlias($column);
     }
-    else {
-      $escaped = $this->doEscape($escaped);
+    elseif (preg_match('/[A-Z]/', $escaped)) {
+      // Quote the field name for case-sensitivity.
+      $escaped = '"' . $escaped . '"';
+    }
+    elseif (in_array(strtolower($escaped), $this->postgresqlReservedKeyWords)) {
+      // Quote the field name for PostgreSQL reserved key words.
+      $escaped = '"' . $escaped . '"';
     }
 
     return $escaped;
@@ -222,7 +227,16 @@ public function escapeField($field) {
    */
   public function escapeAlias($field) {
     $escaped = preg_replace('/[^A-Za-z0-9_]+/', '', $field);
-    $escaped = $this->doEscape($escaped);
+
+    // Escape the alias in quotes for case-sensitivity.
+    if (preg_match('/[A-Z]/', $escaped)) {
+      $escaped = '"' . $escaped . '"';
+    }
+    elseif (in_array(strtolower($escaped), $this->postgresqlReservedKeyWords)) {
+      // Quote the alias name for PostgreSQL reserved key words.
+      $escaped = '"' . $escaped . '"';
+    }
+
     return $escaped;
   }
 
@@ -232,33 +246,16 @@ public function escapeAlias($field) {
   public function escapeTable($table) {
     $escaped = parent::escapeTable($table);
 
-    // Ensure that each part (database, schema and table) of the table name is
-    // properly and independently escaped.
-    $parts = explode('.', $escaped);
-    $parts = array_map([$this, 'doEscape'], $parts);
-    $escaped = implode('.', $parts);
-
-    return $escaped;
-  }
-
-  /**
-   * Escape a string if needed.
-   *
-   * @param $string
-   *   The string to escape.
-   * @return string
-   *   The escaped string.
-   */
-  protected function doEscape($string) {
     // Quote identifier to make it case-sensitive.
-    if (preg_match('/[A-Z]/', $string)) {
-      $string = '"' . $string . '"';
+    if (preg_match('/[A-Z]/', $escaped)) {
+      $escaped = '"' . $escaped . '"';
     }
-    elseif (in_array(strtolower($string), $this->postgresqlReservedKeyWords)) {
-      // Quote the string for PostgreSQL reserved key words.
-      $string = '"' . $string . '"';
+    elseif (in_array(strtolower($escaped), $this->postgresqlReservedKeyWords)) {
+      // Quote the table name for PostgreSQL reserved key words.
+      $escaped = '"' . $escaped . '"';
     }
-    return $string;
+
+    return $escaped;
   }
 
   public function driver() {
diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Install/Tasks.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Install/Tasks.php
index 95ff527..a91b240 100644
--- a/core/lib/Drupal/Core/Database/Driver/pgsql/Install/Tasks.php
+++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Install/Tasks.php
@@ -246,9 +246,6 @@ function initializeDatabase() {
     // concurrency issues, when both try to update at the same time.
     try {
       $connection = Database::getConnection();
-      // When testing, two installs might try to run the CREATE FUNCTION queries
-      // at the same time. Do not let that happen.
-      $connection->query('SELECT pg_advisory_lock(1)');
       // Don't use {} around pg_proc table.
       if (!$connection->query("SELECT COUNT(*) FROM pg_proc WHERE proname = 'rand'")->fetchField()) {
         $connection->query('CREATE OR REPLACE FUNCTION "rand"() RETURNS float AS
@@ -267,7 +264,6 @@ function initializeDatabase() {
           [ 'allow_delimiter_in_query' => TRUE ]
         );
       }
-      $connection->query('SELECT pg_advisory_unlock(1)');
 
       $this->pass(t('PostgreSQL has initialized itself.'));
     }
diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
index c0775c9..4cd660b 100644
--- a/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
+++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
@@ -531,11 +531,6 @@ public function addField($table, $field, $spec, $new_keys = array()) {
         ->fields(array($field => $spec['initial']))
         ->execute();
     }
-    if (isset($spec['initial_from_field'])) {
-      $this->connection->update($table)
-        ->expression($field, $spec['initial_from_field'])
-        ->execute();
-    }
     if ($fixnull) {
       $this->connection->query("ALTER TABLE {" . $table . "} ALTER $field SET NOT NULL");
     }
diff --git a/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php b/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php
index 23dd261..2f5374b 100644
--- a/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php
+++ b/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php
@@ -124,16 +124,6 @@ public static function open(array &$connection_options = array()) {
     // Create a user-space case-insensitive collation with UTF-8 support.
     $pdo->sqliteCreateCollation('NOCASE_UTF8', array('Drupal\Component\Utility\Unicode', 'strcasecmp'));
 
-    // Set SQLite init_commands if not already defined. Enable the Write-Ahead
-    // Logging (WAL) for SQLite. See https://www.drupal.org/node/2348137 and
-    // https://www.sqlite.org/wal.html.
-    $connection_options += array(
-      'init_commands' => array(),
-    );
-    $connection_options['init_commands'] += array(
-      'wal' => "PRAGMA journal_mode=WAL",
-    );
-
     // Execute sqlite init_commands.
     if (isset($connection_options['init_commands'])) {
       $pdo->exec(implode('; ', $connection_options['init_commands']));
diff --git a/core/lib/Drupal/Core/Database/Driver/sqlite/Install/Tasks.php b/core/lib/Drupal/Core/Database/Driver/sqlite/Install/Tasks.php
index f56b26c..3a5b970 100644
--- a/core/lib/Drupal/Core/Database/Driver/sqlite/Install/Tasks.php
+++ b/core/lib/Drupal/Core/Database/Driver/sqlite/Install/Tasks.php
@@ -28,7 +28,7 @@ public function name() {
    * {@inheritdoc}
    */
   public function minimumVersion() {
-    return '3.7.11';
+    return '3.6.8';
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php b/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
index 4b954ed..cbe01da 100644
--- a/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
+++ b/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
@@ -316,11 +316,6 @@ public function addField($table, $field, $specification, $keys_new = array()) {
           ->fields(array($field => $specification['initial']))
           ->execute();
       }
-      if (isset($specification['initial_from_field'])) {
-        $this->connection->update($table)
-          ->expression($field, $specification['initial_from_field'])
-          ->execute();
-      }
     }
     else {
       // We cannot add the field directly. Use the slower table alteration
@@ -340,13 +335,6 @@ public function addField($table, $field, $specification, $keys_new = array()) {
           'arguments' => array(':newfieldinitial' => $specification['initial']),
         );
       }
-      elseif (isset($specification['initial_from_field'])) {
-        // If we have a initial value, copy it over.
-        $mapping[$field] = array(
-          'expression' => $specification['initial_from_field'],
-          'arguments' => [],
-        );
-      }
       else {
         // Else use the default of the field.
         $mapping[$field] = NULL;
@@ -432,12 +420,8 @@ protected function alterTable($table, $old_schema, $new_schema, array $mapping =
    *
    * @param $table
    *   Name of the table.
-   *
    * @return
    *   An array representing the schema, from drupal_get_schema().
-   *
-   * @throws \Exception
-   *   If a column of the table could not be parsed.
    */
   protected function introspectSchema($table) {
     $mapped_fields = array_flip($this->getFieldTypeMap());
@@ -475,7 +459,7 @@ protected function introspectSchema($table) {
         }
       }
       else {
-        throw new \Exception("Unable to parse the column type " . $row->type);
+        new \Exception("Unable to parse the column type " . $row->type);
       }
     }
     $indexes = array();
diff --git a/core/lib/Drupal/Core/Database/Query/Condition.php b/core/lib/Drupal/Core/Database/Query/Condition.php
index ad7397e..cb39dfd 100644
--- a/core/lib/Drupal/Core/Database/Query/Condition.php
+++ b/core/lib/Drupal/Core/Database/Query/Condition.php
@@ -300,7 +300,6 @@ protected function mapConditionOperator($operator) {
     // $specials does not use drupal_static as its value never changes.
     static $specials = array(
       'BETWEEN' => array('delimiter' => ' AND '),
-      'NOT BETWEEN' => array('delimiter' => ' AND '),
       'IN' => array('delimiter' => ', ', 'prefix' => ' (', 'postfix' => ')'),
       'NOT IN' => array('delimiter' => ', ', 'prefix' => ' (', 'postfix' => ')'),
       'EXISTS' => array('prefix' => ' (', 'postfix' => ')'),
diff --git a/core/lib/Drupal/Core/Database/Query/ExtendableInterface.php b/core/lib/Drupal/Core/Database/Query/ExtendableInterface.php
index d512bd6..b0d6f76 100644
--- a/core/lib/Drupal/Core/Database/Query/ExtendableInterface.php
+++ b/core/lib/Drupal/Core/Database/Query/ExtendableInterface.php
@@ -6,11 +6,11 @@
  * Interface for extendable query objects.
  *
  * "Extenders" follow the "Decorator" OOP design pattern.  That is, they wrap
- * and "decorate" another object. In our case, they implement the same
- * interface as select queries and wrap a select query, to which they delegate
- * almost all operations. Subclasses of this class may implement additional
- * methods or override existing methods as appropriate. Extenders may also wrap
- * other extender objects, allowing for arbitrarily complex "enhanced" queries.
+ * and "decorate" another object.  In our case, they implement the same interface
+ * as select queries and wrap a select query, to which they delegate almost all
+ * operations.  Subclasses of this class may implement additional methods or
+ * override existing methods as appropriate.  Extenders may also wrap other
+ * extender objects, allowing for arbitrarily complex "enhanced" queries.
  */
 interface ExtendableInterface {
 
@@ -18,12 +18,9 @@
    * Enhance this object by wrapping it in an extender object.
    *
    * @param $extender_name
-   *   The fully-qualified name of the extender class, without the leading '\'
-   *   (for example, Drupal\my_module\myExtenderClass). The extender name will
-   *   be checked against the current database connection to allow
-   *   driver-specific subclasses as well, using the same logic as the query
-   *   objects themselves.
-   *
+   *   The base name of the extending class.  The base name will be checked
+   *   against the current database connection to allow driver-specific subclasses
+   *   as well, using the same logic as the query objects themselves.
    * @return \Drupal\Core\Database\Query\ExtendableInterface
    *   The extender object, which now contains a reference to this object.
    */
diff --git a/core/lib/Drupal/Core/Database/Query/Select.php b/core/lib/Drupal/Core/Database/Query/Select.php
index a5e93e8..a7e340b 100644
--- a/core/lib/Drupal/Core/Database/Query/Select.php
+++ b/core/lib/Drupal/Core/Database/Query/Select.php
@@ -39,7 +39,7 @@ class Select extends Query implements SelectInterface {
    *   'type' => $join_type (one of INNER, LEFT OUTER, RIGHT OUTER),
    *   'table' => $table,
    *   'alias' => $alias_of_the_table,
-   *   'condition' => $join_condition (string or Condition object),
+   *   'condition' => $condition_clause_on_which_to_join,
    *   'arguments' => $array_of_arguments_for_placeholders_in_the condition.
    *   'all_fields' => TRUE to SELECT $alias.*, FALSE or NULL otherwise.
    * )
@@ -47,10 +47,6 @@ class Select extends Query implements SelectInterface {
    * If $table is a string, it is taken as the name of a table. If it is
    * a Select query object, it is taken as a subquery.
    *
-   * If $join_condition is a Condition object, any arguments should be
-   * incorporated into the object; a separate array of arguments does not
-   * need to be provided.
-   *
    * @var array
    */
   protected $tables = array();
@@ -200,10 +196,6 @@ public function arguments() {
       if ($table['table'] instanceof SelectInterface) {
         $args += $table['table']->arguments();
       }
-      // If the join condition is an object, grab its arguments recursively.
-      if (!empty($table['condition']) && $table['condition'] instanceof ConditionInterface) {
-        $args += $table['condition']->arguments();
-      }
     }
 
     foreach ($this->expressions as $expression) {
@@ -233,10 +225,6 @@ public function compile(Connection $connection, PlaceholderInterface $queryPlace
       if ($table['table'] instanceof SelectInterface) {
         $table['table']->compile($connection, $queryPlaceholder);
       }
-      // Make sure join conditions are also compiled.
-      if (!empty($table['condition']) && $table['condition'] instanceof ConditionInterface) {
-        $table['condition']->compile($connection, $queryPlaceholder);
-      }
     }
 
     // If there are any dependent queries to UNION, compile it recursively.
@@ -260,11 +248,6 @@ public function compiled() {
           return FALSE;
         }
       }
-      if (!empty($table['condition']) && $table['condition'] instanceof ConditionInterface) {
-        if (!$table['condition']->compiled()) {
-          return FALSE;
-        }
-      }
     }
 
     foreach ($this->union as $union) {
@@ -660,7 +643,7 @@ public function orderRandom() {
    * {@inheritdoc}
    */
   public function range($start = NULL, $length = NULL) {
-    $this->range = $start !== NULL ? array('start' => $start, 'length' => $length) : array();
+    $this->range = func_num_args() ? array('start' => $start, 'length' => $length) : array();
     return $this;
   }
 
@@ -839,7 +822,7 @@ public function __toString() {
       $query .= $table_string . ' ' . $this->connection->escapeTable($table['alias']);
 
       if (!empty($table['condition'])) {
-        $query .= ' ON ' . (string) $table['condition'];
+        $query .= ' ON ' . $table['condition'];
       }
     }
 
diff --git a/core/lib/Drupal/Core/Database/Schema.php b/core/lib/Drupal/Core/Database/Schema.php
index 8b9eb7e..1a21415 100644
--- a/core/lib/Drupal/Core/Database/Schema.php
+++ b/core/lib/Drupal/Core/Database/Schema.php
@@ -305,8 +305,6 @@ public function fieldExists($table, $column) {
    *   created field will be set to the value of the key in all rows.
    *   This is most useful for creating NOT NULL columns with no default
    *   value in existing tables.
-   *   Alternatively, the 'initial_form_field' key may be used, which will
-   *   auto-populate the new field with values from the specified field.
    * @param $keys_new
    *   (optional) Keys and indexes specification to be created on the
    *   table along with adding the field. The format is the same as a
diff --git a/core/lib/Drupal/Core/Datetime/Element/Datelist.php b/core/lib/Drupal/Core/Datetime/Element/Datelist.php
index f39d0a2..76f61bb 100644
--- a/core/lib/Drupal/Core/Datetime/Element/Datelist.php
+++ b/core/lib/Drupal/Core/Datetime/Element/Datelist.php
@@ -268,7 +268,6 @@ public static function processDatelist(&$element, FormStateInterface $form_state
         '#options' => $options,
         '#required' => $element['#required'],
         '#error_no_message' => FALSE,
-        '#empty_option' => $title,
       );
     }
 
diff --git a/core/lib/Drupal/Core/Datetime/Element/Datetime.php b/core/lib/Drupal/Core/Datetime/Element/Datetime.php
index 44a3949..7637ad1 100644
--- a/core/lib/Drupal/Core/Datetime/Element/Datetime.php
+++ b/core/lib/Drupal/Core/Datetime/Element/Datetime.php
@@ -150,7 +150,7 @@ public static function valueCallback(&$element, $input, FormStateInterface $form
    *     list of the possible formats and HTML5 standards for the HTML5
    *     requirements. Defaults to the right HTML5 format for the chosen element
    *     if a HTML5 element is used, otherwise defaults to
-   *     DateFormat::load('html_date')->getPattern().
+   *     entity_load('date_format', 'html_date')->getPattern().
    *   - #date_date_element: The date element. Options are:
    *     - datetime: Use the HTML5 datetime element type.
    *     - datetime-local: Use the HTML5 datetime-local element type.
@@ -170,7 +170,7 @@ public static function valueCallback(&$element, $input, FormStateInterface $form
    *     a list of the possible formats and HTML5 standards for the HTML5
    *     requirements. Defaults to the right HTML5 format for the chosen element
    *     if a HTML5 element is used, otherwise defaults to
-   *     DateFormat::load('html_time')->getPattern().
+   *     entity_load('date_format', 'html_time')->getPattern().
    *   - #date_time_callbacks: An array of optional callbacks for the time
    *     element. Can be used to add a jQuery timepicker or an 'All day' checkbox.
    *   - #date_year_range: A description of the range of years to allow, like
diff --git a/core/lib/Drupal/Core/DependencyInjection/Compiler/AuthenticationProviderPass.php b/core/lib/Drupal/Core/DependencyInjection/Compiler/AuthenticationProviderPass.php
deleted file mode 100644
index 20708e1..0000000
--- a/core/lib/Drupal/Core/DependencyInjection/Compiler/AuthenticationProviderPass.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Drupal\Core\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Registers the authentication_providers container parameter.
- */
-class AuthenticationProviderPass implements CompilerPassInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function process(ContainerBuilder $container) {
-    $authentication_providers = [];
-    foreach ($container->findTaggedServiceIds('authentication_provider') as $service_id => $attributes) {
-      $authentication_provider = $attributes[0]['provider_id'];
-      if ($provider_tag = $container->getDefinition($service_id)->getTag('_provider')) {
-        $authentication_providers[$authentication_provider] = $provider_tag[0]['provider'];
-      }
-    }
-    $container->setParameter('authentication_providers', $authentication_providers);
-  }
-
-}
diff --git a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
index e45cb88..df8203d 100644
--- a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
+++ b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
@@ -7,7 +7,11 @@
 use Symfony\Component\DependencyInjection\Container as SymfonyContainer;
 use Symfony\Component\DependencyInjection\Definition;
 use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator;
+use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
+use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
 
 /**
  * Drupal's dependency injection container builder.
@@ -32,6 +36,129 @@ public function __construct(ParameterBagInterface $parameterBag = NULL) {
   }
 
   /**
+   * Creates a service for a service definition.
+   *
+   * Overrides the parent implementation, but just changes one line about
+   * deprecations, see below.
+   *
+   * @param \Symfony\Component\DependencyInjection\Definition $definition
+   * @param string $id
+   * @param bool|true $tryProxy
+   *
+   * @return mixed|object
+   */
+  public function createService(Definition $definition, $id, $tryProxy = true)
+  {
+    if ($definition->isSynthetic()) {
+      throw new RuntimeException(sprintf('You have requested a synthetic service ("%s"). The DIC does not know how to construct this service.', $id));
+    }
+
+    if ($definition->isDeprecated()) {
+      // Suppress deprecation warnings when a service is marked as
+      // 'deprecated: %service_id%-no-warning'
+      if ($definition->getDeprecationMessage($id) != ($id . '-no-warning')) {
+        @trigger_error($definition->getDeprecationMessage($id), E_USER_DEPRECATED);
+      }
+    }
+
+    if ($tryProxy && $definition->isLazy()) {
+      $container = $this;
+
+      $proxy = $this
+        ->getProxyInstantiator()
+        ->instantiateProxy(
+          $container,
+          $definition,
+          $id, function () use ($definition, $id, $container) {
+          return $container->createService($definition, $id, false);
+        }
+        );
+      $this->shareService($definition, $proxy, $id);
+
+      return $proxy;
+    }
+
+    $parameterBag = $this->getParameterBag();
+
+    if (null !== $definition->getFile()) {
+      require_once $parameterBag->resolveValue($definition->getFile());
+    }
+
+    $arguments = $this->resolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($definition->getArguments())));
+
+    if (null !== $factory = $definition->getFactory()) {
+      if (is_array($factory)) {
+        $factory = array($this->resolveServices($parameterBag->resolveValue($factory[0])), $factory[1]);
+      } elseif (!is_string($factory)) {
+        throw new RuntimeException(sprintf('Cannot create service "%s" because of invalid factory', $id));
+      }
+
+      $service = call_user_func_array($factory, $arguments);
+
+      if (!$definition->isDeprecated() && is_array($factory) && is_string($factory[0])) {
+        $r = new \ReflectionClass($factory[0]);
+
+        if (0 < strpos($r->getDocComment(), "\n * @deprecated ")) {
+          @trigger_error(sprintf('The "%s" service relies on the deprecated "%s" factory class. It should either be deprecated or its factory upgraded.', $id, $r->name), E_USER_DEPRECATED);
+        }
+      }
+    } elseif (null !== $definition->getFactoryMethod(false)) {
+      if (null !== $definition->getFactoryClass(false)) {
+        $factory = $parameterBag->resolveValue($definition->getFactoryClass(false));
+      } elseif (null !== $definition->getFactoryService(false)) {
+        $factory = $this->get($parameterBag->resolveValue($definition->getFactoryService(false)));
+      } else {
+        throw new RuntimeException(sprintf('Cannot create service "%s" from factory method without a factory service or factory class.', $id));
+      }
+
+      $service = call_user_func_array(array($factory, $definition->getFactoryMethod(false)), $arguments);
+    } else {
+      $r = new \ReflectionClass($parameterBag->resolveValue($definition->getClass()));
+
+      $service = null === $r->getConstructor() ? $r->newInstance() : $r->newInstanceArgs($arguments);
+
+      if (!$definition->isDeprecated() && 0 < strpos($r->getDocComment(), "\n * @deprecated ")) {
+        // Skip deprecation notices for deprecations which opt out.
+        @trigger_error(sprintf('The "%s" service relies on the deprecated "%s" class. It should either be deprecated or its implementation upgraded.', $id, $r->name), E_USER_DEPRECATED);
+      }
+    }
+
+    if ($tryProxy || !$definition->isLazy()) {
+      // share only if proxying failed, or if not a proxy
+      $this->shareService($definition, $service, $id);
+    }
+
+    foreach ($definition->getMethodCalls() as $call) {
+      $this->callMethod($service, $call);
+    }
+
+    $properties = $this->resolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($definition->getProperties())));
+    foreach ($properties as $name => $value) {
+      $service->$name = $value;
+    }
+
+    if ($callable = $definition->getConfigurator()) {
+      if (is_array($callable)) {
+        $callable[0] = $parameterBag->resolveValue($callable[0]);
+
+        if ($callable[0] instanceof Reference) {
+          $callable[0] = $this->get((string) $callable[0], $callable[0]->getInvalidBehavior());
+        } elseif ($callable[0] instanceof Definition) {
+          $callable[0] = $this->createService($callable[0], null);
+        }
+      }
+
+      if (!is_callable($callable)) {
+        throw new InvalidArgumentException(sprintf('The configure callable for class "%s" is not a callable.', get_class($service)));
+      }
+
+      call_user_func($callable, $service);
+    }
+
+    return $service;
+  }
+
+  /**
    * Retrieves the currently set proxy instantiator or instantiates one.
    *
    * @return InstantiatorInterface
diff --git a/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php b/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php
index 40557d5..c0a8747 100644
--- a/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php
+++ b/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php
@@ -58,6 +58,8 @@ public function __construct(ContainerBuilder $container)
     public function load($file)
     {
         // Load from the file cache, fall back to loading the file.
+        // @todo Refactor this to cache parsed definition objects in
+        //   https://www.drupal.org/node/2464053
         $content = $this->fileCache->get($file);
         if (!$content) {
             $content = $this->loadFile($file);
@@ -111,16 +113,7 @@ private function parseDefinitions($content, $file)
             throw new InvalidArgumentException(sprintf('The "services" key should contain an array in %s. Check your YAML syntax.', $file));
         }
 
-        // Some extensions split up their dependencies into multiple files.
-        if (isset($content['_provider'])) {
-            $provider = $content['_provider'];
-        }
-        else {
-            $basename = basename($file);
-            list($provider, ) = explode('.', $basename, 2);
-        }
         foreach ($content['services'] as $id => $service) {
-            $service['tags'][] = ['name' => '_provider', 'provider' => $provider];
             $this->parseDefinition($id, $service, $file);
         }
     }
diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php
index 3ccb2d7..90541f4 100644
--- a/core/lib/Drupal/Core/DrupalKernel.php
+++ b/core/lib/Drupal/Core/DrupalKernel.php
@@ -443,6 +443,11 @@ public function boot() {
 
     // Provide a default configuration, if not set.
     if (!isset($configuration['default'])) {
+      $configuration['default'] = [
+        'class' => '\Drupal\Component\FileCache\FileCache',
+        'cache_backend_class' => NULL,
+        'cache_backend_configuration' => [],
+      ];
       // @todo Use extension_loaded('apcu') for non-testbot
       //  https://www.drupal.org/node/2447753.
       if (function_exists('apcu_fetch')) {
@@ -1222,8 +1227,7 @@ protected function compileContainer() {
     // be automatically reinstantiated. Also include services tagged to persist.
     $persist_ids = array();
     foreach ($container->getDefinitions() as $id => $definition) {
-      // It does not make sense to persist the container itself, exclude it.
-      if ($id !== 'service_container' && ($definition->isSynthetic() || $definition->getTag('persist'))) {
+      if ($definition->isSynthetic() || $definition->getTag('persist')) {
         $persist_ids[] = $id;
       }
     }
diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php
index 2c6dbc1..6e0b4d8 100644
--- a/core/lib/Drupal/Core/Entity/Entity.php
+++ b/core/lib/Drupal/Core/Entity/Entity.php
@@ -222,9 +222,7 @@ public function toUrl($rel = 'canonical', array $options = []) {
       ->setOption('entity', $this);
 
     // Display links by default based on the current language.
-    // Link relations that do not require an existing entity should not be
-    // affected by this entity's language, however.
-    if (!in_array($rel, ['collection', 'add-page', 'add-form'], TRUE)) {
+    if ($rel !== 'collection') {
       $options += ['language' => $this->language()];
     }
 
@@ -304,15 +302,11 @@ public function url($rel = 'canonical', $options = array()) {
   protected function urlRouteParameters($rel) {
     $uri_route_parameters = [];
 
-    if (!in_array($rel, ['collection', 'add-page', 'add-form'], TRUE)) {
+    if ($rel != 'collection') {
       // The entity ID is needed as a route parameter.
       $uri_route_parameters[$this->getEntityTypeId()] = $this->id();
     }
-    if ($rel === 'add-form' && ($this->getEntityType()->hasKey('bundle'))) {
-      $parameter_name = $this->getEntityType()->getBundleEntityType() ?: $this->getEntityType()->getKey('bundle');
-      $uri_route_parameters[$parameter_name] = $this->bundle();
-    }
-    if ($rel === 'revision' && $this instanceof RevisionableInterface) {
+    if ($rel === 'revision') {
       $uri_route_parameters[$this->getEntityTypeId() . '_revision'] = $this->getRevisionId();
     }
 
diff --git a/core/lib/Drupal/Core/Entity/EntityInterface.php b/core/lib/Drupal/Core/Entity/EntityInterface.php
index 3a38e07..ae436bb 100644
--- a/core/lib/Drupal/Core/Entity/EntityInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityInterface.php
@@ -339,17 +339,10 @@ public function postSave(EntityStorageInterface $storage, $update = TRUE);
   public static function preCreate(EntityStorageInterface $storage, array &$values);
 
   /**
-   * Acts on a created entity before hooks are invoked.
-   *
-   * Used after the entity is created, but before saving the entity and before
-   * any of the presave hooks are invoked.
-   *
-   * See the @link entity_crud Entity CRUD topic @endlink for more information.
+   * Acts on an entity after it is created but before hooks are invoked.
    *
    * @param \Drupal\Core\Entity\EntityStorageInterface $storage
    *   The entity storage object.
-   *
-   * @see \Drupal\Core\Entity\EntityInterface::create()
    */
   public function postCreate(EntityStorageInterface $storage);
 
diff --git a/core/lib/Drupal/Core/Entity/EntityManager.php b/core/lib/Drupal/Core/Entity/EntityManager.php
index bf4acf3..a11939b 100644
--- a/core/lib/Drupal/Core/Entity/EntityManager.php
+++ b/core/lib/Drupal/Core/Entity/EntityManager.php
@@ -10,9 +10,7 @@
 /**
  * Provides a wrapper around many other services relating to entities.
  *
- * Deprecated in Drupal 8.0.0, will be removed before Drupal 9.0.0. We cannot
- * use the deprecated PHPDoc tag because this service class is still used in
- * legacy code paths. Symfony would fail test cases with deprecation warnings.
+ * @deprecated in Drupal 8.0.0, will be removed before Drupal 9.0.0.
  *
  * @todo Enforce the deprecation of each method once
  *   https://www.drupal.org/node/2578361 is in.
diff --git a/core/lib/Drupal/Core/Entity/EntityTypeBundleInfoInterface.php b/core/lib/Drupal/Core/Entity/EntityTypeBundleInfoInterface.php
index 882f98b..4425d28 100644
--- a/core/lib/Drupal/Core/Entity/EntityTypeBundleInfoInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityTypeBundleInfoInterface.php
@@ -11,10 +11,7 @@
    * Get the bundle info of all entity types.
    *
    * @return array
-   *   An array of bundle information where the outer array is keyed by entity
-   *   type. The next level is keyed by the bundle name. The inner arrays are
-   *   associative arrays of bundle information, such as the label for the
-   *   bundle.
+   *   An array of all bundle information.
    */
   public function getAllBundleInfo();
 
@@ -25,10 +22,7 @@ public function getAllBundleInfo();
    *   The entity type.
    *
    * @return array
-   *   An array of bundle information where the outer array is keyed by the
-   *   bundle name, or the entity type name if the entity does not have bundles.
-   *   The inner arrays are associative arrays of bundle information, such as
-   *   the label for the bundle.
+   *   Returns the bundle information for the specified entity type.
    */
   public function getBundleInfo($entity_type);
 
diff --git a/core/lib/Drupal/Core/Entity/Query/QueryInterface.php b/core/lib/Drupal/Core/Entity/Query/QueryInterface.php
index 17b266f..8852f0b 100644
--- a/core/lib/Drupal/Core/Entity/Query/QueryInterface.php
+++ b/core/lib/Drupal/Core/Entity/Query/QueryInterface.php
@@ -28,8 +28,8 @@ public function getEntityTypeId();
    * and the Polish 'siema' within a 'greetings' text field:
    * @code
    *   $entity_ids = \Drupal::entityQuery($entity_type)
-   *     ->condition('greetings', 'merhaba', '=', 'tr')
-   *     ->condition('greetings.value', 'siema', '=', 'pl')
+   *     ->condition('greetings', 'merhaba', '=', 'tr');
+   *     ->condition('greetings.value', 'siema', '=', 'pl');
    *     ->execute();
    *   $entity_ids = $query->execute();
    * @endcode
diff --git a/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php b/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php
index 5f20c3f..aa6fa88 100644
--- a/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php
+++ b/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php
@@ -185,7 +185,7 @@ public function getFieldTableName($field_name) {
   public function getColumnNames($field_name) {
     if (!isset($this->columnMapping[$field_name])) {
       $this->columnMapping[$field_name] = array();
-      if (isset($this->fieldStorageDefinitions[$field_name]) && !$this->fieldStorageDefinitions[$field_name]->hasCustomStorage()) {
+      if (isset($this->fieldStorageDefinitions[$field_name])) {
         foreach (array_keys($this->fieldStorageDefinitions[$field_name]->getColumns()) as $property_name) {
           $this->columnMapping[$field_name][$property_name] = $this->getFieldColumnName($this->fieldStorageDefinitions[$field_name], $property_name);
         }
diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
index 391e3444..d584454 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
@@ -150,7 +150,7 @@ public function getFieldStorageDefinitions() {
    *   The database connection to be used.
    * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
    *   The entity manager.
-   * @param \Drupal\Core\Cache\CacheBackendInterface $cache
+   * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
    *   The cache backend to be used.
    * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
    *   The language manager.
diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
index ec3ebaf..d76c132 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
@@ -1837,24 +1837,6 @@ protected function getDedicatedTableSchema(FieldStorageDefinitionInterface $stor
       }
     }
 
-    // Add unique keys.
-    foreach ($schema['unique keys'] as $index_name => $columns) {
-      $real_name = $this->getFieldIndexName($storage_definition, $index_name);
-      foreach ($columns as $column_name) {
-        // Unique keys can be specified as either a column name or an array with
-        // column name and length. Allow for either case.
-        if (is_array($column_name)) {
-          $data_schema['unique keys'][$real_name][] = array(
-            $table_mapping->getFieldColumnName($storage_definition, $column_name[0]),
-            $column_name[1],
-          );
-        }
-        else {
-          $data_schema['unique keys'][$real_name][] = $table_mapping->getFieldColumnName($storage_definition, $column_name);
-        }
-      }
-    }
-
     // Add foreign keys.
     foreach ($schema['foreign keys'] as $specifier => $specification) {
       $real_name = $this->getFieldIndexName($storage_definition, $specifier);
diff --git a/core/lib/Drupal/Core/EventSubscriber/DefaultExceptionHtmlSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/DefaultExceptionHtmlSubscriber.php
index 38cb895..0d876cc 100644
--- a/core/lib/Drupal/Core/EventSubscriber/DefaultExceptionHtmlSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/DefaultExceptionHtmlSubscriber.php
@@ -133,14 +133,6 @@ protected function makeSubrequest(GetResponseForExceptionEvent $event, $url, $st
       // would execute a subrequest with the 404 route's URL, then it'd be
       // generated for *that* URL, not the *original* URL.
       $sub_request = clone $request;
-
-      // The routing to the 404 page should be done as GET request because it is
-      // restricted to GET and POST requests only. Otherwise a DELETE request
-      // would for example trigger a method not allowed exception.
-      $request_context = clone ($this->accessUnawareRouter->getContext());
-      $request_context->setMethod('GET');
-      $this->accessUnawareRouter->setContext($request_context);
-
       $sub_request->attributes->add($this->accessUnawareRouter->match($url));
 
       // Add to query (GET) or request (POST) parameters:
diff --git a/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php
index 57d43ec..873996b 100644
--- a/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php
@@ -3,6 +3,7 @@
 namespace Drupal\Core\EventSubscriber;
 
 use Drupal\Component\Utility\SafeMarkup;
+use Drupal\Component\Utility\Xss;
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Render\BareHtmlPageRendererInterface;
 use Drupal\Core\Routing\RouteMatch;
@@ -12,7 +13,6 @@
 use Drupal\Core\StringTranslation\StringTranslationTrait;
 use Drupal\Core\StringTranslation\TranslationInterface;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Event\GetResponseEvent;
 use Symfony\Component\HttpKernel\KernelEvents;
 
@@ -90,25 +90,18 @@ public function __construct(MaintenanceModeInterface $maintenance_mode, ConfigFa
    *   The event to process.
    */
   public function onKernelRequestMaintenance(GetResponseEvent $event) {
-    $request = $event->getRequest();
-    $route_match = RouteMatch::createFromRequest($request);
+    $route_match = RouteMatch::createFromRequest($event->getRequest());
     if ($this->maintenanceMode->applies($route_match)) {
       // Don't cache maintenance mode pages.
       \Drupal::service('page_cache_kill_switch')->trigger();
-
       if (!$this->maintenanceMode->exempt($this->account)) {
         // Deliver the 503 page if the site is in maintenance mode and the
         // logged in user is not allowed to bypass it.
-
-        // If the request format is not 'html' then show default maintenance
-        // mode page else show a text/plain page with maintenance message.
-        if ($request->getRequestFormat() !== 'html') {
-          $response = new Response($this->getSiteMaintenanceMessage(), 503, array('Content-Type' => 'text/plain'));
-          $event->setResponse($response);
-          return;
-        }
         drupal_maintenance_theme();
-        $response = $this->bareHtmlPageRenderer->renderBarePage(['#markup' => $this->getSiteMaintenanceMessage()], $this->t('Site under maintenance'), 'maintenance_page');
+        $content = Xss::filterAdmin(SafeMarkup::format($this->config->get('system.maintenance')->get('message'), array(
+          '@site' => $this->config->get('system.site')->get('name'),
+        )));
+        $response = $this->bareHtmlPageRenderer->renderBarePage(['#markup' => $content], $this->t('Site under maintenance'), 'maintenance_page');
         $response->setStatusCode(503);
         $event->setResponse($response);
       }
@@ -129,18 +122,6 @@ public function onKernelRequestMaintenance(GetResponseEvent $event) {
   }
 
   /**
-   * Gets the site maintenance message.
-   *
-   * @return \Drupal\Component\Render\MarkupInterface
-   *   The formatted site maintenance message.
-   */
-  protected function getSiteMaintenanceMessage() {
-    return SafeMarkup::format($this->config->get('system.maintenance')->get('message'), array(
-      '@site' => $this->config->get('system.site')->get('name'),
-    ));
-  }
-
-  /**
    * Wraps the drupal_set_message function.
    */
   protected function drupalSetMessage($message = NULL, $type = 'status', $repeat = FALSE) {
diff --git a/core/lib/Drupal/Core/Extension/Discovery/RecursiveExtensionFilterIterator.php b/core/lib/Drupal/Core/Extension/Discovery/RecursiveExtensionFilterIterator.php
index 5c3ebc3..554ff28 100644
--- a/core/lib/Drupal/Core/Extension/Discovery/RecursiveExtensionFilterIterator.php
+++ b/core/lib/Drupal/Core/Extension/Discovery/RecursiveExtensionFilterIterator.php
@@ -82,20 +82,6 @@ class RecursiveExtensionFilterIterator extends \RecursiveFilterIterator {
   protected $acceptTests = FALSE;
 
   /**
-   * Construct a RecursiveExtensionFilterIterator.
-   *
-   * @param \RecursiveIterator $iterator
-   *   The iterator to filter.
-   * @param array $blacklist
-   *   (optional) Add to the blacklist of directories that should be filtered
-   *   out during the iteration.
-   */
-  public function __construct(\RecursiveIterator $iterator, array $blacklist = []) {
-    parent::__construct($iterator);
-    $this->blacklist = array_merge($this->blacklist, $blacklist);
-  }
-
-  /**
    * Controls whether test directories will be scanned.
    *
    * @param bool $flag
@@ -116,8 +102,6 @@ public function acceptTests($flag = FALSE) {
    */
   public function getChildren() {
     $filter = parent::getChildren();
-    // Pass on the blacklist.
-    $filter->blacklist = $this->blacklist;
     // Pass the $acceptTests flag forward to child iterators.
     $filter->acceptTests($this->acceptTests);
     return $filter;
diff --git a/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php b/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php
index 0d9283c..c7848e2 100644
--- a/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php
+++ b/core/lib/Drupal/Core/Extension/ExtensionDiscovery.php
@@ -14,7 +14,7 @@
  * To also discover test modules, add
  * @code
  * $settings['extension_discovery_scan_tests'] = TRUE;
- * @endcode
+ * @encode
  * to your settings.php.
  */
 class ExtensionDiscovery {
@@ -78,7 +78,7 @@ class ExtensionDiscovery {
   protected $profileDirectories;
 
   /**
-   * The app root for the current operation.
+   * The app root.
    *
    * @var string
    */
@@ -138,7 +138,7 @@ public function __construct($root, $use_file_cache = TRUE, $profile_directories
    * To also find test modules, add
    * @code
    * $settings['extension_discovery_scan_tests'] = TRUE;
-   * @endcode
+   * @encode
    * to your settings.php.
    *
    * The information is returned in an associative array, keyed by the extension
@@ -208,12 +208,12 @@ public function scan($type, $include_tests = NULL) {
     $files = array();
     foreach ($searchdirs as $dir) {
       // Discover all extensions in the directory, unless we did already.
-      if (!isset(static::$files[$this->root][$dir][$include_tests])) {
-        static::$files[$this->root][$dir][$include_tests] = $this->scanDirectory($dir, $include_tests);
+      if (!isset(static::$files[$dir][$include_tests])) {
+        static::$files[$dir][$include_tests] = $this->scanDirectory($dir, $include_tests);
       }
       // Only return extensions of the requested type.
-      if (isset(static::$files[$this->root][$dir][$include_tests][$type])) {
-        $files += static::$files[$this->root][$dir][$include_tests][$type];
+      if (isset(static::$files[$dir][$include_tests][$type])) {
+        $files += static::$files[$dir][$include_tests][$type];
       }
     }
 
@@ -427,17 +427,11 @@ protected function scanDirectory($dir, $include_tests) {
     $flags |= \FilesystemIterator::CURRENT_AS_SELF;
     $directory_iterator = new \RecursiveDirectoryIterator($absolute_dir, $flags);
 
-    // Allow directories specified in settings.php to be ignored. You can use
-    // this to not check for files in common special-purpose directories. For
-    // example, node_modules and bower_components. Ignoring irrelevant
-    // directories is a performance boost.
-    $ignore_directories = Settings::get('file_scan_ignore_directories', []);
-
     // Filter the recursive scan to discover extensions only.
     // Important: Without a RecursiveFilterIterator, RecursiveDirectoryIterator
     // would recurse into the entire filesystem directory tree without any kind
     // of limitations.
-    $filter = new RecursiveExtensionFilterIterator($directory_iterator, $ignore_directories);
+    $filter = new RecursiveExtensionFilterIterator($directory_iterator);
     $filter->acceptTests($include_tests);
 
     // The actual recursive filesystem scan is only invoked by instantiating the
@@ -484,7 +478,7 @@ protected function scanDirectory($dir, $include_tests) {
       else {
         $filename = $name . '.' . $type;
       }
-      if (!file_exists($this->root . '/' . dirname($pathname) . '/' . $filename)) {
+      if (!file_exists(dirname($pathname) . '/' . $filename)) {
         $filename = NULL;
       }
 
diff --git a/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php b/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php
index e0336dd..124efa2 100644
--- a/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php
+++ b/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php
@@ -214,7 +214,7 @@ public function implementsHook($module, $hook);
    *   The name of the module (without the .module extension).
    * @param string $hook
    *   The name of the hook to invoke.
-   * @param array $args
+   * @param ...
    *   Arguments to pass to the hook implementation.
    *
    * @return mixed
diff --git a/core/lib/Drupal/Core/Extension/ModuleInstallerInterface.php b/core/lib/Drupal/Core/Extension/ModuleInstallerInterface.php
index c8221a1..ce14f86 100644
--- a/core/lib/Drupal/Core/Extension/ModuleInstallerInterface.php
+++ b/core/lib/Drupal/Core/Extension/ModuleInstallerInterface.php
@@ -21,7 +21,7 @@
    * To install test modules add
    * @code
    * $settings['extension_discovery_scan_tests'] = TRUE;
-   * @endcode
+   * @encode
    * to your settings.php.
    *
    * @param string[] $module_list
diff --git a/core/lib/Drupal/Core/Extension/ThemeHandler.php b/core/lib/Drupal/Core/Extension/ThemeHandler.php
index 3363efc..8c573bb 100644
--- a/core/lib/Drupal/Core/Extension/ThemeHandler.php
+++ b/core/lib/Drupal/Core/Extension/ThemeHandler.php
@@ -198,10 +198,8 @@ public function listInfo() {
    * {@inheritdoc}
    */
   public function addTheme(Extension $theme) {
-    if (!empty($theme->info['libraries'])) {
-      foreach ($theme->info['libraries'] as $library => $name) {
-        $theme->libraries[$library] = $name;
-      }
+    foreach ($theme->info['libraries'] as $library => $name) {
+      $theme->libraries[$library] = $name;
     }
     if (isset($theme->info['engine'])) {
       $theme->engine = $theme->info['engine'];
diff --git a/core/lib/Drupal/Core/Extension/module.api.php b/core/lib/Drupal/Core/Extension/module.api.php
index b732387..37f8b77 100644
--- a/core/lib/Drupal/Core/Extension/module.api.php
+++ b/core/lib/Drupal/Core/Extension/module.api.php
@@ -72,8 +72,6 @@
  * frequently called should be left in the main module file so that they are
  * always available.
  *
- * See system_hook_info() for all hook groups defined by Drupal core.
- *
  * @return
  *   An associative array whose keys are hook names and whose values are an
  *   associative array containing:
@@ -81,6 +79,8 @@
  *     system will determine whether a file with the name $module.$group.inc
  *     exists, and automatically load it when required.
  *
+ * See system_hook_info() for all hook groups defined by Drupal core.
+ *
  * @see hook_hook_info_alter()
  */
 function hook_hook_info() {
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/PasswordItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/PasswordItem.php
index f86eac7..1df00cb 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/PasswordItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/PasswordItem.php
@@ -28,8 +28,6 @@ public static function propertyDefinitions(FieldStorageDefinitionInterface $fiel
       ->setSetting('case_sensitive', TRUE);
     $properties['existing'] = DataDefinition::create('string')
       ->setLabel(new TranslatableMarkup('Existing password'));
-    $properties['pre_hashed'] = DataDefinition::create('boolean')
-      ->setLabel(new TranslatableMarkup('Determines if a password needs hashing'));
 
     return $properties;
   }
@@ -42,11 +40,8 @@ public function preSave() {
 
     $entity = $this->getEntity();
 
-    if ($this->pre_hashed) {
-      // Reset the pre_hashed value since it has now been used.
-      $this->pre_hashed = FALSE;
-    }
-    elseif ($entity->isNew() || (strlen(trim($this->value)) > 0 && $this->value != $entity->original->{$this->getFieldDefinition()->getName()}->value)) {
+    // Update the user password if it has changed.
+    if ($entity->isNew() || (strlen(trim($this->value)) > 0 && $this->value != $entity->original->{$this->getFieldDefinition()->getName()}->value)) {
       // Allow alternate password hashing schemes.
       $this->value = \Drupal::service('password')->hash(trim($this->value));
       // Abort if the hashing failed and returned FALSE.
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php
index 3106fbe..9a3e6f7 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php
@@ -25,7 +25,7 @@ class BooleanCheckboxWidget extends WidgetBase {
    */
   public static function defaultSettings() {
     return array(
-      'display_label' => TRUE,
+      'display_label' => FALSE,
     ) + parent::defaultSettings();
   }
 
diff --git a/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php b/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php
index 72df780..951cb00 100644
--- a/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php
+++ b/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php
@@ -41,7 +41,7 @@ class MimeTypeGuesser implements MimeTypeGuesserInterface {
   /**
    * Constructs a MimeTypeGuesser object.
    *
-   * @param StreamWrapperManagerInterface $stream_wrapper_manager
+   * @param StreamWrapperManagerInterface $streamWrapperManager
    *   The stream wrapper manager.
    */
   public function __construct(StreamWrapperManagerInterface $stream_wrapper_manager) {
@@ -53,12 +53,8 @@ public function __construct(StreamWrapperManagerInterface $stream_wrapper_manage
    */
   public function guess($path) {
     if ($wrapper = $this->streamWrapperManager->getViaUri($path)) {
-      // Get the real path from the stream wrapper, if available. Files stored
-      // in remote file systems will not have one.
-      $real_path = $wrapper->realpath();
-      if ($real_path !== FALSE) {
-        $path = $real_path;
-      }
+      // Get the real path from the stream wrapper.
+      $path = $wrapper->realpath();
     }
 
     if ($this->sortedGuessers === NULL) {
diff --git a/core/lib/Drupal/Core/FileTransfer/Form/FileTransferAuthorizeForm.php b/core/lib/Drupal/Core/FileTransfer/Form/FileTransferAuthorizeForm.php
index 647463a..cb4cae2 100644
--- a/core/lib/Drupal/Core/FileTransfer/Form/FileTransferAuthorizeForm.php
+++ b/core/lib/Drupal/Core/FileTransfer/Form/FileTransferAuthorizeForm.php
@@ -64,8 +64,9 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     }
 
     // Decide on a default backend.
-    $authorize_filetransfer_default = $form_state->getValue(array('connection_settings', 'authorize_filetransfer_default'));
-    if (!$authorize_filetransfer_default) {
+    if ($authorize_filetransfer_default = $form_state->getValue(array('connection_settings', 'authorize_filetransfer_default')));
+    elseif ($authorize_filetransfer_default = $this->config('system.authorize')->get('filetransfer_default'));
+    else {
       $authorize_filetransfer_default = key($available_backends);
     }
 
@@ -197,6 +198,27 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
         // likely) be called during the installation process, before the
         // database is set up.
         try {
+          $connection_settings = array();
+          foreach ($form_connection_settings[$filetransfer_backend] as $key => $value) {
+            // We do *not* want to store passwords in the database, unless the
+            // backend explicitly says so via the magic #filetransfer_save form
+            // property. Otherwise, we store everything that's not explicitly
+            // marked with #filetransfer_save set to FALSE.
+            if (!isset($form['connection_settings'][$filetransfer_backend][$key]['#filetransfer_save'])) {
+              if ($form['connection_settings'][$filetransfer_backend][$key]['#type'] != 'password') {
+                $connection_settings[$key] = $value;
+              }
+            }
+            // The attribute is defined, so only save if set to TRUE.
+            elseif ($form['connection_settings'][$filetransfer_backend][$key]['#filetransfer_save']) {
+              $connection_settings[$key] = $value;
+            }
+          }
+          // Set this one as the default authorize method.
+          $this->config('system.authorize')->set('filetransfer_default', $filetransfer_backend);
+          // Save the connection settings minus the password.
+          $this->config('system.authorize')->set('filetransfer_connection_settings_' . $filetransfer_backend, $connection_settings);
+
           $filetransfer = $this->getFiletransfer($filetransfer_backend, $form_connection_settings[$filetransfer_backend]);
 
           // Now run the operation.
@@ -258,7 +280,8 @@ protected function getFiletransfer($backend, $settings = array()) {
    * @see hook_filetransfer_backends()
    */
   protected function addConnectionSettings($backend) {
-    $defaults = array();
+    $auth_connection_config = $this->config('system.authorize')->get('filetransfer_connection_settings_' . $backend);
+    $defaults = $auth_connection_config ? $auth_connection_config : array();
     $form = array();
 
     // Create an instance of the file transfer class to get its settings form.
@@ -319,7 +342,7 @@ protected function runOperation($filetransfer) {
     $operation = $_SESSION['authorize_operation'];
     unset($_SESSION['authorize_operation']);
 
-    require_once $operation['file'];
+    require_once $this->root . '/' . $operation['file'];
     return call_user_func_array($operation['callback'], array_merge(array($filetransfer), $operation['arguments']));
   }
 
diff --git a/core/lib/Drupal/Core/Form/EventSubscriber/FormAjaxSubscriber.php b/core/lib/Drupal/Core/Form/EventSubscriber/FormAjaxSubscriber.php
index cae4398..4d2d8fa 100644
--- a/core/lib/Drupal/Core/Form/EventSubscriber/FormAjaxSubscriber.php
+++ b/core/lib/Drupal/Core/Form/EventSubscriber/FormAjaxSubscriber.php
@@ -92,7 +92,7 @@ public function onException(GetResponseForExceptionEvent $event) {
       $form_state = $exception->getFormState();
 
       // Set the build ID from the request as the old build ID on the form.
-      $form['#build_id_old'] = $request->request->get('form_build_id');
+      $form['#build_id_old'] = $request->get('form_build_id');
 
       try {
         $response = $this->formAjaxResponseBuilder->buildResponse($request, $form, $form_state, []);
diff --git a/core/lib/Drupal/Core/Form/FormBase.php b/core/lib/Drupal/Core/Form/FormBase.php
index 485e6d7..c33f2a1 100644
--- a/core/lib/Drupal/Core/Form/FormBase.php
+++ b/core/lib/Drupal/Core/Form/FormBase.php
@@ -5,7 +5,6 @@
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\DependencyInjection\DependencySerializationTrait;
-use Drupal\Core\Logger\LoggerChannelTrait;
 use Drupal\Core\Routing\LinkGeneratorTrait;
 use Drupal\Core\Routing\RedirectDestinationTrait;
 use Drupal\Core\Routing\UrlGeneratorTrait;
@@ -16,35 +15,12 @@
 /**
  * Provides a base class for forms.
  *
- * This class exists as a mid-point between dependency injection through
- * ContainerInjectionInterface, and a less-structured use of traits which
- * default to using the \Drupal accessor for service discovery.
- *
- * To properly inject services, override create() and use the setters provided
- * by the traits to inject the needed services.
- *
- * @code
- * public static function create($container) {
- *   $form = new static();
- *   // In this example we only need string translation so we use the
- *   // setStringTranslation() method provided by StringTranslationTrait.
- *   $form->setStringTranslation($container->get('string_translation'));
- *   return $form;
- * }
- * @endcode
- *
- * Alternately, do not use FormBase. A class can implement FormInterface, use
- * the traits it needs, and inject services from the container as required.
- *
  * @ingroup form_api
- *
- * @see \Drupal\Core\DependencyInjection\ContainerInjectionInterface
  */
 abstract class FormBase implements FormInterface, ContainerInjectionInterface {
 
   use DependencySerializationTrait;
   use LinkGeneratorTrait;
-  use LoggerChannelTrait;
   use RedirectDestinationTrait;
   use StringTranslationTrait;
   use UrlGeneratorTrait;
@@ -69,6 +45,13 @@
   protected $configFactory;
 
   /**
+   * The logger factory.
+   *
+   * @var \Drupal\Core\Logger\LoggerChannelFactoryInterface
+   */
+  protected $loggerFactory;
+
+  /**
    * The route match.
    *
    * @var \Drupal\Core\Routing\RouteMatchInterface
@@ -210,18 +193,17 @@ private function container() {
   /**
    * Gets the logger for a specific channel.
    *
-   * This method exists for backward-compatibility between FormBase and
-   * LoggerChannelTrait. Use LoggerChannelTrait::getLogger() instead.
-   *
    * @param string $channel
-   *   The name of the channel. Can be any string, but the general practice is
-   *   to use the name of the subsystem calling this.
+   *   The name of the channel.
    *
    * @return \Psr\Log\LoggerInterface
-   *   The logger for the given channel.
+   *   The logger for this channel.
    */
   protected function logger($channel) {
-    return $this->getLogger($channel);
+    if (!$this->loggerFactory) {
+      $this->loggerFactory = $this->container()->get('logger.factory');
+    }
+    return $this->loggerFactory->get($channel);
   }
 
 }
diff --git a/core/lib/Drupal/Core/Form/FormBuilderInterface.php b/core/lib/Drupal/Core/Form/FormBuilderInterface.php
index ca79437..334e10b 100644
--- a/core/lib/Drupal/Core/Form/FormBuilderInterface.php
+++ b/core/lib/Drupal/Core/Form/FormBuilderInterface.php
@@ -137,9 +137,9 @@ public function rebuildForm($form_id, FormStateInterface &$form_state, $old_form
    * by calling $form_state->getErrors().
    *
    * @param \Drupal\Core\Form\FormInterface|string $form_arg
-   *   The value must be one of the following:
-   *   - The name of a class that implements \Drupal\Core\Form\FormInterface.
-   *   - An instance of a class that implements \Drupal\Core\Form\FormInterface.
+   *   A form object to use to build the form, or the unique string identifying
+   *   the desired form. If $form_arg is a string and a function with that
+   *   name exists, it is called to build the form array.
    * @param $form_state
    *   The current state of the form. Most important is the
    *   $form_state->getValues() collection, a tree of data used to simulate the
diff --git a/core/lib/Drupal/Core/Form/form.api.php b/core/lib/Drupal/Core/Form/form.api.php
index 701871f..41d1441 100644
--- a/core/lib/Drupal/Core/Form/form.api.php
+++ b/core/lib/Drupal/Core/Form/form.api.php
@@ -56,12 +56,11 @@
  */
 function callback_batch_operation($MULTIPLE_PARAMS, &$context) {
   $node_storage = \Drupal::entityTypeManager()->getStorage('node');
-  $database = \Drupal::database();
 
   if (!isset($context['sandbox']['progress'])) {
     $context['sandbox']['progress'] = 0;
     $context['sandbox']['current_node'] = 0;
-    $context['sandbox']['max'] = $database->query('SELECT COUNT(DISTINCT nid) FROM {node}')->fetchField();
+    $context['sandbox']['max'] = db_query('SELECT COUNT(DISTINCT nid) FROM {node}')->fetchField();
   }
 
   // For this example, we decide that we can safely process
@@ -69,8 +68,8 @@ function callback_batch_operation($MULTIPLE_PARAMS, &$context) {
   $limit = 5;
 
   // With each pass through the callback, retrieve the next group of nids.
-  $result = $database->queryRange("SELECT nid FROM {node} WHERE nid > :nid ORDER BY nid ASC", 0, $limit, [':nid' => $context['sandbox']['current_node']]);
-  foreach ($result as $row) {
+  $result = db_query_range("SELECT nid FROM {node} WHERE nid > %d ORDER BY nid ASC", $context['sandbox']['current_node'], 0, $limit);
+  while ($row = db_fetch_array($result)) {
 
     // Here we actually perform our processing on the current node.
     $node_storage->resetCache(array($row['nid']));
diff --git a/core/lib/Drupal/Core/Http/ClientFactory.php b/core/lib/Drupal/Core/Http/ClientFactory.php
index 3dcf353..a68f085 100644
--- a/core/lib/Drupal/Core/Http/ClientFactory.php
+++ b/core/lib/Drupal/Core/Http/ClientFactory.php
@@ -52,13 +52,6 @@ public function fromOptions(array $config = []) {
         'User-Agent' => 'Drupal/' . \Drupal::VERSION . ' (+https://www.drupal.org/) ' . \GuzzleHttp\default_user_agent(),
       ],
       'handler' => $this->stack,
-      // Security consideration: prevent Guzzle from using environment variables
-      // to configure the outbound proxy.
-      'proxy' => [
-        'http' => NULL,
-        'https' => NULL,
-        'no' => [],
-      ]
     ];
 
     $config = NestedArray::mergeDeep($default_config, Settings::get('http_client_config', []), $config);
diff --git a/core/lib/Drupal/Core/Logger/LoggerChannelTrait.php b/core/lib/Drupal/Core/Logger/LoggerChannelTrait.php
deleted file mode 100644
index d3a8e85..0000000
--- a/core/lib/Drupal/Core/Logger/LoggerChannelTrait.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Drupal\Core\Logger;
-
-/**
- * Wrapper methods for the logger factory service.
- *
- * This utility trait should only be used in application-level code, such as
- * classes that would implement ContainerInjectionInterface. Services registered
- * in the Container should not use this trait but inject the appropriate service
- * directly for easier testing.
- *
- * @see \Drupal\Core\DependencyInjection\ContainerInjectionInterface
- */
-trait LoggerChannelTrait {
-
-  /**
-   * The logger channel factory service.
-   *
-   * @var \Drupal\Core\Logger\LoggerChannelFactoryInterface
-   */
-  protected $loggerFactory;
-
-  /**
-   * Gets the logger for a specific channel.
-   *
-   * @param string $channel
-   *   The name of the channel. Can be any string, but the general practice is
-   *   to use the name of the subsystem calling this.
-   *
-   * @return \Psr\Log\LoggerInterface
-   *   The logger for the given channel.
-   *
-   * @todo Require the use of injected services:
-   *   https://www.drupal.org/node/2733703
-   */
-  protected function getLogger($channel) {
-    if (!$this->loggerFactory) {
-      $this->loggerFactory = \Drupal::service('logger.factory');
-    }
-    return $this->loggerFactory->get($channel);
-  }
-
-  /**
-   * Injects the logger channel factory.
-   *
-   * @param \Drupal\Core\Logger\LoggerChannelFactoryInterface $logger_factory
-   *   The logger channel factory service.
-   *
-   * @return $this
-   */
-  public function setLoggerFactory(LoggerChannelFactoryInterface $logger_factory) {
-    $this->loggerFactory = $logger_factory;
-
-    return $this;
-  }
-
-}
diff --git a/core/lib/Drupal/Core/Mail/MailManager.php b/core/lib/Drupal/Core/Mail/MailManager.php
index 2abba6b..87ff04e 100644
--- a/core/lib/Drupal/Core/Mail/MailManager.php
+++ b/core/lib/Drupal/Core/Mail/MailManager.php
@@ -8,8 +8,6 @@
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Config\ConfigFactoryInterface;
-use Drupal\Core\Render\RenderContext;
-use Drupal\Core\Render\RendererInterface;
 use Drupal\Core\StringTranslation\StringTranslationTrait;
 use Drupal\Core\StringTranslation\TranslationInterface;
 
@@ -39,13 +37,6 @@ class MailManager extends DefaultPluginManager implements MailManagerInterface {
   protected $loggerFactory;
 
   /**
-   * The renderer.
-   *
-   * @var \Drupal\Core\Render\RendererInterface
-   */
-  protected $renderer;
-
-  /**
    * List of already instantiated mail plugins.
    *
    * @var array
@@ -68,17 +59,14 @@ class MailManager extends DefaultPluginManager implements MailManagerInterface {
    *   The logger channel factory.
    * @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
    *   The string translation service.
-   * @param \Drupal\Core\Render\RendererInterface $renderer
-   *   The renderer.
    */
-  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, ConfigFactoryInterface $config_factory, LoggerChannelFactoryInterface $logger_factory, TranslationInterface $string_translation, RendererInterface $renderer) {
+  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, ConfigFactoryInterface $config_factory, LoggerChannelFactoryInterface $logger_factory, TranslationInterface $string_translation) {
     parent::__construct('Plugin/Mail', $namespaces, $module_handler, 'Drupal\Core\Mail\MailInterface', 'Drupal\Core\Annotation\Mail');
     $this->alterInfo('mail_backend_info');
     $this->setCacheBackend($cache_backend, 'mail_backend_plugins');
     $this->configFactory = $config_factory;
     $this->loggerFactory = $logger_factory;
     $this->stringTranslation = $string_translation;
-    $this->renderer = $renderer;
   }
 
   /**
@@ -164,58 +152,6 @@ public function getInstance(array $options) {
    * {@inheritdoc}
    */
   public function mail($module, $key, $to, $langcode, $params = array(), $reply = NULL, $send = TRUE) {
-    // Mailing can invoke rendering (e.g., generating URLs, replacing tokens),
-    // but e-mails are not HTTP responses: they're not cached, they don't have
-    // attachments. Therefore we perform mailing inside its own render context,
-    // to ensure it doesn't leak into the render context for the HTTP response
-    // to the current request.
-    return $this->renderer->executeInRenderContext(new RenderContext(), function() use ($module, $key, $to, $langcode, $params, $reply, $send) {
-      return $this->doMail($module, $key, $to, $langcode, $params, $reply, $send);
-    });
-  }
-
-  /**
-   * Composes and optionally sends an email message.
-   *
-   * @param string $module
-   *   A module name to invoke hook_mail() on. The {$module}_mail() hook will be
-   *   called to complete the $message structure which will already contain
-   *   common defaults.
-   * @param string $key
-   *   A key to identify the email sent. The final message ID for email altering
-   *   will be {$module}_{$key}.
-   * @param string $to
-   *   The email address or addresses where the message will be sent to. The
-   *   formatting of this string will be validated with the
-   *   @link http://php.net/manual/filter.filters.validate.php PHP email validation filter. @endlink
-   *   Some examples are:
-   *   - user@example.com
-   *   - user@example.com, anotheruser@example.com
-   *   - User <user@example.com>
-   *   - User <user@example.com>, Another User <anotheruser@example.com>
-   * @param string $langcode
-   *   Language code to use to compose the email.
-   * @param array $params
-   *   (optional) Parameters to build the email.
-   * @param string|null $reply
-   *   Optional email address to be used to answer.
-   * @param bool $send
-   *   If TRUE, call an implementation of
-   *   \Drupal\Core\Mail\MailInterface->mail() to deliver the message, and
-   *   store the result in $message['result']. Modules implementing
-   *   hook_mail_alter() may cancel sending by setting $message['send'] to
-   *   FALSE.
-   *
-   * @return array
-   *   The $message array structure containing all details of the message. If
-   *   already sent ($send = TRUE), then the 'result' element will contain the
-   *   success indicator of the email, failure being already written to the
-   *   watchdog. (Success means nothing more than the message being accepted at
-   *   php-level, which still doesn't guarantee it to be delivered.)
-   *
-   * @see \Drupal\Core\Mail\MailManagerInterface::mail()
-   */
-  public function doMail($module, $key, $to, $langcode, $params = array(), $reply = NULL, $send = TRUE) {
     $site_config = $this->configFactory->get('system.site');
     $site_mail = $site_config->get('mail');
     if (empty($site_mail)) {
diff --git a/core/lib/Drupal/Core/Mail/MailManagerInterface.php b/core/lib/Drupal/Core/Mail/MailManagerInterface.php
index cdf4c8a..35f1fd5 100644
--- a/core/lib/Drupal/Core/Mail/MailManagerInterface.php
+++ b/core/lib/Drupal/Core/Mail/MailManagerInterface.php
@@ -23,11 +23,10 @@
    *
    * Finding out what language to send the email with needs some consideration.
    * If you send email to a user, her preferred language should be fine, so use
-   * \Drupal\Core\Session\AccountInterface::getPreferredAdminLangcode(). If you
-   * send email based on form values filled on the page, there are two
-   * additional choices if you are not sending the email to a user on the site.
-   * You can either use the language used to generate the page or the site
-   * default language. See
+   * user_preferred_langcode(). If you send email based on form values filled on
+   * the page, there are two additional choices if you are not sending the email
+   * to a user on the site. You can either use the language used to generate the
+   * page or the site default language. See
    * Drupal\Core\Language\LanguageManagerInterface::getDefaultLanguage(). The
    * former is good if sending email to the person filling the form, the later
    * is good if you send email to an address previously set up (like contact
@@ -47,7 +46,7 @@
    *       $params['account'] = $account;
    *       // example_mail() will be called based on the first
    *       // MailManagerInterface->mail() parameter.
-   *       \Drupal::service('plugin.manager.mail')->mail('example', 'notice', $account->mail, $langcode, $params);
+   *       \Drupal::service('plugin.manager.mail')->mail('example', 'notice', $account->mail, user_preferred_langcode($account), $params);
    *     }
    *   }
    *
diff --git a/core/lib/Drupal/Core/Plugin/ContextAwarePluginBase.php b/core/lib/Drupal/Core/Plugin/ContextAwarePluginBase.php
index 05ba8a8..ab73598 100644
--- a/core/lib/Drupal/Core/Plugin/ContextAwarePluginBase.php
+++ b/core/lib/Drupal/Core/Plugin/ContextAwarePluginBase.php
@@ -41,11 +41,11 @@ protected function createContextFromConfiguration(array $context_configuration)
   /**
    * {@inheritdoc}
    *
-   * This code is identical to the Component in order to pick up a different
-   * Context class.
-   *
    * @return \Drupal\Core\Plugin\Context\ContextInterface
    *   The context object.
+   *
+   * This code is identical to the Component in order to pick up a different
+   * Context class.
    */
   public function getContext($name) {
     // Check for a valid context value.
diff --git a/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php b/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php
index 06365fa..2acd41b 100644
--- a/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php
+++ b/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php
@@ -3,7 +3,6 @@
 namespace Drupal\Core\Plugin;
 
 use Drupal\Component\Plugin\Discovery\CachedDiscoveryInterface;
-use Drupal\Core\Cache\CacheableDependencyInterface;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Cache\UseCacheBackendTrait;
 use Drupal\Component\Plugin\Discovery\DiscoveryCachedTrait;
@@ -21,7 +20,7 @@
  *
  * @ingroup plugin_api
  */
-class DefaultPluginManager extends PluginManagerBase implements PluginManagerInterface, CachedDiscoveryInterface, CacheableDependencyInterface {
+class DefaultPluginManager extends PluginManagerBase implements PluginManagerInterface, CachedDiscoveryInterface {
 
   use DiscoveryCachedTrait;
   use UseCacheBackendTrait;
@@ -314,25 +313,4 @@ protected function providerExists($provider) {
     return $this->moduleHandler->moduleExists($provider);
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function getCacheContexts() {
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getCacheTags() {
-    return $this->cacheTags;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getCacheMaxAge() {
-    return CACHE::PERMANENT;
-  }
-
 }
diff --git a/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php b/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php
index bbcb0f2..403e909 100644
--- a/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php
+++ b/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php
@@ -82,11 +82,11 @@ public function getConfiguration() {
    * {@inheritdoc}
    */
   public function setConfiguration($configuration) {
-    $this->configuration = $configuration;
     $plugin = $this->get($this->instanceId);
     if ($plugin instanceof ConfigurablePluginInterface) {
       $plugin->setConfiguration($configuration);
     }
+    $this->configuration = $configuration;
     return $this;
   }
 
@@ -94,7 +94,6 @@ public function setConfiguration($configuration) {
    * {@inheritdoc}
    */
   public function addInstanceId($id, $configuration = NULL) {
-    $this->instanceId = $id;
     parent::addInstanceId($id, $configuration);
     if ($configuration !== NULL) {
       $this->setConfiguration($configuration);
diff --git a/core/lib/Drupal/Core/Render/AttachmentsResponseProcessorInterface.php b/core/lib/Drupal/Core/Render/AttachmentsResponseProcessorInterface.php
index 14cc6a2..4b78fc0 100644
--- a/core/lib/Drupal/Core/Render/AttachmentsResponseProcessorInterface.php
+++ b/core/lib/Drupal/Core/Render/AttachmentsResponseProcessorInterface.php
@@ -25,7 +25,7 @@
    * $build['#attached']['library'][] = [
    *   'library' => ['core/jquery']
    * ];
-   * $build['#attached']['http_header'] = [
+   * $build['#attached']['http_header'][] = [
    *   ['Content-Type', 'application/rss+xml; charset=utf-8'],
    * ];
    * @endcode
diff --git a/core/lib/Drupal/Core/Render/Element/Checkboxes.php b/core/lib/Drupal/Core/Render/Element/Checkboxes.php
index 78108b5..8487a09 100644
--- a/core/lib/Drupal/Core/Render/Element/Checkboxes.php
+++ b/core/lib/Drupal/Core/Render/Element/Checkboxes.php
@@ -17,7 +17,7 @@
  * @code
  * $form['high_school']['tests_taken'] = array(
  *   '#type' => 'checkboxes',
- *   '#options' => array('SAT' => $this->t('SAT'), 'ACT' => $this->t('ACT')),
+ *   '#options' => array('SAT' => $this->t('SAT'), 'ACT' => $this->t('ACT'))),
  *   '#title' => $this->t('What standardized tests did you take?'),
  *   ...
  * );
@@ -122,40 +122,4 @@ public static function valueCallback(&$element, $input, FormStateInterface $form
     }
   }
 
-  /**
-   * Determines which checkboxes were checked when a form is submitted.
-   *
-   * @param array $input
-   *   An array returned by the FormAPI for a set of checkboxes.
-   *
-   * @return array
-   *   An array of keys that were checked.
-   */
-  public static function getCheckedCheckboxes(array $input) {
-    // Browsers do not include unchecked options in a form submission. The
-    // FormAPI tries to normalize this to keep checkboxes consistent with other
-    // form elements. Checkboxes show up as an array in the form of option_id =>
-    // option_id|0, where integer 0 is an unchecked option.
-    //
-    // @see \Drupal\Core\Render\Element\Checkboxes::valueCallback()
-    // @see https://www.w3.org/TR/html401/interact/forms.html#checkbox
-    $checked = array_filter($input, function($value) {
-      return $value !== 0;
-    });
-    return array_keys($checked);
-  }
-
-  /**
-   * Determines if all checkboxes in a set are unchecked.
-   *
-   * @param array $input
-   *   An array returned by the FormAPI for a set of checkboxes.
-   *
-   * @return bool
-   *   TRUE if all options are unchecked. FALSE otherwise.
-   */
-  public static function detectEmptyCheckboxes(array $input) {
-    return empty(static::getCheckedCheckboxes($input));
-  }
-
 }
diff --git a/core/lib/Drupal/Core/Render/Element/MachineName.php b/core/lib/Drupal/Core/Render/Element/MachineName.php
index c92d0e0..0b32f3a 100644
--- a/core/lib/Drupal/Core/Render/Element/MachineName.php
+++ b/core/lib/Drupal/Core/Render/Element/MachineName.php
@@ -22,10 +22,7 @@
  * Properties:
  * - #machine_name: An associative array containing:
  *   - exists: A callable to invoke for checking whether a submitted machine
- *     name value already exists. The arguments passed to the callback will be:
- *     - The submitted value.
- *     - The element array.
- *     - The form state object.
+ *     name value already exists. The submitted value is passed as an argument.
  *     In most cases, an existing API or menu argument loader function can be
  *     re-used. The callback is only invoked if the submitted value differs from
  *     the element's #default_value.
diff --git a/core/lib/Drupal/Core/Render/Element/StatusMessages.php b/core/lib/Drupal/Core/Render/Element/StatusMessages.php
index f026aa5..55990e6 100644
--- a/core/lib/Drupal/Core/Render/Element/StatusMessages.php
+++ b/core/lib/Drupal/Core/Render/Element/StatusMessages.php
@@ -12,7 +12,7 @@
  * $build['status_messages'] = [
  *   '#type' => 'status_messages',
  * ];
- * @endcode
+ * @end
  *
  * @RenderElement("status_messages")
  */
diff --git a/core/lib/Drupal/Core/Render/RenderCacheInterface.php b/core/lib/Drupal/Core/Render/RenderCacheInterface.php
index 86f38d3..f31b330 100644
--- a/core/lib/Drupal/Core/Render/RenderCacheInterface.php
+++ b/core/lib/Drupal/Core/Render/RenderCacheInterface.php
@@ -64,7 +64,7 @@ public function get(array $elements);
    *   this array.
    *
    * @return bool|null
-   *   Returns FALSE if no cache item could be created, NULL otherwise.
+   *  Returns FALSE if no cache item could be created, NULL otherwise.
    *
    * @see ::get()
    */
diff --git a/core/lib/Drupal/Core/Render/RenderContext.php b/core/lib/Drupal/Core/Render/RenderContext.php
index 0d79520..7c60c62 100644
--- a/core/lib/Drupal/Core/Render/RenderContext.php
+++ b/core/lib/Drupal/Core/Render/RenderContext.php
@@ -10,6 +10,8 @@
  * @see \Drupal\Core\Render\RendererInterface
  * @see \Drupal\Core\Render\Renderer
  * @see \Drupal\Core\Render\BubbleableMetadata
+ *
+ * @internal
  */
 class RenderContext extends \SplStack {
 
diff --git a/core/lib/Drupal/Core/Render/theme.api.php b/core/lib/Drupal/Core/Render/theme.api.php
index 61cafc3..d6daa72 100644
--- a/core/lib/Drupal/Core/Render/theme.api.php
+++ b/core/lib/Drupal/Core/Render/theme.api.php
@@ -788,17 +788,17 @@ function hook_render_template($template_file, $variables) {
  * A module may implement this hook in order to alter the element type defaults
  * defined by a module.
  *
- * @param array $info
+ * @param array $types
  *   An associative array with structure identical to that of the return value
  *   of \Drupal\Core\Render\ElementInfoManagerInterface::getInfo().
  *
  * @see \Drupal\Core\Render\ElementInfoManager
  * @see \Drupal\Core\Render\Element\ElementInterface
  */
-function hook_element_info_alter(array &$info) {
+function hook_element_info_alter(array &$types) {
   // Decrease the default size of textfields.
-  if (isset($info['textfield']['#size'])) {
-    $info['textfield']['#size'] = 40;
+  if (isset($types['textfield']['#size'])) {
+    $types['textfield']['#size'] = 40;
   }
 }
 
diff --git a/core/lib/Drupal/Core/Routing/RouteBuilderInterface.php b/core/lib/Drupal/Core/Routing/RouteBuilderInterface.php
index d191cb9..83b1d3e 100644
--- a/core/lib/Drupal/Core/Routing/RouteBuilderInterface.php
+++ b/core/lib/Drupal/Core/Routing/RouteBuilderInterface.php
@@ -2,27 +2,10 @@
 
 namespace Drupal\Core\Routing;
 
-/**
- * Rebuilds the route information and dumps it.
- *
- * Rebuilding the route information is the process of gathering all routing data
- * from .routing.yml files, creating a
- * \Symfony\Component\Routing\RouteCollection object out of it, and dispatching
- * that object as a \Drupal\Core\Routing\RouteBuildEvent to all registered
- * listeners. After that, the \Symfony\Component\Routing\RouteCollection object
- * is used to dump the data. Examples of a dump include filling up the routing
- * table, auto-generating Apache mod_rewrite rules, or auto-generating a PHP
- * matcher class.
- *
- * @see \Drupal\Core\Routing\MatcherDumperInterface
- * @see \Drupal\Core\Routing\RouteProviderInterface
- *
- * @ingroup routing
- */
 interface RouteBuilderInterface {
 
   /**
-   * Rebuilds the route information and dumps it.
+   * Rebuilds the route info and dumps to dumper.
    *
    * @return bool
    *   Returns TRUE if the rebuild succeeds, FALSE otherwise.
@@ -30,7 +13,7 @@
   public function rebuild();
 
   /**
-   * Rebuilds the route information if necessary, and dumps it.
+   * Rebuilds the route info and dumps to dumper if necessary.
    *
    * @return bool
    *   Returns TRUE if the rebuild occurs, FALSE otherwise.
diff --git a/core/lib/Drupal/Core/Routing/UrlGenerator.php b/core/lib/Drupal/Core/Routing/UrlGenerator.php
index ccf2b60..9291c40 100644
--- a/core/lib/Drupal/Core/Routing/UrlGenerator.php
+++ b/core/lib/Drupal/Core/Routing/UrlGenerator.php
@@ -229,8 +229,10 @@ protected function doGenerate(array $variables, array $defaults, array $tokens,
 
     // Add a query string if needed, including extra parameters.
     $query_params += array_diff_key($parameters, $variables, $defaults);
-    if ($query_params && $query = UrlHelper::buildQuery($query_params)) {
-      $url .= '?' . $query;
+    if ($query_params && $query = http_build_query($query_params, '', '&')) {
+      // "/" and "?" can be left decoded for better user experience, see
+      // http://tools.ietf.org/html/rfc3986#section-3.4
+      $url .= '?' . strtr($query, array('%2F' => '/'));
     }
 
     return $url;
@@ -251,7 +253,7 @@ protected function doGenerate(array $variables, array $defaults, array $tokens,
    *   $parameters merged in.
    *
    * @return string
-   *   The url path corresponding to the route, without the base path.
+   *  The url path corresponding to the route, without the base path.
    */
   protected function getInternalPathFromRoute($name, SymfonyRoute $route, $parameters = array(), $query_params = array()) {
     // The Route has a cache of its own and is not recompiled as long as it does
diff --git a/core/lib/Drupal/Core/Routing/UrlGeneratorInterface.php b/core/lib/Drupal/Core/Routing/UrlGeneratorInterface.php
index 70829cd..f5174f1 100644
--- a/core/lib/Drupal/Core/Routing/UrlGeneratorInterface.php
+++ b/core/lib/Drupal/Core/Routing/UrlGeneratorInterface.php
@@ -21,7 +21,7 @@
    *   \Symfony\Component\Routing\Generator\UrlGeneratorInterface::generate().
    *
    * @return string
-   *   The internal Drupal path corresponding to the route.
+   *  The internal Drupal path corresponding to the route.
    */
   public function getPathFromRoute($name, $parameters = array());
 
diff --git a/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php b/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php
index e386461..2ff8bb7 100644
--- a/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php
+++ b/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php
@@ -80,7 +80,7 @@ public function registerFormat($format, $mime_type) {
   protected function getContentType(Request $request) {
     // AJAX iframe uploads need special handling, because they contain a JSON
     // response wrapped in <textarea>.
-    if ($request->request->get('ajax_iframe_upload', FALSE)) {
+    if ($request->get('ajax_iframe_upload', FALSE)) {
       return 'iframeupload';
     }
 
diff --git a/core/lib/Drupal/Core/StreamWrapper/LocalReadOnlyStream.php b/core/lib/Drupal/Core/StreamWrapper/LocalReadOnlyStream.php
index 55d896a..6e3197c 100644
--- a/core/lib/Drupal/Core/StreamWrapper/LocalReadOnlyStream.php
+++ b/core/lib/Drupal/Core/StreamWrapper/LocalReadOnlyStream.php
@@ -16,14 +16,24 @@
 abstract class LocalReadOnlyStream extends LocalStream {
 
   /**
-   * {@inheritdoc}
-   */
-  public static function getType() {
-    return StreamWrapperInterface::READ_VISIBLE | StreamWrapperInterface::LOCAL;
-  }
-
-  /**
-   * {@inheritdoc}
+   * Support for fopen(), file_get_contents(), etc.
+   *
+   * Any write modes will be rejected, as this is a read-only stream wrapper.
+   *
+   * @param string $uri
+   *   A string containing the URI to the file to open.
+   * @param int $mode
+   *   The file mode, only strict readonly modes are supported.
+   * @param int $options
+   *   A bit mask of STREAM_USE_PATH and STREAM_REPORT_ERRORS.
+   * @param string $opened_path
+   *   A string containing the path actually opened.
+   *
+   * @return bool
+   *   TRUE if $mode denotes a readonly mode and the file was opened
+   *   successfully, FALSE otherwise.
+   *
+   * @see http://php.net/manual/streamwrapper.stream-open.php
    */
   public function stream_open($uri, $mode, $options, &$opened_path) {
     if (!in_array($mode, array('r', 'rb', 'rt'))) {
@@ -32,7 +42,15 @@ public function stream_open($uri, $mode, $options, &$opened_path) {
       }
       return FALSE;
     }
-    return parent::stream_open($uri, $mode, $options, $opened_path);
+
+    $this->uri = $uri;
+    $path = $this->getLocalPath();
+    $this->handle = ($options & STREAM_REPORT_ERRORS) ? fopen($path, $mode) : @fopen($path, $mode);
+    if ($this->handle !== FALSE && ($options & STREAM_USE_PATH)) {
+      $opened_path = $path;
+    }
+
+    return (bool) $this->handle;
   }
 
   /**
diff --git a/core/lib/Drupal/Core/StreamWrapper/PhpStreamWrapperInterface.php b/core/lib/Drupal/Core/StreamWrapper/PhpStreamWrapperInterface.php
index 4c11c8d..ed8db64 100644
--- a/core/lib/Drupal/Core/StreamWrapper/PhpStreamWrapperInterface.php
+++ b/core/lib/Drupal/Core/StreamWrapper/PhpStreamWrapperInterface.php
@@ -64,7 +64,7 @@ public function rmdir($path, $options);
   public function stream_cast($cast_as);
 
   /**
-   * Closes stream.
+   * @return void
    */
   public function stream_close();
 
diff --git a/core/lib/Drupal/Core/StringTranslation/Translator/FileTranslation.php b/core/lib/Drupal/Core/StringTranslation/Translator/FileTranslation.php
index abe5e9a..d4c46e3 100644
--- a/core/lib/Drupal/Core/StringTranslation/Translator/FileTranslation.php
+++ b/core/lib/Drupal/Core/StringTranslation/Translator/FileTranslation.php
@@ -82,7 +82,7 @@ public function findTranslationFiles($langcode = NULL) {
    *   want to find translation files.
    *
    * @return string
-   *   String file pattern.
+   *  String file pattern.
    */
   protected function getTranslationFilesPattern($langcode = NULL) {
     // The file name matches: drupal-[release version].[language code].po
diff --git a/core/lib/Drupal/Core/Template/TwigExtension.php b/core/lib/Drupal/Core/Template/TwigExtension.php
index 715fd1e..38bdc2e 100644
--- a/core/lib/Drupal/Core/Template/TwigExtension.php
+++ b/core/lib/Drupal/Core/Template/TwigExtension.php
@@ -4,10 +4,7 @@
 
 use Drupal\Component\Utility\Html;
 use Drupal\Component\Render\MarkupInterface;
-use Drupal\Core\Cache\CacheableDependencyInterface;
 use Drupal\Core\Datetime\DateFormatterInterface;
-use Drupal\Core\Render\AttachmentsInterface;
-use Drupal\Core\Render\BubbleableMetadata;
 use Drupal\Core\Render\RenderableInterface;
 use Drupal\Core\Render\RendererInterface;
 use Drupal\Core\Routing\UrlGeneratorInterface;
@@ -414,8 +411,6 @@ public function escapeFilter(\Twig_Environment $env, $arg, $strategy = 'html', $
       return NULL;
     }
 
-    $this->bubbleArgMetadata($arg);
-
     // Keep Twig_Markup objects intact to support autoescaping.
     if ($autoescape && ($arg instanceof \Twig_Markup || $arg instanceof MarkupInterface)) {
       return $arg;
@@ -469,37 +464,6 @@ public function escapeFilter(\Twig_Environment $env, $arg, $strategy = 'html', $
   }
 
   /**
-   * Bubbles Twig template argument's cacheability & attachment metadata.
-   *
-   * For example: a generated link or generated URL object is passed as a Twig
-   * template argument, and its bubbleable metadata must be bubbled.
-   *
-   * @see \Drupal\Core\GeneratedLink
-   * @see \Drupal\Core\GeneratedUrl
-   *
-   * @param mixed $arg
-   *   A Twig template argument that is about to be printed.
-   *
-   * @see \Drupal\Core\Theme\ThemeManager::render()
-   * @see \Drupal\Core\Render\RendererInterface::render()
-   */
-  protected function bubbleArgMetadata($arg) {
-    // If it's a renderable, then it'll be up to the generated render array it
-    // returns to contain the necessary cacheability & attachment metadata. If
-    // it doesn't implement CacheableDependencyInterface or AttachmentsInterface
-    // then there is nothing to do here.
-    if ($arg instanceof RenderableInterface || !($arg instanceof CacheableDependencyInterface || $arg instanceof AttachmentsInterface)) {
-      return;
-    }
-
-    $arg_bubbleable = [];
-    BubbleableMetadata::createFromObject($arg)
-      ->applyTo($arg_bubbleable);
-
-    $this->renderer->render($arg_bubbleable);
-  }
-
-  /**
    * Wrapper around render() for twig printed output.
    *
    * If an object is passed which does not implement __toString(),
@@ -541,7 +505,6 @@ public function renderVar($arg) {
     }
 
     if (is_object($arg)) {
-      $this->bubbleArgMetadata($arg);
       if ($arg instanceof RenderableInterface) {
         $arg = $arg->toRenderable();
       }
diff --git a/core/lib/Drupal/Core/Template/TwigNodeTrans.php b/core/lib/Drupal/Core/Template/TwigNodeTrans.php
index 21006fd..98404b6 100644
--- a/core/lib/Drupal/Core/Template/TwigNodeTrans.php
+++ b/core/lib/Drupal/Core/Template/TwigNodeTrans.php
@@ -169,9 +169,6 @@ protected function compileString(\Twig_Node $body) {
         }
       }
     }
-    elseif (!$body->hasAttribute('data')) {
-      throw new \Twig_Error_Syntax('{% trans %} tag cannot be empty');
-    }
     else {
       $text = $body->getAttribute('data');
     }
diff --git a/core/lib/Drupal/Core/Theme/AjaxBasePageNegotiator.php b/core/lib/Drupal/Core/Theme/AjaxBasePageNegotiator.php
index 5cd2ee3..261cedf 100644
--- a/core/lib/Drupal/Core/Theme/AjaxBasePageNegotiator.php
+++ b/core/lib/Drupal/Core/Theme/AjaxBasePageNegotiator.php
@@ -21,6 +21,8 @@
  * be displayed in either theme, but the Ajax response to the Field module's
  * "Add another item" button should be rendered using the same theme as the rest
  * of the page.
+ *
+ * Therefore specify '_theme: ajax_base_page' as part of the router options.
  */
 class AjaxBasePageNegotiator implements ThemeNegotiatorInterface {
 
@@ -65,25 +67,28 @@ public function __construct(CsrfTokenGenerator $token_generator, ConfigFactoryIn
    * {@inheritdoc}
    */
   public function applies(RouteMatchInterface $route_match) {
-    $ajax_page_state = $this->requestStack->getCurrentRequest()->request->get('ajax_page_state');
-    return !empty($ajax_page_state['theme']) && isset($ajax_page_state['theme_token']);
+    // Check whether the route was configured to use the base page theme.
+    return ($route = $route_match->getRouteObject())
+      && $route->hasOption('_theme')
+      && $route->getOption('_theme') == 'ajax_base_page';
   }
 
   /**
    * {@inheritdoc}
    */
   public function determineActiveTheme(RouteMatchInterface $route_match) {
-    $ajax_page_state = $this->requestStack->getCurrentRequest()->request->get('ajax_page_state');
-    $theme = $ajax_page_state['theme'];
-    $token = $ajax_page_state['theme_token'];
+    if (($ajax_page_state = $this->requestStack->getCurrentRequest()->request->get('ajax_page_state'))  && !empty($ajax_page_state['theme']) && !empty($ajax_page_state['theme_token'])) {
+      $theme = $ajax_page_state['theme'];
+      $token = $ajax_page_state['theme_token'];
 
-    // Prevent a request forgery from giving a person access to a theme they
-    // shouldn't be otherwise allowed to see. However, since everyone is
-    // allowed to see the default theme, token validation isn't required for
-    // that, and bypassing it allows most use-cases to work even when accessed
-    // from the page cache.
-    if ($theme === $this->configFactory->get('system.theme')->get('default') || $this->csrfGenerator->validate($token, $theme)) {
-      return $theme;
+      // Prevent a request forgery from giving a person access to a theme they
+      // shouldn't be otherwise allowed to see. However, since everyone is
+      // allowed to see the default theme, token validation isn't required for
+      // that, and bypassing it allows most use-cases to work even when accessed
+      // from the page cache.
+      if ($theme === $this->configFactory->get('system.theme')->get('default') || $this->csrfGenerator->validate($token, $theme)) {
+        return $theme;
+      }
     }
   }
 
diff --git a/core/lib/Drupal/Core/Theme/Registry.php b/core/lib/Drupal/Core/Theme/Registry.php
index 9f716ea..bfb4e38 100644
--- a/core/lib/Drupal/Core/Theme/Registry.php
+++ b/core/lib/Drupal/Core/Theme/Registry.php
@@ -13,13 +13,6 @@
 /**
  * Defines the theme registry service.
  *
- * @internal
- *
- * Theme registry is expected to be used only internally since every
- * hook_theme() implementation depends on the way this class is built. This
- * class may get new features in minor releases so this class should be
- * considered internal.
- *
  * @todo Replace local $registry variables in methods with $this->registry.
  */
 class Registry implements DestructableInterface {
@@ -141,13 +134,6 @@ class Registry implements DestructableInterface {
   protected $themeManager;
 
   /**
-   * The runtime cache.
-   *
-   * @var \Drupal\Core\Cache\CacheBackendInterface
-   */
-  protected $runtimeCache;
-
-  /**
    * Constructs a \Drupal\Core\Theme\Registry object.
    *
    * @param string $root
@@ -164,10 +150,8 @@ class Registry implements DestructableInterface {
    *   The theme initialization.
    * @param string $theme_name
    *   (optional) The name of the theme for which to construct the registry.
-   * @param \Drupal\Core\Cache\CacheBackendInterface $runtime_cache
-   *   The cache backend interface to use for the runtime theme registry data.
    */
-  public function __construct($root, CacheBackendInterface $cache, LockBackendInterface $lock, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler, ThemeInitializationInterface $theme_initialization, $theme_name = NULL, CacheBackendInterface $runtime_cache = NULL) {
+  public function __construct($root, CacheBackendInterface $cache, LockBackendInterface $lock, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler, ThemeInitializationInterface $theme_initialization, $theme_name = NULL) {
     $this->root = $root;
     $this->cache = $cache;
     $this->lock = $lock;
@@ -175,7 +159,6 @@ public function __construct($root, CacheBackendInterface $cache, LockBackendInte
     $this->themeName = $theme_name;
     $this->themeHandler = $theme_handler;
     $this->themeInitialization = $theme_initialization;
-    $this->runtimeCache = $runtime_cache;
   }
 
   /**
@@ -249,7 +232,7 @@ public function get() {
   public function getRuntime() {
     $this->init($this->themeName);
     if (!isset($this->runtimeRegistry[$this->theme->getName()])) {
-      $this->runtimeRegistry[$this->theme->getName()] = new ThemeRegistry('theme_registry:runtime:' . $this->theme->getName(), $this->runtimeCache ?: $this->cache, $this->lock, array('theme_registry'), $this->moduleHandler->isLoaded());
+      $this->runtimeRegistry[$this->theme->getName()] = new ThemeRegistry('theme_registry:runtime:' . $this->theme->getName(), $this->cache, $this->lock, array('theme_registry'), $this->moduleHandler->isLoaded());
     }
     return $this->runtimeRegistry[$this->theme->getName()];
   }
diff --git a/core/lib/Drupal/Core/Url.php b/core/lib/Drupal/Core/Url.php
index 6a58319..bf978bf 100644
--- a/core/lib/Drupal/Core/Url.php
+++ b/core/lib/Drupal/Core/Url.php
@@ -272,11 +272,7 @@ public static function fromUri($uri, $options = []) {
     if ($uri_parts === FALSE) {
       throw new \InvalidArgumentException("The URI '$uri' is malformed.");
     }
-    // We support protocol-relative URLs.
-    if (strpos($uri, '//') === 0) {
-      $uri_parts['scheme'] = '';
-    }
-    elseif (empty($uri_parts['scheme'])) {
+    if (empty($uri_parts['scheme'])) {
       throw new \InvalidArgumentException("The URI '$uri' is invalid. You must use a valid URI scheme.");
     }
     $uri_parts += ['path' => ''];
@@ -498,7 +494,7 @@ protected function setUnrouted() {
   }
 
   /**
-   * Generates a URI string that represents the data in the Url object.
+   * Generates a URI string that represents tha data in the Url object.
    *
    * The URI will typically have the scheme of route: even if the object was
    * constructed using an entity: or internal: scheme. A internal: URI that
diff --git a/core/lib/Drupal/Core/Utility/LinkGenerator.php b/core/lib/Drupal/Core/Utility/LinkGenerator.php
index 0ec5280..4118661 100644
--- a/core/lib/Drupal/Core/Utility/LinkGenerator.php
+++ b/core/lib/Drupal/Core/Utility/LinkGenerator.php
@@ -141,7 +141,6 @@ public function generate($text, Url $url) {
 
     // Allow other modules to modify the structure of the link.
     $this->moduleHandler->alter('link', $variables);
-    $url = $variables['url'];
 
     // Move attributes out of options since generateFromRoute() doesn't need
     // them. Make sure the "href" comes first for testing purposes.
diff --git a/core/misc/ajax.js b/core/misc/ajax.js
index fefe9f3..061b594 100644
--- a/core/misc/ajax.js
+++ b/core/misc/ajax.js
@@ -1035,11 +1035,11 @@
       // been sufficiently tested whether attachBehaviors() can be successfully
       // called with a context object that includes top-level text nodes.
       // However, to give developers full control of the HTML appearing in the
-      // page, and to enable Ajax content to be inserted in places where <div>
-      // elements are not allowed (e.g., within <table>, <tr>, and <span>
-      // parents), we check if the new content satisfies the requirement
-      // of a single top-level element, and only use the container <div> created
-      // above when it doesn't. For more information, please see
+      // page, and to enable Ajax content to be inserted in places where DIV
+      // elements are not allowed (e.g., within TABLE, TR, and SPAN parents),
+      // we check if the new content satisfies the requirement of a single
+      // top-level element, and only use the container DIV created above when
+      // it doesn't. For more information, please see
       // https://www.drupal.org/node/736066.
       if ($new_content.length !== 1 || $new_content.get(0).nodeType !== 1) {
         $new_content = $new_content_wrapped;
diff --git a/core/misc/autocomplete.js b/core/misc/autocomplete.js
index 254e7e5..032a15c 100644
--- a/core/misc/autocomplete.js
+++ b/core/misc/autocomplete.js
@@ -222,7 +222,7 @@
         });
         // Use jQuery UI Autocomplete on the textfield.
         $autocomplete.autocomplete(autocomplete.options)
-          .each(function () {
+          .each(function() {
             $(this).data('ui-autocomplete')._renderItem = autocomplete.options.renderItem;
           });
       }
diff --git a/core/misc/tableselect.js b/core/misc/tableselect.js
index 243e000..053af05 100644
--- a/core/misc/tableselect.js
+++ b/core/misc/tableselect.js
@@ -101,7 +101,7 @@
       // range. Also make sure that we are actually checking checkboxes
       // over a range and that a checkbox has been checked or unchecked before.
       if (e.shiftKey && lastChecked && lastChecked !== e.target) {
-        // We use the checkbox's parent <tr> to do our range searching.
+        // We use the checkbox's parent TR to do our range searching.
         Drupal.tableSelectRange($(e.target).closest('tr')[0], $(lastChecked).closest('tr')[0], e.target.checked);
       }
 
diff --git a/core/modules/action/tests/src/Functional/ActionUninstallTest.php b/core/modules/action/src/Tests/ActionUninstallTest.php
similarity index 89%
rename from core/modules/action/tests/src/Functional/ActionUninstallTest.php
rename to core/modules/action/src/Tests/ActionUninstallTest.php
index 93e0bc0..c4d5ba3 100644
--- a/core/modules/action/tests/src/Functional/ActionUninstallTest.php
+++ b/core/modules/action/src/Tests/ActionUninstallTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\Tests\action\Functional;
+namespace Drupal\action\Tests;
 
-use Drupal\Tests\BrowserTestBase;
+use Drupal\simpletest\WebTestBase;
 
 /**
  * Tests that uninstalling actions does not remove other module's actions.
@@ -10,7 +10,7 @@
  * @group action
  * @see \Drupal\action\Plugin\views\field\BulkForm
  */
-class ActionUninstallTest extends BrowserTestBase {
+class ActionUninstallTest extends WebTestBase {
 
   /**
    * Modules to install.
diff --git a/core/modules/action/tests/src/Functional/BulkFormTest.php b/core/modules/action/src/Tests/BulkFormTest.php
similarity index 92%
rename from core/modules/action/tests/src/Functional/BulkFormTest.php
rename to core/modules/action/src/Tests/BulkFormTest.php
index 7d32b94..773d605 100644
--- a/core/modules/action/tests/src/Functional/BulkFormTest.php
+++ b/core/modules/action/src/Tests/BulkFormTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\Tests\action\Functional;
+namespace Drupal\action\Tests;
 
-use Drupal\Tests\BrowserTestBase;
+use Drupal\simpletest\WebTestBase;
 use Drupal\views\Views;
 
 /**
@@ -11,7 +11,7 @@
  * @group action
  * @see \Drupal\action\Plugin\views\field\BulkForm
  */
-class BulkFormTest extends BrowserTestBase {
+class BulkFormTest extends WebTestBase {
 
   /**
    * Modules to install.
@@ -68,7 +68,7 @@ public function testBulkForm() {
 
     // Set all nodes to sticky and check that.
     $edit += array('action' => 'node_make_sticky_action');
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
 
     foreach ($nodes as $node) {
       $changed_node = $node_storage->load($node->id());
@@ -82,7 +82,7 @@ public function testBulkForm() {
     $this->assertTrue($node->isPublished(), 'The node is published.');
 
     $edit = array('node_bulk_form[0]' => TRUE, 'action' => 'node_unpublish_action');
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
 
     $this->assertText('Unpublish content was applied to 1 item.');
 
@@ -123,7 +123,7 @@ public function testBulkForm() {
     // Check the default title.
     $this->drupalGet('test_bulk_form');
     $result = $this->xpath('//label[@for="edit-action"]');
-    $this->assertEqual('Action', $result[0]->getText());
+    $this->assertEqual('With selection', (string) $result[0]);
 
     // Setup up a different bulk form title.
     $view = Views::getView('test_bulk_form');
@@ -133,7 +133,7 @@ public function testBulkForm() {
 
     $this->drupalGet('test_bulk_form');
     $result = $this->xpath('//label[@for="edit-action"]');
-    $this->assertEqual('Test title', $result[0]->getText());
+    $this->assertEqual('Test title', (string) $result[0]);
 
     $this->drupalGet('test_bulk_form');
     // Call the node delete action.
@@ -142,7 +142,7 @@ public function testBulkForm() {
       $edit["node_bulk_form[$i]"] = TRUE;
     }
     $edit += array('action' => 'node_delete_action');
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     // Make sure we don't show an action message while we are still on the
     // confirmation page.
     $errors = $this->xpath('//div[contains(@class, "messages--status")]');
diff --git a/core/modules/action/tests/src/Functional/ConfigurationTest.php b/core/modules/action/src/Tests/ConfigurationTest.php
similarity index 96%
rename from core/modules/action/tests/src/Functional/ConfigurationTest.php
rename to core/modules/action/src/Tests/ConfigurationTest.php
index 23d0a38..225a528 100644
--- a/core/modules/action/tests/src/Functional/ConfigurationTest.php
+++ b/core/modules/action/src/Tests/ConfigurationTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\Tests\action\Functional;
+namespace Drupal\action\Tests;
 
 use Drupal\Component\Utility\Crypt;
+use Drupal\simpletest\WebTestBase;
 use Drupal\system\Entity\Action;
-use Drupal\Tests\BrowserTestBase;
 
 /**
  * Tests complex actions configuration by adding, editing, and deleting a
@@ -12,7 +12,7 @@
  *
  * @group action
  */
-class ConfigurationTest extends BrowserTestBase {
+class ConfigurationTest extends WebTestBase {
 
   /**
    * Modules to install.
diff --git a/core/modules/aggregator/src/FeedForm.php b/core/modules/aggregator/src/FeedForm.php
index 3447cc8..39ccdfa 100644
--- a/core/modules/aggregator/src/FeedForm.php
+++ b/core/modules/aggregator/src/FeedForm.php
@@ -16,16 +16,13 @@ class FeedForm extends ContentEntityForm {
    */
   public function save(array $form, FormStateInterface $form_state) {
     $feed = $this->entity;
-    $status = $feed->save();
-    $label = $feed->label();
-    $view_link = $feed->link($label, 'canonical');
-    if ($status == SAVED_UPDATED) {
-      drupal_set_message($this->t('The feed %feed has been updated.', array('%feed' => $view_link)));
+    if ($feed->save() == SAVED_UPDATED) {
+      drupal_set_message($this->t('The feed %feed has been updated.', array('%feed' => $feed->label())));
       $form_state->setRedirectUrl($feed->urlInfo('canonical'));
     }
     else {
       $this->logger('aggregator')->notice('Feed %feed added.', array('%feed' => $feed->label(), 'link' => $this->l($this->t('View'), new Url('aggregator.admin_overview'))));
-      drupal_set_message($this->t('The feed %feed has been added.', array('%feed' => $view_link)));
+      drupal_set_message($this->t('The feed %feed has been added.', array('%feed' => $feed->label())));
     }
   }
 
diff --git a/core/modules/aggregator/src/Plugin/migrate/source/AggregatorItem.php b/core/modules/aggregator/src/Plugin/migrate/source/AggregatorItem.php
index fc1c5c6..61f42f4 100644
--- a/core/modules/aggregator/src/Plugin/migrate/source/AggregatorItem.php
+++ b/core/modules/aggregator/src/Plugin/migrate/source/AggregatorItem.php
@@ -20,7 +20,7 @@ class AggregatorItem extends DrupalSqlBase {
   public function query() {
     return $this->select('aggregator_item', 'ai')
       ->fields('ai')
-      ->orderBy('ai.iid');
+      ->orderBy('iid');
   }
 
   /**
diff --git a/core/modules/aggregator/src/Tests/AggregatorRenderingTest.php b/core/modules/aggregator/src/Tests/AggregatorRenderingTest.php
index 888f1da..dff5c9f 100644
--- a/core/modules/aggregator/src/Tests/AggregatorRenderingTest.php
+++ b/core/modules/aggregator/src/Tests/AggregatorRenderingTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\aggregator\Tests;
 
 use Drupal\Component\Utility\SafeMarkup;
-use Drupal\views\Entity\View;
 
 /**
  * Tests display of aggregator items on the page.
@@ -91,7 +90,7 @@ public function testBlockLinks() {
   public function testFeedPage() {
     // Increase the number of items published in the rss.xml feed so we have
     // enough articles to test paging.
-    $view = View::load('frontpage');
+    $view = entity_load('view', 'frontpage');
     $display = &$view->getDisplay('feed_1');
     $display['display_options']['pager']['options']['items_per_page'] = 30;
     $view->save();
diff --git a/core/modules/aggregator/src/Tests/AggregatorTestBase.php b/core/modules/aggregator/src/Tests/AggregatorTestBase.php
index 15be144..1777fe5 100644
--- a/core/modules/aggregator/src/Tests/AggregatorTestBase.php
+++ b/core/modules/aggregator/src/Tests/AggregatorTestBase.php
@@ -61,11 +61,7 @@ protected function setUp() {
   public function createFeed($feed_url = NULL, array $edit = array()) {
     $edit = $this->getFeedEditArray($feed_url, $edit);
     $this->drupalPostForm('aggregator/sources/add', $edit, t('Save'));
-    $this->assertText(t('The feed @name has been added.', array('@name' => $edit['title[0][value]'])), format_string('The feed @name has been added.', array('@name' => $edit['title[0][value]'])));
-
-    // Verify that the creation message contains a link to a feed.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'aggregator/sources/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a feed');
+    $this->assertRaw(t('The feed %name has been added.', array('%name' => $edit['title[0][value]'])), format_string('The feed @name has been added.', array('@name' => $edit['title[0][value]'])));
 
     $fid = db_query("SELECT fid FROM {aggregator_feed} WHERE title = :title AND url = :url", array(':title' => $edit['title[0][value]'], ':url' => $edit['url[0][value]']))->fetchField();
     $this->assertTrue(!empty($fid), 'The feed found in database.');
diff --git a/core/modules/aggregator/src/Tests/UpdateFeedItemTest.php b/core/modules/aggregator/src/Tests/UpdateFeedItemTest.php
index ae78205..c1c3df9 100644
--- a/core/modules/aggregator/src/Tests/UpdateFeedItemTest.php
+++ b/core/modules/aggregator/src/Tests/UpdateFeedItemTest.php
@@ -35,11 +35,7 @@ public function testUpdateFeedItem() {
     $this->assertResponse(200);
 
     $this->drupalPostForm('aggregator/sources/add', $edit, t('Save'));
-    $this->assertText(t('The feed @name has been added.', array('@name' => $edit['title[0][value]'])), format_string('The feed @name has been added.', array('@name' => $edit['title[0][value]'])));
-
-    // Verify that the creation message contains a link to a feed.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'aggregator/sources/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a feed');
+    $this->assertRaw(t('The feed %name has been added.', array('%name' => $edit['title[0][value]'])), format_string('The feed @name has been added.', array('@name' => $edit['title[0][value]'])));
 
     $fid = db_query("SELECT fid FROM {aggregator_feed} WHERE url = :url", array(':url' => $edit['url[0][value]']))->fetchField();
     $feed = Feed::load($fid);
diff --git a/core/modules/aggregator/src/Tests/UpdateFeedTest.php b/core/modules/aggregator/src/Tests/UpdateFeedTest.php
index 8c797a5..6bfb0f1 100644
--- a/core/modules/aggregator/src/Tests/UpdateFeedTest.php
+++ b/core/modules/aggregator/src/Tests/UpdateFeedTest.php
@@ -24,11 +24,7 @@ public function testUpdateFeed() {
         $edit[$same_field] = $feed->{$same_field}->value;
       }
       $this->drupalPostForm('aggregator/sources/' . $feed->id() . '/configure', $edit, t('Save'));
-      $this->assertText(t('The feed @name has been updated.', array('@name' => $edit['title[0][value]'])), format_string('The feed %name has been updated.', array('%name' => $edit['title[0][value]'])));
-
-      // Verify that the creation message contains a link to a feed.
-      $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'aggregator/sources/'));
-      $this->assert(isset($view_link), 'The message area contains a link to a feed');
+      $this->assertRaw(t('The feed %name has been updated.', array('%name' => $edit['title[0][value]'])), format_string('The feed %name has been updated.', array('%name' => $edit['title[0][value]'])));
 
       // Check feed data.
       $this->assertUrl($feed->url('canonical', ['absolute' => TRUE]));
diff --git a/core/modules/aggregator/tests/src/Kernel/Migrate/MigrateAggregatorStubTest.php b/core/modules/aggregator/tests/src/Kernel/Migrate/MigrateAggregatorStubTest.php
index 6d96aa1..0d129c7 100644
--- a/core/modules/aggregator/tests/src/Kernel/Migrate/MigrateAggregatorStubTest.php
+++ b/core/modules/aggregator/tests/src/Kernel/Migrate/MigrateAggregatorStubTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\Tests\aggregator\Kernel\Migrate;
+namespace Drupal\tests\aggregator\Kernel\Migrate;
 
 use Drupal\migrate\MigrateException;
 use Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase;
diff --git a/core/modules/ban/tests/src/Functional/IpAddressBlockingTest.php b/core/modules/ban/src/Tests/IpAddressBlockingTest.php
similarity index 92%
rename from core/modules/ban/tests/src/Functional/IpAddressBlockingTest.php
rename to core/modules/ban/src/Tests/IpAddressBlockingTest.php
index 7b76cef..9fb9ff8 100644
--- a/core/modules/ban/tests/src/Functional/IpAddressBlockingTest.php
+++ b/core/modules/ban/src/Tests/IpAddressBlockingTest.php
@@ -1,15 +1,15 @@
 <?php
 
-namespace Drupal\Tests\ban\Functional;
+namespace Drupal\ban\Tests;
 
-use Drupal\Tests\BrowserTestBase;
+use Drupal\simpletest\WebTestBase;
 
 /**
  * Tests IP address banning.
  *
  * @group ban
  */
-class IpAddressBlockingTest extends BrowserTestBase {
+class IpAddressBlockingTest extends WebTestBase {
 
   /**
    * Modules to install.
@@ -29,7 +29,7 @@ function testIPAddressValidation() {
 
     // Ban a valid IP address.
     $edit = array();
-    $edit['ip'] = '1.2.3.3';
+    $edit['ip'] = '192.168.1.1';
     $this->drupalPostForm('admin/config/people/ban', $edit, t('Add'));
     $ip = db_query("SELECT iid from {ban_ip} WHERE ip = :ip", array(':ip' => $edit['ip']))->fetchField();
     $this->assertTrue($ip, 'IP address found in database.');
@@ -37,7 +37,7 @@ function testIPAddressValidation() {
 
     // Try to block an IP address that's already blocked.
     $edit = array();
-    $edit['ip'] = '1.2.3.3';
+    $edit['ip'] = '192.168.1.1';
     $this->drupalPostForm('admin/config/people/ban', $edit, t('Add'));
     $this->assertText(t('This IP address is already banned.'));
 
@@ -61,7 +61,7 @@ function testIPAddressValidation() {
 
     // Pass an IP address as a URL parameter and submit it.
     $submit_ip = '1.2.3.4';
-    $this->drupalPostForm('admin/config/people/ban/' . $submit_ip, array(), t('Add'));
+    $this->drupalPostForm('admin/config/people/ban/' . $submit_ip, NULL, t('Add'));
     $ip = db_query("SELECT iid from {ban_ip} WHERE ip = :ip", array(':ip' => $submit_ip))->fetchField();
     $this->assertTrue($ip, 'IP address found in database');
     $this->assertRaw(t('The IP address %ip has been banned.', array('%ip' => $submit_ip)), 'IP address was banned.');
diff --git a/core/modules/basic_auth/basic_auth.info.yml b/core/modules/basic_auth/basic_auth.info.yml
index 1cf687b..38bb7b2 100644
--- a/core/modules/basic_auth/basic_auth.info.yml
+++ b/core/modules/basic_auth/basic_auth.info.yml
@@ -4,5 +4,3 @@ description: 'Provides the HTTP Basic authentication provider'
 package: Web services
 version: VERSION
 core: 8.x
-dependencies:
-  - user
diff --git a/core/modules/big_pipe/js/big_pipe.js b/core/modules/big_pipe/js/big_pipe.js
index cdfd766..986cf47 100644
--- a/core/modules/big_pipe/js/big_pipe.js
+++ b/core/modules/big_pipe/js/big_pipe.js
@@ -89,10 +89,7 @@
     }, interval);
   }
 
-  // The frequency with which to check for newly arrived BigPipe placeholders.
-  // Hence 50 ms means we check 20 times per second. Setting this to 100 ms or
-  // more would cause the user to see content appear noticeably slower.
-  var interval = drupalSettings.bigPipeInterval || 50;
+  var interval = 200;
   // The internal ID to contain the watcher service.
   var timeoutID;
 
diff --git a/core/modules/big_pipe/src/Render/BigPipe.php b/core/modules/big_pipe/src/Render/BigPipe.php
index 5e3cc12..3e67737 100644
--- a/core/modules/big_pipe/src/Render/BigPipe.php
+++ b/core/modules/big_pipe/src/Render/BigPipe.php
@@ -226,13 +226,6 @@ protected function sendNoJsPlaceholders($html, $no_js_placeholders, AttachedAsse
     $preg_placeholder_strings = array_map($prepare_for_preg_split, array_keys($no_js_placeholders));
     $fragments = preg_split('/' . implode('|', $preg_placeholder_strings) . '/', $html, NULL, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
 
-    // Determine how many occurrences there are of each no-JS placeholder.
-    $placeholder_occurrences = array_count_values(array_intersect($fragments, array_keys($no_js_placeholders)));
-
-    // Set up a variable to store the content of placeholders that have multiple
-    // occurrences.
-    $multi_occurrence_placeholders_content = [];
-
     foreach ($fragments as $fragment) {
       // If the fragment isn't one of the no-JS placeholders, it is the HTML in
       // between placeholders and it must be printed & flushed immediately. The
@@ -243,15 +236,6 @@ protected function sendNoJsPlaceholders($html, $no_js_placeholders, AttachedAsse
         continue;
       }
 
-      // If there are multiple occurrences of this particular placeholder, and
-      // this is the second occurrence, we can skip all calculations and just
-      // send the same content.
-      if ($placeholder_occurrences[$fragment] > 1 && isset($multi_occurrence_placeholders_content[$fragment])) {
-        print $multi_occurrence_placeholders_content[$fragment];
-        flush();
-        continue;
-      }
-
       $placeholder = $fragment;
       assert('isset($no_js_placeholders[$placeholder])');
       $token = Crypt::randomBytesBase64(55);
@@ -326,13 +310,6 @@ protected function sendNoJsPlaceholders($html, $no_js_placeholders, AttachedAsse
       // they can be sent in ::sendPreBody().
       $cumulative_assets->setAlreadyLoadedLibraries(array_merge($cumulative_assets->getAlreadyLoadedLibraries(), $html_response->getAttachments()['library']));
       $cumulative_assets->setSettings($html_response->getAttachments()['drupalSettings']);
-
-      // If there are multiple occurrences of this particular placeholder, track
-      // the content that was sent, so we can skip all calculations for the next
-      // occurrence.
-      if ($placeholder_occurrences[$fragment] > 1) {
-        $multi_occurrence_placeholders_content[$fragment] = $html_response->getContent();
-      }
     }
   }
 
@@ -531,9 +508,7 @@ protected function renderPlaceholder($placeholder, array $placeholder_render_arr
    *
    * @return array
    *   Indexed array; the order in which the BigPipe placeholders must be sent.
-   *   Values are the BigPipe placeholder IDs. Note that only unique
-   *   placeholders are kept: if the same placeholder occurs multiple times, we
-   *   only keep the first occurrence.
+   *   Values are the BigPipe placeholder IDs.
    */
   protected function getPlaceholderOrder($html) {
     $fragments = explode('<div data-big-pipe-placeholder-id="', $html);
@@ -546,7 +521,7 @@ protected function getPlaceholderOrder($html) {
       $order[] = $placeholder;
     }
 
-    return array_unique($order);
+    return $order;
   }
 
 }
diff --git a/core/modules/big_pipe/src/Tests/BigPipeTest.php b/core/modules/big_pipe/src/Tests/BigPipeTest.php
index 370b815..f947c46 100644
--- a/core/modules/big_pipe/src/Tests/BigPipeTest.php
+++ b/core/modules/big_pipe/src/Tests/BigPipeTest.php
@@ -269,42 +269,6 @@ public function testBigPipeNoJs() {
     unlink(\Drupal::root() . '/' . $this->siteDirectory . '/error.log');
   }
 
-  /**
-   * Tests BigPipe with a multi-occurrence placeholder.
-   */
-  public function testBigPipeMultiOccurrencePlaceholders() {
-    $this->drupalLogin($this->rootUser);
-    $this->assertSessionCookieExists(TRUE);
-    $this->assertBigPipeNoJsCookieExists(FALSE);
-
-    // By not calling performMetaRefresh() here, we simulate JavaScript being
-    // enabled, because as far as the BigPipe module is concerned, JavaScript is
-    // enabled in the browser as long as the BigPipe no-JS cookie is *not* set.
-    // @see setUp()
-    // @see performMetaRefresh()
-
-    $this->drupalGet(Url::fromRoute('big_pipe_test_multi_occurrence'));
-    $big_pipe_placeholder_id = 'callback=Drupal%5CCore%5CRender%5CElement%5CStatusMessages%3A%3ArenderMessages&amp;args[0]&amp;token=a8c34b5e';
-    $expected_placeholder_replacement = '<script type="application/vnd.drupal-ajax" data-big-pipe-replacement-for-placeholder-with-id="' . $big_pipe_placeholder_id . '">';
-    $this->assertRaw('The count is 1.');
-    $this->assertNoRaw('The count is 2.');
-    $this->assertNoRaw('The count is 3.');
-    $raw_content = $this->getRawContent();
-    $this->assertTrue(substr_count($raw_content, $expected_placeholder_replacement) == 1, 'Only one placeholder replacement was found for the duplicate #lazy_builder arrays.');
-
-    // By calling performMetaRefresh() here, we simulate JavaScript being
-    // disabled, because as far as the BigPipe module is concerned, it is
-    // enabled in the browser when the BigPipe no-JS cookie is set.
-    // @see setUp()
-    // @see performMetaRefresh()
-    $this->performMetaRefresh();
-    $this->assertBigPipeNoJsCookieExists(TRUE);
-    $this->drupalGet(Url::fromRoute('big_pipe_test_multi_occurrence'));
-    $this->assertRaw('The count is 1.');
-    $this->assertNoRaw('The count is 2.');
-    $this->assertNoRaw('The count is 3.');
-  }
-
   protected function assertBigPipeResponseHeadersPresent() {
     $this->pass('Verifying BigPipe response headers…', 'Debug');
     $this->assertTrue(FALSE !== strpos($this->drupalGetHeader('Cache-Control'), 'private'), 'Cache-Control header set to "private".');
diff --git a/core/modules/big_pipe/tests/modules/big_pipe_test/big_pipe_test.routing.yml b/core/modules/big_pipe/tests/modules/big_pipe_test/big_pipe_test.routing.yml
index 7105060..4979406 100644
--- a/core/modules/big_pipe/tests/modules/big_pipe_test/big_pipe_test.routing.yml
+++ b/core/modules/big_pipe/tests/modules/big_pipe_test/big_pipe_test.routing.yml
@@ -15,12 +15,3 @@ no_big_pipe:
     _no_big_pipe: TRUE
   requirements:
     _access: 'TRUE'
-
-big_pipe_test_multi_occurrence:
-  path: '/big_pipe_test_multi_occurrence'
-  defaults:
-    _controller: '\Drupal\big_pipe_test\BigPipeTestController::multiOccurrence'
-    _title: 'BigPipe test multiple occurrences of the same placeholder'
-  requirements:
-    _access: 'TRUE'
-
diff --git a/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipeTestController.php b/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipeTestController.php
index 30594a5..450a464 100644
--- a/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipeTestController.php
+++ b/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipeTestController.php
@@ -53,30 +53,6 @@ public static function nope() {
   }
 
   /**
-   * A page with multiple occurrences of the same placeholder.
-   *
-   * @see \Drupal\big_pipe\Tests\BigPipeTest::testBigPipeMultipleOccurrencePlaceholders()
-   *
-   * @return array
-   */
-  public function multiOccurrence() {
-    return [
-      'item1' => [
-        '#lazy_builder' => [static::class . '::counter', []],
-        '#create_placeholder' => TRUE,
-      ],
-      'item2' => [
-        '#lazy_builder' => [static::class . '::counter', []],
-        '#create_placeholder' => TRUE,
-      ],
-      'item3' => [
-        '#lazy_builder' => [static::class . '::counter', []],
-        '#create_placeholder' => TRUE,
-      ],
-    ];
-  }
-
-  /**
    * #lazy_builder callback; builds <time> markup with current time.
    *
    * Note: does not actually use current time, that would complicate testing.
@@ -122,31 +98,4 @@ public static function responseException() {
     return ['#plain_text' => BigPipeTestSubscriber::CONTENT_TRIGGER_EXCEPTION];
   }
 
-  /**
-   * #lazy_builder callback; returns the current count.
-   *
-   * @see \Drupal\big_pipe\Tests\BigPipeTest::testBigPipeMultipleOccurrencePlaceholders()
-   *
-   * @return array
-   *   The render array.
-   */
-  public static function counter() {
-    // Lazy builders are not allowed to build their own state like this function
-    // does, but in this case we're intentionally doing that for testing
-    // purposes: so we can ensure that each lazy builder is only ever called
-    // once with the same parameters.
-    static $count;
-
-    if (!isset($count)) {
-      $count = 0;
-    }
-
-    $count++;
-
-    return [
-      '#markup' => BigPipeMarkup::create("<p>The count is $count.</p>"),
-      '#cache' => ['max-age' => 0],
-    ];
-  }
-
 }
diff --git a/core/modules/big_pipe/tests/src/FunctionalJavascript/BigPipeRegressionTest.php b/core/modules/big_pipe/tests/src/FunctionalJavascript/BigPipeRegressionTest.php
deleted file mode 100644
index ab28073..0000000
--- a/core/modules/big_pipe/tests/src/FunctionalJavascript/BigPipeRegressionTest.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-
-namespace Drupal\Tests\big_pipe\FunctionalJavascript;
-
-use Drupal\comment\CommentInterface;
-use Drupal\comment\Entity\Comment;
-use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface;
-use Drupal\comment\Tests\CommentTestTrait;
-use Drupal\editor\Entity\Editor;
-use Drupal\filter\Entity\FilterFormat;
-use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
-use Drupal\simpletest\ContentTypeCreationTrait;
-use Drupal\simpletest\NodeCreationTrait;
-
-/**
- * BigPipe regression tests.
- *
- * @group big_pipe
- */
-class BigPipeRegressionTest extends JavascriptTestBase {
-
-  use CommentTestTrait;
-  use ContentTypeCreationTrait;
-  use NodeCreationTrait;
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = [
-    'node',
-    'comment',
-    'big_pipe',
-    'history',
-    'editor',
-    'ckeditor',
-    'filter',
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setUp() {
-    parent::setUp();
-
-    // Use the big_pipe_test_theme theme.
-    $this->container->get('theme_installer')->install(['big_pipe_test_theme']);
-    $this->container->get('config.factory')->getEditable('system.theme')->set('default', 'big_pipe_test_theme')->save();
-  }
-
-  /**
-   * Ensure comment form works with history and big_pipe modules.
-   *
-   * @see https://www.drupal.org/node/2698811
-   */
-  public function testCommentForm_2698811() {
-    // Ensure an `article` node type exists.
-    $this->createContentType(['type' => 'article']);
-    $this->addDefaultCommentField('node', 'article');
-
-    // Enable CKEditor.
-    $format = $this->randomMachineName();
-    FilterFormat::create([
-      'format' => $format,
-      'name' => $this->randomString(),
-      'weight' => 1,
-      'filters' => [],
-    ])->save();
-    $settings['toolbar']['rows'] = [
-      [
-        [
-          'name' => 'Links',
-          'items' => [
-            'DrupalLink',
-            'DrupalUnlink',
-          ],
-        ],
-      ],
-    ];
-    $editor = Editor::create([
-      'format' => $format,
-      'editor' => 'ckeditor',
-    ]);
-    $editor->setSettings($settings);
-    $editor->save();
-
-    $admin_user = $this->drupalCreateUser([
-      'access comments',
-      'post comments',
-      'use text format ' . $format,
-    ]);
-    $this->drupalLogin($admin_user);
-
-    $node = $this->createNode([
-      'type' => 'article',
-      'comment' => CommentItemInterface::OPEN,
-    ]);
-    // Create some comments.
-    foreach (range(1, 5) as $i) {
-      $comment = Comment::create([
-        'status' => CommentInterface::PUBLISHED,
-        'field_name' => 'comment',
-        'entity_type' => 'node',
-        'entity_id' => $node->id(),
-      ]);
-      $comment->save();
-    }
-    $this->drupalGet($node->toUrl()->toString());
-    // Confirm that CKEditor loaded.
-    $javascript = <<<JS
-    (function(){
-      return Object.keys(CKEDITOR.instances).length > 0;
-    }());
-JS;
-    $this->assertJsCondition($javascript);
-  }
-
-}
diff --git a/core/modules/big_pipe/tests/themes/big_pipe_test_theme/big_pipe_test_theme.info.yml b/core/modules/big_pipe/tests/themes/big_pipe_test_theme/big_pipe_test_theme.info.yml
deleted file mode 100644
index 2b3c842..0000000
--- a/core/modules/big_pipe/tests/themes/big_pipe_test_theme/big_pipe_test_theme.info.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-name: 'BigPipe test theme'
-type: theme
-description: 'Theme for testing BigPipe edge cases.'
-version: VERSION
-core: 8.x
diff --git a/core/modules/big_pipe/tests/themes/big_pipe_test_theme/templates/field--comment.html.twig b/core/modules/big_pipe/tests/themes/big_pipe_test_theme/templates/field--comment.html.twig
deleted file mode 100644
index a26fa78..0000000
--- a/core/modules/big_pipe/tests/themes/big_pipe_test_theme/templates/field--comment.html.twig
+++ /dev/null
@@ -1,13 +0,0 @@
-{#
-/**
- * @file
- * Test that comments still work with the form above instead of below.
- *
- * @see \Drupal\Tests\big_pipe\FunctionalJavascript\BigPipeRegressionTest::testCommentForm_2698811()
- */
-#}
-<section{{ attributes }}>
-  {{ comment_form }}
-
-  {{ comments }}
-</section>
diff --git a/core/modules/block/block.module b/core/modules/block/block.module
index 2f96a90..0b6ca26 100644
--- a/core/modules/block/block.module
+++ b/core/modules/block/block.module
@@ -109,12 +109,12 @@ function block_themes_installed($theme_list) {
  */
 function block_theme_initialize($theme) {
   // Initialize theme's blocks if none already registered.
-  $has_blocks = \Drupal::entityTypeManager()->getStorage('block')->loadByProperties(array('theme' => $theme));
+  $has_blocks = entity_load_multiple_by_properties('block', array('theme' => $theme));
   if (!$has_blocks) {
     $default_theme = \Drupal::config('system.theme')->get('default');
     // Apply only to new theme's visible regions.
     $regions = system_region_list($theme, REGIONS_VISIBLE);
-    $default_theme_blocks = \Drupal::entityTypeManager()->getStorage('block')->loadByProperties(array('theme' => $default_theme));
+    $default_theme_blocks = entity_load_multiple_by_properties('block', array('theme' => $default_theme));
     foreach ($default_theme_blocks as $default_theme_block_id => $default_theme_block) {
       if (strpos($default_theme_block_id, $default_theme . '_') === 0) {
         $id = str_replace($default_theme, $theme, $default_theme_block_id);
@@ -141,7 +141,7 @@ function block_rebuild() {
     if ($data->status) {
       $regions = system_region_list($theme);
       /** @var \Drupal\block\BlockInterface[] $blocks */
-      $blocks = \Drupal::entityTypeManager()->getStorage('block')->loadByProperties(['theme' => $theme]);
+      $blocks = entity_load_multiple_by_properties('block', ['theme' => $theme]);
       foreach ($blocks as $block_id => $block) {
         // Disable blocks in invalid regions.
         $region = $block->getRegion();
diff --git a/core/modules/block/migration_templates/d7_block.yml b/core/modules/block/migration_templates/d7_block.yml
index ff56111..32e8f5d 100644
--- a/core/modules/block/migration_templates/d7_block.yml
+++ b/core/modules/block/migration_templates/d7_block.yml
@@ -19,9 +19,6 @@ process:
         - module
         - delta
       delimiter: _
-    -
-      plugin: machine_name
-      field: id
   plugin:
     -
       plugin: static_map
diff --git a/core/modules/block/src/BlockViewBuilder.php b/core/modules/block/src/BlockViewBuilder.php
index d3f501b..3996282 100644
--- a/core/modules/block/src/BlockViewBuilder.php
+++ b/core/modules/block/src/BlockViewBuilder.php
@@ -14,7 +14,6 @@
 use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\Plugin\ContextAwarePluginInterface;
 use Drupal\Core\Render\Element;
-use Drupal\block\Entity\Block;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -187,7 +186,7 @@ protected static function buildPreRenderableBlock($entity, ModuleHandlerInterfac
    *   A render array with a #pre_render callback to render the block.
    */
   public static function lazyBuilder($entity_id, $view_mode) {
-    return static::buildPreRenderableBlock(Block::load($entity_id), \Drupal::service('module_handler'));
+    return static::buildPreRenderableBlock(entity_load('block', $entity_id), \Drupal::service('module_handler'));
   }
 
   /**
diff --git a/core/modules/block/src/Controller/BlockLibraryController.php b/core/modules/block/src/Controller/BlockLibraryController.php
index 69d18f1..eb176d8 100644
--- a/core/modules/block/src/Controller/BlockLibraryController.php
+++ b/core/modules/block/src/Controller/BlockLibraryController.php
@@ -8,7 +8,6 @@
 use Drupal\Core\EventSubscriber\MainContentViewSubscriber;
 use Drupal\Core\Menu\LocalActionManagerInterface;
 use Drupal\Core\Plugin\Context\LazyContextRepository;
-use Drupal\Core\Routing\RedirectDestinationInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\Core\Url;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -48,13 +47,6 @@ class BlockLibraryController extends ControllerBase {
   protected $localActionManager;
 
   /**
-   * The redirect destination.
-   *
-   * @var \Drupal\Core\Routing\RedirectDestinationInterface
-   */
-  protected $redirectDestination;
-
-  /**
    * Constructs a BlockLibraryController object.
    *
    * @param \Drupal\Core\Block\BlockManagerInterface $block_manager
@@ -65,15 +57,12 @@ class BlockLibraryController extends ControllerBase {
    *   The current route match.
    * @param \Drupal\Core\Menu\LocalActionManagerInterface $local_action_manager
    *   The local action manager.
-   * @param \Drupal\Core\Routing\RedirectDestinationInterface $redirect_destination
-   *   The redirect destination.
    */
-  public function __construct(BlockManagerInterface $block_manager, LazyContextRepository $context_repository, RouteMatchInterface $route_match, LocalActionManagerInterface $local_action_manager, RedirectDestinationInterface $redirect_destination) {
+  public function __construct(BlockManagerInterface $block_manager, LazyContextRepository $context_repository, RouteMatchInterface $route_match, LocalActionManagerInterface $local_action_manager) {
     $this->blockManager = $block_manager;
     $this->routeMatch = $route_match;
     $this->localActionManager = $local_action_manager;
     $this->contextRepository = $context_repository;
-    $this->redirectDestination = $redirect_destination;
   }
 
   /**
@@ -84,8 +73,7 @@ public static function create(ContainerInterface $container) {
       $container->get('plugin.manager.block'),
       $container->get('context.repository'),
       $container->get('current_route_match'),
-      $container->get('plugin.manager.menu.local_action'),
-      $container->get('redirect.destination')
+      $container->get('plugin.manager.menu.local_action')
     );
   }
 
@@ -144,10 +132,6 @@ public function listBlocks(Request $request, $theme) {
       if ($region) {
         $links['add']['query']['region'] = $region;
       }
-      $destination = $this->redirectDestination->get();
-      if ($destination) {
-        $links['add']['query']['destination'] = $destination;
-      }
       $row['operations']['data'] = [
         '#type' => 'operations',
         '#links' => $links,
diff --git a/core/modules/block/src/Entity/Block.php b/core/modules/block/src/Entity/Block.php
index 9cbd30b..9c6306f 100644
--- a/core/modules/block/src/Entity/Block.php
+++ b/core/modules/block/src/Entity/Block.php
@@ -291,6 +291,7 @@ public function getVisibilityCondition($instance_id) {
    *   The condition plugin manager.
    */
   protected function conditionPluginManager() {
+    $this->conditionPluginManager;
     if (!isset($this->conditionPluginManager)) {
       $this->conditionPluginManager = \Drupal::service('plugin.manager.condition');
     }
diff --git a/core/modules/block/src/Plugin/migrate/source/Block.php b/core/modules/block/src/Plugin/migrate/source/Block.php
index b691283..87414a0 100644
--- a/core/modules/block/src/Plugin/migrate/source/Block.php
+++ b/core/modules/block/src/Plugin/migrate/source/Block.php
@@ -44,13 +44,6 @@ class Block extends DrupalSqlBase {
   protected $blockRoleTable;
 
   /**
-   * Table listing user roles.
-   *
-   * @var string
-   */
-  protected $userRoleTable;
-
-  /**
    * {@inheritdoc}
    */
   public function query() {
@@ -62,9 +55,6 @@ public function query() {
       $this->blockTable = 'blocks';
       $this->blockRoleTable = 'blocks_roles';
     }
-    // Drupal 6 & 7 both use the same name for the user roles table.
-    $this->userRoleTable = 'role';
-
     return $this->select($this->blockTable, 'b')->fields('b');
   }
 
@@ -116,12 +106,11 @@ public function prepareRow(Row $row) {
     $module = $row->getSourceProperty('module');
     $delta = $row->getSourceProperty('delta');
 
-    $query = $this->select($this->blockRoleTable, 'br')
+    $roles = $this->select($this->blockRoleTable, 'br')
       ->fields('br', array('rid'))
       ->condition('module', $module)
-      ->condition('delta', $delta);
-    $query->join($this->userRoleTable, 'ur', 'br.rid = ur.rid');
-    $roles = $query->execute()
+      ->condition('delta', $delta)
+      ->execute()
       ->fetchCol();
     $row->setSourceProperty('roles', $roles);
 
diff --git a/core/modules/block/src/Tests/BlockTest.php b/core/modules/block/src/Tests/BlockTest.php
index 039aa64..40db579 100644
--- a/core/modules/block/src/Tests/BlockTest.php
+++ b/core/modules/block/src/Tests/BlockTest.php
@@ -4,7 +4,6 @@
 
 use Drupal\Component\Utility\Html;
 use Drupal\block\Entity\Block;
-use Drupal\Core\Url;
 use Drupal\user\Entity\Role;
 use Drupal\user\RoleInterface;
 
@@ -129,49 +128,6 @@ function testBlockVisibilityListedEmpty() {
   }
 
   /**
-   * Tests adding a block from the library page with a destination query string.
-   */
-  public function testAddBlockFromLibrary() {
-    $default_theme = $this->config('system.theme')->get('default');
-    $help_url = Url::fromRoute('help.page', ['name' => 'block']);
-    // Set up the request so we land on the block help page after creation.
-    $options = [
-      'query' => [
-        'region' => 'sidebar_first',
-        'destination' => $help_url->toString(),
-      ],
-    ];
-    $this->drupalGet(Url::fromRoute('block.admin_library', ['theme' => $default_theme], $options));
-
-    $block_name = 'system_powered_by_block';
-    $add_url = Url::fromRoute('block.admin_add', ['plugin_id' => $block_name, 'theme' => $default_theme]);
-    $links = $this->xpath('//a[contains(@href, :href)]', [':href' => $add_url->toString()]);
-    $this->assertEqual(1, count($links), 'Found one matching link');
-
-    list($path, $query_string) = explode('?', $links[0]['href'], 2);
-    parse_str($query_string, $query_parts);
-    $this->assertEqual(t('Place block'), (string) $links[0]);
-    $this->assertEqual($help_url->toString(), $query_parts['destination'], 'Expected destination query string is in href');
-
-    // Create a random title for the block.
-    $title = $this->randomMachineName(8);
-    $block_id = strtolower($this->randomMachineName(8));
-    $edit = [
-      'id' => $block_id,
-      'settings[label]' => $title,
-    ];
-    // Create the block using the link parsed from the library page.
-    $this->drupalPostForm($this->getAbsoluteUrl($links[0]['href']), $edit, t('Save block'));
-    // Verify that we are redirected according to the original request.
-    $this->assertUrl($help_url);
-
-    // Ensure that the block was created.
-    /** @var \Drupal\block\BlockInterface $block */
-    $block = Block::load($block_id);
-    $this->assertEqual($title, $block->label(), 'Found the block with expected title.');
-  }
-
-  /**
    * Test configuring and moving a module-define block to specific regions.
    */
   function testBlock() {
diff --git a/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockTest.php b/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockTest.php
index 571c210..9c3ff5f 100644
--- a/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockTest.php
+++ b/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockTest.php
@@ -108,7 +108,7 @@ public function testBlockMigration() {
     $this->assertEntity('bartik_system_main', 'system_main_block', [], '', 'content', 'bartik', 0, '', '0');
     $this->assertEntity('bartik_search_form', 'search_form_block', [], '', 'sidebar_first', 'bartik', -1, '', '0');
     $this->assertEntity('bartik_user_login', 'user_login_block', [], '', 'sidebar_first', 'bartik', 0, '', '0');
-    $this->assertEntity('bartik_system_powered_by', 'system_powered_by_block', [], '', 'footer', 'bartik', 10, '', '0');
+    $this->assertEntity('bartik_system_powered-by', 'system_powered_by_block', [], '', 'footer', 'bartik', 10, '', '0');
     $this->assertEntity('seven_system_main', 'system_main_block', [], '', 'content', 'seven', 0, '', '0');
     $this->assertEntity('seven_user_login', 'user_login_block', [], '', 'content', 'seven', 10, '', '0');
 
diff --git a/core/modules/block/tests/src/Unit/Plugin/migrate/source/BlockTest.php b/core/modules/block/tests/src/Unit/Plugin/migrate/source/BlockTest.php
index 4a60bd1..287222c 100644
--- a/core/modules/block/tests/src/Unit/Plugin/migrate/source/BlockTest.php
+++ b/core/modules/block/tests/src/Unit/Plugin/migrate/source/BlockTest.php
@@ -37,39 +37,6 @@ class BlockTest extends MigrateSqlSourceTestCase {
       'pages' => '',
       'title' => 'Test Title 01',
       'cache' => -1,
-      'roles' => [2]
-    ),
-    array(
-      'bid' => 2,
-      'module' => 'block',
-      'delta' => '2',
-      'theme' => 'garland',
-      'status' => 1,
-      'weight' => 5,
-      'region' => 'right',
-      'visibility' => 0,
-      'pages' => '<front>',
-      'title' => 'Test Title 02',
-      'cache' => -1,
-      'roles' => [2]
-    ),
-  );
-  /**
-   * Sample block table.
-   */
-  protected $expectedBlocks = array(
-    array(
-      'bid' => 1,
-      'module' => 'block',
-      'delta' => '1',
-      'theme' => 'garland',
-      'status' => 1,
-      'weight' => 0,
-      'region' => 'left',
-      'visibility' => 0,
-      'pages' => '',
-      'title' => 'Test Title 01',
-      'cache' => -1,
     ),
     array(
       'bid' => 2,
@@ -95,35 +62,14 @@ class BlockTest extends MigrateSqlSourceTestCase {
       'delta' => 1,
       'rid' => 2,
     ),
-    array(
-      'module' => 'block',
-      'delta' => 2,
-      'rid' => 2,
-    ),
-    array(
-      'module' => 'block',
-      'delta' => 2,
-      'rid' => 100,
-    ),
-  );
-
-  /**
-   * Sample role table.
-   */
-  protected $expectedRole = array(
-    array(
-      'rid' => 2,
-      'name' => 'authenticated user',
-    ),
   );
 
   /**
    * Prepopulate database contents.
    */
   protected function setUp() {
-    $this->databaseContents['blocks'] = $this->expectedBlocks;
+    $this->databaseContents['blocks'] = $this->expectedResults;
     $this->databaseContents['blocks_roles'] = $this->expectedBlocksRoles;
-    $this->databaseContents['role'] = $this->expectedRole;
     $this->databaseContents['system'] = array(
       array(
         'filename' => 'modules/system/system.module',
diff --git a/core/modules/block_content/block_content.info.yml b/core/modules/block_content/block_content.info.yml
index b9ae564..d32bda7 100644
--- a/core/modules/block_content/block_content.info.yml
+++ b/core/modules/block_content/block_content.info.yml
@@ -7,5 +7,4 @@ core: 8.x
 dependencies:
   - block
   - text
-  - user
 configure: entity.block_content.collection
diff --git a/core/modules/block_content/block_content.install b/core/modules/block_content/block_content.install
index 4279cde..658eab1 100644
--- a/core/modules/block_content/block_content.install
+++ b/core/modules/block_content/block_content.install
@@ -39,25 +39,3 @@ function block_content_update_8002() {
   // are stable.
   // @see https://www.drupal.org/node/2569469
 }
-
-/**
- * Add 'revision_created' and 'revision_user' fields to 'block_content' entities.
- */
-function block_content_update_8003() {
-  $revision_created = BaseFieldDefinition::create('created')
-    ->setLabel(t('Revision create time'))
-    ->setDescription(t('The time that the current revision was created.'))
-    ->setRevisionable(TRUE);
-
-  \Drupal::entityDefinitionUpdateManager()
-    ->installFieldStorageDefinition('revision_created', 'block_content', 'block_content', $revision_created);
-
-  $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);
-
-  \Drupal::entityDefinitionUpdateManager()
-    ->installFieldStorageDefinition('revision_user', 'block_content', 'block_content', $revision_user);
-}
diff --git a/core/modules/block_content/config/optional/views.view.block_content.yml b/core/modules/block_content/config/optional/views.view.block_content.yml
index 20fe0bf..fd99c60 100644
--- a/core/modules/block_content/config/optional/views.view.block_content.yml
+++ b/core/modules/block_content/config/optional/views.view.block_content.yml
@@ -392,7 +392,7 @@ display:
           plugin_id: string
         type:
           id: type
-          table: block_content_field_data
+          table: block_content
           field: type
           relationship: none
           group_type: group
diff --git a/core/modules/block_content/migration_templates/d6_custom_block.yml b/core/modules/block_content/migration_templates/d6_custom_block.yml
index 8394c64..be99072 100644
--- a/core/modules/block_content/migration_templates/d6_custom_block.yml
+++ b/core/modules/block_content/migration_templates/d6_custom_block.yml
@@ -4,8 +4,11 @@ migration_tags:
   - Drupal 6
 source:
   plugin: d6_box
+  constants:
+    type: basic
 process:
   id: bid
+  type: 'constants/type'
   info: info
   'body/format':
     plugin: migration
@@ -14,7 +17,6 @@ process:
   'body/value': body
 destination:
   plugin: entity:block_content
-  default_bundle: basic
   no_stub: true
 migration_dependencies:
   required:
diff --git a/core/modules/block_content/migration_templates/d7_custom_block.yml b/core/modules/block_content/migration_templates/d7_custom_block.yml
index 42021fb..f63ca93 100644
--- a/core/modules/block_content/migration_templates/d7_custom_block.yml
+++ b/core/modules/block_content/migration_templates/d7_custom_block.yml
@@ -4,8 +4,11 @@ migration_tags:
   - Drupal 7
 source:
   plugin: d7_block_custom
+  constants:
+    type: basic
 process:
   id: bid
+  type: 'constants/type'
   info: info
   'body/format':
     plugin: migration
@@ -14,7 +17,6 @@ process:
   'body/value': body
 destination:
   plugin: entity:block_content
-  default_bundle: basic
   no_stub: true
 migration_dependencies:
   required:
diff --git a/core/modules/block_content/src/BlockContentForm.php b/core/modules/block_content/src/BlockContentForm.php
index 8815f56..2410c7c 100644
--- a/core/modules/block_content/src/BlockContentForm.php
+++ b/core/modules/block_content/src/BlockContentForm.php
@@ -88,7 +88,7 @@ protected function prepareEntity() {
     // Set up default values, if required.
     $block_type = $this->blockContentTypeStorage->load($block->bundle());
     if (!$block->isNew()) {
-      $block->setRevisionLogMessage(NULL);
+      $block->setRevisionLog(NULL);
     }
     // Always use the default revision setting.
     $block->setNewRevision($block_type->shouldCreateNewRevision());
@@ -170,9 +170,6 @@ public function save(array $form, FormStateInterface $form_state) {
     // Save as a new revision if requested to do so.
     if (!$form_state->isValueEmpty('revision')) {
       $block->setNewRevision();
-      // If a new revision is created, save the current user as revision author.
-      $block->setRevisionCreationTime(REQUEST_TIME);
-      $block->setRevisionUserId(\Drupal::currentUser()->id());
     }
 
     $insert = $block->isNew();
diff --git a/core/modules/block_content/src/BlockContentInterface.php b/core/modules/block_content/src/BlockContentInterface.php
index 130cae1..4eefe28 100644
--- a/core/modules/block_content/src/BlockContentInterface.php
+++ b/core/modules/block_content/src/BlockContentInterface.php
@@ -4,21 +4,17 @@
 
 use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Entity\EntityChangedInterface;
-use Drupal\Core\Entity\RevisionLogInterface;
 
 /**
  * Provides an interface defining a custom block entity.
  */
-interface BlockContentInterface extends ContentEntityInterface, EntityChangedInterface, RevisionLogInterface {
+interface BlockContentInterface extends ContentEntityInterface, EntityChangedInterface {
 
   /**
    * Returns the block revision log message.
    *
    * @return string
    *   The revision log message.
-   *
-   * @deprecated in Drupal 8.2.0, will be removed before Drupal 9.0.0. Use
-   *   \Drupal\Core\Entity\RevisionLogInterface::getRevisionLogMessage() instead.
    */
   public function getRevisionLog();
 
@@ -41,9 +37,6 @@ public function setInfo($info);
    *
    * @return \Drupal\block_content\BlockContentInterface
    *   The class instance that this method is called on.
-   *
-   * @deprecated in Drupal 8.2.0, will be removed before Drupal 9.0.0. Use
-   *   \Drupal\Core\Entity\RevisionLogInterface::setRevisionLogMessage() instead.
    */
   public function setRevisionLog($revision_log);
 
diff --git a/core/modules/block_content/src/Entity/BlockContent.php b/core/modules/block_content/src/Entity/BlockContent.php
index 9e0531e..e970e07 100644
--- a/core/modules/block_content/src/Entity/BlockContent.php
+++ b/core/modules/block_content/src/Entity/BlockContent.php
@@ -8,7 +8,6 @@
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Field\BaseFieldDefinition;
 use Drupal\block_content\BlockContentInterface;
-use Drupal\user\UserInterface;
 
 /**
  * Defines the custom block entity class.
@@ -114,7 +113,7 @@ public function postSave(EntityStorageInterface $storage, $update = TRUE) {
    * {@inheritdoc}
    */
   public function getInstances() {
-    return \Drupal::entityTypeManager()->getStorage('block')->loadByProperties(array('plugin' => 'block_content:' . $this->uuid()));
+    return entity_load_multiple_by_properties('block', array('plugin' => 'block_content:' . $this->uuid()));
   }
 
   /**
@@ -127,7 +126,7 @@ public function preSaveRevision(EntityStorageInterface $storage, \stdClass $reco
       // If we are updating an existing block_content without adding a new
       // revision and the user did not supply a revision log, keep the existing
       // one.
-      $record->revision_log = $this->original->getRevisionLogMessage();
+      $record->revision_log = $this->original->getRevisionLog();
     }
   }
 
@@ -184,17 +183,6 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
       ->setTranslatable(TRUE)
       ->setRevisionable(TRUE);
 
-    $fields['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')
-      ->setLabel(t('Revision user'))
-      ->setDescription(t('The user ID of the author of the current revision.'))
-      ->setSetting('target_type', 'user')
-      ->setRevisionable(TRUE);
-
     $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.'))
@@ -209,7 +197,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
    * {@inheritdoc}
    */
   public function getRevisionLog() {
-    return $this->getRevisionLogMessage();
+    return $this->get('revision_log')->value;
   }
 
   /**
@@ -224,63 +212,7 @@ public function setInfo($info) {
    * {@inheritdoc}
    */
   public function setRevisionLog($revision_log) {
-    return $this->setRevisionLogMessage($revision_log);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getRevisionCreationTime() {
-    return $this->get('revision_created')->value;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setRevisionCreationTime($timestamp) {
-    $this->set('revision_created', $timestamp);
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getRevisionUser() {
-    return $this->get('revision_user')->entity;
-  }
-
-  public function setRevisionUser(UserInterface $account) {
-    $this->set('revision_user', $account);
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getRevisionUserId() {
-    return $this->get('revision_user')->entity->id();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setRevisionUserId($user_id) {
-    $this->set('revision_user', $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);
+    $this->set('revision_log', $revision_log);
     return $this;
   }
 
diff --git a/core/modules/block_content/src/Plugin/migrate/source/d6/Box.php b/core/modules/block_content/src/Plugin/migrate/source/d6/Box.php
index 4135233..e98502b 100644
--- a/core/modules/block_content/src/Plugin/migrate/source/d6/Box.php
+++ b/core/modules/block_content/src/Plugin/migrate/source/d6/Box.php
@@ -19,7 +19,7 @@ class Box extends DrupalSqlBase {
   public function query() {
     $query = $this->select('boxes', 'b')
       ->fields('b', array('bid', 'body', 'info', 'format'));
-    $query->orderBy('b.bid');
+    $query->orderBy('bid');
 
     return $query;
   }
diff --git a/core/modules/block_content/src/Tests/BlockContentListViewsTest.php b/core/modules/block_content/src/Tests/BlockContentListViewsTest.php
index de0ff3b..326f82d 100644
--- a/core/modules/block_content/src/Tests/BlockContentListViewsTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentListViewsTest.php
@@ -28,10 +28,6 @@ public function testListing() {
     // Test for the page title.
     $this->assertTitle(t('Custom block library') . ' | Drupal');
 
-    // Test for the exposed filters.
-    $this->assertFieldByName('info');
-    $this->assertFieldByName('type');
-
     // Test for the table.
     $element = $this->xpath('//div[@class="layout-content"]//table');
     $this->assertTrue($element, 'Views table found.');
diff --git a/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php b/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php
index cc08654..720443d 100644
--- a/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentRevisionsTest.php
@@ -3,8 +3,6 @@
 namespace Drupal\block_content\Tests;
 
 use Drupal\block_content\Entity\BlockContent;
-use Drupal\user\Entity\User;
-use Drupal\user\UserInterface;
 
 /**
  * Create a block with revisions.
@@ -31,9 +29,6 @@ class BlockContentRevisionsTest extends BlockContentTestBase {
   protected function setUp() {
     parent::setUp();
 
-    /** @var UserInterface $user */
-    $user = User::load(1);
-
     // Create initial block.
     $block = $this->createBlockContent('initial');
 
@@ -48,10 +43,8 @@ protected function setUp() {
     $revision_count = 3;
     for ($i = 0; $i < $revision_count; $i++) {
       $block->setNewRevision(TRUE);
-      $block->setRevisionLogMessage($this->randomMachineName(32));
-      $block->setRevisionUser($this->adminUser);
-      $block->setRevisionCreationTime(REQUEST_TIME);
-      $logs[] = $block->getRevisionLogMessage();
+      $block->setRevisionLog($this->randomMachineName(32));
+      $logs[] = $block->getRevisionLog();
       $block->save();
       $blocks[] = $block->getRevisionId();
     }
@@ -69,17 +62,11 @@ public function testRevisions() {
 
     foreach ($blocks as $delta => $revision_id) {
       // Confirm the correct revision text appears.
-      /** @var \Drupal\block_content\BlockContentInterface  $loaded */
       $loaded = entity_revision_load('block_content', $revision_id);
       // Verify revision log is the same.
-      $this->assertEqual($loaded->getRevisionLogMessage(), $logs[$delta], format_string('Correct log message found for revision @revision', array(
+      $this->assertEqual($loaded->getRevisionLog(), $logs[$delta], format_string('Correct log message found for revision @revision', array(
         '@revision' => $loaded->getRevisionId(),
       )));
-      if ($delta > 0) {
-        $this->assertTrue($loaded->getRevisionUser() instanceof UserInterface, 'Revision User found.');
-        $this->assertTrue(is_numeric($loaded->getRevisionUserId()), 'Revision User ID found.');
-        $this->assertTrue(is_numeric($loaded->getRevisionCreationTime()), 'Revision time found.');
-      }
     }
 
     // Confirm that this is the default revision.
diff --git a/core/modules/block_content/src/Tests/BlockContentTestBase.php b/core/modules/block_content/src/Tests/BlockContentTestBase.php
index 16df855..4021032 100644
--- a/core/modules/block_content/src/Tests/BlockContentTestBase.php
+++ b/core/modules/block_content/src/Tests/BlockContentTestBase.php
@@ -19,7 +19,7 @@
   /**
    * Admin user
    *
-   * @var \Drupal\user\UserInterface
+   * @var object
    */
   protected $adminUser;
 
diff --git a/core/modules/block_content/src/Tests/BlockContentUpdateEntityFields.php b/core/modules/block_content/src/Tests/BlockContentUpdateEntityFields.php
deleted file mode 100644
index ab59eba..0000000
--- a/core/modules/block_content/src/Tests/BlockContentUpdateEntityFields.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Drupal\block_content\Tests;
-
-use Drupal\Core\Field\BaseFieldDefinition;
-use Drupal\system\Tests\Update\UpdatePathTestBase;
-
-/**
- * Tests adding revision_user and revision_created fields.
- *
- * @group Update
- */
-class BlockContentUpdateEntityFields extends UpdatePathTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz',
-    ];
-  }
-
-  /**
-   * Tests that email token in status_blocked of user.mail is updated.
-   */
-  public function testAddingFields() {
-    $this->runUpdates();
-
-    $post_revision_created = \Drupal::entityDefinitionUpdateManager()->getFieldStorageDefinition('revision_created', 'block_content');
-    $post_revision_user = \Drupal::entityDefinitionUpdateManager()->getFieldStorageDefinition('revision_user', 'block_content');
-    $this->assertTrue($post_revision_created instanceof BaseFieldDefinition, "Revision created field found");
-    $this->assertTrue($post_revision_user instanceof BaseFieldDefinition, "Revision user field found");
-
-    $this->assertEqual('created', $post_revision_created->getType(), "Field is type created");
-    $this->assertEqual('entity_reference', $post_revision_user->getType(), "Field is type entity_reference");
-  }
-
-}
diff --git a/core/modules/block_place/block_place.info.yml b/core/modules/block_place/block_place.info.yml
deleted file mode 100644
index 8ae7226..0000000
--- a/core/modules/block_place/block_place.info.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: Place Blocks
-type: module
-description: 'Allow administrators to place blocks from any Drupal page'
-package: Core (Experimental)
-version: VERSION
-core: 8.x
-dependencies:
-  - block
diff --git a/core/modules/block_place/block_place.libraries.yml b/core/modules/block_place/block_place.libraries.yml
deleted file mode 100644
index 0671252..0000000
--- a/core/modules/block_place/block_place.libraries.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-drupal.block_place:
-  version: VERSION
-  css:
-    theme:
-      css/block-place.css: {}
-
-drupal.block_place.icons:
-  version: VERSION
-  css:
-    theme:
-      css/block-place.icons.theme.css: {}
diff --git a/core/modules/block_place/block_place.module b/core/modules/block_place/block_place.module
deleted file mode 100644
index e3151fd..0000000
--- a/core/modules/block_place/block_place.module
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/**
- * @file
- * Controls the placement of blocks from all pages.
- */
-
-use Drupal\Core\Routing\RouteMatchInterface;
-use Drupal\Core\Url;
-
-/**
- * Implements hook_help().
- */
-function block_place_help($route_name, RouteMatchInterface $route_match) {
-  switch ($route_name) {
-    case 'help.page.block_place':
-      $output = '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Place Blocks module module allows you to place blocks from every page. For more information, see the <a href=":blocks-documentation">online documentation for the Place Blocks module</a>.', [':blocks-documentation' => 'https://www.drupal.org/documentation/modules/block_place/']) . '</p>';
-      $output .= '<h3>' . t('Uses') . '</h3>';
-      $output .= '<p>' . t('Block placement is specific to each theme on your site. This module allows you to place blocks in the context of your content pages') . '</p>';
-      return $output;
-  }
-}
-
-/**
- * Implements hook_toolbar().
- */
-function block_place_toolbar() {
-  // Link to the current page with a query parameter.
-  $query = \Drupal::request()->query->all();
-  $wrapper_class = '';
-  $status_class = '';
-  $description = '';
-  if (isset($query['block-place'])) {
-    $status_class = 'active';
-    $wrapper_class = 'is-active';
-    $description = t('Exit Place block mode.');
-    unset($query['block-place']);
-    unset($query['destination']);
-  }
-  else {
-    $status_class = 'inactive';
-    $description = t('Show regions to Place blocks.');
-    $query['block-place'] = '1';
-    // Setting destination is both a work-around for the toolbar "Back to site"
-    // link in escapeAdmin.js and used for the destination after picking a
-    // block.
-    $query['destination'] = Url::fromRoute('<current>')->toString();
-  }
-
-  // Remove on Admin routes.
-  $admin_route = \Drupal::service('router.admin_context')->isAdminRoute();
-  // Remove on Block Demo page.
-  $admin_demo = \Drupal::routeMatch()->getRouteName() === 'block.admin_demo';
-  $access = (\Drupal::currentUser()->hasPermission('administer blocks') && !$admin_route && !$admin_demo);
-
-  // The 'Place Block' tab is a simple link, with no corresponding tray.
-  $items['block_place'] = [
-    '#cache' => [
-      'contexts' => ['user.permissions', 'url.query_args'],
-    ],
-    '#type' => 'toolbar_item',
-    'tab' => [
-      '#access' => $access,
-      '#type' => 'link',
-      '#title' => t('Place block'),
-      '#url' => Url::fromRoute('<current>', [], ['query' => $query]),
-      '#attributes' => [
-        'title' => $description,
-        'class' => ['toolbar-icon', 'toolbar-icon-place-block-' . $status_class],
-      ],
-    ],
-    '#wrapper_attributes' => [
-      'class' => ['toolbar-tab', 'block-place-toolbar-tab', $wrapper_class],
-    ],
-    '#weight' => 100,
-    '#attached' => [
-      'library' => [
-        'block_place/drupal.block_place.icons',
-      ],
-   ],
-  ];
-  return $items;
-}
diff --git a/core/modules/block_place/block_place.services.yml b/core/modules/block_place/block_place.services.yml
deleted file mode 100644
index 95d7375..0000000
--- a/core/modules/block_place/block_place.services.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
-  block_place.page_display_variant_subscriber.block:
-    class: Drupal\block_place\EventSubscriber\BlockPlaceEventSubscriber
-    arguments: ['@request_stack', '@current_user']
-    tags:
-      - { name: event_subscriber }
diff --git a/core/modules/block_place/css/block-place.css b/core/modules/block_place/css/block-place.css
deleted file mode 100644
index d0735a4..0000000
--- a/core/modules/block_place/css/block-place.css
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * @file
- * Styling for block_place module regions and buttons during block placement.
- */
-
-/* Borrows styling from Bartik's demo-block.css. */
-.block-place-region {
-  background: #ffff66;
-  border: 1px dotted #9f9e00;
-  font: 90% "Lucida Grande", "Lucida Sans Unicode", sans-serif;
-  margin: 5px;
-  padding: 5px;
-  text-align: center;
-  text-shadow: none;
-}
-
-.block-place-region a.button {
-  white-space: nowrap;
-  color: #3a3a3a;
-}
-
-.region:hover {
-  outline: 1px dashed #9f9e00;
-}
diff --git a/core/modules/block_place/css/block-place.icons.theme.css b/core/modules/block_place/css/block-place.icons.theme.css
deleted file mode 100644
index 2c2dbea..0000000
--- a/core/modules/block_place/css/block-place.icons.theme.css
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * @file
- * Styling for block_place module toolbar icons.
- */
-.toolbar .block-place-toolbar-tab.is-active {
-  background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%);
-  background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%);
-}
-
-.toolbar .toolbar-bar .block-place-toolbar-tab {
-  float: right;
-}
-
-[dir="rtl"] .toolbar .toolbar-bar .block-place-toolbar-tab {
-  float: left;
-}
-
-.toolbar-bar .toolbar-icon-place-block-active:before {
-  background-image: url(../icons/ffffff/place-block.svg);
-}
-
-.toolbar-bar .toolbar-icon-place-block-inactive:before {
-  background-image: url(../icons/bebebe/place-block.svg);
-}
diff --git a/core/modules/block_place/icons/bebebe/place-block.svg b/core/modules/block_place/icons/bebebe/place-block.svg
deleted file mode 100644
index a47eb65..0000000
--- a/core/modules/block_place/icons/bebebe/place-block.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0" y="0" width="16" height="16" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"><rect x="1" y="6" fill="#bebebe" width="14" height="9"/><ellipse fill="#bebebe" cx="11.48" cy="3.68" rx="2.23" ry="0.61"/><rect x="9.25" y="3.68" fill="#bebebe" width="4.45" height="3.35"/><ellipse fill="#bebebe" cx="4.48" cy="3.68" rx="2.23" ry="0.61"/><rect x="2.25" y="3.68" fill="#bebebe" width="4.45" height="3.35"/></svg>
diff --git a/core/modules/block_place/icons/ffffff/place-block.svg b/core/modules/block_place/icons/ffffff/place-block.svg
deleted file mode 100644
index 7489db9..0000000
--- a/core/modules/block_place/icons/ffffff/place-block.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0" y="0" width="16" height="16" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"><rect x="1" y="6" fill="#ffffff" width="14" height="9"/><ellipse fill="#ffffff" cx="11.48" cy="3.68" rx="2.23" ry="0.61"/><rect x="9.25" y="3.68" fill="#ffffff" width="4.45" height="3.35"/><ellipse fill="#ffffff" cx="4.48" cy="3.68" rx="2.23" ry="0.61"/><rect x="2.25" y="3.68" fill="#ffffff" width="4.45" height="3.35"/></svg>
diff --git a/core/modules/block_place/src/EventSubscriber/BlockPlaceEventSubscriber.php b/core/modules/block_place/src/EventSubscriber/BlockPlaceEventSubscriber.php
deleted file mode 100644
index da69a00..0000000
--- a/core/modules/block_place/src/EventSubscriber/BlockPlaceEventSubscriber.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-namespace Drupal\block_place\EventSubscriber;
-
-use Drupal\Core\Render\PageDisplayVariantSelectionEvent;
-use Drupal\Core\Render\RenderEvents;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Drupal\Core\Session\AccountInterface;
-
-/**
- * @see \Drupal\block_place\Plugin\DisplayVariant\PlaceBlockPageVariant
- */
-class BlockPlaceEventSubscriber implements EventSubscriberInterface {
-
-  /**
-   * The request stack.
-   *
-   * @var \Symfony\Component\HttpFoundation\RequestStack
-   */
-  protected $requestStack;
-
-  /**
-   * The current user.
-   *
-   * @var \Drupal\Core\Session\AccountInterface
-   */
-  protected $account;
-
-  /**
-   * Constructs a \Drupal\block_place\EventSubscriber\BlockPlaceEventSubscriber object.
-   *
-   * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
-   *   The request stack used to retrieve the current request.
-   * @param \Drupal\Core\Session\AccountInterface $account
-   *   The current user.
-   */
-  public function __construct(RequestStack $request_stack, AccountInterface $account) {
-    $this->requestStack = $request_stack;
-    $this->account = $account;
-  }
-
-  /**
-   * Selects the block place override of the block page display variant.
-   *
-   * @param \Drupal\Core\Render\PageDisplayVariantSelectionEvent $event
-   *   The event to process.
-   */
-  public function onBlockPageDisplayVariantSelected(PageDisplayVariantSelectionEvent $event) {
-    if ($event->getPluginId() === 'block_page') {
-      if ($this->requestStack->getCurrentRequest()->query->has('block-place') && $this->account->hasPermission('administer blocks')) {
-        $event->setPluginId('block_place_page');
-      }
-      $event->addCacheContexts(['user.permissions', 'url.query_args']);
-    }
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function getSubscribedEvents() {
-    // Set a very low priority, so that it runs last.
-    $events[RenderEvents::SELECT_PAGE_DISPLAY_VARIANT][] = ['onBlockPageDisplayVariantSelected', -1000];
-    return $events;
-  }
-
-}
diff --git a/core/modules/block_place/src/Plugin/DisplayVariant/PlaceBlockPageVariant.php b/core/modules/block_place/src/Plugin/DisplayVariant/PlaceBlockPageVariant.php
deleted file mode 100644
index eaef409..0000000
--- a/core/modules/block_place/src/Plugin/DisplayVariant/PlaceBlockPageVariant.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-namespace Drupal\block_place\Plugin\DisplayVariant;
-
-use Drupal\block\BlockRepositoryInterface;
-use Drupal\block\Plugin\DisplayVariant\BlockPageVariant;
-use Drupal\Component\Serialization\Json;
-use Drupal\Core\Entity\EntityViewBuilderInterface;
-use Drupal\Core\Theme\ThemeManagerInterface;
-use Drupal\Core\Link;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\HttpFoundation\RequestStack;
-
-/**
- * Allows blocks to be placed directly within a region.
- *
- * @PageDisplayVariant(
- *   id = "block_place_page",
- *   admin_label = @Translation("Page with blocks and place block buttons")
- * )
- */
-class PlaceBlockPageVariant extends BlockPageVariant {
-
-  /**
-   * The theme manager.
-   *
-   * @var \Drupal\Core\Theme\ThemeManagerInterface
-   */
-  protected $themeManager;
-
-  /**
-   * The request stack.
-   *
-   * @var \Symfony\Component\HttpFoundation\RequestStack
-   */
-  protected $requestStack;
-
-  /**
-   * Constructs a new PlaceBlockPageVariant.
-   *
-   * @param array $configuration
-   *   A configuration array containing information about the plugin instance.
-   * @param string $plugin_id
-   *   The plugin ID for the plugin instance.
-   * @param mixed $plugin_definition
-   *   The plugin implementation definition.
-   * @param \Drupal\block\BlockRepositoryInterface $block_repository
-   *   The block repository.
-   * @param \Drupal\Core\Entity\EntityViewBuilderInterface $block_view_builder
-   *   The block view builder.
-   * @param string[] $block_list_cache_tags
-   *   The Block entity type list cache tags.
-   * @param \Drupal\Core\Theme\ThemeManagerInterface $theme_manager
-   *   The theme manager.
-   * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
-   *   The current request stack.
-   */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, BlockRepositoryInterface $block_repository, EntityViewBuilderInterface $block_view_builder, array $block_list_cache_tags, ThemeManagerInterface $theme_manager, RequestStack $request_stack) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition, $block_repository, $block_view_builder, $block_list_cache_tags);
-
-    $this->themeManager = $theme_manager;
-    $this->requestStack = $request_stack;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-      $container->get('block.repository'),
-      $container->get('entity_type.manager')->getViewBuilder('block'),
-      $container->get('entity_type.manager')->getDefinition('block')->getListCacheTags(),
-      $container->get('theme.manager'),
-      $container->get('request_stack')
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function build() {
-    $build = parent::build();
-
-    $active_theme = $this->themeManager->getActiveTheme();
-    $theme_name = $active_theme->getName();
-    $visible_regions = $this->getVisibleRegionNames($theme_name);
-
-    // Build an array of the region names in the right order.
-    $build += array_fill_keys(array_keys($visible_regions), []);
-
-    foreach ($visible_regions as $region => $region_name) {
-      $destination = $this->requestStack->getCurrentRequest()->query->get('destination');
-      $query = [
-        'region' => $region,
-      ];
-      if ($destination) {
-        $query['destination'] = $destination;
-      }
-      $title = $this->t('Place block<span class="visually-hidden"> in the %region region</span>', ['%region' => $region_name]);
-      $operations['block_description'] = [
-        '#type' => 'inline_template',
-        '#template' => '<div class="block-place-region">{{ link }}</div>',
-        '#context' => [
-          'link' => Link::createFromRoute($title, 'block.admin_library', ['theme' => $theme_name], [
-            'query' => $query,
-            'attributes' => [
-              'title' => $title,
-              'class' => ['use-ajax', 'button', 'button--small'],
-              'data-dialog-type' => 'modal',
-              'data-dialog-options' => Json::encode([
-                'width' => 700,
-              ]),
-            ],
-          ]),
-        ],
-      ];
-      $build[$region] = ['block_place_operations' => $operations] + $build[$region];
-    }
-    $build['#attached']['library'][] = 'block_place/drupal.block_place';
-    return $build;
-  }
-
-  /**
-   * Returns the human-readable list of regions keyed by machine name.
-   *
-   * @param string $theme
-   *   The name of the theme.
-   *
-   * @return array
-   *   An array of human-readable region names keyed by machine name.
-   */
-  protected function getVisibleRegionNames($theme) {
-    return system_region_list($theme, REGIONS_VISIBLE);
-  }
-
-}
diff --git a/core/modules/block_place/tests/src/Functional/BlockPlaceTest.php b/core/modules/block_place/tests/src/Functional/BlockPlaceTest.php
deleted file mode 100644
index 8dc051a..0000000
--- a/core/modules/block_place/tests/src/Functional/BlockPlaceTest.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace Drupal\Tests\block_place\Functional;
-
-use Drupal\Core\Url;
-use Drupal\Tests\BrowserTestBase;
-
-/**
- * Tests the placing a block.
- *
- * @group block_place
- */
-class BlockPlaceTest extends BrowserTestBase {
-
-  /**
-   * Modules to install.
-   *
-   * @var array
-   */
-  public static $modules = ['block', 'block_place', 'toolbar'];
-
-  /**
-   * Tests placing blocks as an admin.
-   */
-  public function testPlacingBlocksAdmin() {
-    // Create administrative user.
-    $this->drupalLogin($this->drupalCreateUser([
-      'access administration pages',
-      'access toolbar',
-      'administer blocks',
-      'view the administration theme',
-    ]));
-    $this->drupalGet(Url::fromRoute('<front>'));
-    $this->clickLink('Place block');
-
-    // Each region should have one link to place a block.
-    $theme_name = $this->container->get('theme.manager')->getActiveTheme()->getName();
-    $visible_regions = system_region_list($theme_name, REGIONS_VISIBLE);
-    $this->assertGreaterThan(0, count($visible_regions));
-
-    $default_theme = $this->config('system.theme')->get('default');
-    $block_library_url = Url::fromRoute('block.admin_library', ['theme' => $default_theme]);
-    foreach ($visible_regions as $region => $name) {
-      $block_library_url->setOption('query', ['region' => $region]);
-      $links = $this->xpath('//a[contains(@href, :href)]', [':href' => $block_library_url->toString()]);
-      $this->assertEquals(1, count($links));
-
-      list(, $query_string) = explode('?', $links[0]->getAttribute('href'), 2);
-      parse_str($query_string, $query_parts);
-      $this->assertNotEmpty($query_parts['destination']);
-
-      // Get the text inside the div->a->span->em.
-      $demo_block = $this->xpath('//div[@class="block-place-region"]/a[text()="Place block"]//em[text()="' . $name . '"]');
-      $this->assertEquals(1, count($demo_block));
-    }
-  }
-
-  /**
-   * Tests placing blocks as an unprivileged user.
-   */
-  public function testPlacingBlocksUnprivileged() {
-    // Create a user who cannot administer blocks.
-    $this->drupalLogin($this->drupalCreateUser([
-      'access administration pages',
-      'access toolbar',
-      'view the administration theme',
-    ]));
-    $this->drupalGet(Url::fromRoute('<front>'));
-    $links = $this->xpath('//a[text()=:label]', [':label' => 'Place block']);
-    $this->assertEmpty($links);
-
-    $this->drupalGet(Url::fromRoute('block.admin_library', ['theme' => 'classy']));
-    $this->assertSession()->statusCodeEquals(403);
-  }
-
-}
diff --git a/core/modules/book/book.permissions.yml b/core/modules/book/book.permissions.yml
index e3ec489..52dd9d0 100644
--- a/core/modules/book/book.permissions.yml
+++ b/core/modules/book/book.permissions.yml
@@ -3,7 +3,7 @@ administer book outlines:
 create new books:
   title: 'Create new books'
 add content to books:
-  title: 'Add content and child pages to books and manage their hierarchies.'
+  title: 'Add content and child pages to books'
 access printer-friendly version:
   title: 'View printer-friendly books'
   description: 'View a book page and all of its sub-pages as a single document for ease of printing. Can be performance heavy.'
diff --git a/core/modules/book/book.views.inc b/core/modules/book/book.views.inc
deleted file mode 100644
index 63dfb38..0000000
--- a/core/modules/book/book.views.inc
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-/**
- * @file
- * Provide views data for book.module.
- *
- * @ingroup views_module_handlers
- */
-
-/**
- * Implements hook_views_data().
- */
-function book_views_data() {
-  $data = [];
-  $data['book'] = [];
-  $data['book']['table'] = [];
-  $data['book']['table']['group'] = t('Book');
-
-  $data['book']['table']['join'] = [
-    'node_field_data' => [
-      'left_field' => 'nid',
-      'field' => 'nid',
-    ],
-  ];
-
-  $data['book']['nid'] = [
-    'title' => t('Page'),
-    'help' => t('The book page node.'),
-    'relationship' => [
-      'base' => 'node_field_data',
-      'id' => 'standard',
-      'label' => t('Book Page'),
-    ],
-  ];
-
-  $data['book']['bid'] = [
-    'title' => t('Top level book'),
-    'help' => t('The book the node is in.'),
-    'relationship' => [
-      'base' => 'node_field_data',
-      'id' => 'standard',
-      'label' => t('Book'),
-    ],
-  ];
-
-  $data['book']['pid'] = [
-    'title' => t('Parent'),
-    'help' => t('The parent book node.'),
-    'relationship' => [
-      'base' => 'node_field_data',
-      'id' => 'standard',
-      'label' => t('Book Parent'),
-    ],
-  ];
-
-  $data['book']['has_children'] = [
-    'title' => t('Page has Children'),
-    'help' => t('Flag indicating whether this book page has children'),
-    'field' => [
-      'id' => 'boolean',
-    ],
-    'sort' => [
-      'id' => 'standard',
-    ],
-    'filter' => [
-      'id' => 'boolean',
-      'label' => t('Has Children'),
-    ],
-    'argument' => [
-      'id' => 'numeric',
-    ],
-  ];
-
-  $data['book']['weight'] = [
-    'title' => t('Weight'),
-    'help' => t('The weight of the book page.'),
-    'field' => [
-      'id' => 'numeric',
-    ],
-    'sort' => [
-      'id' => 'standard',
-    ],
-  ];
-
-  $data['book']['depth'] = [
-    'title' => t('Depth'),
-    'help' => t('The depth of the book page in the hierarchy; top level books have a depth of 1.'),
-    'field' => [
-      'id' => 'numeric',
-    ],
-    'sort' => [
-      'id' => 'standard',
-    ],
-    'filter' => [
-      'id' => 'numeric',
-    ],
-    'argument' => [
-      'id' => 'standard',
-    ],
-  ];
-  $parents = [
-    1 => t('1st parent'),
-    2 => t('2nd parent'),
-    3 => t('3rd parent'),
-    4 => t('4th parent'),
-    5 => t('5th parent'),
-    6 => t('6th parent'),
-    7 => t('7th parent'),
-    8 => t('8th parent'),
-    9 => t('9th parent'),
-  ];
-  foreach ($parents as $i => $parent_label) {
-    $data['book']["p$i"] = [
-      'title' => $parent_label,
-      'help' => t('The @parent of book node.', ['@parent' => $parent_label]),
-      'relationship' => [
-        'base' => 'node_field_data',
-        'id' => 'standard',
-        'label' => t('Book @parent', ['@parent' => $parent_label]),
-      ],
-    ];
-  }
-
-  return $data;
-}
diff --git a/core/modules/book/config/install/node.type.book.yml b/core/modules/book/config/install/node.type.book.yml
index 0c07a79..0d1d0c0 100644
--- a/core/modules/book/config/install/node.type.book.yml
+++ b/core/modules/book/config/install/node.type.book.yml
@@ -8,6 +8,6 @@ name: 'Book page'
 type: book
 description: '<em>Books</em> have a built-in hierarchical navigation. Use for handbooks or tutorials.'
 help: ''
-new_revision: true
+new_revision: false
 preview_mode: 1
 display_submitted: true
diff --git a/core/modules/book/config/schema/book.views.schema.yml b/core/modules/book/config/schema/book.views.schema.yml
deleted file mode 100644
index 5dffb56..0000000
--- a/core/modules/book/config/schema/book.views.schema.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Schema for the views plugins of the Book module.
-
-views.argument_default.top_level_book:
-  type: sequence
-  label: 'Top Level Book from current node'
-  sequence:
-    type: string
-    label: 'Nid'
diff --git a/core/modules/book/src/BookManagerInterface.php b/core/modules/book/src/BookManagerInterface.php
index 70d0107..fd3cfc1 100644
--- a/core/modules/book/src/BookManagerInterface.php
+++ b/core/modules/book/src/BookManagerInterface.php
@@ -18,8 +18,6 @@
    * Since this can be the full tree including hidden items, the data returned
    * may be used for generating an an admin interface or a select.
    *
-   * Note: based on menu_tree_all_data().
-   *
    * @param int $bid
    *   The Book ID to find links for.
    * @param array|null $link
@@ -33,6 +31,8 @@
    *
    * @return array
    *   An tree of menu links in an array, in the order they should be rendered.
+   *
+   * Note: based on menu_tree_all_data().
    */
   public function bookTreeAllData($bid, $link = NULL, $max_depth = NULL);
 
diff --git a/core/modules/book/src/Plugin/migrate/source/d6/Book.php b/core/modules/book/src/Plugin/migrate/source/d6/Book.php
index 76833aa..f29a9da 100644
--- a/core/modules/book/src/Plugin/migrate/source/d6/Book.php
+++ b/core/modules/book/src/Plugin/migrate/source/d6/Book.php
@@ -23,7 +23,7 @@ public function query() {
     for ($i = 1; $i <= 9; $i++) {
       $field = "p$i";
       $ml_fields[] = $field;
-      $query->orderBy('ml.' . $field);
+      $query->orderBy($field);
     }
     $query->fields('ml', $ml_fields);
     return $query;
diff --git a/core/modules/book/src/Plugin/views/argument_default/TopLevelBook.php b/core/modules/book/src/Plugin/views/argument_default/TopLevelBook.php
deleted file mode 100644
index 9ab4fe2..0000000
--- a/core/modules/book/src/Plugin/views/argument_default/TopLevelBook.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-namespace Drupal\book\Plugin\views\argument_default;
-
-use Drupal\Core\Routing\RouteMatchInterface;
-use Drupal\node\NodeStorageInterface;
-use Drupal\node\Plugin\views\argument_default\Node;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Default argument plugin to get the current node's top level book.
- *
- * @ViewsArgumentDefault(
- *   id = "top_level_book",
- *   title = @Translation("Top Level Book from current node")
- * )
- */
-class TopLevelBook extends Node {
-
-  /**
-   * The node storage controller.
-   *
-   * @var \Drupal\node\NodeStorageInterface
-   */
-  protected $nodeStorage;
-
-  /**
-   * Constructs a Drupal\book\Plugin\views\argument_default\TopLevelBook object.
-   *
-   * @param array $configuration
-   *   A configuration array containing information about the plugin instance.
-   * @param string $plugin_id
-   *   The plugin_id for the plugin instance.
-   * @param array $plugin_definition
-   *   The plugin implementation definition.
-   * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
-   *   The route match.
-   * @param \Drupal\node\NodeStorageInterface $node_storage
-   *   The node storage controller.
-   */
-  public function __construct(array $configuration, $plugin_id, array $plugin_definition, RouteMatchInterface $route_match, NodeStorageInterface $node_storage) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition, $route_match);
-    $this->nodeStorage = $node_storage;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-      $container->get('current_route_match'),
-      $container->get('entity.manager')->getStorage('node')
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getArgument() {
-    // Use the argument_default_node plugin to get the nid argument.
-    $nid = parent::getArgument();
-    if (!empty($nid)) {
-      $node = $this->nodeStorage->load($nid);
-      if (isset($node->book['bid'])) {
-        return $node->book['bid'];
-      }
-    }
-  }
-
-}
diff --git a/core/modules/book/src/Tests/Views/BookRelationshipTest.php b/core/modules/book/src/Tests/Views/BookRelationshipTest.php
deleted file mode 100644
index 2302e8b..0000000
--- a/core/modules/book/src/Tests/Views/BookRelationshipTest.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-namespace Drupal\book\Tests\Views;
-
-use Drupal\views\Tests\ViewTestBase;
-use Drupal\views\Tests\ViewTestData;
-
-/**
- * Tests entity reference relationship data.
- *
- * @group book
- *
- * @see book_views_data()
- */
-class BookRelationshipTest extends ViewTestBase {
-
-  /**
-   * Views used by this test.
-   *
-   * @var array
-   */
-  public static $testViews = array('test_book_view');
-
-  /**
-   * Modules to install.
-   *
-   * @var array
-   */
-  public static $modules = array('book_test_views', 'book', 'views');
-
-  /**
-   * A book node.
-   *
-   * @var object
-   */
-  protected $book;
-
-  /**
-   * A user with permission to create and edit books.
-   *
-   * @var object
-   */
-  protected $bookAuthor;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    // Create users.
-    $this->bookAuthor = $this->drupalCreateUser(
-      array(
-        'create new books',
-        'create book content',
-        'edit own book content',
-        'add content to books',
-      )
-    );
-    ViewTestData::createTestViews(get_class($this), array('book_test_views'));
-  }
-
-  /**
-   * Creates a new book with a page hierarchy.
-   */
-  protected function createBook() {
-    // Create new book.
-    $this->drupalLogin($this->bookAuthor);
-
-    $this->book = $this->createBookNode('new');
-    $book = $this->book;
-
-    $nodes = array();
-    // Node 0.
-    $nodes[] = $this->createBookNode($book->id());
-    // Node 1.
-    $nodes[] = $this->createBookNode($book->id(), $nodes[0]->book['nid']);
-    // Node 2.
-    $nodes[] = $this->createBookNode($book->id(), $nodes[1]->book['nid']);
-    // Node 3.
-    $nodes[] = $this->createBookNode($book->id(), $nodes[2]->book['nid']);
-    // Node 4.
-    $nodes[] = $this->createBookNode($book->id(), $nodes[3]->book['nid']);
-    // Node 5.
-    $nodes[] = $this->createBookNode($book->id(), $nodes[4]->book['nid']);
-    // Node 6.
-    $nodes[] = $this->createBookNode($book->id(), $nodes[5]->book['nid']);
-    // Node 7.
-    $nodes[] = $this->createBookNode($book->id(), $nodes[6]->book['nid']);
-
-    $this->drupalLogout();
-
-    return $nodes;
-  }
-
-  /**
-   * Creates a book node.
-   *
-   * @param int|string $book_nid
-   *   A book node ID or set to 'new' to create a new book.
-   * @param int|null $parent
-   *   (optional) Parent book reference ID. Defaults to NULL.
-   *
-   * @return \Drupal\node\NodeInterface
-   *   The book node.
-   */
-  protected function createBookNode($book_nid, $parent = NULL) {
-    // $number does not use drupal_static as it should not be reset
-    // since it uniquely identifies each call to createBookNode().
-    // Used to ensure that when sorted nodes stay in same order.
-    static $number = 0;
-
-    $edit = array();
-    $edit['title[0][value]'] = $number . ' - SimpleTest test node ' . $this->randomMachineName(10);
-    $edit['body[0][value]'] = 'SimpleTest test body ' . $this->randomMachineName(32) . ' ' . $this->randomMachineName(32);
-    $edit['book[bid]'] = $book_nid;
-
-    if ($parent !== NULL) {
-      $this->drupalPostForm('node/add/book', $edit, t('Change book (update list of parents)'));
-
-      $edit['book[pid]'] = $parent;
-      $this->drupalPostForm(NULL, $edit, t('Save'));
-      // Make sure the parent was flagged as having children.
-      $parent_node = \Drupal::entityManager()->getStorage('node')->loadUnchanged($parent);
-      $this->assertFalse(empty($parent_node->book['has_children']), 'Parent node is marked as having children');
-    }
-    else {
-      $this->drupalPostForm('node/add/book', $edit, t('Save'));
-    }
-
-    // Check to make sure the book node was created.
-    $node = $this->drupalGetNodeByTitle($edit['title[0][value]']);
-    $this->assertNotNull(($node === FALSE ? NULL : $node), 'Book node found in database.');
-    $number++;
-
-    return $node;
-  }
-
-  /**
-   * Tests using the views relationship.
-   */
-  public function testRelationship() {
-
-    // Create new book.
-    // @var \Drupal\node\NodeInterface[] $nodes
-    $nodes = $this->createBook();
-    for ($i = 0; $i < 8; $i++) {
-      $this->drupalGet('test-book/' . $nodes[$i]->id());
-
-      for ($j = 0; $j < $i; $j++) {
-        $this->assertLink($nodes[$j]->label());
-      }
-    }
-  }
-
-}
diff --git a/core/modules/book/tests/modules/book_test_views/book_test_views.info.yml b/core/modules/book/tests/modules/book_test_views/book_test_views.info.yml
deleted file mode 100644
index 9110475..0000000
--- a/core/modules/book/tests/modules/book_test_views/book_test_views.info.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-name: 'Book test views'
-type: module
-description: 'Provides default views for views book tests.'
-package: Testing
-version: VERSION
-core: 8.x
-dependencies:
- - book
- - views
diff --git a/core/modules/book/tests/modules/book_test_views/test_views/views.view.test_book_view.yml b/core/modules/book/tests/modules/book_test_views/test_views/views.view.test_book_view.yml
deleted file mode 100644
index 488368f..0000000
--- a/core/modules/book/tests/modules/book_test_views/test_views/views.view.test_book_view.yml
+++ /dev/null
@@ -1,1059 +0,0 @@
-langcode: en
-status: true
-dependencies:
-  config:
-    - node.type.book
-  module:
-    - node
-    - user
-id: test_book_view
-label: Book
-module: views
-description: ''
-tag: ''
-base_table: node_field_data
-base_field: nid
-core: 8.x
-display:
-  default:
-    display_plugin: default
-    id: default
-    display_title: Master
-    position: 0
-    display_options:
-      access:
-        type: perm
-        options:
-          perm: 'access content'
-      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: full
-        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: '‹ previous'
-            next: 'next ›'
-            first: '« first'
-            last: 'last »'
-          quantity: 9
-      style:
-        type: default
-      row:
-        type: fields
-      fields:
-        title:
-          id: title
-          table: node_field_data
-          field: title
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_1:
-          id: title_1
-          table: node_field_data
-          field: title
-          relationship: bid
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_2:
-          id: title_2
-          table: node_field_data
-          field: title
-          relationship: pid
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_3:
-          id: title_3
-          table: node_field_data
-          field: title
-          relationship: p1
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_4:
-          id: title_4
-          table: node_field_data
-          field: title
-          relationship: p2
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_5:
-          id: title_5
-          table: node_field_data
-          field: title
-          relationship: p3
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_6:
-          id: title_6
-          table: node_field_data
-          field: title
-          relationship: p4
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_7:
-          id: title_7
-          table: node_field_data
-          field: title
-          relationship: p5
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_8:
-          id: title_8
-          table: node_field_data
-          field: title
-          relationship: p6
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_9:
-          id: title_9
-          table: node_field_data
-          field: title
-          relationship: p7
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_10:
-          id: title_10
-          table: node_field_data
-          field: title
-          relationship: p8
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-        title_11:
-          id: title_11
-          table: node_field_data
-          field: title
-          relationship: p9
-          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: false
-          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: 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: node
-          entity_field: title
-          plugin_id: field
-      filters:
-        status:
-          value: true
-          table: node_field_data
-          field: status
-          plugin_id: boolean
-          entity_type: node
-          entity_field: status
-          id: status
-          expose:
-            operator: ''
-          group: 1
-        type:
-          id: type
-          table: node_field_data
-          field: type
-          value:
-            book: book
-          entity_type: node
-          entity_field: type
-          plugin_id: bundle
-      sorts:
-        created:
-          id: created
-          table: node_field_data
-          field: created
-          order: DESC
-          entity_type: node
-          entity_field: created
-          plugin_id: date
-          relationship: none
-          group_type: group
-          admin_label: ''
-          exposed: false
-          expose:
-            label: ''
-          granularity: second
-      title: ''
-      header: {  }
-      footer: {  }
-      empty: {  }
-      relationships:
-        p1:
-          id: p1
-          table: book
-          field: p1
-          relationship: none
-          group_type: group
-          admin_label: 'Book 1st parent'
-          required: false
-          plugin_id: standard
-        p2:
-          id: p2
-          table: book
-          field: p2
-          relationship: none
-          group_type: group
-          admin_label: 'Book 2nd parent'
-          required: false
-          plugin_id: standard
-        p3:
-          id: p3
-          table: book
-          field: p3
-          relationship: none
-          group_type: group
-          admin_label: 'Book 3rd parent'
-          required: false
-          plugin_id: standard
-        p4:
-          id: p4
-          table: book
-          field: p4
-          relationship: none
-          group_type: group
-          admin_label: 'Book 4th parent'
-          required: false
-          plugin_id: standard
-        p5:
-          id: p5
-          table: book
-          field: p5
-          relationship: none
-          group_type: group
-          admin_label: 'Book 5th parent'
-          required: false
-          plugin_id: standard
-        p6:
-          id: p6
-          table: book
-          field: p6
-          relationship: none
-          group_type: group
-          admin_label: 'Book 6th parent'
-          required: false
-          plugin_id: standard
-        p7:
-          id: p7
-          table: book
-          field: p7
-          relationship: none
-          group_type: group
-          admin_label: 'Book 7th parent'
-          required: false
-          plugin_id: standard
-        p8:
-          id: p8
-          table: book
-          field: p8
-          relationship: none
-          group_type: group
-          admin_label: 'Book 8th parent'
-          required: false
-          plugin_id: standard
-        p9:
-          id: p9
-          table: book
-          field: p9
-          relationship: none
-          group_type: group
-          admin_label: 'Book 9th parent'
-          required: false
-          plugin_id: standard
-        pid:
-          id: pid
-          table: book
-          field: pid
-          relationship: none
-          group_type: group
-          admin_label: 'Book Parent'
-          required: false
-          plugin_id: standard
-        bid:
-          id: bid
-          table: book
-          field: bid
-          relationship: none
-          group_type: group
-          admin_label: Book
-          required: false
-          plugin_id: standard
-      arguments:
-        nid:
-          id: nid
-          table: node_field_data
-          field: nid
-          relationship: none
-          group_type: group
-          admin_label: ''
-          default_action: default
-          exception:
-            value: all
-            title_enable: false
-            title: All
-          title_enable: false
-          title: ''
-          default_argument_type: top_level_book
-          default_argument_options: {  }
-          default_argument_skip_url: false
-          summary_options:
-            base_path: ''
-            count: true
-            items_per_page: 25
-            override: false
-          summary:
-            sort_order: asc
-            number_of_records: 0
-            format: default_summary
-          specify_validation: false
-          validate:
-            type: none
-            fail: 'not found'
-          validate_options: {  }
-          break_phrase: false
-          not: false
-          entity_type: node
-          entity_field: nid
-          plugin_id: numeric
-      display_extenders: {  }
-    cache_metadata:
-      contexts:
-        - 'languages:language_content'
-        - 'languages:language_interface'
-        - url
-        - 'url.query_args.pagers:0'
-        - 'user.node_grants:view'
-        - user.permissions
-      cacheable: false
-  page_1:
-    display_plugin: page
-    id: page_1
-    display_title: Page
-    position: 1
-    display_options:
-      display_extenders: {  }
-      path: test-book
-    cache_metadata:
-      contexts:
-        - 'languages:language_content'
-        - 'languages:language_interface'
-        - url
-        - 'url.query_args.pagers:0'
-        - 'user.node_grants:view'
-        - user.permissions
-      cacheable: false
diff --git a/core/modules/ckeditor/ckeditor.module b/core/modules/ckeditor/ckeditor.module
index 115afe2..a7a8538 100644
--- a/core/modules/ckeditor/ckeditor.module
+++ b/core/modules/ckeditor/ckeditor.module
@@ -68,14 +68,13 @@ function ckeditor_ckeditor_css_alter(array &$css, Editor $editor) {
 }
 
 /**
- * Retrieves the default theme's CKEditor stylesheets.
+ * Retrieves the default theme's CKEditor stylesheets defined in the .info file.
  *
  * Themes may specify iframe-specific CSS files for use with CKEditor by
- * including a "ckeditor_stylesheets" key in their .info.yml file.
+ * including a "ckeditor_stylesheets" key in the theme .info file.
  *
  * @code
- * ckeditor_stylesheets:
- *   - css/ckeditor-iframe.css
+ * ckeditor_stylesheets[] = css/ckeditor-iframe.css
  * @endcode
  */
 function _ckeditor_theme_css($theme = NULL) {
diff --git a/core/modules/ckeditor/css/ckeditor.admin.css b/core/modules/ckeditor/css/ckeditor.admin.css
index 8b771c7..9bcd052 100644
--- a/core/modules/ckeditor/css/ckeditor.admin.css
+++ b/core/modules/ckeditor/css/ckeditor.admin.css
@@ -198,10 +198,6 @@
      far too wide focus indicator. This fixes that. */
   overflow: hidden;
 }
-.ckeditor-buttons .cke_button_icon img {
-  width: 16px;
-  height: 16px;
-}
 .ckeditor-buttons li .cke_ltr {
   direction: ltr;
 }
diff --git a/core/modules/ckeditor/src/Plugin/CKEditorPlugin/StylesCombo.php b/core/modules/ckeditor/src/Plugin/CKEditorPlugin/StylesCombo.php
index 888fec0..0244f83 100644
--- a/core/modules/ckeditor/src/Plugin/CKEditorPlugin/StylesCombo.php
+++ b/core/modules/ckeditor/src/Plugin/CKEditorPlugin/StylesCombo.php
@@ -96,16 +96,9 @@ public function settingsForm(array $form, FormStateInterface $form_state, Editor
    * #element_validate handler for the "styles" element in settingsForm().
    */
   public function validateStylesValue(array $element, FormStateInterface $form_state) {
-    $styles_setting = $this->generateStylesSetSetting($element['#value']);
-    if ($styles_setting === FALSE) {
+    if ($this->generateStylesSetSetting($element['#value']) === FALSE) {
       $form_state->setError($element, t('The provided list of styles is syntactically incorrect.'));
     }
-    else {
-      $style_names = array_map(function ($style) { return $style['name']; }, $styles_setting);
-      if (count($style_names) !== count(array_unique($style_names))) {
-        $form_state->setError($element, t('Each style must have a unique label.'));
-      }
-    }
   }
 
   /**
diff --git a/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php b/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php
index d10180d..77115e6 100644
--- a/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php
+++ b/core/modules/ckeditor/src/Tests/CKEditorAdminTest.php
@@ -55,7 +55,7 @@ function testExistingFormat() {
     $this->drupalGet('admin/config/content/formats/manage/filtered_html');
 
     // Ensure no Editor config entity exists yet.
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
     $this->assertFalse($editor, 'No Editor config entity exists yet.');
 
     // Verify the "Text Editor" <select> when a text editor is available.
@@ -111,7 +111,7 @@ function testExistingFormat() {
 
     // Keep the "CKEditor" editor selected and click the "Configure" button.
     $this->drupalPostAjaxForm(NULL, $edit, 'editor_configure');
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
     $this->assertFalse($editor, 'No Editor config entity exists yet.');
 
     // Ensure that drupalSettings is correct.
@@ -142,7 +142,7 @@ function testExistingFormat() {
     // Ensure an Editor object exists now, with the proper settings.
     $expected_settings = $expected_default_settings;
     $expected_settings['plugins']['stylescombo']['styles'] = '';
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
     $this->assertTrue($editor instanceof Editor, 'An Editor config entity exists now.');
     $this->assertEqual($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
 
@@ -153,7 +153,7 @@ function testExistingFormat() {
     );
     $this->drupalPostForm(NULL, $edit, t('Save configuration'));
     $expected_settings['plugins']['stylescombo']['styles'] = "h1.title|Title\np.callout|Callout\n\n";
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
     $this->assertTrue($editor instanceof Editor, 'An Editor config entity exists.');
     $this->assertEqual($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
 
@@ -169,7 +169,7 @@ function testExistingFormat() {
       'editor[settings][toolbar][button_groups]' => json_encode($expected_settings['toolbar']['rows']),
     );
     $this->drupalPostForm(NULL, $edit, t('Save configuration'));
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
     $this->assertTrue($editor instanceof Editor, 'An Editor config entity exists.');
     $this->assertEqual($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
 
@@ -197,7 +197,7 @@ function testExistingFormat() {
     $this->drupalGet('admin/config/content/formats/manage/filtered_html');
     $ultra_llama_mode_checkbox = $this->xpath('//input[@type="checkbox" and @name="editor[settings][plugins][llama_contextual_and_button][ultra_llama_mode]" and not(@checked)]');
     $this->assertTrue(count($ultra_llama_mode_checkbox) === 1, 'The "Ultra llama mode" checkbox exists and is not checked.');
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
     $this->assertTrue($editor instanceof Editor, 'An Editor config entity exists.');
     $this->assertEqual($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
 
@@ -211,7 +211,7 @@ function testExistingFormat() {
     $ultra_llama_mode_checkbox = $this->xpath('//input[@type="checkbox" and @name="editor[settings][plugins][llama_contextual_and_button][ultra_llama_mode]" and @checked="checked"]');
     $this->assertTrue(count($ultra_llama_mode_checkbox) === 1, 'The "Ultra llama mode" checkbox exists and is checked.');
     $expected_settings['plugins']['llama_contextual_and_button']['ultra_llama_mode'] = TRUE;
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
     $this->assertTrue($editor instanceof Editor, 'An Editor config entity exists.');
     $this->assertEqual($expected_settings, $editor->getSettings());
   }
@@ -245,9 +245,9 @@ function testNewFormat() {
       'editor[editor]' => 'ckeditor',
     );
     $this->drupalPostAjaxForm(NULL, $edit, 'editor_configure');
-    $filter_format = FilterFormat::load('amazing_format');
+    $filter_format = entity_load('filter_format', 'amazing_format');
     $this->assertFalse($filter_format, 'No FilterFormat config entity exists yet.');
-    $editor = Editor::load('amazing_format');
+    $editor = entity_load('editor', 'amazing_format');
     $this->assertFalse($editor, 'No Editor config entity exists yet.');
 
     // Ensure the toolbar buttons configuration value is initialized to the
@@ -270,13 +270,13 @@ function testNewFormat() {
     $this->drupalPostForm(NULL, $edit, t('Save configuration'));
 
     // Ensure a FilterFormat object exists now.
-    $filter_format = FilterFormat::load('amazing_format');
+    $filter_format = entity_load('filter_format', 'amazing_format');
     $this->assertTrue($filter_format instanceof FilterFormatInterface, 'A FilterFormat config entity exists now.');
 
     // Ensure an Editor object exists now, with the proper settings.
     $expected_settings = $default_settings;
     $expected_settings['plugins']['stylescombo']['styles'] = '';
-    $editor = Editor::load('amazing_format');
+    $editor = entity_load('editor', 'amazing_format');
     $this->assertTrue($editor instanceof Editor, 'An Editor config entity exists now.');
     $this->assertEqual($this->castSafeStrings($expected_settings), $this->castSafeStrings($editor->getSettings()), 'The Editor config entity has the correct settings.');
   }
diff --git a/core/modules/ckeditor/src/Tests/CKEditorLoadingTest.php b/core/modules/ckeditor/src/Tests/CKEditorLoadingTest.php
index e14b6e3..e8de53b 100644
--- a/core/modules/ckeditor/src/Tests/CKEditorLoadingTest.php
+++ b/core/modules/ckeditor/src/Tests/CKEditorLoadingTest.php
@@ -100,7 +100,7 @@ function testLoading() {
     $this->drupalGet('node/add/article');
     list($settings, $editor_settings_present, $editor_js_present, $body, $format_selector) = $this->getThingsToCheck();
     $ckeditor_plugin = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
     $expected = array('formats' => array('filtered_html' => array(
       'format' => 'filtered_html',
       'editor' => 'ckeditor',
diff --git a/core/modules/ckeditor/src/Tests/CKEditorStylesComboAdminTest.php b/core/modules/ckeditor/src/Tests/CKEditorStylesComboAdminTest.php
deleted file mode 100644
index d70980e..0000000
--- a/core/modules/ckeditor/src/Tests/CKEditorStylesComboAdminTest.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-namespace Drupal\ckeditor\Tests;
-
-use Drupal\editor\Entity\Editor;
-use Drupal\simpletest\WebTestBase;
-use Drupal\filter\Entity\FilterFormat;
-
-/**
- * Tests administration of the CKEditor StylesCombo plugin.
- *
- * @group ckeditor
- */
-class CKEditorStylesComboAdminTest extends WebTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = ['filter', 'editor', 'ckeditor'];
-
-  /**
-   * A user with the 'administer filters' permission.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $adminUser;
-
-  /**
-   * A random generated format machine name.
-   *
-   * @var string
-   */
-  protected $format;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $this->format = strtolower($this->randomMachineName());
-    $filter_format = FilterFormat::create([
-      'format' => $this->format,
-      'name' => $this->randomString(),
-      'filters' => [],
-    ]);
-    $filter_format->save();
-    $editor = Editor::create([
-      'format' => $this->format,
-      'editor' => 'ckeditor',
-    ]);
-    $editor->save();
-
-    $this->adminUser = $this->drupalCreateUser(['administer filters']);
-  }
-
-  /**
-   * Tests StylesCombo settings for an existing text format.
-   */
-  function testExistingFormat() {
-    $ckeditor = $this->container->get('plugin.manager.editor')->createInstance('ckeditor');
-    $default_settings = $ckeditor->getDefaultSettings();
-
-    $this->drupalLogin($this->adminUser);
-    $this->drupalGet('admin/config/content/formats/manage/' . $this->format);
-
-    // Ensure an Editor config entity exists, with the proper settings.
-    $expected_settings = $default_settings;
-    $editor = Editor::load($this->format);
-    $this->assertEqual($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-
-    // Case 1: Configure the Styles plugin with different labels for each style,
-    // and ensure the updated settings are saved.
-    $this->drupalGet('admin/config/content/formats/manage/' . $this->format);
-    $edit = [
-      'editor[settings][plugins][stylescombo][styles]' => "h1.title|Title\np.callout|Callout\n\n",
-    ];
-    $this->drupalPostForm(NULL, $edit, t('Save configuration'));
-    $expected_settings['plugins']['stylescombo']['styles'] = "h1.title|Title\np.callout|Callout\n\n";
-    $editor = Editor::load($this->format);
-    $this->assertEqual($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-
-    // Case 2: Configure the Styles plugin with same labels for each style, and
-    // ensure that an error is displayed and that the updated settings are not
-    // saved.
-    $this->drupalGet('admin/config/content/formats/manage/' . $this->format);
-    $edit = [
-      'editor[settings][plugins][stylescombo][styles]' => "h1.title|Title\np.callout|Title\n\n",
-    ];
-    $this->drupalPostForm(NULL, $edit, t('Save configuration'));
-    $this->assertRaw(t('Each style must have a unique label.'));
-    $expected_settings['plugins']['stylescombo']['styles'] = "h1.title|Title\np.callout|Callout\n\n";
-    $editor = Editor::load($this->format);
-    $this->assertEqual($expected_settings, $editor->getSettings(), 'The Editor config entity has the correct settings.');
-  }
-
-}
diff --git a/core/modules/ckeditor/tests/modules/src/Kernel/CKEditorTest.php b/core/modules/ckeditor/tests/modules/src/Kernel/CKEditorTest.php
index 2bbd1e6..15e56b0 100644
--- a/core/modules/ckeditor/tests/modules/src/Kernel/CKEditorTest.php
+++ b/core/modules/ckeditor/tests/modules/src/Kernel/CKEditorTest.php
@@ -69,7 +69,7 @@ protected function setUp() {
    * Tests CKEditor::getJSSettings().
    */
   function testGetJSSettings() {
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
 
     // Default toolbar.
     $expected_config = $this->getDefaultInternalConfig() + array(
@@ -217,7 +217,7 @@ function testGetJSSettings() {
    * Tests CKEditor::buildToolbarJSSetting().
    */
   function testBuildToolbarJSSetting() {
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
 
     // Default toolbar.
     $expected = $this->getDefaultToolbarConfig();
@@ -248,7 +248,7 @@ function testBuildToolbarJSSetting() {
    * Tests CKEditor::buildContentsCssJSSetting().
    */
   function testBuildContentsCssJSSetting() {
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
 
     // Default toolbar.
     $expected = $this->getDefaultContentsCssConfig();
@@ -285,7 +285,7 @@ function testBuildContentsCssJSSetting() {
    * Tests Internal::getConfig().
    */
   function testInternalGetConfig() {
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
     $internal_plugin = $this->container->get('plugin.manager.ckeditor.plugin')->createInstance('internal');
 
     // Default toolbar.
@@ -306,7 +306,7 @@ function testInternalGetConfig() {
    * Tests StylesCombo::getConfig().
    */
   function testStylesComboGetConfig() {
-    $editor = Editor::load('filtered_html');
+    $editor = entity_load('editor', 'filtered_html');
     $stylescombo_plugin = $this->container->get('plugin.manager.ckeditor.plugin')->createInstance('stylescombo');
 
     // Styles dropdown/button enabled: new setting should be present.
diff --git a/core/modules/comment/comment.install b/core/modules/comment/comment.install
index b4fd6aa..3c6fa86 100644
--- a/core/modules/comment/comment.install
+++ b/core/modules/comment/comment.install
@@ -6,8 +6,6 @@
  */
 
 use Drupal\Core\Entity\EntityTypeInterface;
-use Drupal\Core\StringTranslation\PluralTranslatableMarkup;
-use Drupal\Core\StringTranslation\TranslatableMarkup;
 use Drupal\field\Entity\FieldStorageConfig;
 
 /**
@@ -136,46 +134,3 @@ function comment_update_8001() {
 function comment_update_8002() {
   // Empty update to cause a cache flush.
 }
-
-/**
- * @addtogroup updates-8.2.x
- * @{
- */
-
-/**
- * Add the 'view_mode' setting to displays having 'comment_default' formatter.
- */
-function comment_update_8200() {
-  $config_factory = \Drupal::configFactory();
-  $displays = [];
-  // Iterate on all entity view displays.
-  foreach ($config_factory->listAll('core.entity_view_display.') as $name) {
-    $changed = FALSE;
-    $display = $config_factory->getEditable($name);
-    $components = $display->get('content') ?: [];
-    foreach ($components as $field_name => $component) {
-      if (isset($component['type']) && ($component['type'] === 'comment_default')) {
-        if (empty($display->get("content.{$field_name}.settings.view_mode"))) {
-          $display->set("content.{$field_name}.settings.view_mode", 'default');
-          $displays[] = $display->get('id');
-          $changed = TRUE;
-        }
-      }
-    }
-
-    if ($changed) {
-      $display->save(TRUE);
-    }
-  }
-
-  if ($displays) {
-    return new PluralTranslatableMarkup(count($displays), '1 entity display updated: @displays.', '@count entity displays updated: @displays.', ['@displays' => implode(', ', $displays)]);
-  }
-  else {
-    return new TranslatableMarkup('No entity view display updated.');
-  }
-}
-
-/**
- * @} End of "addtogroup updates-8.2.x".
- */
diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index 8a1febc..40b4e40 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -14,7 +14,6 @@
 use Drupal\comment\Entity\CommentType;
 use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface;
-use Drupal\Core\Entity\Entity\EntityViewMode;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
@@ -757,43 +756,3 @@ function comment_preprocess_field(&$variables) {
 function comment_ranking() {
   return \Drupal::service('comment.statistics')->getRankingInfo();
 }
-
-/**
- * Implements hook_ENTITY_TYPE_presave() for entity_view_display entities.
- */
-function comment_entity_view_display_presave(EntityViewDisplayInterface $display) {
-  // Act only on comment view displays being disabled.
-  if ($display->isNew() || $display->getTargetEntityTypeId() !== 'comment' || $display->status()) {
-    return;
-  }
-  $storage = \Drupal::entityTypeManager()->getStorage('entity_view_display');
-  if (!$storage->loadUnchanged($display->getOriginalId())->status()) {
-    return;
-  }
-
-  // Disable the comment field formatter when the used view display is disabled.
-  foreach ($storage->loadMultiple() as $id => $view_display) {
-    $changed = FALSE;
-    /** @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface $view_display */
-    foreach ($view_display->getComponents() as $field => $component) {
-      if (isset($component['type']) && ($component['type'] === 'comment_default')) {
-        if ($component['settings']['view_mode'] === $display->getMode()) {
-          $view_display->removeComponent($field);
-          /** @var \Drupal\Core\Entity\EntityViewModeInterface $mode */
-          $mode = EntityViewMode::load($display->getTargetEntityTypeId() . '.' . $display->getMode());
-          $arguments = [
-            '@id' => $view_display->id(),
-            '@name' => $field,
-            '@display' => $mode->label(),
-            '@mode' => $display->getMode(),
-          ];
-          \Drupal::logger('system')->warning("View display '@id': Comment field formatter '@name' was disabled because it is using the comment view display '@display' (@mode) that was just disabled.", $arguments);
-          $changed = TRUE;
-        }
-      }
-    }
-    if ($changed) {
-      $view_display->save();
-    }
-  }
-}
diff --git a/core/modules/comment/config/schema/comment.schema.yml b/core/modules/comment/config/schema/comment.schema.yml
index a55488a..d9f5a77 100644
--- a/core/modules/comment/config/schema/comment.schema.yml
+++ b/core/modules/comment/config/schema/comment.schema.yml
@@ -4,9 +4,6 @@ field.formatter.settings.comment_default:
   type: mapping
   label: 'Comment display format settings'
   mapping:
-    view_mode:
-      type: string
-      label: 'The comment entity view mode to be used in this formatter'
     pager_id:
       type: integer
       label: 'Pager ID'
diff --git a/core/modules/comment/src/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php b/core/modules/comment/src/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php
index c7d9bba..80b1af4 100644
--- a/core/modules/comment/src/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php
+++ b/core/modules/comment/src/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php
@@ -3,7 +3,6 @@
 namespace Drupal\comment\Plugin\Field\FieldFormatter;
 
 use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface;
-use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Entity\EntityFormBuilderInterface;
 use Drupal\Core\Field\FieldItemListInterface;
@@ -37,7 +36,6 @@ class CommentDefaultFormatter extends FormatterBase implements ContainerFactoryP
    */
   public static function defaultSettings() {
     return array(
-      'view_mode' => 'default',
       'pager_id' => 0,
     ) + parent::defaultSettings();
   }
@@ -169,7 +167,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
           $comments_per_page = $comment_settings['per_page'];
           $comments = $this->storage->loadThread($entity, $field_name, $mode, $comments_per_page, $this->getSetting('pager_id'));
           if ($comments) {
-            $build = $this->viewBuilder->viewMultiple($comments, $this->getSetting('view_mode'));
+            $build = $this->viewBuilder->viewMultiple($comments);
             $build['pager']['#type'] = 'pager';
             // CommentController::commentPermalink() calculates the page number
             // where a specific comment appears and does a subrequest pointing to
@@ -219,16 +217,6 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element = array();
-    $view_modes = $this->getViewModes();
-    $element['view_mode'] = [
-      '#type' => 'select',
-      '#title' => $this->t('Comments view mode'),
-      '#description' => $this->t('Select the view mode used to show the list of comments.'),
-      '#default_value' => $this->getSetting('view_mode'),
-      '#options' => $view_modes,
-      // Only show the select element when there are more than one options.
-      '#access' => count($view_modes) > 1,
-    ];
     $element['pager_id'] = array(
       '#type' => 'select',
       '#title' => $this->t('Pager ID'),
@@ -243,41 +231,13 @@ public function settingsForm(array $form, FormStateInterface $form_state) {
    * {@inheritdoc}
    */
   public function settingsSummary() {
-    $view_mode = $this->getSetting('view_mode');
-    $view_modes = $this->getViewModes();
-    $view_mode_label = isset($view_modes[$view_mode]) ? $view_modes[$view_mode] : 'default';
-    $summary = [$this->t('Comment view mode: @mode', ['@mode' => $view_mode_label])];
-    if ($pager_id = $this->getSetting('pager_id')) {
-      $summary[] = $this->t('Pager ID: @id', ['@id' => $pager_id]);
-    }
-    return $summary;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function calculateDependencies() {
-    $dependencies = parent::calculateDependencies();
-    if ($mode = $this->getSetting('view_mode')) {
-      if ($bundle = $this->getFieldSetting('comment_type')) {
-        /** @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display */
-        if ($display = EntityViewDisplay::load("comment.$bundle.$mode")) {
-          $dependencies[$display->getConfigDependencyKey()][] = $display->getConfigDependencyName();
-        }
-      }
+    // Only show a summary if we're using a non-standard pager id.
+    if ($this->getSetting('pager_id')) {
+      return array($this->t('Pager ID: @id', array(
+        '@id' => $this->getSetting('pager_id'),
+      )));
     }
-    return $dependencies;
-  }
-
-  /**
-   * Provides a list of comment view modes for the configured comment type.
-   *
-   * @return array
-   *   Associative array keyed by view mode key and having the view mode label
-   *   as value.
-   */
-  protected function getViewModes() {
-    return $this->entityManager->getViewModeOptionsByBundle('comment', $this->getFieldSetting('comment_type'));
+    return array();
   }
 
 }
diff --git a/core/modules/comment/src/Plugin/migrate/source/d7/CommentType.php b/core/modules/comment/src/Plugin/migrate/source/d7/CommentType.php
index fc194b2..0ff0c36 100644
--- a/core/modules/comment/src/Plugin/migrate/source/d7/CommentType.php
+++ b/core/modules/comment/src/Plugin/migrate/source/d7/CommentType.php
@@ -30,7 +30,7 @@ public function query() {
     return $this->select('field_config_instance', 'fci')
       ->distinct()
       ->fields('fci', array('bundle'))
-      ->condition('fci.entity_type', 'comment');
+      ->condition('entity_type', 'comment');
   }
 
   /**
diff --git a/core/modules/comment/src/Tests/CommentInterfaceTest.php b/core/modules/comment/src/Tests/CommentInterfaceTest.php
index ba43224..a250614 100644
--- a/core/modules/comment/src/Tests/CommentInterfaceTest.php
+++ b/core/modules/comment/src/Tests/CommentInterfaceTest.php
@@ -5,9 +5,6 @@
 use Drupal\comment\CommentManagerInterface;
 use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface;
 use Drupal\comment\Entity\Comment;
-use Drupal\Component\Utility\Unicode;
-use Drupal\Core\Entity\Entity\EntityViewDisplay;
-use Drupal\Core\Entity\Entity\EntityViewMode;
 use Drupal\user\RoleInterface;
 use Drupal\filter\Entity\FilterFormat;
 
@@ -295,53 +292,4 @@ public function testAutoFilledHtmlSubject() {
     $this->assertEqual('(No subject)', Comment::load(2)->getSubject());
   }
 
-  /**
-   * Tests the comment formatter configured with a custom comment view mode.
-   */
-  public function testViewMode() {
-    $this->drupalLogin($this->webUser);
-    $this->drupalGet($this->node->toUrl());
-    $comment_text = $this->randomMachineName();
-    // Post a comment.
-    $this->postComment($this->node, $comment_text);
-
-    // Comment displayed in 'default' display mode found and has body text.
-    $comment_element = $this->cssSelect('.comment-wrapper');
-    $this->assertTrue(!empty($comment_element));
-    $this->assertRaw('<p>' . $comment_text . '</p>');
-
-    // Create a new comment entity view mode.
-    $mode = Unicode::strtolower($this->randomMachineName());
-    EntityViewMode::create([
-      'targetEntityType' => 'comment',
-      'id' => "comment.$mode",
-    ])->save();
-    // Create the corresponding entity view display for article node-type. Note
-    // that this new view display mode doesn't contain the comment body.
-    EntityViewDisplay::create([
-      'targetEntityType' => 'comment',
-      'bundle' => 'comment',
-      'mode' => $mode,
-    ])->setStatus(TRUE)->save();
-
-    /** @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface $node_display */
-    $node_display = EntityViewDisplay::load('node.article.default');
-    $formatter = $node_display->getComponent('comment');
-    // Change the node comment field formatter to use $mode mode instead of
-    // 'default' mode.
-    $formatter['settings']['view_mode'] = $mode;
-    $node_display
-      ->setComponent('comment', $formatter)
-      ->save();
-
-    // Reloading the node page to show the same node with its same comment but
-    // with a different display mode.
-    $this->drupalGet($this->node->toUrl());
-    // The comment should exist but without the body text because we used $mode
-    // mode this time.
-    $comment_element = $this->cssSelect('.comment-wrapper');
-    $this->assertTrue(!empty($comment_element));
-    $this->assertNoRaw('<p>' . $comment_text . '</p>');
-  }
-
 }
diff --git a/core/modules/comment/src/Tests/CommentPagerTest.php b/core/modules/comment/src/Tests/CommentPagerTest.php
index f07f322..760e25f 100644
--- a/core/modules/comment/src/Tests/CommentPagerTest.php
+++ b/core/modules/comment/src/Tests/CommentPagerTest.php
@@ -283,7 +283,6 @@ function testTwoPagers() {
         'weight' => 30,
         'settings' => array(
           'pager_id' => 1,
-          'view_mode' => 'default',
         )
       ))
       ->save();
diff --git a/core/modules/comment/src/Tests/CommentTestTrait.php b/core/modules/comment/src/Tests/CommentTestTrait.php
index f22d80f..959e94b 100644
--- a/core/modules/comment/src/Tests/CommentTestTrait.php
+++ b/core/modules/comment/src/Tests/CommentTestTrait.php
@@ -29,11 +29,8 @@
    *   CommentItemInterface::OPEN.
    * @param string $comment_type_id
    *   (optional) ID of comment type to use. Defaults to 'comment'.
-   * @param string $comment_view_mode
-   *   (optional) The comment view mode to be used in comment field formatter.
-   *   Defaults to 'full'.
    */
-  public function addDefaultCommentField($entity_type, $bundle, $field_name = 'comment', $default_value = CommentItemInterface::OPEN, $comment_type_id = 'comment', $comment_view_mode = 'full') {
+  public function addDefaultCommentField($entity_type, $bundle, $field_name = 'comment', $default_value = CommentItemInterface::OPEN, $comment_type_id = 'comment') {
     $entity_manager = \Drupal::entityManager();
     // Create the comment type if needed.
     $comment_type_storage = $entity_manager->getStorage('comment_type');
@@ -109,7 +106,6 @@ public function addDefaultCommentField($entity_type, $bundle, $field_name = 'com
           'label' => 'above',
           'type' => 'comment_default',
           'weight' => 20,
-          'settings' => array('view_mode' => $comment_view_mode),
         ))
         ->save();
       foreach ($entity_manager->getViewModes($entity_type) as $id => $view_mode) {
diff --git a/core/modules/comment/src/Tests/Update/CommentUpdateTest.php b/core/modules/comment/src/Tests/Update/CommentUpdateTest.php
deleted file mode 100644
index 61d187d..0000000
--- a/core/modules/comment/src/Tests/Update/CommentUpdateTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-namespace Drupal\comment\Tests\Update;
-
-use Drupal\system\Tests\Update\UpdatePathTestBase;
-
-/**
- * Tests that comment settings are properly updated during database updates.
- *
- * @group comment
- */
-class CommentUpdateTest extends UpdatePathTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8-rc1.filled.standard.php.gz',
-    ];
-  }
-
-  /**
-   * Tests comment_update_8200().
-   *
-   * @see comment_update_8200()
-   */
-  public function testCommentUpdate8101() {
-    // Load the 'node.article.default' entity view display config, and check
-    // that component 'comment' does not contain the 'view_mode' setting.
-    $config = $this->config('core.entity_view_display.node.article.default');
-    $this->assertNull($config->get('content.comment.settings.view_mode'));
-
-    // Load the 'node.forum.default' entity view display config, and check that
-    // component 'comment_forum' does not contain the 'view_mode' setting.
-    $config = $this->config('core.entity_view_display.node.forum.default');
-    $this->assertNull($config->get('content.comment_forum.settings.view_mode'));
-
-    // Run updates.
-    $this->runUpdates();
-
-    // Check that 'node.article.default' entity view display setting 'view_mode'
-    // has the value 'default'.
-    $config = $this->config('core.entity_view_display.node.article.default');
-    $this->assertIdentical($config->get('content.comment.settings.view_mode'), 'default');
-
-    // Check that 'node.forum.default' entity view display setting 'view_mode'
-    // has the value 'default'.
-    $config = $this->config('core.entity_view_display.node.forum.default');
-    $this->assertIdentical($config->get('content.comment_forum.settings.view_mode'), 'default');
-  }
-
-}
diff --git a/core/modules/comment/tests/src/Kernel/CommentDefaultFormatterCacheTagsTest.php b/core/modules/comment/tests/src/Kernel/CommentDefaultFormatterCacheTagsTest.php
index a95088e..cf21289 100644
--- a/core/modules/comment/tests/src/Kernel/CommentDefaultFormatterCacheTagsTest.php
+++ b/core/modules/comment/tests/src/Kernel/CommentDefaultFormatterCacheTagsTest.php
@@ -112,9 +112,7 @@ public function testCacheTags() {
     // Load commented entity so comment_count gets computed.
     // @todo Remove the $reset = TRUE parameter after
     //   https://www.drupal.org/node/597236 lands. It's a temporary work-around.
-    $storage = $this->container->get('entity_type.manager')->getStorage('entity_test');
-    $storage->resetCache([$commented_entity->id()]);
-    $commented_entity = $storage->load($commented_entity->id());
+    $commented_entity = entity_load('entity_test', $commented_entity->id(), TRUE);
 
     // Verify cache tags on the rendered entity when it has comments.
     $build = \Drupal::entityManager()
diff --git a/core/modules/comment/tests/src/Kernel/CommentIntegrationTest.php b/core/modules/comment/tests/src/Kernel/CommentIntegrationTest.php
deleted file mode 100644
index af73034..0000000
--- a/core/modules/comment/tests/src/Kernel/CommentIntegrationTest.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-namespace Drupal\Tests\comment\Kernel;
-
-use Drupal\comment\Entity\CommentType;
-use Drupal\Component\Utility\Unicode;
-use Drupal\Core\Database\Database;
-use Drupal\Core\Entity\Entity\EntityViewDisplay;
-use Drupal\Core\Entity\Entity\EntityViewMode;
-use Drupal\field\Entity\FieldConfig;
-use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\KernelTests\KernelTestBase;
-
-/**
- * Tests integration of comment with other components.
- *
- * @group comment
- */
-class CommentIntegrationTest extends KernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['comment', 'field', 'entity_test', 'user', 'system', 'dblog'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    $this->installEntitySchema('entity_test');
-    $this->installEntitySchema('user');
-    $this->installEntitySchema('comment');
-    $this->installSchema('dblog', ['watchdog']);
-
-    // Create a new 'comment' comment-type.
-    CommentType::create([
-      'id' => 'comment',
-      'label' => $this->randomString(),
-    ])->save();
-  }
-
-  /**
-   * Tests view mode setting integration.
-   *
-   * @see comment_entity_view_display_presave()
-   * @see CommentDefaultFormatter::calculateDependencies()
-   */
-  public function testViewMode() {
-    $mode = Unicode::strtolower($this->randomMachineName());
-    // Create a new comment view mode and a view display entity.
-    EntityViewMode::create([
-      'id' => "comment.$mode",
-      'targetEntityType' => 'comment',
-      'settings' => ['comment_type' => 'comment'],
-    ])->save();
-    EntityViewDisplay::create([
-      'targetEntityType' => 'comment',
-      'bundle' => 'comment',
-      'mode' => $mode,
-    ])->setStatus(TRUE)->save();
-
-    // Create a comment field attached to a host 'entity_test' entity.
-    FieldStorageConfig::create([
-      'entity_type' => 'entity_test',
-      'type' => 'comment',
-      'field_name' => $field_name = Unicode::strtolower($this->randomMachineName()),
-      'settings' => [
-        'comment_type' => 'comment',
-      ],
-    ])->save();
-    FieldConfig::create([
-      'entity_type' => 'entity_test',
-      'bundle' => 'entity_test',
-      'field_name' => $field_name,
-    ])->save();
-
-    $component = [
-      'type' => 'comment_default',
-      'settings' => ['view_mode' => $mode, 'pager_id' => 0],
-    ];
-    // Create a new 'entity_test' view display on host entity that uses the
-    // custom comment display in field formatter to show the field.
-    EntityViewDisplay::create([
-      'targetEntityType' => 'entity_test',
-      'bundle' => 'entity_test',
-      'mode' => 'default',
-    ])->setComponent($field_name, $component)->setStatus(TRUE)->save();
-
-    $host_display_id = 'entity_test.entity_test.default';
-    $comment_display_id = "comment.comment.$mode";
-
-    // Disable the "comment.comment.$mode" display.
-    EntityViewDisplay::load($comment_display_id)->setStatus(FALSE)->save();
-
-    /** @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface $host_display */
-    $host_display = EntityViewDisplay::load($host_display_id);
-
-    // Check that the field formatter has been disabled on host view display.
-    $this->assertNull($host_display->getComponent($field_name));
-    $this->assertTrue($host_display->get('hidden')[$field_name]);
-
-    // Check that the proper warning has been logged.
-    $arguments = [
-      '@id' => $host_display_id,
-      '@name' => $field_name,
-      '@display' => EntityViewMode::load("comment.$mode")->label(),
-      '@mode' => $mode,
-    ];
-    $logged = (bool) Database::getConnection()->select('watchdog')
-      ->fields('watchdog', ['wid'])
-      ->condition('type', 'system')
-      ->condition('message', "View display '@id': Comment field formatter '@name' was disabled because it is using the comment view display '@display' (@mode) that was just disabled.")
-      ->condition('variables', serialize($arguments))
-      ->execute()
-      ->fetchField();
-    $this->assertTrue($logged);
-
-    // Re-enable the comment view display.
-    EntityViewDisplay::load($comment_display_id)->setStatus(TRUE)->save();
-    // Re-enable the comment field formatter on host entity view display.
-    EntityViewDisplay::load($host_display_id)->setComponent($field_name, $component)->save();
-
-    // Delete the "comment.$mode" view mode.
-    EntityViewMode::load("comment.$mode")->delete();
-
-    // Check that the comment view display entity has been deleted too.
-    $this->assertNull(EntityViewDisplay::load($comment_display_id));
-
-    /** @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display */
-    $host_display = EntityViewDisplay::load($host_display_id);
-
-    // Check that the field formatter has been disabled on host view display.
-    $this->assertNull($host_display->getComponent($field_name));
-    $this->assertTrue($host_display->get('hidden')[$field_name]);
-  }
-
-}
diff --git a/core/modules/comment/tests/src/Kernel/CommentItemTest.php b/core/modules/comment/tests/src/Kernel/CommentItemTest.php
index 7b9a263..d0c4813 100644
--- a/core/modules/comment/tests/src/Kernel/CommentItemTest.php
+++ b/core/modules/comment/tests/src/Kernel/CommentItemTest.php
@@ -43,9 +43,7 @@ public function testCommentItem() {
 
     // Verify entity has been created properly.
     $id = $entity->id();
-    $storage = $this->container->get('entity_type.manager')->getStorage('entity_test');
-    $storage->resetCache([$id]);
-    $entity = $storage->load($id);
+    $entity = entity_load('entity_test', $id, TRUE);
     $this->assertTrue($entity->comment instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->comment[0] instanceof CommentItemInterface, 'Field item implements interface.');
 
diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d6/MigrateCommentTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d6/MigrateCommentTest.php
index 5330e94..b961201 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d6/MigrateCommentTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d6/MigrateCommentTest.php
@@ -56,7 +56,7 @@ public function testComments() {
     $this->assertIdentical('The first comment.', $comment->getSubject());
     $this->assertIdentical('The first comment body.', $comment->comment_body->value);
     $this->assertIdentical('filtered_html', $comment->comment_body->format);
-    $this->assertIdentical(NULL, $comment->pid->target_id);
+    $this->assertIdentical('0', $comment->pid->target_id);
     $this->assertIdentical('1', $comment->getCommentedEntityId());
     $this->assertIdentical('node', $comment->getCommentedEntityTypeId());
     $this->assertIdentical('en', $comment->language()->getId());
@@ -68,7 +68,7 @@ public function testComments() {
 
     $comment = $comment_storage->load(3);
     $this->assertIdentical('The second comment.', $comment->subject->value);
-    $this->assertIdentical(NULL, $comment->pid->target_id);
+    $this->assertIdentical('0', $comment->pid->target_id);
   }
 
 }
diff --git a/core/modules/config/config.install b/core/modules/config/config.install
deleted file mode 100644
index c971ae6..0000000
--- a/core/modules/config/config.install
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/**
- * @file
- * Install, update and uninstall functions for the config module.
- */
-
-/**
-* Implements hook_requirements().
-*/
-function config_requirements($phase) {
-  $requirements = [];
-  try {
-    $directory = config_get_config_directory(CONFIG_SYNC_DIRECTORY);
-  }
-  catch (\Exception $e) {
-    // system_requirements() guarantees that the CONFIG_SYNC_DIRECTORY exists
-    // as the config.storage.staging service relies on it.
-    $directory = FALSE;
-  }
-  // Ensure the configuration sync directory is writable. This is only a warning
-  // because only configuration import from a tarball requires the folder to be
-  // web writable.
-  if ($phase !== 'install' && !is_writable($directory)) {
-    $requirements['config directory ' . CONFIG_SYNC_DIRECTORY] = [
-      'title' => t('Configuration directory: %type', ['%type' => CONFIG_SYNC_DIRECTORY]),
-      'description' => t('The directory %directory is not writable.', ['%directory' => $directory]),
-      'severity' => REQUIREMENT_WARNING,
-    ];
-  }
-  return $requirements;
-}
diff --git a/core/modules/config/src/Form/ConfigImportForm.php b/core/modules/config/src/Form/ConfigImportForm.php
index 1d651d8..f95b7a5 100644
--- a/core/modules/config/src/Form/ConfigImportForm.php
+++ b/core/modules/config/src/Form/ConfigImportForm.php
@@ -50,11 +50,6 @@ public function getFormId() {
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
-    $directory = config_get_config_directory(CONFIG_SYNC_DIRECTORY);
-    $directory_is_writable = is_writable($directory);
-    if (!$directory_is_writable) {
-      drupal_set_message($this->t('The directory %directory is not writable.', ['%directory' => $directory]), 'error');
-    }
     $form['import_tarball'] = array(
       '#type' => 'file',
       '#title' => $this->t('Configuration archive'),
@@ -64,7 +59,6 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $form['submit'] = array(
       '#type' => 'submit',
       '#value' => $this->t('Upload'),
-      '#disabled' => !$directory_is_writable,
     );
     return $form;
   }
diff --git a/core/modules/config/src/Form/ConfigSingleImportForm.php b/core/modules/config/src/Form/ConfigSingleImportForm.php
index 09bc6f2..e458e25 100644
--- a/core/modules/config/src/Form/ConfigSingleImportForm.php
+++ b/core/modules/config/src/Form/ConfigSingleImportForm.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\config\Form;
 
-use Drupal\Component\Serialization\Exception\InvalidDataTypeException;
 use Drupal\Component\Serialization\Yaml;
 use Drupal\config\StorageReplaceDataWrapper;
 use Drupal\Core\Config\ConfigImporter;
@@ -282,13 +281,8 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
       return;
     }
 
-    try {
-      // Decode the submitted import.
-      $data = Yaml::decode($form_state->getValue('import'));
-    }
-    catch (InvalidDataTypeException $e) {
-      $form_state->setErrorByName('import', $this->t('The import failed with the following message: %message', ['%message' => $e->getMessage()]));
-    }
+    // Decode the submitted import.
+    $data = Yaml::decode($form_state->getValue('import'));
 
     // Validate for config entities.
     if ($form_state->getValue('config_type') !== 'system.simple') {
diff --git a/core/modules/config/src/Tests/ConfigImportUploadTest.php b/core/modules/config/src/Tests/ConfigImportUploadTest.php
index 9836d77..445ca9f 100644
--- a/core/modules/config/src/Tests/ConfigImportUploadTest.php
+++ b/core/modules/config/src/Tests/ConfigImportUploadTest.php
@@ -45,16 +45,6 @@ function testImport() {
     $edit = array('files[import_tarball]' => drupal_realpath($text_file->uri));
     $this->drupalPostForm('admin/config/development/configuration/full/import', $edit, t('Upload'));
     $this->assertText(t('Could not extract the contents of the tar file'));
-
-    // Make the sync directory read-only.
-    $directory = config_get_config_directory(CONFIG_SYNC_DIRECTORY);
-    \Drupal::service('file_system')->chmod($directory, 0555);
-    $this->drupalGet('admin/config/development/configuration/full/import');
-    $this->assertRaw(t('The directory %directory is not writable.', ['%directory' => $directory]));
-    // Ensure submit button for \Drupal\config\Form\ConfigImportForm is
-    // disabled.
-    $submit_is_disabled = $this->cssSelect('form.config-import-form input[type="submit"]:disabled');
-    $this->assertTrue(count($submit_is_disabled) === 1, 'The submit button is disabled.');
   }
 
 }
diff --git a/core/modules/config/src/Tests/ConfigInstallWebTest.php b/core/modules/config/src/Tests/ConfigInstallWebTest.php
index 083b123..4b18a4c 100644
--- a/core/modules/config/src/Tests/ConfigInstallWebTest.php
+++ b/core/modules/config/src/Tests/ConfigInstallWebTest.php
@@ -26,7 +26,7 @@ class ConfigInstallWebTest extends WebTestBase {
   protected function setUp() {
     parent::setUp();
 
-    $this->adminUser = $this->drupalCreateUser(array('administer modules', 'administer themes', 'administer site configuration'));
+    $this->adminUser = $this->drupalCreateUser(array('administer modules', 'administer themes'));
 
     // Ensure the global variable being asserted by this test does not exist;
     // a previous test executed in this request/process might have set it.
@@ -180,7 +180,7 @@ public function testUnmetDependenciesInstall() {
     // not depend on config_test and order is important.
     $this->drupalPostForm('admin/modules', array('modules[Testing][config_test][enable]' => TRUE), t('Install'));
     $this->drupalPostForm('admin/modules', array('modules[Testing][config_install_dependency_test][enable]' => TRUE), t('Install'));
-    $this->assertRaw('Unable to install Config install dependency test, <em class="placeholder">config_other_module_config_test.weird_simple_config, config_test.dynamic.other_module_test_with_dependency</em> have unmet dependencies.');
+    $this->assertRaw('Unable to install Config install dependency test, <em class="placeholder">config_test.dynamic.other_module_test_with_dependency</em> has unmet dependencies.');
 
     $this->drupalPostForm('admin/modules', array('modules[Testing][config_other_module_config_test][enable]' => TRUE), t('Install'));
     $this->drupalPostForm('admin/modules', array('modules[Testing][config_install_dependency_test][enable]' => TRUE), t('Install'));
@@ -188,22 +188,4 @@ public function testUnmetDependenciesInstall() {
     $this->assertTrue(entity_load('config_test', 'other_module_test_with_dependency'), 'The config_test.dynamic.other_module_test_with_dependency configuration has been created during install.');
   }
 
-  /**
-   * Tests config_requirements().
-   */
-  public function testConfigModuleRequirements() {
-    $this->drupalLogin($this->adminUser);
-    $this->drupalPostForm('admin/modules', array('modules[Core][config][enable]' => TRUE), t('Install'));
-
-    $directory = config_get_config_directory(CONFIG_SYNC_DIRECTORY);
-    file_unmanaged_delete_recursive($directory);
-    $this->drupalGet('/admin/reports/status');
-    $this->assertRaw(t('The directory %directory does not exist.', array('%directory' => $directory)));
-
-    file_prepare_directory($directory, FILE_CREATE_DIRECTORY);
-    \Drupal::service('file_system')->chmod($directory, 0555);
-    $this->drupalGet('/admin/reports/status');
-    $this->assertRaw(t('The directory %directory is not writable.', ['%directory' => $directory]));
-  }
-
 }
diff --git a/core/modules/config/src/Tests/ConfigOtherModuleTest.php b/core/modules/config/src/Tests/ConfigOtherModuleTest.php
index 56c4b31..8ad1e19 100644
--- a/core/modules/config/src/Tests/ConfigOtherModuleTest.php
+++ b/core/modules/config/src/Tests/ConfigOtherModuleTest.php
@@ -85,16 +85,11 @@ public function testInstallConfigEntityModuleFirst() {
    */
   public function testUninstall() {
     $this->installModule('views');
-    $storage = $this->container->get('entity_type.manager')->getStorage('view');
-    $storage->resetCache(array('frontpage'));
-    $this->assertTrue($storage->load('frontpage') === NULL, 'After installing Views, frontpage view which is dependant on the Node and Views modules does not exist.');
+    $this->assertTrue(entity_load('view', 'frontpage', TRUE) === NULL, 'After installing Views, frontpage view which is dependant on the Node and Views modules does not exist.');
     $this->installModule('node');
-    $storage->resetCache(array('frontpage'));
-    $this->assertTrue($storage->load('frontpage') !== NULL, 'After installing Node, frontpage view which is dependant on the Node and Views modules exists.');
+    $this->assertTrue(entity_load('view', 'frontpage', TRUE) !== NULL, 'After installing Node, frontpage view which is dependant on the Node and Views modules exists.');
     $this->uninstallModule('node');
-    $storage = $this->container->get('entity_type.manager')->getStorage('view');
-    $storage->resetCache(array('frontpage'));
-    $this->assertTrue($storage->load('frontpage') === NULL, 'After uninstalling Node, frontpage view which is dependant on the Node and Views modules does not exist.');
+    $this->assertTrue(entity_load('view', 'frontpage', TRUE) === NULL, 'After uninstalling Node, frontpage view which is dependant on the Node and Views modules does not exist.');
   }
 
   /**
diff --git a/core/modules/config/src/Tests/ConfigSingleImportExportTest.php b/core/modules/config/src/Tests/ConfigSingleImportExportTest.php
index 876cbfd..37cdae8 100644
--- a/core/modules/config/src/Tests/ConfigSingleImportExportTest.php
+++ b/core/modules/config/src/Tests/ConfigSingleImportExportTest.php
@@ -37,16 +37,6 @@ public function testImport() {
     $uuid = \Drupal::service('uuid');
 
     $this->drupalLogin($this->drupalCreateUser(array('import configuration')));
-
-    // Attempt an import with invalid YAML.
-    $edit = [
-      'config_type' => 'action',
-      'import' => '{{{',
-    ];
-
-    $this->drupalPostForm('admin/config/development/configuration/single/import', $edit, t('Import'));
-    $this->assertText('The import failed with the following message: Malformed inline YAML string ({{{) at line 1 (near &quot;{{{&quot;)');
-
     $import = <<<EOD
 label: First
 weight: 0
diff --git a/core/modules/config/tests/config_install_dependency_test/config/install/config_other_module_config_test.weird_simple_config.yml b/core/modules/config/tests/config_install_dependency_test/config/install/config_other_module_config_test.weird_simple_config.yml
deleted file mode 100644
index 20e9ff3..0000000
--- a/core/modules/config/tests/config_install_dependency_test/config/install/config_other_module_config_test.weird_simple_config.yml
+++ /dev/null
@@ -1 +0,0 @@
-foo: bar
diff --git a/core/modules/config/tests/config_other_module_config_test/config/schema/config_other_module_config_test.schema.yml b/core/modules/config/tests/config_other_module_config_test/config/schema/config_other_module_config_test.schema.yml
deleted file mode 100644
index 9025158..0000000
--- a/core/modules/config/tests/config_other_module_config_test/config/schema/config_other_module_config_test.schema.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-config_other_module_config_test.weird_simple_config:
-  type: config_object
-  mapping:
-    foo:
-      type: string
diff --git a/core/modules/config/tests/config_test/config_test.routing.yml b/core/modules/config/tests/config_test/config_test.routing.yml
index 15fea1b..4761ecf 100644
--- a/core/modules/config/tests/config_test/config_test.routing.yml
+++ b/core/modules/config/tests/config_test/config_test.routing.yml
@@ -21,7 +21,7 @@ entity.config_test.edit_form:
   requirements:
     _permission: 'administer site configuration'
 
-entity.config_test_no_status.edit_form:
+entity.config_test.edit_form_config_test_no_status:
   path: '/admin/structure/config_test/manage/{config_test_no_status}'
   defaults:
     _entity_form: config_test_no_status
diff --git a/core/modules/config_translation/config_translation.services.yml b/core/modules/config_translation/config_translation.services.yml
index 4baaffa..e6c00b6 100644
--- a/core/modules/config_translation/config_translation.services.yml
+++ b/core/modules/config_translation/config_translation.services.yml
@@ -20,7 +20,7 @@ services:
   plugin.manager.config_translation.mapper:
     class: Drupal\config_translation\ConfigMapperManager
     arguments:
-      - '@cache.discovery'
+      - '@cache.default'
       - '@language_manager'
       - '@module_handler'
       - '@config.typed'
diff --git a/core/modules/config_translation/migration_templates/d6_i18n_system_maintenance.yml b/core/modules/config_translation/migration_templates/d6_i18n_system_maintenance.yml
deleted file mode 100644
index c227019..0000000
--- a/core/modules/config_translation/migration_templates/d6_i18n_system_maintenance.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-id: d6_i18n_system_maintenance
-label: Maintenance page configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: i18n_variable
-  variables:
-    - site_offline_message
-process:
-  langcode: language
-  message: site_offline_message
-destination:
-  plugin: config
-  config_name: system.maintenance
diff --git a/core/modules/config_translation/migration_templates/d6_i18n_system_site.yml b/core/modules/config_translation/migration_templates/d6_i18n_system_site.yml
deleted file mode 100644
index 9c9337c..0000000
--- a/core/modules/config_translation/migration_templates/d6_i18n_system_site.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-id: d6_i18n_system_site
-label: Site configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: i18n_variable
-  constants:
-    slash: '/'
-  variables:
-    - site_name
-    - site_mail
-    - site_slogan
-    - site_frontpage
-    - site_403
-    - site_404
-process:
-  langcode: language
-  name: site_name
-  mail: site_mail
-  slogan: site_slogan
-  'page/front':
-    plugin: concat
-    source:
-      - constants/slash
-      - site_frontpage
-  'page/403':
-    plugin: concat
-    source:
-      - constants/slash
-      - site_403
-  'page/404':
-    plugin: concat
-    source:
-      - constants/slash
-      - site_404
-destination:
-  plugin: config
-  config_name: system.site
diff --git a/core/modules/config_translation/migration_templates/d6_i18n_user_mail.yml b/core/modules/config_translation/migration_templates/d6_i18n_user_mail.yml
deleted file mode 100644
index b3c916f..0000000
--- a/core/modules/config_translation/migration_templates/d6_i18n_user_mail.yml
+++ /dev/null
@@ -1,68 +0,0 @@
-id: d6_i18n_user_mail
-label: User mail configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: i18n_variable
-  variables:
-    - user_mail_status_activated_subject
-    - user_mail_status_activated_body
-    - user_mail_password_reset_subject
-    - user_mail_password_reset_body
-    - user_mail_status_deleted_subject
-    - user_mail_status_deleted_body
-    - user_mail_register_admin_created_subject
-    - user_mail_register_admin_created_body
-    - user_mail_register_no_approval_required_subject
-    - user_mail_register_no_approval_required_body
-    - user_mail_register_pending_approval_subject
-    - user_mail_register_pending_approval_body
-    - user_mail_status_blocked_subject
-    - user_mail_status_blocked_body
-process:
-  langcode: language
-  'status_activated/subject':
-    plugin: convert_tokens
-    source: user_mail_status_activated_subject
-  'status_activated/body':
-    plugin: convert_tokens
-    source: user_mail_status_activated_body
-  'password_reset/subject':
-    plugin: convert_tokens
-    source: user_mail_password_reset_subject
-  'password_reset/body':
-    plugin: convert_tokens
-    source: user_mail_password_reset_body
-  'cancel_confirm/subject':
-    plugin: convert_tokens
-    source: user_mail_status_deleted_subject
-  'cancel_confirm/body':
-    plugin: convert_tokens
-    source: user_mail_status_deleted_body
-  'register_admin_created/subject':
-    plugin: convert_tokens
-    source: user_mail_register_admin_created_subject
-  'register_admin_created/body':
-    plugin: convert_tokens
-    source: user_mail_register_admin_created_body
-  'register_no_approval_required/subject':
-    plugin: convert_tokens
-    source: user_mail_register_no_approval_required_subject
-  'register_no_approval_required/body':
-    plugin: convert_tokens
-    source: user_mail_register_no_approval_required_body
-  'register_pending_approval/subject':
-    plugin: convert_tokens
-    source: user_mail_register_pending_approval_subject
-  'register_pending_approval/body':
-    plugin: convert_tokens
-    source: user_mail_register_pending_approval_body
-  'status_blocked/subject':
-    plugin: convert_tokens
-    source: user_mail_status_blocked_subject
-  'status_blocked/body':
-    plugin: convert_tokens
-    source: user_mail_status_blocked_body
-destination:
-  plugin: config
-  config_name: user.mail
diff --git a/core/modules/config_translation/migration_templates/d6_i18n_user_settings.yml b/core/modules/config_translation/migration_templates/d6_i18n_user_settings.yml
deleted file mode 100644
index 979a74a..0000000
--- a/core/modules/config_translation/migration_templates/d6_i18n_user_settings.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-id: d6_i18n_user_settings
-label: User configuration
-migration_tags:
-  - Drupal 6
-source:
-  plugin: i18n_variable
-  variables:
-    - user_mail_status_blocked_notify
-    - user_mail_status_activated_notify
-    - user_email_verification
-    - user_register
-    - anonymous
-process:
-  langcode: language
-  'notify/status_blocked': user_mail_status_blocked_notify
-  'notify/status_activated': user_mail_status_activated_notify
-  verify_mail: user_email_verification
-  register:
-    plugin: static_map
-    source: user_register
-    default_value: visitors_admin_approval
-    map:
-      2: visitors_admin_approval
-      1: visitors
-      0: admin_only
-  anonymous: anonymous
-destination:
-  plugin: config
-  config_name: user.settings
diff --git a/core/modules/config_translation/src/Access/ConfigTranslationFormAccess.php b/core/modules/config_translation/src/Access/ConfigTranslationFormAccess.php
index 82d988a..4e041ce 100644
--- a/core/modules/config_translation/src/Access/ConfigTranslationFormAccess.php
+++ b/core/modules/config_translation/src/Access/ConfigTranslationFormAccess.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\config_translation\Access;
 
-use Drupal\config_translation\ConfigMapperInterface;
-use Drupal\config_translation\Exception\ConfigMapperLanguageException;
 use Drupal\Core\Access\AccessResult;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\Core\Session\AccountInterface;
@@ -14,68 +12,27 @@
 class ConfigTranslationFormAccess extends ConfigTranslationOverviewAccess {
 
   /**
-   * Checks access to the overview based on permissions and translatability.
-   *
-   * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
-   *   The route_match to check against.
-   * @param \Drupal\Core\Session\AccountInterface $account
-   *   The account to check access for.
-   * @param string $langcode
-   *   The language code of the target language.
-   *
-   * @return \Drupal\Core\Access\AccessResultInterface
-   *   The access result.
+   * {@inheritdoc}
    */
   public function access(RouteMatchInterface $route_match, AccountInterface $account, $langcode = NULL) {
-    $mapper = $this->getMapperFromRouteMatch($route_match);
-
-    try {
-      $source_langcode = $mapper->getLangcode();
-      $source_language = $this->languageManager->getLanguage($source_langcode);
-
+    // For the translation forms we have a target language, so we need some
+    // checks in addition to the checks performed for the translation overview.
+    $base_access = parent::access($route_match, $account);
+    if ($base_access->isAllowed()) {
       $target_language = $this->languageManager->getLanguage($langcode);
 
-      return $this->doCheckAccess($account, $mapper, $source_language, $target_language);
-    }
-    catch (ConfigMapperLanguageException $exception) {
-      return AccessResult::forbidden();
-    }
-  }
-
-  /**
-   * Checks access given an account, configuration mapper, and source language.
-   *
-   * In addition to the checks performed by
-   * ConfigTranslationOverviewAccess::doCheckAccess() this makes sure the target
-   * language is not locked and the target language is not the source language.
-   *
-   * Although technically configuration can be overlaid with translations in the
-   * same language, that is logically not a good idea.
-   *
-   * @param \Drupal\Core\Session\AccountInterface $account
-   *   The account to check access for.
-   * @param \Drupal\config_translation\ConfigMapperInterface $mapper
-   *   The configuration mapper to check access for.
-   * @param \Drupal\Core\Language\LanguageInterface|null $source_language
-   *   The source language to check for, if any.
-   * @param \Drupal\Core\Language\LanguageInterface|null $target_language
-   *   The target language to check for, if any.
-   *
-   * @return \Drupal\Core\Access\AccessResultInterface
-   *   The result of the access check.
-   *
-   * @see \Drupal\config_translation\Access\ConfigTranslationOverviewAccess::doCheckAccess()
-   */
-  protected function doCheckAccess(AccountInterface $account, ConfigMapperInterface $mapper, $source_language = NULL, $target_language = NULL) {
-    $base_access_result = parent::doCheckAccess($account, $mapper, $source_language);
-
-    $access =
-      $target_language &&
-      !$target_language->isLocked() &&
-      (!$source_language || ($target_language->getId() !== $source_language->getId()));
-
-    return $base_access_result->andIf(AccessResult::allowedIf($access));
+      // Make sure that the target language is not locked, and that the target
+      // language is not the original submission language. Although technically
+      // configuration can be overlaid with translations in the same language,
+      // that is logically not a good idea.
+      $access =
+        !empty($target_language) &&
+        !$target_language->isLocked() &&
+        (empty($this->sourceLanguage) || ($target_language->getId() != $this->sourceLanguage->getId()));
 
+      return $base_access->andIf(AccessResult::allowedIf($access));
+    }
+    return $base_access;
   }
 
 }
diff --git a/core/modules/config_translation/src/Access/ConfigTranslationOverviewAccess.php b/core/modules/config_translation/src/Access/ConfigTranslationOverviewAccess.php
index 6d3690f..91ccf49 100644
--- a/core/modules/config_translation/src/Access/ConfigTranslationOverviewAccess.php
+++ b/core/modules/config_translation/src/Access/ConfigTranslationOverviewAccess.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\config_translation\Access;
 
-use Drupal\config_translation\ConfigMapperInterface;
-use Drupal\config_translation\Exception\ConfigMapperLanguageException;
 use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\config_translation\ConfigMapperManagerInterface;
 use Drupal\Core\Access\AccessResult;
@@ -31,6 +29,13 @@ class ConfigTranslationOverviewAccess implements AccessInterface {
   protected $languageManager;
 
   /**
+   * The source language.
+   *
+   * @var \Drupal\Core\Language\LanguageInterface
+   */
+  protected $sourceLanguage;
+
+  /**
    * Constructs a ConfigTranslationOverviewAccess object.
    *
    * @param \Drupal\config_translation\ConfigMapperManagerInterface $config_mapper_manager
@@ -49,66 +54,28 @@ public function __construct(ConfigMapperManagerInterface $config_mapper_manager,
    * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
    *   The route_match to check against.
    * @param \Drupal\Core\Session\AccountInterface $account
-   *   The account to check access for.
+   *   The currently logged in account.
    *
    * @return \Drupal\Core\Access\AccessResultInterface
    *   The access result.
    */
   public function access(RouteMatchInterface $route_match, AccountInterface $account) {
-    $mapper = $this->getMapperFromRouteMatch($route_match);
-
-    try {
-      $langcode = $mapper->getLangcode();
-    }
-    catch (ConfigMapperLanguageException $exception) {
-      // ConfigTranslationController shows a helpful message if the language
-      // codes do not match, so do not let that prevent granting access.
-      $langcode = 'en';
-    }
-    $source_language = $this->languageManager->getLanguage($langcode);
+    $route = $route_match->getRouteObject();
 
-    return $this->doCheckAccess($account, $mapper, $source_language);
-  }
-
-  /**
-   * Gets a configuration mapper using a route match.
-   *
-   * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
-   *   The route match to populate the mapper with.
-   *
-   * @return \Drupal\config_translation\ConfigMapperInterface
-   *   The configuration mapper.
-   */
-  protected function getMapperFromRouteMatch(RouteMatchInterface $route_match) {
-    $mapper = $this->configMapperManager->createInstance($route_match->getRouteObject()
-      ->getDefault('plugin_id'));
+    /** @var \Drupal\config_translation\ConfigMapperInterface $mapper */
+    $mapper = $this->configMapperManager->createInstance($route->getDefault('plugin_id'));
     $mapper->populateFromRouteMatch($route_match);
-    return $mapper;
-  }
+    $this->sourceLanguage = $this->languageManager->getLanguage($mapper->getLangcode());
 
-  /**
-   * Checks access given an account, configuration mapper, and source language.
-   *
-   * Grants access if the proper permission is granted to the account, the
-   * configuration has translatable pieces, and the source language is not
-   * locked given it is present.
-   *
-   * @param \Drupal\Core\Session\AccountInterface $account
-   *   The account to check access for.
-   * @param \Drupal\config_translation\ConfigMapperInterface $mapper
-   *   The configuration mapper to check access for.
-   * @param \Drupal\Core\Language\LanguageInterface|null $source_language
-   *   The source language to check for, if any.
-   *
-   * @return \Drupal\Core\Access\AccessResultInterface
-   *   The result of the access check.
-   */
-  protected function doCheckAccess(AccountInterface $account, ConfigMapperInterface $mapper, $source_language = NULL) {
+    // Allow access to the translation overview if the proper permission is
+    // granted, the configuration has translatable pieces, and the source
+    // language is not locked if it is present.
+    $source_language_access = is_null($this->sourceLanguage) || !$this->sourceLanguage->isLocked();
     $access =
       $account->hasPermission('translate configuration') &&
       $mapper->hasSchema() &&
       $mapper->hasTranslatable() &&
-      (!$source_language || !$source_language->isLocked());
+      $source_language_access;
 
     return AccessResult::allowedIf($access)->cachePerPermissions();
   }
diff --git a/core/modules/config_translation/src/ConfigMapperInterface.php b/core/modules/config_translation/src/ConfigMapperInterface.php
index 57c1ccd..be26d4e 100644
--- a/core/modules/config_translation/src/ConfigMapperInterface.php
+++ b/core/modules/config_translation/src/ConfigMapperInterface.php
@@ -203,17 +203,6 @@ public function getConfigData();
   public function getLangcode();
 
   /**
-   * Returns the language code of a configuration object given its name.
-   *
-   * @param string $config_name
-   *   The name of the configuration object.
-   *
-   * @return string
-   *   The language code of the configuration object.
-   */
-  public function getLangcodeFromConfig($config_name);
-
-  /**
    * Sets the original language code.
    *
    * @param string $langcode
diff --git a/core/modules/config_translation/src/ConfigNamesMapper.php b/core/modules/config_translation/src/ConfigNamesMapper.php
index bb82fe5..5b6028a 100644
--- a/core/modules/config_translation/src/ConfigNamesMapper.php
+++ b/core/modules/config_translation/src/ConfigNamesMapper.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\config_translation;
 
-use Drupal\config_translation\Exception\ConfigMapperLanguageException;
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Config\TypedConfigManagerInterface;
 use Drupal\Core\Language\LanguageInterface;
@@ -381,10 +380,17 @@ public function getTypeLabel() {
    * {@inheritdoc}
    */
   public function getLangcode() {
-    $langcodes = array_map([$this, 'getLangcodeFromConfig'], $this->getConfigNames());
+    $config_factory = $this->configFactory;
+    $langcodes = array_map(function($name) use ($config_factory) {
+      // Default to English if no language code was provided in the file.
+      // Although it is a best practice to include a language code, if the
+      // developer did not think about a multilingual use-case, we fall back
+      // on assuming the file is English.
+      return $config_factory->get($name)->get('langcode') ?: 'en';
+    }, $this->getConfigNames());
 
     if (count(array_unique($langcodes)) > 1) {
-      throw new ConfigMapperLanguageException('A config mapper can only contain configuration for a single language.');
+      throw new \RuntimeException('A config mapper can only contain configuration for a single language.');
     }
 
     return reset($langcodes);
@@ -393,17 +399,6 @@ public function getLangcode() {
   /**
    * {@inheritdoc}
    */
-  public function getLangcodeFromConfig($config_name) {
-    // Default to English if no language code was provided in the file.
-    // Although it is a best practice to include a language code, if the
-    // developer did not think about a multilingual use case, we fall back
-    // on assuming the file is English.
-    return $this->configFactory->get($config_name)->get('langcode') ?: 'en';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function setLangcode($langcode) {
     $this->langcode = $langcode;
     return $this;
diff --git a/core/modules/config_translation/src/Controller/ConfigTranslationController.php b/core/modules/config_translation/src/Controller/ConfigTranslationController.php
index 927a1e2..376def0 100644
--- a/core/modules/config_translation/src/Controller/ConfigTranslationController.php
+++ b/core/modules/config_translation/src/Controller/ConfigTranslationController.php
@@ -3,14 +3,11 @@
 namespace Drupal\config_translation\Controller;
 
 use Drupal\config_translation\ConfigMapperManagerInterface;
-use Drupal\config_translation\Exception\ConfigMapperLanguageException;
 use Drupal\Core\Access\AccessManagerInterface;
 use Drupal\Core\Controller\ControllerBase;
 use Drupal\Core\Language\Language;
-use Drupal\Core\Language\LanguageInterface;
 use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\PathProcessor\InboundPathProcessorInterface;
-use Drupal\Core\Render\RendererInterface;
 use Drupal\Core\Routing\RouteMatch;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\Core\Session\AccountInterface;
@@ -67,13 +64,6 @@ class ConfigTranslationController extends ControllerBase {
   protected $languageManager;
 
   /**
-   * The renderer.
-   *
-   * @var \Drupal\Core\Render\RendererInterface
-   */
-  protected $renderer;
-
-  /**
    * Constructs a ConfigTranslationController.
    *
    * @param \Drupal\config_translation\ConfigMapperManagerInterface $config_mapper_manager
@@ -88,17 +78,14 @@ class ConfigTranslationController extends ControllerBase {
    *   The current user.
    * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
    *   The language manager.
-   * @param \Drupal\Core\Render\RendererInterface $renderer
-   *   The renderer.
    */
-  public function __construct(ConfigMapperManagerInterface $config_mapper_manager, AccessManagerInterface $access_manager, RequestMatcherInterface $router, InboundPathProcessorInterface $path_processor, AccountInterface $account, LanguageManagerInterface $language_manager, RendererInterface $renderer) {
+  public function __construct(ConfigMapperManagerInterface $config_mapper_manager, AccessManagerInterface $access_manager, RequestMatcherInterface $router, InboundPathProcessorInterface $path_processor, AccountInterface $account, LanguageManagerInterface $language_manager) {
     $this->configMapperManager = $config_mapper_manager;
     $this->accessManager = $access_manager;
     $this->router = $router;
     $this->pathProcessor = $path_processor;
     $this->account = $account;
     $this->languageManager = $language_manager;
-    $this->renderer = $renderer;
   }
 
   /**
@@ -111,8 +98,7 @@ public static function create(ContainerInterface $container) {
       $container->get('router'),
       $container->get('path_processor_manager'),
       $container->get('current_user'),
-      $container->get('language_manager'),
-      $container->get('renderer')
+      $container->get('language_manager')
     );
   }
 
@@ -141,33 +127,7 @@ public function itemPage(Request $request, RouteMatchInterface $route_match, $pl
     if (count($languages) == 1) {
       drupal_set_message($this->t('In order to translate configuration, the website must have at least two <a href=":url">languages</a>.', array(':url' => $this->url('entity.configurable_language.collection'))), 'warning');
     }
-
-    try {
-      $original_langcode = $mapper->getLangcode();
-      $operations_access = TRUE;
-    }
-    catch (ConfigMapperLanguageException $exception) {
-      $items = [];
-      foreach ($mapper->getConfigNames() as $config_name) {
-        $langcode = $mapper->getLangcodeFromConfig($config_name);
-        $items[] = $this->t('@name: @langcode', [
-          '@name' => $config_name,
-          '@langcode'  => $langcode,
-        ]);
-      }
-      $message = [
-        'message' => ['#markup' => $this->t('The configuration objects have different language codes so they cannot be translated:')],
-        'items' => [
-          '#theme' => 'item_list',
-          '#items' => $items,
-        ],
-      ];
-      drupal_set_message($this->renderer->renderPlain($message), 'warning');
-
-      $original_langcode = LanguageInterface::LANGCODE_NOT_SPECIFIED;
-      $operations_access = FALSE;
-    }
-
+    $original_langcode = $mapper->getLangcode();
     if (!isset($languages[$original_langcode])) {
       // If the language is not configured on the site, create a dummy language
       // object for this listing only to ensure the user gets useful info.
@@ -245,9 +205,6 @@ public function itemPage(Request $request, RouteMatchInterface $route_match, $pl
       $page['languages'][$langcode]['operations'] = array(
         '#type' => 'operations',
         '#links' => $operations,
-        // Even if the mapper contains multiple language codes, the source
-        // configuration can still be edited.
-        '#access' => ($langcode == $original_langcode) || $operations_access,
       );
     }
     return $page;
diff --git a/core/modules/config_translation/src/Exception/ConfigMapperLanguageException.php b/core/modules/config_translation/src/Exception/ConfigMapperLanguageException.php
deleted file mode 100644
index db4d202..0000000
--- a/core/modules/config_translation/src/Exception/ConfigMapperLanguageException.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-namespace Drupal\config_translation\Exception;
-
-/**
- * Provides an exception for configuration mappers with multiple languages.
- */
-class ConfigMapperLanguageException extends \RuntimeException {
-}
diff --git a/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php b/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php
index 12e0216..68d58ab 100644
--- a/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php
+++ b/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php
@@ -138,12 +138,7 @@ public function buildForm(array $form, FormStateInterface $form_state, RouteMatc
 
     $this->mapper = $mapper;
     $this->language = $language;
-
-    // ConfigTranslationFormAccess will not grant access if this raises an
-    // exception, so we can call this without a try-catch block here.
-    $langcode = $this->mapper->getLangcode();
-
-    $this->sourceLanguage = $this->languageManager->getLanguage($langcode);
+    $this->sourceLanguage = $this->languageManager->getLanguage($this->mapper->getLangcode());
 
     // Get base language configuration to display in the form before setting the
     // language to use for the form. This avoids repetitively settings and
diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php
index b69357e..7d0af41 100644
--- a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php
+++ b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php
@@ -10,7 +10,6 @@
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\filter\Entity\FilterFormat;
 use Drupal\language\Entity\ConfigurableLanguage;
 use Drupal\simpletest\WebTestBase;
 
@@ -78,11 +77,11 @@ protected function setUp() {
     ];
 
     /** @var \Drupal\filter\FilterFormatInterface $filter_test_format */
-    $filter_test_format = FilterFormat::load('filter_test');
+    $filter_test_format = entity_load('filter_format', 'filter_test');
     /** @var \Drupal\filter\FilterFormatInterface $filtered_html_format */
-    $filtered_html_format = FilterFormat::load('filtered_html');
+    $filtered_html_format = entity_load('filter_format', 'filtered_html');
     /** @var \Drupal\filter\FilterFormatInterface $full_html_format */
-    $full_html_format = FilterFormat::load('full_html');
+    $full_html_format = entity_load('filter_format', 'full_html');
 
     $admin_permissions = array_merge(
       $translator_permissions,
diff --git a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateI18nSystemMaintenanceTest.php b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateI18nSystemMaintenanceTest.php
deleted file mode 100644
index d1c5867..0000000
--- a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateI18nSystemMaintenanceTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace Drupal\Tests\config_translation\Kernel\Migrate\d6;
-
-use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
-
-/**
- * Upgrade i18n maintenance variables to system.*.yml.
- *
- * @group migrate_drupal_6
- */
-class MigrateI18nSystemMaintenanceTest extends MigrateDrupal6TestBase {
-
-  public static $modules = ['language', 'config_translation'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    $this->executeMigration('d6_i18n_system_maintenance');
-  }
-
-  /**
-   * Tests migration of system (maintenance) variables to system.maintenance.yml.
-   */
-  public function testSystemMaintenance() {
-    $config = \Drupal::service('language_manager')->getLanguageConfigOverride('fr', 'system.maintenance');
-    $this->assertIdentical('fr - Drupal is currently under maintenance. We should be back shortly. Thank you for your patience.', $config->get('message'));
-  }
-
-}
diff --git a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateI18nSystemSiteTest.php b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateI18nSystemSiteTest.php
deleted file mode 100644
index 770b33c..0000000
--- a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateI18nSystemSiteTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-namespace Drupal\Tests\config_translation\Kernel\Migrate\d6;
-
-use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
-
-/**
- * Upgrade i18n_strings site variables to system.*.yml.
- *
- * @group migrate_drupal_6
- */
-class MigrateI18nSystemSiteTest extends MigrateDrupal6TestBase {
-
-  public static $modules = ['language', 'config_translation'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    $this->executeMigration('d6_i18n_system_site');
-  }
-
-  /**
-   * Tests migration of system (site) variables to system.site.yml.
-   */
-  public function testSystemSite() {
-    $config_translation = \Drupal::service('language_manager')->getLanguageConfigOverride('fr', 'system.site');
-    $this->assertIdentical('fr site name', $config_translation->get('name'));
-    $this->assertIdentical('fr_site_mail@example.com', $config_translation->get('mail'));
-    $this->assertIdentical('fr Migrate rocks', $config_translation->get('slogan'));
-    $this->assertIdentical('/fr-user', $config_translation->get('page.403'));
-    $this->assertIdentical('/fr-page-not-found', $config_translation->get('page.404'));
-    $this->assertIdentical('/node', $config_translation->get('page.front'));
-    $this->assertIdentical(NULL, $config_translation->get('admin_compact_mode'));
-
-    $config_translation = \Drupal::service('language_manager')->getLanguageConfigOverride('zu', 'system.site');
-    $this->assertIdentical('zu - site_name', $config_translation->get('name'));
-    $this->assertIdentical('site_mail@example.com', $config_translation->get('mail'));
-    $this->assertIdentical('Migrate rocks', $config_translation->get('slogan'));
-    $this->assertIdentical('/zu-user', $config_translation->get('page.403'));
-    $this->assertIdentical('/zu-page-not-found', $config_translation->get('page.404'));
-    $this->assertIdentical('/node', $config_translation->get('page.front'));
-    $this->assertIdentical(NULL, $config_translation->get('admin_compact_mode'));
-  }
-
-}
diff --git a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateI18nUserConfigsTest.php b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateI18nUserConfigsTest.php
deleted file mode 100644
index b36a547..0000000
--- a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateI18nUserConfigsTest.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-namespace Drupal\Tests\config_translation\Kernel\Migrate\d6;
-
-use Drupal\config\Tests\SchemaCheckTestTrait;
-use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
-
-/**
- * Upgrade i18n variables to user.*.yml.
- *
- * @group migrate_drupal_6
- */
-class MigrateI18nUserConfigsTest extends MigrateDrupal6TestBase {
-
-  use SchemaCheckTestTrait;
-
-  public static $modules = ['language', 'locale', 'config_translation'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    $this->installSchema('locale',
-      ['locales_source', 'locales_target', 'locales_location']);
-    $this->executeMigrations(['d6_i18n_user_mail', 'd6_i18n_user_settings']);
-  }
-
-  /**
-   * Tests migration of i18n user variables to user.mail.yml.
-   */
-  public function testUserMail() {
-    $config = \Drupal::service('language_manager')->getLanguageConfigOverride('fr', 'user.mail');
-    $this->assertIdentical('fr - Account details for [user:name] at [site:name] (approved)', $config->get('status_activated.subject'));
-    $this->assertIdentical("fr - [user:name],\r\n\r\nYour account at [site:name] has been activated.\r\n\r\nYou may now log in by clicking on this link or copying and pasting it in your browser:\r\n\r\n[user:one-time-login-url]\r\n\r\nThis is a one-time login, so it can be used only once.\r\n\r\nAfter logging in, you will be redirected to [user:edit-url] so you can change your password.\r\n\r\nOnce you have set your own password, you will be able to log in to [site:login-url] in the future using:\r\n\r\nusername: [user:name]\r\n", $config->get('status_activated.body'));
-    $this->assertIdentical('fr - Replacement login information for [user:name] at [site:name]', $config->get('password_reset.subject'));
-    $this->assertIdentical("fr - [user:name],\r\n\r\nA request to reset the password for your account has been made at [site:name].\r\n\r\nYou may now log in to [site:url-brief] by clicking on this link or copying and pasting it in your browser:\r\n\r\n[user:one-time-login-url]\r\n\r\nThis is a one-time login, so it can be used only once. It expires after one day and nothing will happen if it's not used.\r\n\r\nAfter logging in, you will be redirected to [user:edit-url] so you can change your password.", $config->get('password_reset.body'));
-    $this->assertIdentical('fr - Account details for [user:name] at [site:name] (deleted)', $config->get('cancel_confirm.subject'));
-    $this->assertIdentical("fr - [user:name],\r\n\r\nYour account on [site:name] has been deleted.", $config->get('cancel_confirm.body'));
-    $this->assertIdentical('fr - An administrator created an account for you at [site:name]', $config->get('register_admin_created.subject'));
-    $this->assertIdentical("fr - [user:name],\r\n\r\nA site administrator at [site:name] has created an account for you. You may now log in to [site:login-url] using the following username and password:\r\n\r\nusername: [user:name]\r\npassword: \r\n\r\nYou may also log in by clicking on this link or copying and pasting it in your browser:\r\n\r\n[user:one-time-login-url]\r\n\r\nThis is a one-time login, so it can be used only once.\r\n\r\nAfter logging in, you will be redirected to [user:edit-url] so you can change your password.\r\n\r\n\r\n--  [site:name] team", $config->get('register_admin_created.body'));
-    $this->assertIdentical('fr - Account details for [user:name] at [site:name]', $config->get('register_no_approval_required.subject'));
-    $this->assertIdentical("fr - [user:name],\r\n\r\nThank you for registering at [site:name]. You may now log in to [site:login-url] using the following username and password:\r\n\r\nusername: [user:name]\r\npassword: \r\n\r\nYou may also log in by clicking on this link or copying and pasting it in your browser:\r\n\r\n[user:one-time-login-url]\r\n\r\nThis is a one-time login, so it can be used only once.\r\n\r\nAfter logging in, you will be redirected to [user:edit-url] so you can change your password.\r\n\r\n\r\n--  [site:name] team", $config->get('register_no_approval_required.body'));
-    $this->assertIdentical('fr - Account details for [user:name] at [site:name] (pending admin approval)', $config->get('register_pending_approval.subject'));
-    $this->assertIdentical("fr - [user:name],\r\n\r\nThank you for registering at [site:name]. Your application for an account is currently pending approval. Once it has been approved, you will receive another email containing information about how to log in, set your password, and other details.\r\n\r\n\r\n--  [site:name] team", $config->get('register_pending_approval.body'));
-    $this->assertIdentical('fr - Account details for [user:name] at [site:name] (blocked)', $config->get('status_blocked.subject'));
-    $this->assertIdentical("fr - [user:name],\r\n\r\nYour account on [site:name] has been blocked.", $config->get('status_blocked.body'));
-    $this->assertConfigSchema(\Drupal::service('config.typed'), 'user.mail', $config->get());
-
-    $config = \Drupal::service('language_manager')->getLanguageConfigOverride('zu', 'user.mail');
-    $this->assertIdentical('zu - An administrator created an account for you at [site:name]', $config->get('register_admin_created.subject'));
-    $this->assertIdentical("zu - [user:name],\r\n\r\nA site administrator at [site:name] has created an account for you. You may now log in to [site:login-url] using the following username and password:\r\n\r\nusername: [user:name]\r\npassword: \r\n\r\nYou may also log in by clicking on this link or copying and pasting it in your browser:\r\n\r\n[user:one-time-login-url]\r\n\r\nThis is a one-time login, so it can be used only once.\r\n\r\nAfter logging in, you will be redirected to [user:edit-url] so you can change your password.\r\n\r\n\r\n--  [site:name] team", $config->get('register_admin_created.body'));
-  }
-
-  /**
-   * Tests migration of i18n user variables to user.settings.yml.
-   */
-  public function testUserSettings() {
-    $config = \Drupal::service('language_manager')->getLanguageConfigOverride('fr', 'user.settings');
-    $this->assertIdentical(1, $config->get('notify.status_blocked'));
-    $this->assertIdentical(0, $config->get('notify.status_activated'));
-    $this->assertIdentical(0, $config->get('verify_mail'));
-    $this->assertIdentical('admin_only', $config->get('register'));
-    $this->assertIdentical('fr Guest', $config->get('anonymous'));
-
-    $config = \Drupal::service('language_manager')->getLanguageConfigOverride('zu', 'user.settings');
-    $this->assertIdentical(1, $config->get('notify.status_blocked'));
-    $this->assertIdentical(0, $config->get('notify.status_activated'));
-    $this->assertIdentical(0, $config->get('verify_mail'));
-    $this->assertIdentical('admin_only', $config->get('register'));
-    $this->assertIdentical('Guest', $config->get('anonymous'));
-  }
-
-}
diff --git a/core/modules/contact/src/ContactFormEditForm.php b/core/modules/contact/src/ContactFormEditForm.php
index 4eacea2..3b7dbe3 100644
--- a/core/modules/contact/src/ContactFormEditForm.php
+++ b/core/modules/contact/src/ContactFormEditForm.php
@@ -130,13 +130,12 @@ public function save(array $form, FormStateInterface $form_state) {
     $contact_settings = $this->config('contact.settings');
 
     $edit_link = $this->entity->link($this->t('Edit'));
-    $view_link = $contact_form->link($contact_form->label(), 'canonical');
     if ($status == SAVED_UPDATED) {
-      drupal_set_message($this->t('Contact form %label has been updated.', array('%label' => $view_link)));
+      drupal_set_message($this->t('Contact form %label has been updated.', array('%label' => $contact_form->label())));
       $this->logger('contact')->notice('Contact form %label has been updated.', array('%label' => $contact_form->label(), 'link' => $edit_link));
     }
     else {
-      drupal_set_message($this->t('Contact form %label has been added.', array('%label' => $view_link)));
+      drupal_set_message($this->t('Contact form %label has been added.', array('%label' => $contact_form->label())));
       $this->logger('contact')->notice('Contact form %label has been added.', array('%label' => $contact_form->label(), 'link' => $edit_link));
     }
 
diff --git a/core/modules/contact/src/ContactFormInterface.php b/core/modules/contact/src/ContactFormInterface.php
index eb24fcf..f4222fb 100644
--- a/core/modules/contact/src/ContactFormInterface.php
+++ b/core/modules/contact/src/ContactFormInterface.php
@@ -21,7 +21,7 @@ public function getRecipients();
    * Returns an auto-reply message to send to the message author.
    *
    * @return string
-   *   An auto-reply message
+   *  An auto-reply message
    */
   public function getReply();
 
diff --git a/core/modules/contact/src/Plugin/migrate/source/ContactCategory.php b/core/modules/contact/src/Plugin/migrate/source/ContactCategory.php
index 2975431..bc13102 100644
--- a/core/modules/contact/src/Plugin/migrate/source/ContactCategory.php
+++ b/core/modules/contact/src/Plugin/migrate/source/ContactCategory.php
@@ -29,7 +29,7 @@ public function query() {
         'selected',
       )
     );
-    $query->orderBy('c.cid');
+    $query->orderBy('cid');
     return $query;
   }
 
diff --git a/core/modules/contact/src/Plugin/migrate/source/ContactSettings.php b/core/modules/contact/src/Plugin/migrate/source/ContactSettings.php
index 911f3bd..69a6741 100644
--- a/core/modules/contact/src/Plugin/migrate/source/ContactSettings.php
+++ b/core/modules/contact/src/Plugin/migrate/source/ContactSettings.php
@@ -18,7 +18,7 @@ class ContactSettings extends Variable {
   protected function initializeIterator() {
     $default_category = $this->select('contact', 'c')
       ->fields('c', ['cid'])
-      ->condition('c.selected', 1)
+      ->condition('selected', 1)
       ->execute()
       ->fetchField();
     return new \ArrayIterator([$this->values() + ['default_category' => $default_category]]);
diff --git a/core/modules/contact/src/Tests/ContactSitewideTest.php b/core/modules/contact/src/Tests/ContactSitewideTest.php
index b049f25..ce69388 100644
--- a/core/modules/contact/src/Tests/ContactSitewideTest.php
+++ b/core/modules/contact/src/Tests/ContactSitewideTest.php
@@ -127,19 +127,11 @@ function testSiteWideContact() {
     $this->addContactForm($id = Unicode::strtolower($this->randomMachineName($max_length_exceeded)), $label = $this->randomMachineName($max_length_exceeded), implode(',', array($recipients[0])), '', TRUE);
     $this->assertText(format_string('Machine-readable name cannot be longer than @max characters but is currently @exceeded characters long.', array('@max' => $max_length, '@exceeded' => $max_length_exceeded)));
     $this->addContactForm($id = Unicode::strtolower($this->randomMachineName($max_length)), $label = $this->randomMachineName($max_length), implode(',', array($recipients[0])), '', TRUE);
-    $this->assertText(t('Contact form @label has been added.', array('@label' => $label)));
-
-    // Verify that the creation message contains a link to a contact form.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'contact/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a contact form.');
+    $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label)));
 
     // Create first valid form.
     $this->addContactForm($id = Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode(',', array($recipients[0])), '', TRUE);
-    $this->assertText(t('Contact form @label has been added.', array('@label' => $label)));
-
-    // Verify that the creation message contains a link to a contact form.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'contact/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a contact form.');
+    $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label)));
 
     // Check that the form was created in site default language.
     $langcode = $this->config('contact.form.' . $id)->get('langcode');
@@ -160,7 +152,7 @@ function testSiteWideContact() {
     $this->assertEqual($config['recipients'], array($recipients[0], $recipients[1]));
     $this->assertEqual($config['reply'], $reply);
     $this->assertNotEqual($id, $this->config('contact.settings')->get('default_form'));
-    $this->assertText(t('Contact form @label has been updated.', array('@label' => $label)));
+    $this->assertRaw(t('Contact form %label has been updated.', array('%label' => $label)));
     // Ensure the label is displayed on the contact page for this form.
     $this->drupalGet('contact/' . $id);
     $this->assertText($label);
@@ -178,14 +170,14 @@ function testSiteWideContact() {
 
     // Add more forms.
     $this->addContactForm(Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode(',', array($recipients[0], $recipients[1])), '', FALSE);
-    $this->assertText(t('Contact form @label has been added.', array('@label' => $label)));
+    $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label)));
 
     $this->addContactForm($name = Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode(',', array($recipients[0], $recipients[1], $recipients[2])), '', FALSE);
-    $this->assertText(t('Contact form @label has been added.', array('@label' => $label)));
+    $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label)));
 
     // Try adding a form that already exists.
     $this->addContactForm($name, $label, '', '', FALSE);
-    $this->assertNoText(t('Contact form @label has been added.', array('@label' => $label)));
+    $this->assertNoRaw(t('Contact form %label has been added.', array('%label' => $label)));
     $this->assertRaw(t('The machine-readable name is already in use. It must be unique.'));
 
     $this->drupalLogout();
diff --git a/core/modules/contact/src/Tests/ContactStorageTest.php b/core/modules/contact/src/Tests/ContactStorageTest.php
index 6fd3edd..0a5dbb5 100644
--- a/core/modules/contact/src/Tests/ContactStorageTest.php
+++ b/core/modules/contact/src/Tests/ContactStorageTest.php
@@ -50,7 +50,7 @@ public function testContactStorage() {
     $this->addContactForm($id = Unicode::strtolower($this->randomMachineName(16)), $label = $this->randomMachineName(16), implode(',', array($mail)), '', TRUE, [
       'send_a_pony' => 1,
     ]);
-    $this->assertText(t('Contact form @label has been added.', array('@label' => $label)));
+    $this->assertRaw(t('Contact form %label has been added.', array('%label' => $label)));
 
     // Ensure that anonymous can submit site-wide contact form.
     user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, array('access site-wide contact form'));
diff --git a/core/modules/content_translation/content_translation.permissions.yml b/core/modules/content_translation/content_translation.permissions.yml
index 17b5b3d..79f30a4 100644
--- a/core/modules/content_translation/content_translation.permissions.yml
+++ b/core/modules/content_translation/content_translation.permissions.yml
@@ -1,5 +1,6 @@
 administer content translation:
   title: 'Administer translation settings'
+  description: 'Configure translatability of entities and fields.'
 create content translations:
   title: 'Create translations'
 update content translations:
diff --git a/core/modules/content_translation/src/ContentTranslationHandler.php b/core/modules/content_translation/src/ContentTranslationHandler.php
index 6fd2254..38d643b 100644
--- a/core/modules/content_translation/src/ContentTranslationHandler.php
+++ b/core/modules/content_translation/src/ContentTranslationHandler.php
@@ -696,9 +696,6 @@ function entityFormDeleteTranslation($form, FormStateInterface $form_state) {
    *
    * @param \Drupal\Core\Entity\EntityInterface $entity
    *   The entity whose form is being altered.
-   *
-   * @return string|null
-   *   The label of the entity, or NULL if there is no label defined.
    */
   protected function entityFormTitle(EntityInterface $entity) {
     return $entity->label();
diff --git a/core/modules/content_translation/src/ContentTranslationUpdatesManager.php b/core/modules/content_translation/src/ContentTranslationUpdatesManager.php
index 4fa54f3..8b34797 100644
--- a/core/modules/content_translation/src/ContentTranslationUpdatesManager.php
+++ b/core/modules/content_translation/src/ContentTranslationUpdatesManager.php
@@ -2,13 +2,10 @@
 
 namespace Drupal\content_translation;
 
-use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Config\ConfigEvents;
 use Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
-use Drupal\migrate\Event\MigrateEvents;
-use Drupal\migrate\Event\MigrateImportEvent;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 
 /**
@@ -78,26 +75,10 @@ public function onConfigImporterImport() {
   }
 
   /**
-   * Listener for migration imports.
-   */
-  public function onMigrateImport(MigrateImportEvent $event) {
-    $migration = $event->getMigration();
-    $configuration = $migration->getDestinationConfiguration();
-    $entity_types = NestedArray::getValue($configuration, ['content_translation_update_definitions']);
-    if ($entity_types) {
-      $entity_types = array_intersect_key($this->entityManager->getDefinitions(), array_flip($entity_types));
-      $this->updateDefinitions($entity_types);
-    }
-  }
-
-  /**
    * {@inheritdoc}
    */
   public static function getSubscribedEvents() {
     $events[ConfigEvents::IMPORT][] = ['onConfigImporterImport', 60];
-    if (class_exists('\Drupal\migrate\Event\MigrateEvents')) {
-      $events[MigrateEvents::POST_IMPORT][] = ['onMigrateImport'];
-    }
     return $events;
   }
 
diff --git a/core/modules/content_translation/src/Controller/ContentTranslationController.php b/core/modules/content_translation/src/Controller/ContentTranslationController.php
index efd5953..a5cc1b5 100644
--- a/core/modules/content_translation/src/Controller/ContentTranslationController.php
+++ b/core/modules/content_translation/src/Controller/ContentTranslationController.php
@@ -77,8 +77,8 @@ public function prepareTranslation(ContentEntityInterface $entity, LanguageInter
    *   The route match.
    * @param string $entity_type_id
    *   (optional) The entity type ID.
-   * @return array
-   *   Array of page elements to render.
+   * @return array Array of page elements to render.
+   * Array of page elements to render.
    */
   public function overview(RouteMatchInterface $route_match, $entity_type_id = NULL) {
     /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
diff --git a/core/modules/contextual/contextual.permissions.yml b/core/modules/contextual/contextual.permissions.yml
index a170f2e..1798b1f 100644
--- a/core/modules/contextual/contextual.permissions.yml
+++ b/core/modules/contextual/contextual.permissions.yml
@@ -1,2 +1,3 @@
 access contextual links:
   title: 'Use contextual links'
+  description: 'Use contextual links to perform actions related to elements on a page.'
diff --git a/core/modules/contextual/contextual.routing.yml b/core/modules/contextual/contextual.routing.yml
index 8ab2f28..b44d619 100644
--- a/core/modules/contextual/contextual.routing.yml
+++ b/core/modules/contextual/contextual.routing.yml
@@ -2,5 +2,7 @@ contextual.render:
   path: '/contextual/render'
   defaults:
     _controller: '\Drupal\contextual\ContextualController::render'
+  options:
+    _theme: ajax_base_page
   requirements:
     _permission: 'access contextual links'
diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php
index 03c92ae..3fac252 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php
@@ -86,7 +86,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
    */
   protected function formatDate($date) {
     $format_type = $this->getSetting('format_type');
-    $timezone = $this->getSetting('timezone_override') ?: $date->getTimezone()->getName();
+    $timezone = $this->getSetting('timezone_override');
     return $this->dateFormatter->format($date->getTimestamp(), $format_type, '', $timezone != '' ? $timezone : NULL);
   }
 
diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php
index be9df38..31d7dc5 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeFormatterBase.php
@@ -9,7 +9,6 @@
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
-use Drupal\datetime\Plugin\Field\FieldType\DateTimeItem;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 
@@ -141,14 +140,7 @@ public function settingsSummary() {
    *   A DrupalDateTime object.
    */
   protected function setTimeZone(DrupalDateTime $date) {
-    if ($this->getFieldSetting('datetime_type') === DateTimeItem::DATETIME_TYPE_DATE) {
-      // A date without time has no timezone conversion.
-      $timezone = DATETIME_STORAGE_TIMEZONE;
-    }
-    else {
-      $timezone = drupal_get_user_timezone();
-    }
-    $date->setTimeZone(timezone_open($timezone));
+    $date->setTimeZone(timezone_open(drupal_get_user_timezone()));
   }
 
   /**
diff --git a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php
index 683d75c..90e3d95 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php
@@ -3,7 +3,6 @@
 namespace Drupal\datetime\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FieldItemListInterface;
-use Drupal\datetime\Plugin\Field\FieldType\DateTimeItem;
 
 /**
  * Plugin implementation of the 'Plain' formatter for 'datetime' fields.
@@ -34,6 +33,8 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
           // A date without time will pick up the current time, use the default.
           datetime_date_default_time($date);
         }
+        else {
+        }
         $this->setTimeZone($date);
 
         $output = $this->formatDate($date);
@@ -55,7 +56,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
    * {@inheritdoc}
    */
   protected function formatDate($date) {
-    $format = $this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE ? DATETIME_DATE_STORAGE_FORMAT : DATETIME_DATETIME_STORAGE_FORMAT;
+    $format = $this->getFieldSetting('datetime_type') == 'date' ? DATETIME_DATE_STORAGE_FORMAT : DATETIME_DATETIME_STORAGE_FORMAT;
     $timezone = $this->getSetting('timezone_override');
     return $this->dateFormatter->format($date->getTimestamp(), 'custom', $format, $timezone != '' ? $timezone : NULL);
   }
diff --git a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeWidgetBase.php b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeWidgetBase.php
index aa6175a..df23426 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeWidgetBase.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeWidgetBase.php
@@ -34,12 +34,6 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       '#required' => $element['#required'],
     );
 
-    if ($this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) {
-      // A date-only field should have no timezone conversion performed, so
-      // use the same timezone as for storage.
-      $element['value']['#date_timezone'] = DATETIME_STORAGE_TIMEZONE;
-    }
-
     if ($items[$delta]->date) {
       $date = $items[$delta]->date;
       // The date was created and verified during field_load(), so it is safe to
diff --git a/core/modules/datetime/src/Tests/DateTimeFieldTest.php b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
index ce598bf..bd9e3af 100644
--- a/core/modules/datetime/src/Tests/DateTimeFieldTest.php
+++ b/core/modules/datetime/src/Tests/DateTimeFieldTest.php
@@ -5,9 +5,7 @@
 use Drupal\Component\Utility\SafeMarkup;
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Datetime\DrupalDateTime;
-use Drupal\Core\Datetime\Entity\DateFormat;
 use Drupal\Core\Entity\Entity\EntityViewDisplay;
-use Drupal\entity_test\Entity\EntityTest;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\Entity\FieldStorageConfig;
 use Drupal\node\Entity\Node;
@@ -54,33 +52,17 @@ class DateTimeFieldTest extends WebTestBase {
   protected $field;
 
   /**
-   * An array of timezone extremes to test.
-   *
-   * @var string[]
-   */
-  protected static $timezones = [
-    // UTC-12, no DST.
-    'Pacific/Kwajalein',
-    // UTC-11, no DST
-    'Pacific/Midway',
-    // UTC-7, no DST.
-    'America/Phoenix',
-    // UTC.
-    'UTC',
-    // UTC+5:30, no DST.
-    'Asia/Kolkata',
-    // UTC+12, no DST
-    'Pacific/Funafuti',
-    // UTC+13, no DST.
-    'Pacific/Tongatapu',
-  ];
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
 
+    // Set an explicit site timezone, and disallow per-user timezones.
+    $this->config('system.date')
+      ->set('timezone.user.configurable', 0)
+      ->set('timezone.default', 'Asia/Tokyo')
+      ->save();
+
     $web_user = $this->drupalCreateUser(array(
       'access content',
       'view test entity',
@@ -133,155 +115,128 @@ protected function setUp() {
   function testDateField() {
     $field_name = $this->fieldStorage->getName();
 
-    // Loop through defined timezones to test that date-only fields work at the
-    // extremes.
-    foreach (static::$timezones as $timezone) {
+    // Display creation form.
+    $this->drupalGet('entity_test/add');
+    $this->assertFieldByName("{$field_name}[0][value][date]", '', 'Date element found.');
+    $this->assertFieldByXPath('//*[@id="edit-' . $field_name . '-wrapper"]/h4[contains(@class, "js-form-required")]', TRUE, 'Required markup found');
+    $this->assertNoFieldByName("{$field_name}[0][value][time]", '', 'Time element not found.');
 
-      $this->setSiteTimezone($timezone);
+    // Build up a date in the UTC timezone.
+    $value = '2012-12-31 00:00:00';
+    $date = new DrupalDateTime($value, 'UTC');
 
-      // Display creation form.
-      $this->drupalGet('entity_test/add');
-      $this->assertFieldByName("{$field_name}[0][value][date]", '', 'Date element found.');
-      $this->assertFieldByXPath('//*[@id="edit-' . $field_name . '-wrapper"]/h4[contains(@class, "js-form-required")]', TRUE, 'Required markup found');
-      $this->assertNoFieldByName("{$field_name}[0][value][time]", '', 'Time element not found.');
-
-      // Build up a date in the UTC timezone. Note that using this will also
-      // mimic the user in a different timezone simply entering '2012-12-31' via
-      // the UI.
-      $value = '2012-12-31 00:00:00';
-      $date = new DrupalDateTime($value, DATETIME_STORAGE_TIMEZONE);
-
-      // Submit a valid date and ensure it is accepted.
-      $date_format = DateFormat::load('html_date')->getPattern();
-      $time_format = DateFormat::load('html_time')->getPattern();
-
-      $edit = array(
-        "{$field_name}[0][value][date]" => $date->format($date_format),
-      );
-      $this->drupalPostForm(NULL, $edit, t('Save'));
-      preg_match('|entity_test/manage/(\d+)|', $this->url, $match);
-      $id = $match[1];
-      $this->assertText(t('entity_test @id has been created.', array('@id' => $id)));
-      $this->assertRaw($date->format($date_format));
-      $this->assertNoRaw($date->format($time_format));
-
-      // Verify the date doesn't change if using a timezone that is UTC+12 when
-      // the entity is edited through the form.
-      $entity = EntityTest::load($id);
-      $this->assertEqual('2012-12-31', $entity->{$field_name}->value);
-      $this->drupalGet('entity_test/manage/' . $id . '/edit');
-      $this->drupalPostForm(NULL, [], t('Save'));
-      $this->drupalGet('entity_test/manage/' . $id . '/edit');
-      $this->drupalPostForm(NULL, [], t('Save'));
-      $this->drupalGet('entity_test/manage/' . $id . '/edit');
-      $this->drupalPostForm(NULL, [], t('Save'));
-      $entity = EntityTest::load($id);
-      $this->assertEqual('2012-12-31', $entity->{$field_name}->value);
-
-      // Reset display options since these get changed below.
-      $this->displayOptions = array(
-        'type' => 'datetime_default',
-        'label' => 'hidden',
-        'settings' => array('format_type' => 'medium') + $this->defaultSettings,
-      );
-      // Verify that the date is output according to the formatter settings.
-      $options = array(
-        'format_type' => array('short', 'medium', 'long'),
-      );
-      // Formats that display a time component for date-only fields will display
-      // the default time, so that is applied before calculating the expected
-      // value.
-      datetime_date_default_time($date);
-      foreach ($options as $setting => $values) {
-        foreach ($values as $new_value) {
-          // Update the entity display settings.
-          $this->displayOptions['settings'] = array($setting => $new_value) + $this->defaultSettings;
-          entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
-            ->setComponent($field_name, $this->displayOptions)
-            ->save();
-
-          $this->renderTestEntity($id);
-          switch ($setting) {
-            case 'format_type':
-              // Verify that a date is displayed. Since this is a date-only
-              // field, it is expected to display the time as 00:00:00.
-              $expected = format_date($date->getTimestamp(), $new_value, '', DATETIME_STORAGE_TIMEZONE);
-              $expected_iso = format_date($date->getTimestamp(), 'custom', 'Y-m-d\TH:i:s\Z', DATETIME_STORAGE_TIMEZONE);
-              $this->renderTestEntity($id);
-              $this->assertFieldByXPath('//time[@datetime="' . $expected_iso . '"]', $expected, SafeMarkup::format('Formatted date field using %value format displayed as %expected with %expected_iso attribute.', array('%value' => $new_value, '%expected' => $expected, '%expected_iso' => $expected_iso)));
-              break;
-          }
+    // The expected values will use the default time.
+    datetime_date_default_time($date);
+
+    // Update the timezone to the system default.
+    $date->setTimezone(timezone_open(drupal_get_user_timezone()));
+
+    // Submit a valid date and ensure it is accepted.
+    $date_format = entity_load('date_format', 'html_date')->getPattern();
+    $time_format = entity_load('date_format', 'html_time')->getPattern();
+
+    $edit = array(
+      "{$field_name}[0][value][date]" => $date->format($date_format),
+    );
+    $this->drupalPostForm(NULL, $edit, t('Save'));
+    preg_match('|entity_test/manage/(\d+)|', $this->url, $match);
+    $id = $match[1];
+    $this->assertText(t('entity_test @id has been created.', array('@id' => $id)));
+    $this->assertRaw($date->format($date_format));
+    $this->assertNoRaw($date->format($time_format));
+
+    // Verify that the date is output according to the formatter settings.
+    $options = array(
+      'format_type' => array('short', 'medium', 'long'),
+    );
+    foreach ($options as $setting => $values) {
+      foreach ($values as $new_value) {
+        // Update the entity display settings.
+        $this->displayOptions['settings'] = array($setting => $new_value) + $this->defaultSettings;
+        entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
+          ->setComponent($field_name, $this->displayOptions)
+          ->save();
+
+        $this->renderTestEntity($id);
+        switch ($setting) {
+          case 'format_type':
+            // Verify that a date is displayed.
+            $expected = format_date($date->getTimestamp(), $new_value);
+            $expected_iso = format_date($date->getTimestamp(), 'custom', 'Y-m-d\TH:i:s\Z', 'UTC');
+            $this->renderTestEntity($id);
+            $this->assertFieldByXPath('//time[@datetime="' . $expected_iso . '"]', $expected, SafeMarkup::format('Formatted date field using %value format displayed as %expected with %expected_iso attribute.', array('%value' => $new_value, '%expected' => $expected, '%expected_iso' => $expected_iso)));
+            break;
         }
       }
-
-      // Verify that the plain formatter works.
-      $this->displayOptions['type'] = 'datetime_plain';
-      $this->displayOptions['settings'] = $this->defaultSettings;
-      entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
-        ->setComponent($field_name, $this->displayOptions)
-        ->save();
-      $expected = $date->format(DATETIME_DATE_STORAGE_FORMAT);
-      $this->renderTestEntity($id);
-      $this->assertText($expected, SafeMarkup::format('Formatted date field using plain format displayed as %expected.', array('%expected' => $expected)));
-
-      // Verify that the 'datetime_custom' formatter works.
-      $this->displayOptions['type'] = 'datetime_custom';
-      $this->displayOptions['settings'] = array('date_format' => 'm/d/Y') + $this->defaultSettings;
-      entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
-        ->setComponent($field_name, $this->displayOptions)
-        ->save();
-      $expected = $date->format($this->displayOptions['settings']['date_format']);
-      $this->renderTestEntity($id);
-      $this->assertText($expected, SafeMarkup::format('Formatted date field using datetime_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
-      // interval will use this, force the test date to use UTC and not the local
-      // or user timezome.
-      $timestamp = REQUEST_TIME - 87654321;
-      $entity = EntityTest::load($id);
-      $field_name = $this->fieldStorage->getName();
-      $date = DrupalDateTime::createFromTimestamp($timestamp, 'UTC');
-      $entity->{$field_name}->value = $date->format($date_format);
-      $entity->save();
-
-      $this->displayOptions['type'] = 'datetime_time_ago';
-      $this->displayOptions['settings'] = array(
-        'future_format' => '@interval in the future',
-        'past_format' => '@interval in the past',
-        'granularity' => 3,
-      );
-      entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
-        ->setComponent($field_name, $this->displayOptions)
-        ->save();
-      $expected = SafeMarkup::format($this->displayOptions['settings']['past_format'], [
-        '@interval' => \Drupal::service('date.formatter')->formatTimeDiffSince($timestamp, ['granularity' => $this->displayOptions['settings']['granularity']])
-      ]);
-      $this->renderTestEntity($id);
-      $this->assertText($expected, SafeMarkup::format('Formatted date field using datetime_time_ago format displayed as %expected.', array('%expected' => $expected)));
-
-      // Verify that the 'datetime_time_ago' formatter works for intervals in the
-      // future.  First update the test entity so that the date difference always
-      // has the same interval.  Since the database always stores UTC, and the
-      // interval will use this, force the test date to use UTC and not the local
-      // or user timezome.
-      $timestamp = REQUEST_TIME + 87654321;
-      $entity = EntityTest::load($id);
-      $field_name = $this->fieldStorage->getName();
-      $date = DrupalDateTime::createFromTimestamp($timestamp, 'UTC');
-      $entity->{$field_name}->value = $date->format($date_format);
-      $entity->save();
-
-      entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
-        ->setComponent($field_name, $this->displayOptions)
-        ->save();
-      $expected = SafeMarkup::format($this->displayOptions['settings']['future_format'], [
-        '@interval' => \Drupal::service('date.formatter')->formatTimeDiffUntil($timestamp, ['granularity' => $this->displayOptions['settings']['granularity']])
-      ]);
-      $this->renderTestEntity($id);
-      $this->assertText($expected, SafeMarkup::format('Formatted date field using datetime_time_ago format displayed as %expected.', array('%expected' => $expected)));
     }
+
+    // Verify that the plain formatter works.
+    $this->displayOptions['type'] = 'datetime_plain';
+    $this->displayOptions['settings'] = $this->defaultSettings;
+    entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
+      ->setComponent($field_name, $this->displayOptions)
+      ->save();
+    $expected = $date->format(DATETIME_DATE_STORAGE_FORMAT);
+    $this->renderTestEntity($id);
+    $this->assertText($expected, SafeMarkup::format('Formatted date field using plain format displayed as %expected.', array('%expected' => $expected)));
+
+    // Verify that the 'datetime_custom' formatter works.
+    $this->displayOptions['type'] = 'datetime_custom';
+    $this->displayOptions['settings'] = array('date_format' => 'm/d/Y') + $this->defaultSettings;
+    entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
+      ->setComponent($field_name, $this->displayOptions)
+      ->save();
+    $expected = $date->format($this->displayOptions['settings']['date_format']);
+    $this->renderTestEntity($id);
+    $this->assertText($expected, SafeMarkup::format('Formatted date field using datetime_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
+    // interval will use this, force the test date to use UTC and not the local
+    // or user timezome.
+    $timestamp = REQUEST_TIME - 87654321;
+    $entity = entity_load('entity_test', $id);
+    $field_name = $this->fieldStorage->getName();
+    $date = DrupalDateTime::createFromTimestamp($timestamp, 'UTC');
+    $entity->{$field_name}->value = $date->format($date_format);
+    $entity->save();
+
+    $this->displayOptions['type'] = 'datetime_time_ago';
+    $this->displayOptions['settings'] = array(
+      'future_format' => '@interval in the future',
+      'past_format' => '@interval in the past',
+      'granularity' => 3,
+    );
+    entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
+      ->setComponent($field_name, $this->displayOptions)
+      ->save();
+    $expected = SafeMarkup::format($this->displayOptions['settings']['past_format'], [
+      '@interval' => \Drupal::service('date.formatter')->formatTimeDiffSince($timestamp, ['granularity' => $this->displayOptions['settings']['granularity']])
+    ]);
+    $this->renderTestEntity($id);
+    $this->assertText($expected, SafeMarkup::format('Formatted date field using datetime_time_ago format displayed as %expected.', array('%expected' => $expected)));
+
+    // Verify that the 'datetime_time_ago' formatter works for intervals in the
+    // future.  First update the test entity so that the date difference always
+    // has the same interval.  Since the database always stores UTC, and the
+    // interval will use this, force the test date to use UTC and not the local
+    // or user timezome.
+    $timestamp = REQUEST_TIME + 87654321;
+    $entity = entity_load('entity_test', $id);
+    $field_name = $this->fieldStorage->getName();
+    $date = DrupalDateTime::createFromTimestamp($timestamp, 'UTC');
+    $entity->{$field_name}->value = $date->format($date_format);
+    $entity->save();
+
+    entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full')
+      ->setComponent($field_name, $this->displayOptions)
+      ->save();
+    $expected = SafeMarkup::format($this->displayOptions['settings']['future_format'], [
+      '@interval' => \Drupal::service('date.formatter')->formatTimeDiffUntil($timestamp, ['granularity' => $this->displayOptions['settings']['granularity']])
+    ]);
+    $this->renderTestEntity($id);
+    $this->assertText($expected, SafeMarkup::format('Formatted date field using datetime_time_ago format displayed as %expected.', array('%expected' => $expected)));
   }
 
   /**
@@ -306,8 +261,8 @@ function testDatetimeField() {
     $date->setTimezone(timezone_open(drupal_get_user_timezone()));
 
     // Submit a valid date and ensure it is accepted.
-    $date_format = DateFormat::load('html_date')->getPattern();
-    $time_format = DateFormat::load('html_time')->getPattern();
+    $date_format = entity_load('date_format', 'html_date')->getPattern();
+    $time_format = entity_load('date_format', 'html_time')->getPattern();
 
     $edit = array(
       "{$field_name}[0][value][date]" => $date->format($date_format),
@@ -381,7 +336,7 @@ function testDatetimeField() {
     // interval will use this, force the test date to use UTC and not the local
     // or user timezome.
     $timestamp = REQUEST_TIME - 87654321;
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $field_name = $this->fieldStorage->getName();
     $date = DrupalDateTime::createFromTimestamp($timestamp, 'UTC');
     $entity->{$field_name}->value = $date->format(DATETIME_DATETIME_STORAGE_FORMAT);
@@ -408,7 +363,7 @@ function testDatetimeField() {
     // interval will use this, force the test date to use UTC and not the local
     // or user timezome.
     $timestamp = REQUEST_TIME + 87654321;
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $field_name = $this->fieldStorage->getName();
     $date = DrupalDateTime::createFromTimestamp($timestamp, 'UTC');
     $entity->{$field_name}->value = $date->format(DATETIME_DATETIME_STORAGE_FORMAT);
@@ -491,23 +446,17 @@ function testDatelistWidget() {
 
     $this->assertFieldByXPath("//*[@id=\"edit-$field_name-0-value-year\"]", NULL, 'Year element found.');
     $this->assertOptionSelected("edit-$field_name-0-value-year", '', 'No year selected.');
-    $this->assertOptionByText("edit-$field_name-0-value-year", t('Year'));
     $this->assertFieldByXPath("//*[@id=\"edit-$field_name-0-value-month\"]", NULL, 'Month element found.');
     $this->assertOptionSelected("edit-$field_name-0-value-month", '', 'No month selected.');
-    $this->assertOptionByText("edit-$field_name-0-value-month", t('Month'));
     $this->assertFieldByXPath("//*[@id=\"edit-$field_name-0-value-day\"]", NULL, 'Day element found.');
     $this->assertOptionSelected("edit-$field_name-0-value-day", '', 'No day selected.');
-    $this->assertOptionByText("edit-$field_name-0-value-day", t('Day'));
     $this->assertFieldByXPath("//*[@id=\"edit-$field_name-0-value-hour\"]", NULL, 'Hour element found.');
     $this->assertOptionSelected("edit-$field_name-0-value-hour", '', 'No hour selected.');
-    $this->assertOptionByText("edit-$field_name-0-value-hour", t('Hour'));
     $this->assertFieldByXPath("//*[@id=\"edit-$field_name-0-value-minute\"]", NULL, 'Minute element found.');
     $this->assertOptionSelected("edit-$field_name-0-value-minute", '', 'No minute selected.');
-    $this->assertOptionByText("edit-$field_name-0-value-minute", t('Minute'));
     $this->assertNoFieldByXPath("//*[@id=\"edit-$field_name-0-value-second\"]", NULL, 'Second element not found.');
     $this->assertFieldByXPath("//*[@id=\"edit-$field_name-0-value-ampm\"]", NULL, 'AMPM element found.');
     $this->assertOptionSelected("edit-$field_name-0-value-ampm", '', 'No ampm selected.');
-    $this->assertOptionByText("edit-$field_name-0-value-ampm", t('AM/PM'));
 
     // Submit a valid date and ensure it is accepted.
     $date_value = array('year' => 2012, 'month' => 12, 'day' => 31, 'hour' => 5, 'minute' => 15);
@@ -909,7 +858,7 @@ protected function renderTestEntity($id, $view_mode = 'full', $reset = TRUE) {
     if ($reset) {
       \Drupal::entityManager()->getStorage('entity_test')->resetCache(array($id));
     }
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $display = EntityViewDisplay::collectRenderDisplay($entity, $view_mode);
     $build = $display->build($entity);
     $output = \Drupal::service('renderer')->renderRoot($build);
@@ -917,19 +866,4 @@ protected function renderTestEntity($id, $view_mode = 'full', $reset = TRUE) {
     $this->verbose($output);
   }
 
-  /**
-   * Sets the site timezone to a given timezone.
-   *
-   * @param string $timezone
-   *   The timezone identifier to set.
-   */
-  protected function setSiteTimezone($timezone) {
-    // Set an explicit site timezone, and disallow per-user timezones.
-    $this->config('system.date')
-      ->set('timezone.user.configurable', 0)
-      // A timezone with an offset greater than UTC+12 is used.
-      ->set('timezone.default', $timezone)
-      ->save();
-  }
-
 }
diff --git a/core/modules/datetime/src/Tests/Views/FilterDateTimeTest.php b/core/modules/datetime/src/Tests/Views/FilterDateTimeTest.php
index a15263d..70172e9 100644
--- a/core/modules/datetime/src/Tests/Views/FilterDateTimeTest.php
+++ b/core/modules/datetime/src/Tests/Views/FilterDateTimeTest.php
@@ -136,8 +136,7 @@ protected function _testBetween() {
     $view->initHandlers();
     $view->filter[$field]->operator = 'not between';
     $view->filter[$field]->value['min'] = '2001-01-01';
-    // Set maximum date to date of node 1 to test range borders.
-    $view->filter[$field]->value['max'] = '2001-10-10T12:12:12';
+    $view->filter[$field]->value['max'] = '2002-01-01';
     $view->setDisplay('default');
     $this->executeView($view);
     $expected_result = [
diff --git a/core/modules/datetime/tests/src/Kernel/DateTimeItemTest.php b/core/modules/datetime/tests/src/Kernel/DateTimeItemTest.php
index d26434b..bba2c33 100644
--- a/core/modules/datetime/tests/src/Kernel/DateTimeItemTest.php
+++ b/core/modules/datetime/tests/src/Kernel/DateTimeItemTest.php
@@ -57,7 +57,7 @@ public function testDateTimeItem() {
 
     // Verify entity has been created properly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertTrue($entity->field_datetime instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->field_datetime[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->field_datetime->value, $value);
@@ -70,7 +70,7 @@ public function testDateTimeItem() {
 
     // Read changed entity and assert changed values.
     $entity->save();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_datetime->value, $new_value);
 
     // Test the generateSampleValue() method.
@@ -90,7 +90,7 @@ public function testSetValue() {
     $entity->save();
     // Load the entity and ensure the field was saved correctly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_datetime[0]->value, $value, 'DateTimeItem::setValue() works with string value.');
 
     // Test DateTimeItem::setValue() using property array.
@@ -100,7 +100,7 @@ public function testSetValue() {
     $entity->save();
     // Load the entity and ensure the field was saved correctly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_datetime[0]->value, $value, 'DateTimeItem::setValue() works with array value.');
   }
 
@@ -116,7 +116,7 @@ public function testSetValueProperty() {
     $entity->save();
     // Load the entity and ensure the field was saved correctly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_datetime[0]->value, $value, '"Value" property can be set directly.');
   }
 
diff --git a/core/modules/dblog/dblog.links.task.yml b/core/modules/dblog/dblog.links.task.yml
deleted file mode 100644
index 7098748..0000000
--- a/core/modules/dblog/dblog.links.task.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-dblog.view_logs:
-  title: 'View'
-  route_name: dblog.overview
-  base_route: dblog.overview
-dblog.clear_logs:
-  title: 'Delete'
-  route_name: dblog.confirm
-  base_route: dblog.overview
diff --git a/core/modules/dblog/src/Controller/DbLogController.php b/core/modules/dblog/src/Controller/DbLogController.php
index 572b9ae..12483a4 100644
--- a/core/modules/dblog/src/Controller/DbLogController.php
+++ b/core/modules/dblog/src/Controller/DbLogController.php
@@ -4,7 +4,6 @@
 
 use Drupal\Component\Utility\Html;
 use Drupal\Component\Utility\Unicode;
-use Drupal\Component\Utility\Xss;
 use Drupal\Core\Controller\ControllerBase;
 use Drupal\Core\Database\Connection;
 use Drupal\Core\Datetime\DateFormatterInterface;
@@ -128,6 +127,7 @@ public function overview() {
     $this->moduleHandler->loadInclude('dblog', 'admin.inc');
 
     $build['dblog_filter_form'] = $this->formBuilder->getForm('Drupal\dblog\Form\DblogFilterForm');
+    $build['dblog_clear_log_form'] = $this->formBuilder->getForm('Drupal\dblog\Form\DblogClearLogForm');
 
     $header = array(
       // Icon column.
@@ -337,7 +337,7 @@ protected function buildFilterQuery() {
    *   The record from the watchdog table. The object properties are: wid, uid,
    *   severity, type, timestamp, message, variables, link, name.
    *
-   * @return string|\Drupal\Core\StringTranslation\TranslatableMarkup|false
+   * @return string|false
    *   The formatted log message or FALSE if the message or variables properties
    *   are not set.
    */
@@ -346,11 +346,11 @@ public function formatMessage($row) {
     if (isset($row->message) && isset($row->variables)) {
       // Messages without variables or user specified text.
       if ($row->variables === 'N;') {
-        $message = Xss::filterAdmin($row->message);
+        $message = $row->message;
       }
       // Message to translate with injected variables.
       else {
-        $message = $this->t(Xss::filterAdmin($row->message), unserialize($row->variables));
+        $message = $this->t($row->message, unserialize($row->variables));
       }
     }
     else {
diff --git a/core/modules/dblog/src/Form/DblogClearLogForm.php b/core/modules/dblog/src/Form/DblogClearLogForm.php
new file mode 100644
index 0000000..134cfc1
--- /dev/null
+++ b/core/modules/dblog/src/Form/DblogClearLogForm.php
@@ -0,0 +1,71 @@
+<?php
+
+namespace Drupal\dblog\Form;
+
+use Drupal\Core\Database\Connection;
+use Drupal\Core\Form\FormBase;
+use Drupal\Core\Form\FormStateInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Provides the form that clears out the log.
+ */
+class DblogClearLogForm extends FormBase {
+
+  /**
+   * The database connection.
+   *
+   * @var \Drupal\Core\Database\Connection
+   */
+  protected $connection;
+
+  /**
+   * Constructs a new DblogClearLogForm.
+   *
+   * @param \Drupal\Core\Database\Connection $connection
+   *   The database connection.
+   */
+  public function __construct(Connection $connection) {
+    $this->connection = $connection;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container) {
+    return new static(
+      $container->get('database')
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormId() {
+    return 'dblog_clear_log_form';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildForm(array $form, FormStateInterface $form_state) {
+    $form['dblog_clear'] = array(
+      '#type' => 'details',
+      '#title' => $this->t('Clear log messages'),
+      '#description' => $this->t('This will permanently remove the log messages from the database.'),
+    );
+    $form['dblog_clear']['clear'] = array(
+      '#type' => 'submit',
+      '#value' => $this->t('Clear log messages'),
+    );
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submitForm(array &$form, FormStateInterface $form_state) {
+    $form_state->setRedirect('dblog.confirm');
+  }
+
+}
diff --git a/core/modules/dblog/src/Form/DblogFilterForm.php b/core/modules/dblog/src/Form/DblogFilterForm.php
index 0434f12..11bd54b 100644
--- a/core/modules/dblog/src/Form/DblogFilterForm.php
+++ b/core/modules/dblog/src/Form/DblogFilterForm.php
@@ -26,7 +26,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $form['filters'] = array(
       '#type' => 'details',
       '#title' => $this->t('Filter log messages'),
-      '#open' => TRUE,
+      '#open' => !empty($_SESSION['dblog_overview_filter']),
     );
     foreach ($filters as $key => $filter) {
       $form['filters']['status'][$key] = array(
diff --git a/core/modules/dblog/src/Tests/DbLogTest.php b/core/modules/dblog/src/Tests/DbLogTest.php
index 90cb6c2..e38ae85 100644
--- a/core/modules/dblog/src/Tests/DbLogTest.php
+++ b/core/modules/dblog/src/Tests/DbLogTest.php
@@ -221,32 +221,6 @@ private function generateLogEntries($count, $options = array()) {
   }
 
   /**
-   * Clear the entry logs by clicking on 'Clear log messages' button.
-   */
-  protected function clearLogsEntries() {
-    $this->drupalGet(Url::fromRoute('dblog.confirm'));
-  }
-
-  /**
-   * Filters the logs according to the specific severity and log entry type.
-   *
-   * @param string $type
-   *   (optional) The log entry type.
-   * @param string $severity
-   *   (optional) The log entry severity.
-  */
-  protected function filterLogsEntries($type = NULL, $severity = NULL) {
-     $edit = array();
-     if (!is_null($type)) {
-       $edit['type[]'] = $type;
-     }
-     if (!is_null($severity)) {
-       $edit['severity[]'] = $severity;
-     }
-     $this->drupalPostForm(NULL, $edit, t('Filter'));
-  }
-
-  /**
    * Confirms that database log reports are displayed at the correct paths.
    *
    * @param int $response
@@ -573,7 +547,7 @@ public function testDBLogAddAndClear() {
     // Log in the admin user.
     $this->drupalLogin($this->adminUser);
     // Post in order to clear the database table.
-    $this->clearLogsEntries();
+    $this->drupalPostForm('admin/reports/dblog', array(), t('Clear log messages'));
     // Confirm that the logs should be cleared.
     $this->drupalPostForm(NULL, array(), 'Confirm');
     // Count the rows in watchdog that previously related to the deleted user.
@@ -621,7 +595,10 @@ public function testFilter() {
     // Filter by each type and confirm that entries with various severities are
     // displayed.
     foreach ($type_names as $type_name) {
-      $this->filterLogsEntries($type_name);
+      $edit = array(
+        'type[]' => array($type_name),
+      );
+      $this->drupalPostForm(NULL, $edit, t('Filter'));
 
       // Count the number of entries of this type.
       $type_count = 0;
@@ -638,7 +615,11 @@ public function testFilter() {
     // Set the filter to match each of the two filter-type attributes and
     // confirm the correct number of entries are displayed.
     foreach ($types as $type) {
-      $this->filterLogsEntries($type['type'], $type['severity']);
+      $edit = array(
+        'type[]' => array($type['type']),
+        'severity[]' => array($type['severity']),
+      );
+      $this->drupalPostForm(NULL, $edit, t('Filter'));
 
       $count = $this->getTypeCount($types);
       $this->assertEqual(array_sum($count), $type['count'], 'Count matched');
@@ -649,7 +630,7 @@ public function testFilter() {
     $this->assertText(t('Operations'), 'Operations text found');
 
     // Clear all logs and make sure the confirmation message is found.
-    $this->clearLogsEntries();
+    $this->drupalPostForm('admin/reports/dblog', array(), t('Clear log messages'));
     // Confirm that the logs should be cleared.
     $this->drupalPostForm(NULL, array(), 'Confirm');
     $this->assertText(t('Database log cleared.'), 'Confirmation message found');
@@ -667,7 +648,7 @@ public function testFilter() {
    */
   protected function getLogEntries() {
     $entries = array();
-    if ($table = $this->getLogsEntriesTable()) {
+    if ($table = $this->xpath('.//table[@id="admin-dblog"]')) {
       $table = array_shift($table);
       foreach ($table->tbody->tr as $row) {
         $entries[] = array(
@@ -682,16 +663,6 @@ protected function getLogEntries() {
   }
 
   /**
-   * Find the Logs table in the DOM.
-   *
-   * @return \SimpleXMLElement[]
-   *   The return value of a xpath search.
-   */
-  protected function getLogsEntriesTable() {
-    return $this->xpath('.//table[@id="admin-dblog"]');
-  }
-
-  /**
    * Gets the count of database log entries by database log event type.
    *
    * @param array $types
@@ -809,13 +780,6 @@ public function testOverviewLinks() {
     // Make sure HTML tags are filtered out.
     $this->assertRaw('title="alert(&#039;foo&#039;);Lorem ipsum dolor sit amet, consectetur adipiscing &amp; elit. Entry #0">&lt;script&gt;alert(&#039;foo&#039;);&lt;/script&gt;Lorem ipsum dolor sit…</a>');
     $this->assertNoRaw("<script>alert('foo');</script>");
-
-    // Make sure HTML tags are filtered out in admin/reports/dblog/event/ too.
-    $this->generateLogEntries(1, ['message' => "<script>alert('foo');</script> <strong>Lorem ipsum</strong>"]);
-    $wid = db_query('SELECT MAX(wid) FROM {watchdog}')->fetchField();
-    $this->drupalGet('admin/reports/dblog/event/' . $wid);
-    $this->assertNoRaw("<script>alert('foo');</script>");
-    $this->assertRaw("alert('foo'); <strong>Lorem ipsum</strong>");
   }
 
 }
diff --git a/core/modules/dynamic_page_cache/src/EventSubscriber/DynamicPageCacheSubscriber.php b/core/modules/dynamic_page_cache/src/EventSubscriber/DynamicPageCacheSubscriber.php
index 33af228..30ca60a 100644
--- a/core/modules/dynamic_page_cache/src/EventSubscriber/DynamicPageCacheSubscriber.php
+++ b/core/modules/dynamic_page_cache/src/EventSubscriber/DynamicPageCacheSubscriber.php
@@ -173,13 +173,13 @@ public function onResponse(FilterResponseEvent $event) {
 
     // Don't cache the response if Dynamic Page Cache's request subscriber did
     // not fire, because that means it is impossible to have a Dynamic Page
-    // Cache hit. This can happen when the master request is for example a 403
+    // Cache hit. (This can happen when the master request is for example a 403
     // or 404, in which case a subrequest is performed by the router. In that
     // case, it is the subrequest's response that is cached by Dynamic Page
     // Cache, because the routing happens in a request subscriber earlier than
     // Dynamic Page Cache's and immediately sets a response, i.e. the one
     // returned by the subrequest, and thus causes Dynamic Page Cache's request
-    // subscriber to not fire for the master request.
+    // subscriber to not fire for the master request.)
     // @see \Drupal\Core\Routing\AccessAwareRouter::checkAccess()
     // @see \Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber::on403()
     $request = $event->getRequest();
@@ -218,7 +218,7 @@ public function onResponse(FilterResponseEvent $event) {
    * is automatically placeholdered, and consequently the cacheability metadata
    * of the placeholdered content does not bubble up to the response level.
    *
-   * @param \Drupal\Core\Cache\CacheableResponseInterface $response
+   * @param \Drupal\Core\Cache\CacheableResponseInterface
    *   The response whose cacheability to analyze.
    *
    * @return bool
diff --git a/core/modules/editor/config/schema/editor.schema.yml b/core/modules/editor/config/schema/editor.schema.yml
index f68cb82..80a01f9 100644
--- a/core/modules/editor/config/schema/editor.schema.yml
+++ b/core/modules/editor/config/schema/editor.schema.yml
@@ -34,9 +34,7 @@ editor.editor.*:
           mapping:
             width:
               type: integer
-              nullable: true
               label: 'Maximum width'
             height:
               type: integer
-              nullable: true
               label: 'Maximum height'
diff --git a/core/modules/editor/editor.module b/core/modules/editor/editor.module
index d6fa16c..7c822ed 100644
--- a/core/modules/editor/editor.module
+++ b/core/modules/editor/editor.module
@@ -67,20 +67,6 @@ function editor_element_info_alter(&$types) {
 
 /**
  * Implements hook_form_FORM_ID_alter() for \Drupal\filter\FilterFormatListBuilder.
- *
- * Implements hook_field_formatter_info_alter().
- *
- * @see quickedit_field_formatter_info_alter()
- */
-function editor_field_formatter_info_alter(&$info) {
-  // Update \Drupal\text\Plugin\Field\FieldFormatter\TextDefaultFormatter's
-  // annotation to indicate that it supports the 'editor' in-place editor
-  // provided by this module.
-  $info['text_default']['quickedit'] = ['editor' => 'editor'];
-}
-
-/**
- * Implements hook_form_FORM_ID_alter().
  */
 function editor_form_filter_admin_overview_alter(&$form, FormStateInterface $form_state) {
   // @todo Cleanup column injection: https://www.drupal.org/node/1876718.
@@ -263,7 +249,7 @@ function editor_load($format_id) {
   // than one editor will be needed on a page (such as having multiple text
   // formats for administrators). Loading a small number of editors all at once
   // is more efficient than loading multiple editors individually.
-  $editors = Editor::loadMultiple();
+  $editors = entity_load_multiple('editor');
   return isset($editors[$format_id]) ? $editors[$format_id] : NULL;
 }
 
@@ -485,9 +471,6 @@ function _editor_get_file_uuids_by_field(EntityInterface $entity) {
     $field_items = $entity->get($formatted_text_field);
     foreach ($field_items as $field_item) {
       $text .= $field_item->value;
-      if ($field_item->getFieldDefinition()->getType() == 'text_with_summary') {
-        $text .= $field_item->summary;
-      }
     }
     $uuids[$formatted_text_field] = _editor_parse_file_uuids($text);
   }
diff --git a/core/modules/editor/editor.post_update.php b/core/modules/editor/editor.post_update.php
deleted file mode 100644
index 3715b6d..0000000
--- a/core/modules/editor/editor.post_update.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @file
- * Post update functions for Editor.
- */
-
-/**
- * @addtogroup updates-8.2.x
- * @{
- */
-
-/**
- * Clear the render cache to fix file references added by Editor.
- */
-function editor_post_update_clear_cache_for_file_reference_filter() {
-}
-
-/**
- * @} End of "addtogroup updates-8.2.x".
- */
diff --git a/core/modules/editor/editor.routing.yml b/core/modules/editor/editor.routing.yml
index ad40c2f..cacdfc7 100644
--- a/core/modules/editor/editor.routing.yml
+++ b/core/modules/editor/editor.routing.yml
@@ -2,6 +2,8 @@ editor.filter_xss:
   path: '/editor/filter_xss/{filter_format}'
   defaults:
     _controller: '\Drupal\editor\EditorController::filterXss'
+  options:
+    _theme: ajax_base_page
   requirements:
     _entity_access: 'filter_format.use'
 
@@ -10,6 +12,7 @@ editor.field_untransformed_text:
   defaults:
     _controller: '\Drupal\editor\EditorController::getUntransformedText'
   options:
+    _theme: ajax_base_page
     parameters:
       entity:
         type: entity:{entity_type}
@@ -22,6 +25,8 @@ editor.image_dialog:
   defaults:
     _form: '\Drupal\editor\Form\EditorImageDialog'
     _title: 'Upload image'
+  options:
+    _theme: ajax_base_page
   requirements:
     _entity_access: 'filter_format.use'
 
@@ -30,5 +35,7 @@ editor.link_dialog:
   defaults:
     _form: '\Drupal\editor\Form\EditorLinkDialog'
     _title: 'Add link'
+  options:
+    _theme: ajax_base_page
   requirements:
     _entity_access: 'filter_format.use'
diff --git a/core/modules/editor/src/Plugin/Filter/EditorFileReference.php b/core/modules/editor/src/Plugin/Filter/EditorFileReference.php
index 24b46d2..0e520aa 100644
--- a/core/modules/editor/src/Plugin/Filter/EditorFileReference.php
+++ b/core/modules/editor/src/Plugin/Filter/EditorFileReference.php
@@ -71,16 +71,6 @@ public function process($text, $langcode) {
       $processed_uuids = array();
       foreach ($xpath->query('//*[@data-entity-type="file" and @data-entity-uuid]') as $node) {
         $uuid = $node->getAttribute('data-entity-uuid');
-
-        // If there is a 'src' attribute, set it to the file entity's current
-        // URL. This ensures the URL works even after the file location changes.
-        if ($node->hasAttribute('src')) {
-          $file = $this->entityManager->loadEntityByUuid('file', $uuid);
-          if ($file) {
-            $node->setAttribute('src', file_url_transform_relative(file_create_url($file->getFileUri())));
-          }
-        }
-
         // Only process the first occurrence of each file UUID.
         if (!isset($processed_uuids[$uuid])) {
           $processed_uuids[$uuid] = TRUE;
@@ -91,7 +81,6 @@ public function process($text, $langcode) {
           }
         }
       }
-      $result->setProcessedText(Html::serialize($dom));
     }
 
     return $result;
diff --git a/core/modules/editor/src/Plugin/InPlaceEditor/Editor.php b/core/modules/editor/src/Plugin/InPlaceEditor/Editor.php
index 5d50342..24b43ea 100644
--- a/core/modules/editor/src/Plugin/InPlaceEditor/Editor.php
+++ b/core/modules/editor/src/Plugin/InPlaceEditor/Editor.php
@@ -4,7 +4,6 @@
 
 use Drupal\Component\Plugin\PluginBase;
 use Drupal\Core\Field\FieldItemListInterface;
-use Drupal\filter\Entity\FilterFormat;
 use Drupal\quickedit\Plugin\InPlaceEditorInterface;
 use Drupal\filter\Plugin\FilterInterface;
 
@@ -12,7 +11,8 @@
  * Defines the formatted text in-place editor.
  *
  * @InPlaceEditor(
- *   id = "editor"
+ *   id = "editor",
+ *   alternativeTo = {"plain_text"}
  * )
  */
 class Editor extends PluginBase implements InPlaceEditorInterface {
@@ -30,14 +30,16 @@ public function isCompatible(FieldItemListInterface $items) {
     // This editor is compatible with formatted ("rich") text fields; but only
     // if there is a currently active text format, that text format has an
     // associated editor and that editor supports inline editing.
-    elseif ($editor = editor_load($items[0]->format)) {
-      $definition = \Drupal::service('plugin.manager.editor')->getDefinition($editor->getEditor());
-      if ($definition['supports_inline_editing'] === TRUE) {
-        return TRUE;
+    elseif (in_array($field_definition->getType(), array('text', 'text_long', 'text_with_summary'), TRUE)) {
+      if ($editor = editor_load($items[0]->format)) {
+        $definition = \Drupal::service('plugin.manager.editor')->getDefinition($editor->getEditor());
+        if ($definition['supports_inline_editing'] === TRUE) {
+          return TRUE;
+        }
       }
-    }
 
-    return FALSE;
+      return FALSE;
+    }
   }
 
   /**
@@ -59,7 +61,7 @@ function getMetadata(FieldItemListInterface $items) {
    * @return bool
    */
   protected function textFormatHasTransformationFilters($format_id) {
-    $format = FilterFormat::load($format_id);
+    $format = entity_load('filter_format', $format_id);
     return (bool) count(array_intersect(array(FilterInterface::TYPE_TRANSFORM_REVERSIBLE, FilterInterface::TYPE_TRANSFORM_IRREVERSIBLE), $format->getFiltertypes()));
   }
 
diff --git a/core/modules/editor/src/Tests/EditorUploadImageScaleTest.php b/core/modules/editor/src/Tests/EditorUploadImageScaleTest.php
index 5ac88c7..ac6e46b 100644
--- a/core/modules/editor/src/Tests/EditorUploadImageScaleTest.php
+++ b/core/modules/editor/src/Tests/EditorUploadImageScaleTest.php
@@ -50,8 +50,8 @@ protected function setUp() {
         'directory' => 'inline-images',
         'max_size' => '',
         'max_dimensions' => [
-          'width' => NULL,
-          'height' => NULL
+          'width' => '',
+          'height' => ''
         ],
       ]
     ])->save();
@@ -71,10 +71,9 @@ public function testEditorUploadImageScale() {
     // Case 1: no max dimensions set: uploaded image not scaled.
     $test_image = $testing_image_list[0];
     list($image_file_width, $image_file_height) = $this->getTestImageInfo($test_image->uri);
-    $max_width = NULL;
-    $max_height = NULL;
+    $max_width = '';
+    $max_height = '';
     $this->setMaxDimensions($max_width, $max_height);
-    $this->assertSavedMaxDimensions($max_width, $max_height);
     list($uploaded_image_file_width, $uploaded_image_file_height) = $this->uploadImage($test_image->uri);
     $this->assertEqual($uploaded_image_file_width, $image_file_width);
     $this->assertEqual($uploaded_image_file_height, $image_file_height);
@@ -86,7 +85,6 @@ public function testEditorUploadImageScale() {
     $max_width = $image_file_width - 5;
     $max_height = $image_file_height;
     $this->setMaxDimensions($max_width, $max_height);
-    $this->assertSavedMaxDimensions($max_width, $max_height);
     list($uploaded_image_file_width, $uploaded_image_file_height) = $this->uploadImage($test_image->uri);
     $this->assertEqual($uploaded_image_file_width, $max_width);
     $this->assertEqual($uploaded_image_file_height, $uploaded_image_file_height * ($uploaded_image_file_width / $max_width));
@@ -98,7 +96,6 @@ public function testEditorUploadImageScale() {
     $max_width = $image_file_width;
     $max_height = $image_file_height - 5;
     $this->setMaxDimensions($max_width, $max_height);
-    $this->assertSavedMaxDimensions($max_width, $max_height);
     list($uploaded_image_file_width, $uploaded_image_file_height) = $this->uploadImage($test_image->uri);
     $this->assertEqual($uploaded_image_file_width, $uploaded_image_file_width * ($uploaded_image_file_height / $max_height));
     $this->assertEqual($uploaded_image_file_height, $max_height);
@@ -110,37 +107,10 @@ public function testEditorUploadImageScale() {
     $max_width = $image_file_width + 5;
     $max_height = $image_file_height + 5;
     $this->setMaxDimensions($max_width, $max_height);
-    $this->assertSavedMaxDimensions($max_width, $max_height);
     list($uploaded_image_file_width, $uploaded_image_file_height) = $this->uploadImage($test_image->uri);
     $this->assertEqual($uploaded_image_file_width, $image_file_width);
     $this->assertEqual($uploaded_image_file_height, $image_file_height);
     $this->assertNoRaw(t('The image was resized to fit within the maximum allowed dimensions of %dimensions pixels.', ['%dimensions' => $max_width . 'x' . $max_height]));
-
-    // Case 5: only max width dimension was provided and it was smaller than
-    // uploaded image: image scaled down.
-    $test_image = $testing_image_list[4];
-    list($image_file_width, $image_file_height) = $this->getTestImageInfo($test_image->uri);
-    $max_width = $image_file_width - 5;
-    $max_height = NULL;
-    $this->setMaxDimensions($max_width, $max_height);
-    $this->assertSavedMaxDimensions($max_width, $max_height);
-    list($uploaded_image_file_width, $uploaded_image_file_height) = $this->uploadImage($test_image->uri);
-    $this->assertEqual($uploaded_image_file_width, $max_width);
-    $this->assertEqual($uploaded_image_file_height, $uploaded_image_file_height * ($uploaded_image_file_width / $max_width));
-    $this->assertRaw(t('The image was resized to fit within the maximum allowed width of %width pixels.', ['%width' => $max_width]));
-
-    // Case 6: only max height dimension was provided and it was smaller than
-    // uploaded image: image scaled down.
-    $test_image = $testing_image_list[5];
-    list($image_file_width, $image_file_height) = $this->getTestImageInfo($test_image->uri);
-    $max_width = NULL;
-    $max_height = $image_file_height - 5;
-    $this->setMaxDimensions($max_width, $max_height);
-    $this->assertSavedMaxDimensions($max_width, $max_height);
-    list($uploaded_image_file_width, $uploaded_image_file_height) = $this->uploadImage($test_image->uri);
-    $this->assertEqual($uploaded_image_file_width, $uploaded_image_file_width * ($uploaded_image_file_height / $max_height));
-    $this->assertEqual($uploaded_image_file_height, $max_height);
-    $this->assertRaw(t('The image was resized to fit within the maximum allowed height of %height pixels.', ['%height' => $max_height]));
   }
 
   /**
@@ -199,25 +169,4 @@ protected function uploadImage($uri) {
     ];
   }
 
-  /**
-   * Asserts whether the saved maximum dimensions equal the ones provided.
-   *
-   * @param string $width
-   *   The expected width of the uploaded image.
-   * @param string $height
-   *   The expected height of the uploaded image.
-   *
-   * @return bool
-   */
-  protected function assertSavedMaxDimensions($width, $height) {
-    $image_upload_settings = Editor::load('basic_html')->getImageUploadSettings();
-    $expected = [
-      'width' => $image_upload_settings['max_dimensions']['width'],
-      'height' => $image_upload_settings['max_dimensions']['height'],
-    ];
-    $same_width = $this->assertEqual($width, $expected['width'], 'Actual width of "' . $width . '" equals the expected width of "' . $expected['width'] . '"');
-    $same_height = $this->assertEqual($height, $expected['height'], 'Actual height of "' . $height . '" equals the expected width of "' . $expected['height'] . '"');
-    return $same_width && $same_height;
-  }
-
 }
diff --git a/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php b/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php
index 9a41f6b..4de9eca 100644
--- a/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php
+++ b/core/modules/editor/src/Tests/QuickEditIntegrationLoadingTest.php
@@ -102,7 +102,7 @@ public function testUserWithPermission() {
     // Ensure the text is transformed.
     $this->assertRaw('<p>Do you also love Drupal?</p><figure role="group" class="caption caption-img"><img src="druplicon.png" /><figcaption>Druplicon</figcaption></figure>');
 
-    $response = $this->drupalPost('editor/' . 'node/1/body/en/full', '', [], ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+    $response = $this->drupalPost('editor/' . 'node/1/body/en/full', 'application/vnd.drupal-ajax', array());
     $this->assertResponse(200);
     $ajax_commands = Json::decode($response);
     $this->assertIdentical(1, count($ajax_commands), 'The untransformed text POST request results in one AJAX command.');
diff --git a/core/modules/editor/tests/src/Kernel/EditorFileReferenceFilterTest.php b/core/modules/editor/tests/src/Kernel/EditorFileReferenceFilterTest.php
index 51eee97..fb7d3e4 100644
--- a/core/modules/editor/tests/src/Kernel/EditorFileReferenceFilterTest.php
+++ b/core/modules/editor/tests/src/Kernel/EditorFileReferenceFilterTest.php
@@ -76,23 +76,20 @@ function testEditorFileReferenceFilter() {
 
     $this->pass('One data-entity-uuid attribute.');
     $input = '<img src="llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '" />';
-    $expected_output = '<img src="/' . $this->siteDirectory . '/files/llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '" />';
     $output = $test($input);
-    $this->assertIdentical($expected_output, $output->getProcessedText());
+    $this->assertIdentical($input, $output->getProcessedText());
     $this->assertEqual($cache_tag, $output->getCacheTags());
 
     $this->pass('One data-entity-uuid attribute with odd capitalization.');
     $input = '<img src="llama.jpg" data-entity-type="file" DATA-entity-UUID =   "' . $uuid . '" />';
-    $expected_output = '<img src="/' . $this->siteDirectory . '/files/llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '" />';
     $output = $test($input);
-    $this->assertIdentical($expected_output, $output->getProcessedText());
+    $this->assertIdentical($input, $output->getProcessedText());
     $this->assertEqual($cache_tag, $output->getCacheTags());
 
     $this->pass('One data-entity-uuid attribute on a non-image tag.');
     $input = '<video src="llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '" />';
-    $expected_output = '<video src="/' . $this->siteDirectory . '/files/llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '"></video>';
     $output = $test($input);
-    $this->assertIdentical($expected_output, $output->getProcessedText());
+    $this->assertIdentical($input, $output->getProcessedText());
     $this->assertEqual($cache_tag, $output->getCacheTags());
 
     $this->pass('One data-entity-uuid attribute with an invalid value.');
@@ -104,19 +101,15 @@ function testEditorFileReferenceFilter() {
     $this->pass('Two different data-entity-uuid attributes.');
     $input = '<img src="llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '" />';
     $input .= '<img src="alpaca.jpg" data-entity-type="file" data-entity-uuid="' . $uuid_2 . '" />';
-    $expected_output = '<img src="/' . $this->siteDirectory . '/files/llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '" />';
-    $expected_output .= '<img src="/' . $this->siteDirectory . '/files/alpaca.jpg" data-entity-type="file" data-entity-uuid="' . $uuid_2 . '" />';
     $output = $test($input);
-    $this->assertIdentical($expected_output, $output->getProcessedText());
+    $this->assertIdentical($input, $output->getProcessedText());
     $this->assertEqual(Cache::mergeTags($cache_tag, $cache_tag_2), $output->getCacheTags());
 
     $this->pass('Two identical  data-entity-uuid attributes.');
     $input = '<img src="llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '" />';
     $input .= '<img src="llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '" />';
-    $expected_output = '<img src="/' . $this->siteDirectory . '/files/llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '" />';
-    $expected_output .= '<img src="/' . $this->siteDirectory . '/files/llama.jpg" data-entity-type="file" data-entity-uuid="' . $uuid . '" />';
     $output = $test($input);
-    $this->assertIdentical($expected_output, $output->getProcessedText());
+    $this->assertIdentical($input, $output->getProcessedText());
     $this->assertEqual($cache_tag, $output->getCacheTags());
   }
 
diff --git a/core/modules/editor/tests/src/Kernel/EditorFileUsageTest.php b/core/modules/editor/tests/src/Kernel/EditorFileUsageTest.php
index 9b7b487..a8379d1 100644
--- a/core/modules/editor/tests/src/Kernel/EditorFileUsageTest.php
+++ b/core/modules/editor/tests/src/Kernel/EditorFileUsageTest.php
@@ -177,28 +177,6 @@ public function testEditorEntityHooks() {
       $this->assertIdentical(array('editor' => array('node' => array(1 => '2'))), $file_usage->listUsage($image_entity), 'The image ' . $image_paths[$key] . ' has 2 usages.');
     }
 
-    // Populate both the body and summary. Because this will be the same
-    // revision of the same node, it will record only one usage.
-    foreach ($original_values as $key => $original_value) {
-      $node->body[$key]->value = $original_value;
-      $node->body[$key]->summary = $original_value;
-    }
-    $node->save();
-    foreach ($image_entities as $key => $image_entity) {
-      $this->assertIdentical(array('editor' => array('node' => array(1 => '2'))), $file_usage->listUsage($image_entity), 'The image ' . $image_paths[$key] . ' has 2 usages.');
-    }
-
-    // Empty out the body value, but keep the summary. The number of usages
-    // should not change.
-    foreach ($original_values as $key => $original_value) {
-      $node->body[$key]->value = '';
-      $node->body[$key]->summary = $original_value;
-    }
-    $node->save();
-    foreach ($image_entities as $key => $image_entity) {
-      $this->assertIdentical(array('editor' => array('node' => array(1 => '2'))), $file_usage->listUsage($image_entity), 'The image ' . $image_paths[$key] . ' has 2 usages.');
-    }
-
     // Test editor_entity_delete().
     $node->delete();
     foreach ($image_entities as $key => $image_entity) {
diff --git a/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php b/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php
index d62cb68..5e47c36 100644
--- a/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php
+++ b/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php
@@ -121,9 +121,7 @@ protected function setUp() {
    *   Returns the selected in-place editor.
    */
   protected function getSelectedEditor($entity_id, $field_name, $view_mode = 'default') {
-    $storage = $this->container->get('entity_type.manager')->getStorage('entity_test');
-    $storage->resetCache([$entity_id]);
-    $entity = $storage->load($entity_id);
+    $entity = entity_load('entity_test', $entity_id, TRUE);
     $items = $entity->get($field_name);
     $options = entity_get_display('entity_test', 'entity_test', $view_mode)->getComponent($field_name);
     return $this->editorSelector->getEditor($options['type'], $items);
@@ -174,7 +172,7 @@ public function testMetadata() {
     $entity->{$this->fieldName}->value = 'Test';
     $entity->{$this->fieldName}->format = 'full_html';
     $entity->save();
-    $entity = EntityTest::load($entity->id());
+    $entity = entity_load('entity_test', $entity->id());
 
     // Verify metadata.
     $items = $entity->get($this->fieldName);
@@ -211,7 +209,7 @@ public function testGetUntransformedTextCommand() {
     $entity->{$this->fieldName}->value = 'Test';
     $entity->{$this->fieldName}->format = 'full_html';
     $entity->save();
-    $entity = EntityTest::load($entity->id());
+    $entity = entity_load('entity_test', $entity->id());
 
     // Verify AJAX response.
     $controller = new EditorController();
diff --git a/core/modules/field/migration_templates/d7_field.yml b/core/modules/field/migration_templates/d7_field.yml
index 18135af..3b01f54 100644
--- a/core/modules/field/migration_templates/d7_field.yml
+++ b/core/modules/field/migration_templates/d7_field.yml
@@ -2,8 +2,6 @@ id: d7_field
 label: Field configuration
 migration_tags:
   - Drupal 7
-class: Drupal\migrate_drupal\Plugin\migrate\CckMigration
-cck_plugin_method: processField
 source:
   plugin: d7_field
   constants:
@@ -15,7 +13,7 @@ process:
   langcode: 'constants/langcode'
   field_name: field_name
   type:
-    plugin: field_type
+    plugin: static_map
     source: type
     map:
       date: datetime
@@ -32,6 +30,8 @@ process:
       number_decimal: decimal
       number_float: float
       phone: telephone
+      taxonomy_term_reference: entity_reference
+      text: text
       text_long: text_long
       text_with_summary: text_with_summary
   translatable: translatable
diff --git a/core/modules/field/migration_templates/d7_field_formatter_settings.yml b/core/modules/field/migration_templates/d7_field_formatter_settings.yml
index ee07ec4..2eb8ec8 100644
--- a/core/modules/field/migration_templates/d7_field_formatter_settings.yml
+++ b/core/modules/field/migration_templates/d7_field_formatter_settings.yml
@@ -2,8 +2,6 @@ id: d7_field_formatter_settings
 label: Field formatter configuration
 migration_tags:
   - Drupal 7
-class: Drupal\migrate_drupal\Plugin\migrate\CckMigration
-cck_plugin_method: processFieldFormatter
 source:
   plugin: d7_field_instance_per_view_mode
   constants:
diff --git a/core/modules/field/migration_templates/d7_field_instance.yml b/core/modules/field/migration_templates/d7_field_instance.yml
index b6d2497..62ec9ce 100644
--- a/core/modules/field/migration_templates/d7_field_instance.yml
+++ b/core/modules/field/migration_templates/d7_field_instance.yml
@@ -2,8 +2,6 @@ id: d7_field_instance
 label: Field instance configuration
 migration_tags:
   - Drupal 7
-class: Drupal\migrate_drupal\Plugin\migrate\CckMigration
-cck_plugin_method: processFieldInstance
 source:
   plugin: d7_field_instance
   constants:
diff --git a/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml b/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml
index f88f2d2..e710fbe 100644
--- a/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml
+++ b/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml
@@ -2,8 +2,6 @@ id: d7_field_instance_widget_settings
 label: Field instance widget configuration
 migration_tags:
   - Drupal 7
-class: Drupal\migrate_drupal\Plugin\migrate\CckMigration
-cck_plugin_method: processFieldWidget
 source:
   plugin: d7_field_instance_per_form_display
   constants:
diff --git a/core/modules/field/migration_templates/d7_view_modes.yml b/core/modules/field/migration_templates/d7_view_modes.yml
index fd17138..b4f9998 100644
--- a/core/modules/field/migration_templates/d7_view_modes.yml
+++ b/core/modules/field/migration_templates/d7_view_modes.yml
@@ -14,7 +14,6 @@ process:
   label:
     plugin: static_map
     source: view_mode
-    bypass: true
     map:
       search_index: "Search index"
       search_result: "Search result"
diff --git a/core/modules/field/src/Plugin/migrate/process/FieldType.php b/core/modules/field/src/Plugin/migrate/process/d6/FieldType.php
similarity index 71%
rename from core/modules/field/src/Plugin/migrate/process/FieldType.php
rename to core/modules/field/src/Plugin/migrate/process/d6/FieldType.php
index 1296940..3511a3a 100644
--- a/core/modules/field/src/Plugin/migrate/process/FieldType.php
+++ b/core/modules/field/src/Plugin/migrate/process/d6/FieldType.php
@@ -1,12 +1,11 @@
 <?php
 
-namespace Drupal\field\Plugin\migrate\process;
+namespace Drupal\field\Plugin\migrate\process\d6;
 
 use Drupal\Component\Plugin\Exception\PluginNotFoundException;
 use Drupal\Component\Plugin\PluginManagerInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\migrate\MigrateExecutableInterface;
-use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Plugin\migrate\process\StaticMap;
 use Drupal\migrate\Row;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -26,13 +25,6 @@ class FieldType extends StaticMap implements ContainerFactoryPluginInterface {
   protected $cckPluginManager;
 
   /**
-   * The migration object.
-   *
-   * @var \Drupal\migrate\Plugin\MigrationInterface
-   */
-  protected $migration;
-
-  /**
    * Constructs a FieldType plugin.
    *
    * @param array $configuration
@@ -43,25 +35,21 @@ class FieldType extends StaticMap implements ContainerFactoryPluginInterface {
    *   The plugin definition.
    * @param \Drupal\Component\Plugin\PluginManagerInterface $cck_plugin_manager
    *   The cckfield plugin manager.
-   * @param \Drupal\migrate\Plugin\MigrationInterface $migration
-   *   The migration being run.
    */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, PluginManagerInterface $cck_plugin_manager, MigrationInterface $migration = NULL) {
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, PluginManagerInterface $cck_plugin_manager) {
     parent::__construct($configuration, $plugin_id, $plugin_definition);
     $this->cckPluginManager = $cck_plugin_manager;
-    $this->migration = $migration;
   }
 
   /**
    * {@inheritdoc}
    */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) {
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
     return new static(
       $configuration,
       $plugin_id,
       $plugin_definition,
-      $container->get('plugin.manager.migrate.cckfield'),
-      $migration
+      $container->get('plugin.manager.migrate.cckfield')
     );
   }
 
@@ -69,10 +57,11 @@ public static function create(ContainerInterface $container, array $configuratio
    * {@inheritdoc}
    */
   public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
-    $field_type = is_array($value) ? $value[0] : $value;
+    list ($field_type, $widget_type) = $value;
 
     try {
-      return $this->cckPluginManager->createInstance($field_type, [], $this->migration)->getFieldType($row);
+      return $this->cckPluginManager->createInstance($field_type)
+        ->getFieldType($row);
     }
     catch (PluginNotFoundException $e) {
       return parent::transform($value, $migrate_executable, $row, $destination_property);
diff --git a/core/modules/field/src/Plugin/migrate/source/d6/FieldInstancePerFormDisplay.php b/core/modules/field/src/Plugin/migrate/source/d6/FieldInstancePerFormDisplay.php
index 8c2f319..ab1f251 100644
--- a/core/modules/field/src/Plugin/migrate/source/d6/FieldInstancePerFormDisplay.php
+++ b/core/modules/field/src/Plugin/migrate/source/d6/FieldInstancePerFormDisplay.php
@@ -62,7 +62,7 @@ public function query() {
         'module',
       ));
     $query->join('content_node_field', 'cnf', 'cnfi.field_name = cnf.field_name');
-    $query->orderBy('cnfi.weight');
+    $query->orderBy('weight');
 
     return $query;
   }
diff --git a/core/modules/field/src/Plugin/migrate/source/d6/FieldInstancePerViewMode.php b/core/modules/field/src/Plugin/migrate/source/d6/FieldInstancePerViewMode.php
index 93ba4ef..198886a 100644
--- a/core/modules/field/src/Plugin/migrate/source/d6/FieldInstancePerViewMode.php
+++ b/core/modules/field/src/Plugin/migrate/source/d6/FieldInstancePerViewMode.php
@@ -65,7 +65,7 @@ public function query() {
         'module',
     ));
     $query->join('content_node_field', 'cnf', 'cnfi.field_name = cnf.field_name');
-    $query->orderBy('cnfi.weight');
+    $query->orderBy('weight');
 
     return $query;
   }
diff --git a/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php b/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php
index 7aa281f..3c076e5 100644
--- a/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php
+++ b/core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php
@@ -31,10 +31,10 @@ public function query() {
 
     // Optionally filter by entity type and bundle.
     if (isset($this->configuration['entity_type'])) {
-      $query->condition('fci.entity_type', $this->configuration['entity_type']);
+      $query->condition('entity_type', $this->configuration['entity_type']);
 
       if (isset($this->configuration['bundle'])) {
-        $query->condition('fci.bundle', $this->configuration['bundle']);
+        $query->condition('bundle', $this->configuration['bundle']);
       }
     }
 
diff --git a/core/modules/field/src/Plugin/migrate/source/d7/FieldInstancePerFormDisplay.php b/core/modules/field/src/Plugin/migrate/source/d7/FieldInstancePerFormDisplay.php
index 62de5d9..823a5eb 100644
--- a/core/modules/field/src/Plugin/migrate/source/d7/FieldInstancePerFormDisplay.php
+++ b/core/modules/field/src/Plugin/migrate/source/d7/FieldInstancePerFormDisplay.php
@@ -28,7 +28,8 @@ public function query() {
       ->fields('fc', array(
         'type',
         'module',
-      ));
+      ))
+      ->condition('fci.entity_type', 'node');
     $query->join('field_config', 'fc', 'fci.field_id = fc.id');
     return $query;
   }
diff --git a/core/modules/field/src/Tests/Boolean/BooleanFieldTest.php b/core/modules/field/src/Tests/Boolean/BooleanFieldTest.php
index 30f67d1..1f37f0d 100644
--- a/core/modules/field/src/Tests/Boolean/BooleanFieldTest.php
+++ b/core/modules/field/src/Tests/Boolean/BooleanFieldTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\field\Tests\Boolean;
 
 use Drupal\Component\Utility\Unicode;
-use Drupal\entity_test\Entity\EntityTest;
 use Drupal\field\Entity\FieldStorageConfig;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\simpletest\WebTestBase;
@@ -95,8 +94,7 @@ function testBooleanField() {
     // Display creation form.
     $this->drupalGet('entity_test/add');
     $this->assertFieldByName("{$field_name}[value]", '', 'Widget found.');
-    $this->assertText($this->field->label(), 'Uses field label by default.');
-    $this->assertNoRaw($on, 'Does not use the "On" label.');
+    $this->assertRaw($on);
 
     // Submit and ensure it is accepted.
     $edit = array(
@@ -108,36 +106,36 @@ function testBooleanField() {
     $this->assertText(t('entity_test @id has been created.', array('@id' => $id)));
 
     // Verify that boolean value is displayed.
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full');
     $content = $display->build($entity);
     $this->setRawContent(\Drupal::service('renderer')->renderRoot($content));
     $this->assertRaw('<div class="field__item">' . $on . '</div>');
 
-    // Test with "On" label option.
+    // Test if we can change the on label.
+    $on = $this->randomMachineName();
+    $edit = array(
+      'settings[on_label]' => $on,
+    );
+    $this->drupalPostForm('entity_test/structure/entity_test/fields/entity_test.entity_test.' . $field_name, $edit, t('Save settings'));
+    // Check if we see the updated labels in the creation form.
+    $this->drupalGet('entity_test/add');
+    $this->assertRaw($on);
+
+    // Test the display_label option.
     entity_get_form_display('entity_test', 'entity_test', 'default')
       ->setComponent($field_name, array(
         'type' => 'boolean_checkbox',
         'settings' => array(
-          'display_label' => FALSE,
+          'display_label' => TRUE,
         )
       ))
       ->save();
 
     $this->drupalGet('entity_test/add');
     $this->assertFieldByName("{$field_name}[value]", '', 'Widget found.');
-    $this->assertRaw($on);
-    $this->assertNoText($this->field->label());
-
-    // Test if we can change the on label.
-    $on = $this->randomMachineName();
-    $edit = array(
-      'settings[on_label]' => $on,
-    );
-    $this->drupalPostForm('entity_test/structure/entity_test/fields/entity_test.entity_test.' . $field_name, $edit, t('Save settings'));
-    // Check if we see the updated labels in the creation form.
-    $this->drupalGet('entity_test/add');
-    $this->assertRaw($on);
+    $this->assertNoRaw($on);
+    $this->assertText($this->field->label());
 
     // Go to the form display page and check if the default settings works as
     // expected.
diff --git a/core/modules/field/src/Tests/Email/EmailFieldTest.php b/core/modules/field/src/Tests/Email/EmailFieldTest.php
index 7c22861..b8401fb 100644
--- a/core/modules/field/src/Tests/Email/EmailFieldTest.php
+++ b/core/modules/field/src/Tests/Email/EmailFieldTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\field\Tests\Email;
 
 use Drupal\Component\Utility\Unicode;
-use Drupal\entity_test\Entity\EntityTest;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\simpletest\WebTestBase;
 use Drupal\field\Entity\FieldStorageConfig;
@@ -97,7 +96,7 @@ function testEmailField() {
     $this->assertRaw($value);
 
     // Verify that a mailto link is displayed.
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full');
     $content = $display->build($entity);
     $this->setRawContent(\Drupal::service('renderer')->renderRoot($content));
diff --git a/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php b/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php
index e69e04f..bfc135e 100644
--- a/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php
+++ b/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php
@@ -73,7 +73,7 @@ public function testImportDeleteUninstall() {
 
     // Verify entity has been created properly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_tel->value, $value);
     $this->assertEqual($entity->field_tel[0]->value, $value);
 
diff --git a/core/modules/field/src/Tests/FieldTestBase.php b/core/modules/field/src/Tests/FieldTestBase.php
index 18259f6..2b1b020 100644
--- a/core/modules/field/src/Tests/FieldTestBase.php
+++ b/core/modules/field/src/Tests/FieldTestBase.php
@@ -17,7 +17,7 @@
    * @param $cardinality
    *   Number of values to generate.
    * @return
-   *   An array of random values, in the format expected for field values.
+   *  An array of random values, in the format expected for field values.
    */
   function _generateTestFieldValues($cardinality) {
     $values = array();
diff --git a/core/modules/field/src/Tests/FormTest.php b/core/modules/field/src/Tests/FormTest.php
index a6014a7..c2efc17 100644
--- a/core/modules/field/src/Tests/FormTest.php
+++ b/core/modules/field/src/Tests/FormTest.php
@@ -6,7 +6,6 @@
 use Drupal\Core\Entity\Entity\EntityFormDisplay;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\Form\FormState;
-use Drupal\entity_test\Entity\EntityTest;
 use Drupal\entity_test\Entity\EntityTestBaseFieldDisplay;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\Entity\FieldStorageConfig;
@@ -131,7 +130,7 @@ function testFieldFormSingle() {
     preg_match('|entity_test/manage/(\d+)|', $this->url, $match);
     $id = $match[1];
     $this->assertText(t('entity_test @id has been created.', array('@id' => $id)), 'Entity was created');
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->{$field_name}->value, $value, 'Field value was saved');
 
     // Display edit form.
@@ -147,7 +146,7 @@ function testFieldFormSingle() {
     $this->drupalPostForm(NULL, $edit, t('Save'));
     $this->assertText(t('entity_test @id has been updated.', array('@id' => $id)), 'Entity was updated');
     $this->container->get('entity.manager')->getStorage('entity_test')->resetCache(array($id));
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->{$field_name}->value, $value, 'Field value was updated');
 
     // Empty the field.
@@ -158,7 +157,7 @@ function testFieldFormSingle() {
     $this->drupalPostForm('entity_test/manage/' . $id . '/edit', $edit, t('Save'));
     $this->assertText(t('entity_test @id has been updated.', array('@id' => $id)), 'Entity was updated');
     $this->container->get('entity.manager')->getStorage('entity_test')->resetCache(array($id));
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertTrue($entity->{$field_name}->isEmpty(), 'Field was emptied');
   }
 
@@ -190,7 +189,7 @@ function testFieldFormDefaultValue() {
     preg_match('|entity_test/manage/(\d+)|', $this->url, $match);
     $id = $match[1];
     $this->assertText(t('entity_test @id has been created.', array('@id' => $id)), 'Entity was created.');
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertTrue($entity->{$field_name}->isEmpty(), 'Field is now empty.');
   }
 
@@ -219,7 +218,7 @@ function testFieldFormSingleRequired() {
     preg_match('|entity_test/manage/(\d+)|', $this->url, $match);
     $id = $match[1];
     $this->assertText(t('entity_test @id has been created.', array('@id' => $id)), 'Entity was created');
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->{$field_name}->value, $value, 'Field value was saved');
 
     // Edit with missing required value.
@@ -300,7 +299,7 @@ function testFieldFormUnlimited() {
     preg_match('|entity_test/manage/(\d+)|', $this->url, $match);
     $id = $match[1];
     $this->assertText(t('entity_test @id has been created.', array('@id' => $id)), 'Entity was created');
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     ksort($field_values);
     $field_values = array_values($field_values);
     $this->assertIdentical($entity->{$field_name}->getValue(), $field_values, 'Field values were saved in the correct order');
@@ -475,7 +474,7 @@ function testFieldFormMultipleWidget() {
     $id = $match[1];
 
     // Check that the values were saved.
-    $entity_init = EntityTest::load($id);
+    $entity_init = entity_load('entity_test', $id);
     $this->assertFieldValues($entity_init, $field_name, array(1, 2, 3));
 
     // Display the form, check that the values are correctly filled in.
diff --git a/core/modules/field/src/Tests/String/StringFieldTest.php b/core/modules/field/src/Tests/String/StringFieldTest.php
index 0ac5748..ed71ebc 100644
--- a/core/modules/field/src/Tests/String/StringFieldTest.php
+++ b/core/modules/field/src/Tests/String/StringFieldTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\field\Tests\String;
 
 use Drupal\Component\Utility\Unicode;
-use Drupal\entity_test\Entity\EntityTest;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\simpletest\WebTestBase;
 use Drupal\field\Entity\FieldStorageConfig;
@@ -92,7 +91,7 @@ function _testTextfieldWidgets($field_type, $widget_type) {
     $this->assertText(t('entity_test @id has been created.', array('@id' => $id)), 'Entity was created');
 
     // Display the entity.
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full');
     $content = $display->build($entity);
     $this->setRawContent(\Drupal::service('renderer')->renderRoot($content));
diff --git a/core/modules/field/src/Tests/Views/FieldUITest.php b/core/modules/field/src/Tests/Views/FieldUITest.php
index b818da6..b51abb2 100644
--- a/core/modules/field/src/Tests/Views/FieldUITest.php
+++ b/core/modules/field/src/Tests/Views/FieldUITest.php
@@ -81,16 +81,6 @@ public function testHandlerUI() {
     $this->assertEqual($view->field['field_name_0']->options['type'], 'text_trimmed');
     $this->assertEqual($view->field['field_name_0']->options['settings']['trim_length'], $random_number);
 
-    // Now change the formatter back to 'default' which doesn't have any
-    // settings. We want to ensure that the settings are empty then.
-    $edit['options[type]'] = 'text_default';
-    $this->drupalPostForm('admin/structure/views/nojs/handler/test_view_fieldapi/default/field/field_name_0', $edit, t('Apply'));
-    $this->drupalPostForm('admin/structure/views/view/test_view_fieldapi', [], t('Save'));
-    $view = Views::getView('test_view_fieldapi');
-    $view->initHandlers();
-    $this->assertEqual($view->field['field_name_0']->options['type'], 'text_default');
-    $this->assertEqual($view->field['field_name_0']->options['settings'], []);
-
     // Ensure that the view depends on the field storage.
     $dependencies = \Drupal::service('config.manager')->findConfigEntityDependents('config', [$this->fieldStorages[0]->getConfigDependencyName()]);
     $this->assertTrue(isset($dependencies['views.view.test_view_fieldapi']), 'The view is dependent on the field storage.');
diff --git a/core/modules/field/tests/src/Kernel/Boolean/BooleanItemTest.php b/core/modules/field/tests/src/Kernel/Boolean/BooleanItemTest.php
index cb8b501..80f9d11 100644
--- a/core/modules/field/tests/src/Kernel/Boolean/BooleanItemTest.php
+++ b/core/modules/field/tests/src/Kernel/Boolean/BooleanItemTest.php
@@ -55,7 +55,7 @@ public function testBooleanItem() {
 
     // Verify entity has been created properly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertTrue($entity->field_boolean instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->field_boolean[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->field_boolean->value, $value);
@@ -68,7 +68,7 @@ public function testBooleanItem() {
 
     // Read changed entity and assert changed values.
     $entity->save();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_boolean->value, $new_value);
 
     // Test sample item generation.
diff --git a/core/modules/field/tests/src/Kernel/Email/EmailItemTest.php b/core/modules/field/tests/src/Kernel/Email/EmailItemTest.php
index cd8b7ac..8b1d145 100644
--- a/core/modules/field/tests/src/Kernel/Email/EmailItemTest.php
+++ b/core/modules/field/tests/src/Kernel/Email/EmailItemTest.php
@@ -52,7 +52,7 @@ public function testEmailItem() {
 
     // Verify entity has been created properly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertTrue($entity->field_email instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->field_email[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->field_email->value, $value);
@@ -65,7 +65,7 @@ public function testEmailItem() {
 
     // Read changed entity and assert changed values.
     $entity->save();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_email->value, $new_value);
 
     // Test sample item generation.
diff --git a/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceFormatterTest.php b/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceFormatterTest.php
index 6720224..28c5d6c 100644
--- a/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceFormatterTest.php
+++ b/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceFormatterTest.php
@@ -66,7 +66,7 @@ protected function setUp() {
     // Use Classy theme for testing markup output.
     \Drupal::service('theme_handler')->install(['classy']);
     \Drupal::service('theme_handler')->setDefault('classy');
-    $this->installEntitySchema('entity_test');
+
     // Grant the 'view test entity' permission.
     $this->installConfig(array('user'));
     Role::load(RoleInterface::ANONYMOUS_ID)
@@ -271,7 +271,6 @@ public function testEntityFormatterRecursiveRendering() {
    * Tests the label formatter.
    */
   public function testLabelFormatter() {
-    $this->installEntitySchema('entity_test_label');
     /** @var \Drupal\Core\Render\RendererInterface $renderer */
     $renderer = $this->container->get('renderer');
     $formatter = 'entity_reference_label';
diff --git a/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php b/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php
index e00848c..edb3029 100644
--- a/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php
+++ b/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php
@@ -116,7 +116,7 @@ public function testContentEntityReferenceItem() {
     $entity->name->value = $this->randomMachineName();
     $entity->save();
 
-    $entity = EntityTest::load($entity->id());
+    $entity = entity_load('entity_test', $entity->id());
     $this->assertTrue($entity->field_test_taxonomy_term instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->field_test_taxonomy_term[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->field_test_taxonomy_term->target_id, $tid);
@@ -212,7 +212,7 @@ public function testConfigEntityReferenceItem() {
     $entity->name->value = $this->randomMachineName();
     $entity->save();
 
-    $entity = EntityTest::load($entity->id());
+    $entity = entity_load('entity_test', $entity->id());
     $this->assertTrue($entity->field_test_taxonomy_vocabulary instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->field_test_taxonomy_vocabulary[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->field_test_taxonomy_vocabulary->target_id, $referenced_entity_id);
diff --git a/core/modules/field/tests/src/Kernel/FieldImportDeleteUninstallTest.php b/core/modules/field/tests/src/Kernel/FieldImportDeleteUninstallTest.php
index dab6e0d..3e7f6ce 100644
--- a/core/modules/field/tests/src/Kernel/FieldImportDeleteUninstallTest.php
+++ b/core/modules/field/tests/src/Kernel/FieldImportDeleteUninstallTest.php
@@ -70,7 +70,7 @@ public function testImportDeleteUninstall() {
 
     // Verify entity has been created properly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_test->value, $value);
     $this->assertEqual($entity->field_test[0]->value, $value);
     $this->assertEqual($entity->field_int->value, '99');
@@ -134,7 +134,7 @@ public function testImportAlreadyDeletedUninstall() {
 
       // Verify entity has been created properly.
       $id = $entity->id();
-      $entity = EntityTest::load($id);
+      $entity = entity_load('entity_test', $id);
       $this->assertEqual($entity->field_test->value, $value);
     }
 
diff --git a/core/modules/field/tests/src/Kernel/FieldKernelTestBase.php b/core/modules/field/tests/src/Kernel/FieldKernelTestBase.php
index a780895..c864de8 100644
--- a/core/modules/field/tests/src/Kernel/FieldKernelTestBase.php
+++ b/core/modules/field/tests/src/Kernel/FieldKernelTestBase.php
@@ -139,6 +139,8 @@ protected function entitySaveReload(EntityInterface $entity) {
    *
    * @param \Drupal\Core\Entity\EntityInterface $entity
    *   The entity to save.
+   *
+   * @return void
    */
   protected function entityValidateAndSave(EntityInterface $entity) {
     $violations = $entity->validate();
@@ -156,7 +158,7 @@ protected function entityValidateAndSave(EntityInterface $entity) {
    * @param $cardinality
    *   Number of values to generate.
    * @return
-   *   An array of random values, in the format expected for field values.
+   *  An array of random values, in the format expected for field values.
    */
   protected function _generateTestFieldValues($cardinality) {
     $values = array();
diff --git a/core/modules/field/tests/src/Kernel/FieldTypePluginManagerTest.php b/core/modules/field/tests/src/Kernel/FieldTypePluginManagerTest.php
index 6d44384..e82f5a8 100644
--- a/core/modules/field/tests/src/Kernel/FieldTypePluginManagerTest.php
+++ b/core/modules/field/tests/src/Kernel/FieldTypePluginManagerTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\Tests\field\Kernel;
 
 use Drupal\Component\Utility\SafeMarkup;
-use Drupal\Core\Extension\ExtensionDiscovery;
 use Drupal\Core\Field\BaseFieldDefinition;
 use Drupal\entity_test\Entity\EntityTest;
 
@@ -85,41 +84,4 @@ public function testCreateInstanceWithConfig() {
     $this->assertEqual($instance->getFieldDefinition()->getDefaultValue($entity), [['value' => 8675309]], 'Instance default_value is 8675309');
   }
 
-  /**
-   * Tests all field items provide an existing main property.
-   */
-  public function testMainProperty() {
-    // Let's enable all Drupal modules in Drupal core, so we test any field
-    // type plugin.
-    $this->enableAllCoreModules();
-
-    /** @var \Drupal\Core\Field\FieldTypePluginManagerInterface $field_type_manager */
-    $field_type_manager = \Drupal::service('plugin.manager.field.field_type');
-    foreach ($field_type_manager->getDefinitions() as $plugin_id => $definition) {
-      $class = $definition['class'];
-      $property = $class::mainPropertyName();
-      $storage_definition = BaseFieldDefinition::create($plugin_id);
-      $property_definitions = $class::propertyDefinitions($storage_definition);
-      $properties = implode(', ', array_keys($property_definitions));
-      if (!empty($property_definitions)) {
-        $message = sprintf("%s property %s found in %s", $plugin_id, $property, $properties);
-        $this->assertArrayHasKey($property, $class::propertyDefinitions($storage_definition), $message);
-      }
-    }
-  }
-
-  /**
-   * Enable all core modules.
-   */
-  protected function enableAllCoreModules() {
-    $listing = new ExtensionDiscovery(\Drupal::root());
-    $module_list = $listing->scan('module', FALSE);
-    /** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */
-    $module_handler = $this->container->get('module_handler');
-    $module_list = array_filter(array_keys($module_list), function ($module) use ($module_handler, $module_list) {
-      return !$module_handler->moduleExists($module) && substr($module_list[$module]->getPath(), 0, 4) === 'core';
-    });
-    $this->enableModules($module_list);
-  }
-
 }
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php
index 21cc3aa..65d0fb4 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php
@@ -6,7 +6,6 @@
 use Drupal\Core\Database\Database;
 use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
 use Drupal\Core\Entity\Entity\EntityViewDisplay;
-use Drupal\taxonomy\Entity\Vocabulary;
 use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
 use Drupal\node\Entity\NodeType;
 
@@ -89,8 +88,6 @@ protected function setUp() {
       'label' => $this->randomMachineName(),
     ])->save();
 
-    Vocabulary::create(['vid' => 'test_vocabulary'])->save();
-
     // Give one unfortunate field instance invalid display settings to ensure
     // that the migration provides an empty array as a default (thus avoiding
     // an "unsupported operand types" fatal).
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
index b41311a..83279d0 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
@@ -5,7 +5,6 @@
 use Drupal\comment\Entity\CommentType;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\FieldConfigInterface;
-use Drupal\taxonomy\Entity\Vocabulary;
 use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
 use Drupal\node\Entity\NodeType;
 
@@ -46,7 +45,6 @@ protected function setUp() {
     $this->createType('book');
     $this->createType('forum');
     $this->createType('test_content_type');
-    Vocabulary::create(['vid' => 'test_vocabulary'])->save();
     $this->executeMigrations(['d7_field', 'd7_field_instance']);
   }
 
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
index dd4decd..3b60a6e 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
@@ -45,7 +45,6 @@ protected function setUp() {
     $this->executeMigrations([
       'd7_node_type',
       'd7_comment_type',
-      'd7_taxonomy_vocabulary',
       'd7_field',
       'd7_field_instance',
       'd7_field_instance_widget_settings',
@@ -127,16 +126,6 @@ public function testWidgetSettings() {
     $this->assertComponent('node.test_content_type.default', 'field_term_reference', 'entity_reference_autocomplete', 14);
     $this->assertComponent('node.test_content_type.default', 'field_text', 'text_textfield', 15);
     $this->assertComponent('node.test_content_type.default', 'field_text_list', 'options_select', 11);
-
-    $this->assertEntity('user.user.default', 'user', 'user');
-    $this->assertComponent('user.user.default', 'field_file', 'file_generic', 8);
-
-    $this->assertEntity('comment.comment_node_test_content_type.default', 'comment', 'comment_node_test_content_type');
-    $this->assertComponent('comment.comment_node_test_content_type.default', 'comment_body', 'text_textarea', 0);
-    $this->assertComponent('comment.comment_node_test_content_type.default', 'field_integer', 'number', 2);
-
-    $this->assertEntity('taxonomy_term.test_vocabulary.default', 'taxonomy_term', 'test_vocabulary');
-    $this->assertComponent('comment.comment_node_test_content_type.default', 'field_integer', 'number', 2);
   }
 
 }
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateViewModesTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateViewModesTest.php
index ac94a87..84a9b0b 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateViewModesTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateViewModesTest.php
@@ -13,7 +13,7 @@
  */
 class MigrateViewModesTest extends MigrateDrupal7TestBase {
 
-  public static $modules = ['comment', 'node', 'taxonomy'];
+  public static $modules = ['comment', 'node'];
 
   /**
    * {@inheritdoc}
@@ -52,7 +52,6 @@ public function testMigration() {
     $this->assertEntity('comment.full', 'Full', 'comment');
     $this->assertEntity('node.teaser', 'Teaser', 'node');
     $this->assertEntity('node.full', 'Full', 'node');
-    $this->assertEntity('node.custom', 'custom', 'node');
     $this->assertEntity('user.full', 'Full', 'user');
   }
 
diff --git a/core/modules/field/tests/src/Kernel/Number/NumberItemTest.php b/core/modules/field/tests/src/Kernel/Number/NumberItemTest.php
index 25b99bb..7b66aa3 100644
--- a/core/modules/field/tests/src/Kernel/Number/NumberItemTest.php
+++ b/core/modules/field/tests/src/Kernel/Number/NumberItemTest.php
@@ -61,7 +61,7 @@ public function testNumberItem() {
 
     // Verify entity has been created properly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertTrue($entity->field_integer instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->field_integer[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->field_integer->value, $integer);
@@ -88,7 +88,7 @@ public function testNumberItem() {
 
     // Read changed entity and assert changed values.
     $entity->save();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_integer->value, $new_integer);
     $this->assertEqual($entity->field_float->value, $new_float);
     $this->assertEqual($entity->field_decimal->value, $new_decimal);
diff --git a/core/modules/field/tests/src/Kernel/ShapeItemTest.php b/core/modules/field/tests/src/Kernel/ShapeItemTest.php
index 644a15f..a792124 100644
--- a/core/modules/field/tests/src/Kernel/ShapeItemTest.php
+++ b/core/modules/field/tests/src/Kernel/ShapeItemTest.php
@@ -60,7 +60,7 @@ public function testShapeItem() {
 
     // Verify entity has been created properly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertTrue($entity->{$this->fieldName} instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->{$this->fieldName}[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->{$this->fieldName}->shape, $shape);
@@ -78,7 +78,7 @@ public function testShapeItem() {
 
     // Read changed entity and assert changed values.
     $entity->save();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->{$this->fieldName}->shape, $new_shape);
     $this->assertEqual($entity->{$this->fieldName}->color, $new_color);
   }
diff --git a/core/modules/field/tests/src/Kernel/TestItemTest.php b/core/modules/field/tests/src/Kernel/TestItemTest.php
index 6766b40..c53b42a 100644
--- a/core/modules/field/tests/src/Kernel/TestItemTest.php
+++ b/core/modules/field/tests/src/Kernel/TestItemTest.php
@@ -59,7 +59,7 @@ public function testTestItem() {
 
     // Verify entity has been created properly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertTrue($entity->{$this->fieldName} instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->{$this->fieldName}[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->{$this->fieldName}->value, $value);
@@ -72,7 +72,7 @@ public function testTestItem() {
 
     // Read changed entity and assert changed values.
     $entity->save();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->{$this->fieldName}->value, $new_value);
 
     // Test the schema for this field type.
diff --git a/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldInstancePerFormDisplayTest.php b/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldInstancePerFormDisplayTest.php
index 92c10a0..add36f4 100644
--- a/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldInstancePerFormDisplayTest.php
+++ b/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldInstancePerFormDisplayTest.php
@@ -35,42 +35,6 @@ class FieldInstancePerFormDisplayTest extends MigrateSqlSourceTestCase {
       'required' => FALSE,
       'global_settings' => array(),
     ),
-    array(
-      'field_name' => 'field_file',
-      'entity_type' => 'user',
-      'bundle' => 'user',
-      'widget_settings' => array(
-      ),
-      'display_settings' => array(
-      ),
-      'description' => '',
-      'required' => FALSE,
-      'global_settings' => array(),
-    ),
-    array(
-      'field_name' => 'field_integer',
-      'entity_type' => 'comment',
-      'bundle' => 'comment_node_test_content_type',
-      'widget_settings' => array(
-      ),
-      'display_settings' => array(
-      ),
-      'description' => '',
-      'required' => FALSE,
-      'global_settings' => array(),
-    ),
-    array(
-      'field_name' => 'field_link',
-      'entity_type' => 'taxonomy_term',
-      'bundle' => 'test_vocabulary',
-      'widget_settings' => array(
-      ),
-      'display_settings' => array(
-      ),
-      'description' => '',
-      'required' => FALSE,
-      'global_settings' => array(),
-    ),
   );
 
   /**
@@ -87,33 +51,6 @@ protected function setUp() {
         'data' => 'a:6:{s:5:"label";s:4:"Body";s:6:"widget";a:4:{s:4:"type";s:26:"text_textarea_with_summary";s:8:"settings";a:2:{s:4:"rows";i:20;s:12:"summary_rows";i:5;}s:6:"weight";i:-4;s:6:"module";s:4:"text";}s:8:"settings";a:3:{s:15:"display_summary";b:1;s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:7:"display";a:2:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:8:"settings";a:0:{}s:6:"module";s:4:"text";s:6:"weight";i:0;}s:6:"teaser";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:23:"text_summary_or_trimmed";s:8:"settings";a:1:{s:11:"trim_length";i:600;}s:6:"module";s:4:"text";s:6:"weight";i:0;}}s:8:"required";b:0;s:11:"description";s:0:"";}',
         'deleted' => '0',
       ),
-      array(
-        'id' => '33',
-        'field_id' => '11',
-        'field_name' => 'field_file',
-        'entity_type' => 'user',
-        'bundle' => 'user',
-        'data' => 'a:6:{s:5:"label";s:4:"File";s:6:"widget";a:5:{s:6:"weight";s:1:"8";s:4:"type";s:12:"file_generic";s:6:"module";s:4:"file";s:6:"active";i:1;s:8:"settings";a:1:{s:18:"progress_indicator";s:8:"throbber";}}s:8:"settings";a:5:{s:14:"file_directory";s:0:"";s:15:"file_extensions";s:3:"txt";s:12:"max_filesize";s:0:"";s:17:"description_field";i:0;s:18:"user_register_form";i:0;}s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:5:"above";s:4:"type";s:12:"file_default";s:8:"settings";a:0:{}s:6:"module";s:4:"file";s:6:"weight";i:0;}}s:8:"required";i:0;s:11:"description";s:0:"";}',
-        'deleted' => '0',
-      ),
-      array(
-        'id' => '32',
-        'field_id' => '14',
-        'field_name' => 'field_integer',
-        'entity_type' => 'comment',
-        'bundle' => 'comment_node_test_content_type',
-        'data' => 'a:7:{s:5:"label";s:7:"Integer";s:6:"widget";a:5:{s:6:"weight";s:1:"2";s:4:"type";s:6:"number";s:6:"module";s:6:"number";s:6:"active";i:0;s:8:"settings";a:0:{}}s:8:"settings";a:5:{s:3:"min";s:0:"";s:3:"max";s:0:"";s:6:"prefix";s:0:"";s:6:"suffix";s:0:"";s:18:"user_register_form";b:0;}s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:5:"above";s:4:"type";s:14:"number_integer";s:8:"settings";a:4:{s:18:"thousand_separator";s:1:" ";s:17:"decimal_separator";s:1:".";s:5:"scale";i:0;s:13:"prefix_suffix";b:1;}s:6:"module";s:6:"number";s:6:"weight";i:1;}}s:8:"required";i:0;s:11:"description";s:0:"";s:13:"default_value";N;}',
-        'deleted' => '0',
-      ),
-      array(
-        'id' => '25',
-        'field_id' => '15',
-        'field_name' => 'field_link',
-        'entity_type' => 'taxonomy_term',
-        'bundle' => 'test_vocabulary',
-        'data' => 'a:7:{s:5:"label";s:4:"Link";s:6:"widget";a:5:{s:6:"weight";s:2:"10";s:4:"type";s:10:"link_field";s:6:"module";s:4:"link";s:6:"active";i:0;s:8:"settings";a:0:{}}s:8:"settings";a:12:{s:12:"absolute_url";i:1;s:12:"validate_url";i:1;s:3:"url";i:0;s:5:"title";s:8:"optional";s:11:"title_value";s:19:"Unused Static Title";s:27:"title_label_use_field_label";i:0;s:15:"title_maxlength";s:3:"128";s:7:"display";a:1:{s:10:"url_cutoff";s:2:"81";}s:10:"attributes";a:6:{s:6:"target";s:6:"_blank";s:3:"rel";s:8:"nofollow";s:18:"configurable_class";i:0;s:5:"class";s:7:"classes";s:18:"configurable_title";i:1;s:5:"title";s:0:"";}s:10:"rel_remove";s:19:"rel_remove_external";s:13:"enable_tokens";i:1;s:18:"user_register_form";b:0;}s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:5:"above";s:4:"type";s:12:"link_default";s:6:"weight";s:1:"9";s:8:"settings";a:0:{}s:6:"module";s:4:"link";}}s:8:"required";i:0;s:11:"description";s:0:"";s:13:"default_value";N;}',
-        'deleted' => '0',
-      ),
     );
     $this->databaseContents['field_config'] = array(
       array(
@@ -131,51 +68,6 @@ protected function setUp() {
         'translatable' => '0',
         'deleted' => '0',
       ),
-      array(
-        'id' => '11',
-        'field_name' => 'field_file',
-        'type' => 'file',
-        'module' => 'file',
-        'active' => '1',
-        'storage_type' => 'field_sql_storage',
-        'storage_module' => 'field_sql_storage',
-        'storage_active' => '1',
-        'locked' => '0',
-        'data' => 'a:7:{s:12:"translatable";s:1:"0";s:12:"entity_types";a:0:{}s:8:"settings";a:3:{s:13:"display_field";i:0;s:15:"display_default";i:0;s:10:"uri_scheme";s:6:"public";}s:7:"storage";a:5:{s:4:"type";s:17:"field_sql_storage";s:8:"settings";a:0:{}s:6:"module";s:17:"field_sql_storage";s:6:"active";s:1:"1";s:7:"details";a:1:{s:3:"sql";a:2:{s:18:"FIELD_LOAD_CURRENT";a:1:{s:21:"field_data_field_file";a:3:{s:3:"fid";s:14:"field_file_fid";s:7:"display";s:18:"field_file_display";s:11:"description";s:22:"field_file_description";}}s:19:"FIELD_LOAD_REVISION";a:1:{s:25:"field_revision_field_file";a:3:{s:3:"fid";s:14:"field_file_fid";s:7:"display";s:18:"field_file_display";s:11:"description";s:22:"field_file_description";}}}}}s:12:"foreign keys";a:1:{s:3:"fid";a:2:{s:5:"table";s:12:"file_managed";s:7:"columns";a:1:{s:3:"fid";s:3:"fid";}}}s:7:"indexes";a:1:{s:3:"fid";a:1:{i:0;s:3:"fid";}}s:2:"id";s:2:"11";}',
-        'cardinality' => '1',
-        'translatable' => '0',
-        'deleted' => '0',
-      ),
-      array(
-        'id' => '14',
-        'field_name' => 'field_integer',
-        'type' => 'number_integer',
-        'module' => 'number',
-        'active' => '1',
-        'storage_type' => 'field_sql_storage',
-        'storage_module' => 'field_sql_storage',
-        'storage_active' => '1',
-        'locked' => '0',
-        'data' => 'a:7:{s:12:"translatable";s:1:"0";s:12:"entity_types";a:0:{}s:8:"settings";a:0:{}s:7:"storage";a:5:{s:4:"type";s:17:"field_sql_storage";s:8:"settings";a:0:{}s:6:"module";s:17:"field_sql_storage";s:6:"active";s:1:"1";s:7:"details";a:1:{s:3:"sql";a:2:{s:18:"FIELD_LOAD_CURRENT";a:1:{s:24:"field_data_field_integer";a:1:{s:5:"value";s:19:"field_integer_value";}}s:19:"FIELD_LOAD_REVISION";a:1:{s:28:"field_revision_field_integer";a:1:{s:5:"value";s:19:"field_integer_value";}}}}}s:12:"foreign keys";a:0:{}s:7:"indexes";a:0:{}s:2:"id";s:2:"14";}',
-        'cardinality' => '1',
-        'translatable' => '0',
-        'deleted' => '0',
-      ),
-      array(
-        'id' => '15',
-        'field_name' => 'field_link',
-        'type' => 'link_field',
-        'module' => 'link',
-        'active' => '1',
-        'storage_type' => 'field_sql_storage',
-        'storage_module' => 'field_sql_storage',
-        'storage_active' => '1',
-        'locked' => '0',
-        'data' => 'a:7:{s:12:"translatable";s:1:"0";s:12:"entity_types";a:0:{}s:8:"settings";a:7:{s:10:"attributes";a:3:{s:6:"target";s:7:"default";s:5:"class";s:0:"";s:3:"rel";s:0:"";}s:3:"url";i:0;s:5:"title";s:8:"optional";s:11:"title_value";s:0:"";s:15:"title_maxlength";i:128;s:13:"enable_tokens";i:1;s:7:"display";a:1:{s:10:"url_cutoff";i:80;}}s:7:"storage";a:5:{s:4:"type";s:17:"field_sql_storage";s:8:"settings";a:0:{}s:6:"module";s:17:"field_sql_storage";s:6:"active";s:1:"1";s:7:"details";a:1:{s:3:"sql";a:2:{s:18:"FIELD_LOAD_CURRENT";a:1:{s:21:"field_data_field_link";a:3:{s:3:"url";s:14:"field_link_url";s:5:"title";s:16:"field_link_title";s:10:"attributes";s:21:"field_link_attributes";}}s:19:"FIELD_LOAD_REVISION";a:1:{s:25:"field_revision_field_link";a:3:{s:3:"url";s:14:"field_link_url";s:5:"title";s:16:"field_link_title";s:10:"attributes";s:21:"field_link_attributes";}}}}}s:12:"foreign keys";a:0:{}s:7:"indexes";a:0:{}s:2:"id";s:2:"15";}',
-        'cardinality' => '1',
-        'translatable' => '0',
-        'deleted' => '0',
-      ),
     );
 
     parent::setUp();
diff --git a/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldInstanceTest.php b/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldInstanceTest.php
index eca7f27..071a810 100644
--- a/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldInstanceTest.php
+++ b/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldInstanceTest.php
@@ -27,13 +27,7 @@ class FieldInstanceTest extends MigrateSqlSourceTestCase {
       'bundle' => 'page',
       'label' => 'Body',
       'widget_settings' => array(
-        'module' => 'text',
-        'settings' => array(
-          'rows' => 20,
-          'summary_rows' => 5,
-        ),
         'type' => 'text_textarea_with_summary',
-        'weight' => -4,
       ),
       'display_settings' => array(
       ),
diff --git a/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldTest.php b/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldTest.php
index a440f39..331d48d 100644
--- a/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldTest.php
+++ b/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/FieldTest.php
@@ -26,28 +26,8 @@ class FieldTest extends MigrateSqlSourceTestCase {
       'type' => 'file',
       'global_settings' => '',
       'storage' => array(
-        'active' => 1,
-        'details' => array(
-          'sql' => array(
-            'FIELD_LOAD_CURRENT' => array(
-              'field_data_field_file' => array(
-                'description' => 'field_file_description',
-                'display' => 'field_file_display',
-                'fid' => 'field_file_fid',
-              ),
-            ),
-            'FIELD_LOAD_REVISION' => array(
-              'field_revision_field_file' => array(
-                'description' => 'field_file_description',
-                'display' => 'field_file_display',
-                'fid' => 'field_file_fid',
-              ),
-            ),
-          ),
-        ),
-        'module' => 'field_sql_storage',
-        'settings' => array(),
         'type' => 'field_sql_storage',
+        'module' => 'field_sql_storage',
       ),
       'module' => 'file',
       'db_columns' => '',
@@ -59,28 +39,8 @@ class FieldTest extends MigrateSqlSourceTestCase {
       'type' => 'file',
       'global_settings' => '',
       'storage' => array(
-        'active' => 1,
-        'details' => array(
-          'sql' => array(
-            'FIELD_LOAD_CURRENT' => array(
-              'field_data_field_file' => array(
-                'description' => 'field_file_description',
-                'display' => 'field_file_display',
-                'fid' => 'field_file_fid',
-              ),
-            ),
-            'FIELD_LOAD_REVISION' => array(
-              'field_revision_field_file' => array(
-                'description' => 'field_file_description',
-                'display' => 'field_file_display',
-                'fid' => 'field_file_fid',
-              ),
-            ),
-          ),
-        ),
-        'module' => 'field_sql_storage',
-        'settings' => array(),
         'type' => 'field_sql_storage',
+        'module' => 'field_sql_storage',
       ),
       'module' => 'file',
       'db_columns' => '',
diff --git a/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/ViewModeTest.php b/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/ViewModeTest.php
index c3e0385..f3c752a 100644
--- a/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/ViewModeTest.php
+++ b/core/modules/field/tests/src/Unit/Plugin/migrate/source/d7/ViewModeTest.php
@@ -30,10 +30,6 @@ class ViewModeTest extends MigrateSqlSourceTestCase {
       'view_mode' => 'teaser',
     ),
     array(
-      'entity_type' => 'node',
-      'view_mode' => 'custom',
-    ),
-    array(
       'entity_type' => 'user',
       'view_mode' => 'default',
     ),
@@ -54,7 +50,7 @@ protected function setUp() {
         'field_name' => 'body',
         'entity_type' => 'node',
         'bundle' => 'forum',
-        'data' => 'a:6:{s:5:"label";s:4:"Body";s:6:"widget";a:4:{s:4:"type";s:26:"text_textarea_with_summary";s:8:"settings";a:2:{s:4:"rows";i:20;s:12:"summary_rows";i:5;}s:6:"weight";i:1;s:6:"module";s:4:"text";}s:8:"settings";a:3:{s:15:"display_summary";b:1;s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:7:"display";a:3:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:8:"settings";a:0:{}s:6:"module";s:4:"text";s:6:"weight";i:11;}s:6:"teaser";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:23:"text_summary_or_trimmed";s:8:"settings";a:1:{s:11:"trim_length";i:600;}s:6:"module";s:4:"text";s:6:"weight";i:11;}s:6:"custom";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:23:"text_summary_or_trimmed";s:8:"settings";a:0:{}s:6:"module";s:4:"text";s:6:"weight";i:11;}}s:8:"required";b:0;s:11:"description";s:0:"";}',
+        'data' => 'a:6:{s:5:"label";s:4:"Body";s:6:"widget";a:4:{s:4:"type";s:26:"text_textarea_with_summary";s:8:"settings";a:2:{s:4:"rows";i:20;s:12:"summary_rows";i:5;}s:6:"weight";i:1;s:6:"module";s:4:"text";}s:8:"settings";a:3:{s:15:"display_summary";b:1;s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:7:"display";a:2:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:8:"settings";a:0:{}s:6:"module";s:4:"text";s:6:"weight";i:11;}s:6:"teaser";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:23:"text_summary_or_trimmed";s:8:"settings";a:1:{s:11:"trim_length";i:600;}s:6:"module";s:4:"text";s:6:"weight";i:11;}}s:8:"required";b:0;s:11:"description";s:0:"";}',
         'deleted' => '0',
       ),
       array(
diff --git a/core/modules/field_ui/field_ui.links.action.yml b/core/modules/field_ui/field_ui.links.action.yml
index 2f44c3c..4523843 100644
--- a/core/modules/field_ui/field_ui.links.action.yml
+++ b/core/modules/field_ui/field_ui.links.action.yml
@@ -1,13 +1,13 @@
 field_ui.entity_view_mode_add:
   route_name: field_ui.entity_view_mode_add
-  title: 'Add view mode'
+  title: 'Add new view mode'
   weight: 1
   appears_on:
     - entity.entity_view_mode.collection
 
 field_ui.entity_form_mode_add:
   route_name: field_ui.entity_form_mode_add
-  title: 'Add form mode'
+  title: 'Add new form mode'
   weight: 1
   appears_on:
     - entity.entity_form_mode.collection
diff --git a/core/modules/field_ui/src/Form/EntityDisplayFormBase.php b/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
index 20e1487..cfa5c39 100644
--- a/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
+++ b/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
@@ -205,12 +205,10 @@ public function form(array $form, FormStateInterface $form_state) {
         }
         $form['modes']['display_modes_custom'] = array(
           '#type' => 'checkboxes',
-          '#title' => $this->t('Use custom display settings for the following @display_context modes', ['@display_context' => $this->displayContext]),
+          '#title' => $this->t('Use custom display settings for the following modes'),
           '#options' => $display_mode_options,
           '#default_value' => $default,
         );
-        // Provide link to manage display modes.
-        $form['modes']['display_modes_link'] = $this->getDisplayModesLink();
       }
     }
 
@@ -793,14 +791,6 @@ protected function getPluginOptions(FieldDefinitionInterface $field_definition)
   abstract protected function getDisplayModeOptions();
 
   /**
-   * Returns a link to the form or view mode admin page.
-   *
-   * @return array
-   *   An array of a form element to be rendered as a link.
-   */
-  abstract protected function getDisplayModesLink();
-
-  /**
    * Returns the region to which a row in the display overview belongs.
    *
    * @param array $row
diff --git a/core/modules/field_ui/src/Form/EntityFormDisplayEditForm.php b/core/modules/field_ui/src/Form/EntityFormDisplayEditForm.php
index fa35828..4e1de08 100644
--- a/core/modules/field_ui/src/Form/EntityFormDisplayEditForm.php
+++ b/core/modules/field_ui/src/Form/EntityFormDisplayEditForm.php
@@ -6,7 +6,6 @@
 use Drupal\Core\Field\PluginSettingsInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Url;
-use Drupal\Core\Link;
 use Drupal\field_ui\FieldUI;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -79,17 +78,6 @@ protected function getDisplayModeOptions() {
   /**
    * {@inheritdoc}
    */
-  protected function getDisplayModesLink() {
-    return [
-      '#type' => 'link',
-      '#title' => t('Manage form modes'),
-      '#url' => Url::fromRoute('entity.entity_form_mode.collection'),
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function getTableHeader() {
     return array(
       $this->t('Field'),
diff --git a/core/modules/field_ui/src/Form/EntityViewDisplayEditForm.php b/core/modules/field_ui/src/Form/EntityViewDisplayEditForm.php
index 20cd9a2..01b486b 100644
--- a/core/modules/field_ui/src/Form/EntityViewDisplayEditForm.php
+++ b/core/modules/field_ui/src/Form/EntityViewDisplayEditForm.php
@@ -6,7 +6,6 @@
 use Drupal\Core\Field\PluginSettingsInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Url;
-use Drupal\Core\Link;
 use Drupal\field_ui\FieldUI;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -112,17 +111,6 @@ protected function getDisplayModeOptions() {
   /**
    * {@inheritdoc}
    */
-  protected function getDisplayModesLink() {;
-    return [
-      '#type' => 'link',
-      '#title' => t('Manage view modes'),
-      '#url' => Url::fromRoute('entity.entity_view_mode.collection'),
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   protected function getTableHeader() {
     return array(
       $this->t('Field'),
diff --git a/core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php b/core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php
index bbaeb63..1f4f94a 100644
--- a/core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php
+++ b/core/modules/field_ui/src/Form/FieldStorageConfigEditForm.php
@@ -148,27 +148,10 @@ protected function actions(array $form, FormStateInterface $form_state) {
   public function validateForm(array &$form, FormStateInterface $form_state) {
     parent::validateForm($form, $form_state);
 
-    $field_storage_definitions = \Drupal::service('entity_field.manager')->getFieldStorageDefinitions($this->entity->getTargetEntityTypeId());
-
     // Validate field cardinality.
     if ($form_state->getValue('cardinality') === 'number' && !$form_state->getValue('cardinality_number')) {
       $form_state->setErrorByName('cardinality_number', $this->t('Number of values is required.'));
     }
-    // If a specific cardinality is used, validate that there are no entities
-    // with a higher delta.
-    elseif (!$this->entity->isNew() && isset($field_storage_definitions[$this->entity->getName()]) && $form_state->getValue('cardinality') != FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) {
-
-      // Get a count of entities that have a value in a delta higher than the
-      // one selected. Deltas start with 0, so the selected value does not
-      // need to be incremented.
-      $entities_with_higher_delta = \Drupal::entityQuery($this->entity->getTargetEntityTypeId())
-        ->condition($this->entity->getName() . '.%delta', $form_state->getValue('cardinality'))
-        ->count()
-        ->execute();
-      if ($entities_with_higher_delta) {
-        $form_state->setErrorByName('cardinality_number', $this->formatPlural($entities_with_higher_delta, 'There is @count entity with @delta or more values in this field.', 'There are @count entities with @delta or more values in this field.', ['@delta' => $form_state->getValue('cardinality') + 1]));
-      }
-    }
   }
 
   /**
diff --git a/core/modules/field_ui/src/Tests/EntityDisplayModeTest.php b/core/modules/field_ui/src/Tests/EntityDisplayModeTest.php
index f808a1e..fa65ede 100644
--- a/core/modules/field_ui/src/Tests/EntityDisplayModeTest.php
+++ b/core/modules/field_ui/src/Tests/EntityDisplayModeTest.php
@@ -38,7 +38,7 @@ public function testEntityViewModeUI() {
     $this->drupalLogin($this->drupalCreateUser(array('administer display modes')));
     $this->drupalGet('admin/structure/display-modes/view');
     $this->assertResponse(200);
-    $this->assertText(t('Add view mode'));
+    $this->assertText(t('Add new view mode'));
     $this->assertLinkByHref('admin/structure/display-modes/view/add');
     $this->assertLinkByHref('admin/structure/display-modes/view/add/entity_test');
 
@@ -85,7 +85,7 @@ public function testEntityFormModeUI() {
     $this->drupalLogin($this->drupalCreateUser(array('administer display modes')));
     $this->drupalGet('admin/structure/display-modes/form');
     $this->assertResponse(200);
-    $this->assertText(t('Add form mode'));
+    $this->assertText(t('Add new form mode'));
     $this->assertLinkByHref('admin/structure/display-modes/form/add');
 
     $this->drupalGet('admin/structure/display-modes/form/add/entity_test_no_label');
diff --git a/core/modules/field_ui/src/Tests/ManageDisplayTest.php b/core/modules/field_ui/src/Tests/ManageDisplayTest.php
index 4cd2901..b135186 100644
--- a/core/modules/field_ui/src/Tests/ManageDisplayTest.php
+++ b/core/modules/field_ui/src/Tests/ManageDisplayTest.php
@@ -135,10 +135,7 @@ function testFormatterUI() {
     $this->drupalPostForm(NULL, array(), t('Save'));
 
     \Drupal::entityManager()->clearCachedFieldDefinitions();
-    $id = 'node.' . $this->type . '.default';
-    $storage = $this->container->get('entity_type.manager')->getStorage('entity_view_display');
-    $storage->resetCache([$id]);
-    $display = $storage->load($id);
+    $display = entity_load('entity_view_display', 'node.' . $this->type . '.default', TRUE);
     $this->assertEqual($display->getRenderer('field_test')->getThirdPartySetting('field_third_party_test', 'field_test_field_formatter_third_party_settings_form'), 'foo');
     $this->assertTrue(in_array('field_third_party_test', $display->calculateDependencies()->getDependencies()['module']), 'The display has a dependency on field_third_party_test module.');
 
@@ -264,9 +261,7 @@ public function testWidgetUI() {
     // Save the form to save the third party settings.
     $this->drupalPostForm(NULL, array(), t('Save'));
     \Drupal::entityManager()->clearCachedFieldDefinitions();
-    $storage = $this->container->get('entity_type.manager')->getStorage('entity_form_display');
-    $storage->resetCache(array('node.' . $this->type . '.default'));
-    $display = $storage->load('node.' . $this->type . '.default');
+    $display = entity_load('entity_form_display', 'node.' . $this->type . '.default', TRUE);
     $this->assertEqual($display->getRenderer('field_test')->getThirdPartySetting('field_third_party_test', 'field_test_widget_third_party_settings_form'), 'foo');
     $this->assertTrue(in_array('field_third_party_test', $display->calculateDependencies()->getDependencies()['module']), 'Form display does not have a dependency on field_third_party_test module.');
 
diff --git a/core/modules/field_ui/src/Tests/ManageFieldsTest.php b/core/modules/field_ui/src/Tests/ManageFieldsTest.php
index cbe9f53..673b731 100644
--- a/core/modules/field_ui/src/Tests/ManageFieldsTest.php
+++ b/core/modules/field_ui/src/Tests/ManageFieldsTest.php
@@ -267,23 +267,6 @@ function cardinalitySettings() {
     $this->assertLink(t('Field settings'));
     $this->assertLinkByHref($field_edit_path);
 
-    // Add two entries in the body.
-    $edit = ['title[0][value]' => 'Cardinality', 'body[0][value]' => 'Body 1', 'body[1][value]' => 'Body 2'];
-    $this->drupalPostForm('node/add/article', $edit, 'Save');
-
-    // Assert that you can't set the cardinality to a lower number than the
-    // highest delta of this field.
-    $edit = [
-      'cardinality' => 'number',
-      'cardinality_number' => 1,
-    ];
-    $this->drupalPostForm($field_edit_path, $edit, t('Save field settings'));
-    $this->assertRaw(t('There is @count entity with @delta or more values in this field.', ['@count' => 1, '@delta' => 2]), 'Correctly failed to set cardinality lower than highest delta.');
-
-    // Create a second entity with three values.
-    $edit = ['title[0][value]' => 'Cardinality 3', 'body[0][value]' => 'Body 1', 'body[1][value]' => 'Body 2', 'body[2][value]' => 'Body 3'];
-    $this->drupalPostForm('node/add/article', $edit, 'Save');
-
     // Set to unlimited.
     $edit = array(
       'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
@@ -293,28 +276,6 @@ function cardinalitySettings() {
     $this->drupalGet($field_edit_path);
     $this->assertFieldByXPath("//select[@name='cardinality']", FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED);
     $this->assertFieldByXPath("//input[@name='cardinality_number']", 1);
-
-    // Assert that you can't set the cardinality to a lower number then the
-    // highest delta of this field but can set it to the same.
-    $edit = [
-      'cardinality' => 'number',
-      'cardinality_number' => 1,
-    ];
-    $this->drupalPostForm($field_edit_path, $edit, t('Save field settings'));
-    $this->assertRaw(t('There are @count entities with @delta or more values in this field.', ['@count' => 2, '@delta' => 2]), 'Correctly failed to set cardinality lower than highest delta.');
-
-    $edit = [
-      'cardinality' => 'number',
-      'cardinality_number' => 2,
-    ];
-    $this->drupalPostForm($field_edit_path, $edit, t('Save field settings'));
-    $this->assertRaw(t('There is @count entity with @delta or more values in this field.', ['@count' => 1, '@delta' => 3]), 'Correctly failed to set cardinality lower than highest delta.');
-
-    $edit = [
-      'cardinality' => 'number',
-      'cardinality_number' => 3,
-    ];
-    $this->drupalPostForm($field_edit_path, $edit, t('Save field settings'));
   }
 
   /**
diff --git a/core/modules/field_ui/templates/field-ui-table.html.twig b/core/modules/field_ui/templates/field-ui-table.html.twig
index 68c8c8e..f7ff026 100644
--- a/core/modules/field_ui/templates/field-ui-table.html.twig
+++ b/core/modules/field_ui/templates/field-ui-table.html.twig
@@ -24,7 +24,7 @@
  *   - no_striping: A flag indicating that the row should receive no
  *     'even / odd' styling. Defaults to FALSE.
  *   - cells: Table cells of the row. Each cell contains the following keys:
- *     - tag: The HTML tag name to use; either 'th' or 'td'.
+ *     - tag: The HTML tag name to use; either TH or TD.
  *     - attributes: Any HTML attributes, such as "colspan", to apply to the
  *       table cell.
  *     - content: The string to display in the table cell.
diff --git a/core/modules/field_ui/tests/src/Kernel/EntityDisplayTest.php b/core/modules/field_ui/tests/src/Kernel/EntityDisplayTest.php
index be188db..67ad20f 100644
--- a/core/modules/field_ui/tests/src/Kernel/EntityDisplayTest.php
+++ b/core/modules/field_ui/tests/src/Kernel/EntityDisplayTest.php
@@ -67,7 +67,7 @@ public function testEntityDisplayCRUD() {
 
     // Check that the display can be properly saved and read back.
     $display->save();
-    $display = EntityViewDisplay::load($display->id());
+    $display = entity_load('entity_view_display', $display->id());
     foreach (array('component_1', 'component_2', 'component_3') as $name) {
       $this->assertEqual($display->getComponent($name), $expected[$name]);
     }
@@ -95,7 +95,7 @@ public function testEntityDisplayCRUD() {
 
     // Check that the removal is correctly persisted.
     $display->save();
-    $display = EntityViewDisplay::load($display->id());
+    $display = entity_load('entity_view_display', $display->id());
     $this->assertNULL($display->getComponent('component_3'));
 
     // Check that createCopy() creates a new component that can be correctly
@@ -103,7 +103,7 @@ public function testEntityDisplayCRUD() {
     EntityViewMode::create(array('id' => $display->getTargetEntityTypeId() . '.other_view_mode', 'targetEntityType' => $display->getTargetEntityTypeId()))->save();
     $new_display = $display->createCopy('other_view_mode');
     $new_display->save();
-    $new_display = EntityViewDisplay::load($new_display->id());
+    $new_display = entity_load('entity_view_display', $new_display->id());
     $dependencies = $new_display->calculateDependencies()->getDependencies();
     $this->assertEqual(array('config' => array('core.entity_view_mode.entity_test.other_view_mode'), 'module' => array('entity_test')), $dependencies);
     $this->assertEqual($new_display->getTargetEntityTypeId(), $display->getTargetEntityTypeId());
@@ -283,7 +283,7 @@ public function testBaseFieldComponent() {
     $this->assertFalse(isset($data['hidden']['test_display_non_configurable']));
 
     // Check that defaults are correctly filled when loading the display.
-    $display = EntityViewDisplay::load($display->id());
+    $display = entity_load('entity_view_display', $display->id());
     foreach ($expected as $field_name => $options) {
       $this->assertEqual($display->getComponent($field_name), $options);
     }
@@ -293,7 +293,7 @@ public function testBaseFieldComponent() {
     $data['content']['test_display_non_configurable'] = $expected['test_display_non_configurable'];
     $data['content']['test_display_non_configurable']['weight']++;
     $config->setData($data)->save();
-    $display = EntityViewDisplay::load($display->id());
+    $display = entity_load('entity_view_display', $display->id());
     foreach ($expected as $field_name => $options) {
       $this->assertEqual($display->getComponent($field_name), $options);
     }
@@ -312,9 +312,9 @@ public function testDeleteBundle() {
 
     // Delete the bundle.
     $type->delete();
-    $display = EntityViewDisplay::load('node.article.default');
+    $display = entity_load('entity_view_display', 'node.article.default');
     $this->assertFalse((bool) $display);
-    $form_display = EntityFormDisplay::load('node.article.default');
+    $form_display = entity_load('entity_form_display', 'node.article.default');
     $this->assertFalse((bool) $form_display);
   }
 
diff --git a/core/modules/field_ui/tests/src/Kernel/EntityFormDisplayTest.php b/core/modules/field_ui/tests/src/Kernel/EntityFormDisplayTest.php
index e38db7c..b66d29c 100644
--- a/core/modules/field_ui/tests/src/Kernel/EntityFormDisplayTest.php
+++ b/core/modules/field_ui/tests/src/Kernel/EntityFormDisplayTest.php
@@ -158,7 +158,7 @@ public function testBaseFieldComponent() {
     $this->assertFalse(isset($data['hidden']['test_display_non_configurable']));
 
     // Check that defaults are correctly filled when loading the display.
-    $display = EntityFormDisplay::load($display->id());
+    $display = entity_load('entity_form_display', $display->id());
     foreach ($expected as $field_name => $options) {
       $this->assertEqual($display->getComponent($field_name), $options);
     }
@@ -168,7 +168,7 @@ public function testBaseFieldComponent() {
     $data['content']['test_display_non_configurable'] = $expected['test_display_non_configurable'];
     $data['content']['test_display_non_configurable']['weight']++;
     $config->setData($data)->save();
-    $display = EntityFormDisplay::load($display->id());
+    $display = entity_load('entity_form_display', $display->id());
     foreach ($expected as $field_name => $options) {
       $this->assertEqual($display->getComponent($field_name), $options);
     }
diff --git a/core/modules/file/css/file.admin.css b/core/modules/file/css/file.admin.css
new file mode 100644
index 0000000..6a45644
--- /dev/null
+++ b/core/modules/file/css/file.admin.css
@@ -0,0 +1,18 @@
+/**
+ * @file
+ * Admin stylesheet for file module.
+ */
+
+/* File upload widget.*/
+.form-managed-file .form-submit {
+  margin: 0 0.5em;
+}
+.form-managed-file div.ajax-progress-bar {
+  display: none;
+  margin-top: 4px;
+  padding: 0;
+  width: 28em;
+}
+.form-managed-file .ajax-progress-bar .bar {
+  margin: 0;
+}
diff --git a/core/modules/file/file.libraries.yml b/core/modules/file/file.libraries.yml
index def38d9..ccc0c3b 100644
--- a/core/modules/file/file.libraries.yml
+++ b/core/modules/file/file.libraries.yml
@@ -2,6 +2,9 @@ drupal.file:
   version: VERSION
   js:
     file.js: {}
+  css:
+    theme:
+      css/file.admin.css: {}
   dependencies:
     - core/jquery
     - core/jquery.once
diff --git a/core/modules/file/file.module b/core/modules/file/file.module
index 2c89147..bbf3bff 100644
--- a/core/modules/file/file.module
+++ b/core/modules/file/file.module
@@ -185,6 +185,8 @@ function file_copy(FileInterface $source, $destination = NULL, $replace = FILE_E
 /**
  * Moves a file to a new location and update the file's database entry.
  *
+ * Moving a file is performed by copying the file to the new location and then
+ * deleting the original.
  * - Checks if $source and $destination are valid and readable/writable.
  * - Performs a file move if $source is not equal to $destination.
  * - If file already exists in $destination either the call will error out,
@@ -442,16 +444,8 @@ function file_validate_image_resolution(FileInterface $file, $maximum_dimensions
         // Try to resize the image to fit the dimensions.
         if ($image->scale($width, $height)) {
           $image->save();
-          if (!empty($width) && !empty($height)) {
-            $message = t('The image was resized to fit within the maximum allowed dimensions of %dimensions pixels.', array('%dimensions' => $maximum_dimensions));
-          }
-          elseif (empty($width)) {
-            $message = t('The image was resized to fit within the maximum allowed height of %height pixels.', array('%height' => $height));
-          }
-          elseif (empty($height)) {
-            $message = t('The image was resized to fit within the maximum allowed width of %width pixels.', array('%width' => $width));
-          }
-          drupal_set_message($message);
+          $file->filesize = $image->getFileSize();
+          drupal_set_message(t('The image was resized to fit within the maximum allowed dimensions of %dimensions pixels.', array('%dimensions' => $maximum_dimensions)));
         }
         else {
           $errors[] = t('The image exceeds the maximum allowed dimensions and an attempt to resize it failed.');
@@ -1183,7 +1177,7 @@ function file_managed_file_save_upload($element, FormStateInterface $form_state)
 
   $destination = isset($element['#upload_location']) ? $element['#upload_location'] : NULL;
   if (isset($destination) && !file_prepare_directory($destination, FILE_CREATE_DIRECTORY)) {
-    \Drupal::logger('file')->notice('The upload directory %directory for the file field %name could not be created or is not accessible. A newly uploaded file could not be saved in this directory as a consequence, and the upload was canceled.', array('%directory' => $destination, '%name' => $element['#field_name']));
+    \Drupal::logger('file')->notice('The upload directory %directory for the file field !name could not be created or is not accessible. A newly uploaded file could not be saved in this directory as a consequence, and the upload was canceled.', array('%directory' => $destination, '!name' => $element['#field_name']));
     $form_state->setError($element, t('The file could not be uploaded.'));
     return FALSE;
   }
diff --git a/core/modules/file/file.permissions.yml b/core/modules/file/file.permissions.yml
index 8575f20..0572874 100644
--- a/core/modules/file/file.permissions.yml
+++ b/core/modules/file/file.permissions.yml
@@ -1,2 +1,3 @@
 access files overview:
   title: 'Access the Files overview page'
+  description: 'Get an overview of all files.'
diff --git a/core/modules/file/src/Entity/File.php b/core/modules/file/src/Entity/File.php
index b82d5a8..da6d7c5 100644
--- a/core/modules/file/src/Entity/File.php
+++ b/core/modules/file/src/Entity/File.php
@@ -13,8 +13,6 @@
 /**
  * Defines the file entity class.
  *
- * @ingroup file
- *
  * @ContentEntityType(
  *   id = "file",
  *   label = @Translation("File"),
diff --git a/core/modules/file/src/FileAccessControlHandler.php b/core/modules/file/src/FileAccessControlHandler.php
index a82c460..f9569ec 100644
--- a/core/modules/file/src/FileAccessControlHandler.php
+++ b/core/modules/file/src/FileAccessControlHandler.php
@@ -6,8 +6,6 @@
 use Drupal\Core\Entity\EntityAccessControlHandler;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityStorageInterface;
-use Drupal\Core\Field\FieldDefinitionInterface;
-use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Session\AccountInterface;
 
 /**
@@ -45,16 +43,6 @@ protected function checkAccess(EntityInterface $entity, $operation, AccountInter
       }
     }
 
-    if ($operation == 'delete' || $operation == 'update') {
-      $account = $this->prepareUser($account);
-      $file_uid = $entity->get('uid')->getValue();
-      // Only the file owner can delete and update the file entity.
-      if ($account->id() == $file_uid[0]['target_id']) {
-        return AccessResult::allowed();
-      }
-      return AccessResult::forbidden();
-    }
-
     // No opinion.
     return AccessResult::neutral();
   }
@@ -75,30 +63,4 @@ protected function getFileReferences(FileInterface $file) {
     return file_get_file_references($file, NULL, EntityStorageInterface::FIELD_LOAD_REVISION, NULL);
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function checkFieldAccess($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, FieldItemListInterface $items = NULL) {
-    // No user can edit the status of a file. Prevents saving a new file as
-    // persistent before even validating it.
-    if ($field_definition->getName() === 'status' && $operation === 'edit') {
-      return AccessResult::forbidden();
-    }
-    return parent::checkFieldAccess($operation, $field_definition, $account, $items);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) {
-    // The file entity has no "create" permission because by default Drupal core
-    // does not allow creating file entities independently. It allows you to
-    // create file entities that are referenced from another entity
-    // (e.g. an image for a article). A contributed module is free to alter
-    // this to allow file entities to be created directly.
-    // @todo Update comment to mention REST module when
-    //   https://www.drupal.org/node/1927648 is fixed.
-    return AccessResult::neutral();
-  }
-
 }
diff --git a/core/modules/file/src/FileInterface.php b/core/modules/file/src/FileInterface.php
index ee7120b..5b5a6bb 100644
--- a/core/modules/file/src/FileInterface.php
+++ b/core/modules/file/src/FileInterface.php
@@ -8,8 +8,6 @@
 
 /**
  * Defines getter and setter methods for file entity base fields.
- *
- * @ingroup file
  */
 interface FileInterface extends ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface {
 
diff --git a/core/modules/file/src/Plugin/migrate/cckfield/d6/FileField.php b/core/modules/file/src/Plugin/migrate/cckfield/d6/FileField.php
index d63b9c2..066d6e1 100644
--- a/core/modules/file/src/Plugin/migrate/cckfield/d6/FileField.php
+++ b/core/modules/file/src/Plugin/migrate/cckfield/d6/FileField.php
@@ -8,8 +8,7 @@
 
 /**
  * @MigrateCckField(
- *   id = "filefield",
- *   core = {6}
+ *   id = "filefield"
  * )
  */
 class FileField extends CckFieldPluginBase {
diff --git a/core/modules/file/src/Plugin/migrate/cckfield/d7/FileField.php b/core/modules/file/src/Plugin/migrate/cckfield/d7/FileField.php
index d0b1335..6e3780e 100644
--- a/core/modules/file/src/Plugin/migrate/cckfield/d7/FileField.php
+++ b/core/modules/file/src/Plugin/migrate/cckfield/d7/FileField.php
@@ -9,7 +9,6 @@
 /**
  * @MigrateCckField(
  *   id = "file",
- *   core = {7}
  * )
  */
 class FileField extends CckFieldPluginBase {
diff --git a/core/modules/file/src/Plugin/migrate/cckfield/d7/ImageField.php b/core/modules/file/src/Plugin/migrate/cckfield/d7/ImageField.php
index 7f47caa..7a82a15 100644
--- a/core/modules/file/src/Plugin/migrate/cckfield/d7/ImageField.php
+++ b/core/modules/file/src/Plugin/migrate/cckfield/d7/ImageField.php
@@ -7,8 +7,7 @@
 
 /**
  * @MigrateCckField(
- *   id = "image",
- *   core = {7}
+ *   id = "image"
  * )
  */
 class ImageField extends CckFieldPluginBase {
diff --git a/core/modules/file/src/Plugin/migrate/destination/EntityFile.php b/core/modules/file/src/Plugin/migrate/destination/EntityFile.php
index 900db6a..981706f 100644
--- a/core/modules/file/src/Plugin/migrate/destination/EntityFile.php
+++ b/core/modules/file/src/Plugin/migrate/destination/EntityFile.php
@@ -147,7 +147,7 @@ public function import(Row $row, array $old_destination_id_values = array()) {
    *   (optional) FILE_EXISTS_REPLACE (default) or FILE_EXISTS_RENAME.
    *
    * @return bool
-   *   TRUE on success, FALSE on failure.
+   *  TRUE on success, FALSE on failure.
    */
   protected function writeFile($source, $destination, $replace = FILE_EXISTS_REPLACE) {
     if ($this->configuration['move']) {
@@ -190,8 +190,8 @@ protected function getOverwriteMode(Row $row) {
    *   The URI or path.
    *
    * @return string|false
-   *   The directory component of the path or URI, or FALSE if it could not
-   *   be determined.
+   *  The directory component of the path or URI, or FALSE if it could not
+   *  be determined.
    */
   protected function getDirectory($uri) {
     $dir = $this->fileSystem->dirname($uri);
@@ -213,8 +213,8 @@ protected function getDirectory($uri) {
    *   The destination URI.
    *
    * @return bool
-   *   TRUE if the source and destination URIs refer to the same physical path,
-   *   otherwise FALSE.
+   *  TRUE if the source and destination URIs refer to the same physical path,
+   *  otherwise FALSE.
    */
   protected function isLocationUnchanged($source, $destination) {
     if ($this->isLocalUri($source) && $this->isLocalUri($destination)) {
diff --git a/core/modules/file/src/Plugin/migrate/source/d6/File.php b/core/modules/file/src/Plugin/migrate/source/d6/File.php
index 13aee57..9a90fc8 100644
--- a/core/modules/file/src/Plugin/migrate/source/d6/File.php
+++ b/core/modules/file/src/Plugin/migrate/source/d6/File.php
@@ -45,7 +45,7 @@ public function query() {
       // If two or more files have the same timestamp, they'll end up in a
       // non-deterministic order. Ordering by fid (or any other unique field)
       // will prevent this.
-      ->orderBy('f.fid');
+      ->orderBy('fid');
   }
 
   /**
diff --git a/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php b/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php
index ec17839..00d1890 100644
--- a/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php
+++ b/core/modules/file/src/Plugin/migrate/source/d6/UploadInstance.php
@@ -33,7 +33,7 @@ protected function initializeIterator() {
     $return = array();
     $values = $this->select('variable', 'v')
       ->fields('v', ['name', 'value'])
-      ->condition('v.name', $variables, 'IN')
+      ->condition('name', $variables, 'IN')
       ->execute()
       ->fetchAllKeyed();
     foreach ($node_types as $node_type) {
diff --git a/core/modules/file/src/Plugin/migrate/source/d7/File.php b/core/modules/file/src/Plugin/migrate/source/d7/File.php
index db55a65..aa920bd 100644
--- a/core/modules/file/src/Plugin/migrate/source/d7/File.php
+++ b/core/modules/file/src/Plugin/migrate/source/d7/File.php
@@ -42,7 +42,7 @@ class File extends DrupalSqlBase {
   public function query() {
     $query = $this->select('file_managed', 'f')
       ->fields('f')
-      ->orderBy('f.timestamp');
+      ->orderBy('timestamp');
 
     // Filter by scheme(s), if configured.
     if (isset($this->configuration['scheme'])) {
diff --git a/core/modules/file/src/Tests/FileListingTest.php b/core/modules/file/src/Tests/FileListingTest.php
index 708f138..78a7602 100644
--- a/core/modules/file/src/Tests/FileListingTest.php
+++ b/core/modules/file/src/Tests/FileListingTest.php
@@ -4,7 +4,6 @@
 
 use Drupal\node\Entity\Node;
 use Drupal\file\Entity\File;
-use Drupal\entity_test\Entity\EntityTestConstraints;
 
 /**
  * Tests file listing page functionality.
@@ -18,7 +17,7 @@ class FileListingTest extends FileFieldTestBase {
    *
    * @var array
    */
-  public static $modules = array('views', 'file', 'image', 'entity_test');
+  public static $modules = array('views', 'file', 'image');
 
   /**
    * An authenticated user.
@@ -146,59 +145,10 @@ function testFileListingPages() {
   }
 
   /**
-   * Tests file listing usage page for entities with no canonical link template.
-   */
-  function testFileListingUsageNoLink() {
-    // Login with user with right permissions and test listing.
-    $this->drupalLogin($this->adminUser);
-
-    // Create a bundle and attach a File field to the bundle.
-    $bundle = $this->randomMachineName();
-    entity_test_create_bundle($bundle, NULL, 'entity_test_constraints');
-    $this->createFileField('field_test_file', 'entity_test_constraints', $bundle, array(), array('file_extensions' => 'txt png'));
-
-    // Create file to attach to entity.
-    $file = File::create([
-      'filename' => 'druplicon.txt',
-      'uri' => 'public://druplicon.txt',
-      'filemime' => 'text/plain',
-    ]);
-    $file->setPermanent();
-    file_put_contents($file->getFileUri(), 'hello world');
-    $file->save();
-
-    // Create entity and attach the created file.
-    $entity_name = $this->randomMachineName();
-    $entity = EntityTestConstraints::create(array(
-      'uid' => 1,
-      'name' => $entity_name,
-      'type' => $bundle,
-      'field_test_file' => array(
-        'target_id' => $file->id(),
-      ),
-    ));
-    $entity->save();
-
-    // Create node entity and attach the created file.
-    $node = $this->drupalCreateNode(array('type' => 'article', 'file' => $file));
-    $node->save();
-
-    // Load the file usage page for the created and attached file.
-    $this->drupalGet('admin/content/files/usage/' . $file->id());
-
-    $this->assertResponse(200);
-    // Entity name should be displayed, but not linked if Entity::toUrl
-    // throws an exception
-    $this->assertText($entity_name, 'Entity name is added to file usage listing.');
-    $this->assertNoLink($entity_name, 'Linked entity name not added to file usage listing.');
-    $this->assertLink($node->getTitle());
-  }
-
-  /**
    * Creates and saves a test file.
    *
    * @return \Drupal\Core\Entity\EntityInterface
-   *   A file entity.
+   *  A file entity.
    */
   protected function createFile() {
     // Create a new file entity.
diff --git a/core/modules/file/src/Tests/FileOnTranslatedEntityTest.php b/core/modules/file/src/Tests/FileOnTranslatedEntityTest.php
index a7150e5..26fb111 100644
--- a/core/modules/file/src/Tests/FileOnTranslatedEntityTest.php
+++ b/core/modules/file/src/Tests/FileOnTranslatedEntityTest.php
@@ -166,6 +166,10 @@ public function testSyncedFiles() {
     $file = File::load($replaced_second_fid);
     $this->assertTrue($file->isPermanent());
 
+    // Ensure the file status of the old second file is now temporary.
+    $file = File::load($second_fid);
+    $this->assertTrue($file->isTemporary());
+
     // Delete the third translation.
     $this->drupalPostForm('nl/node/' . $default_language_node->id() . '/delete', array(), t('Delete Dutch translation'));
 
diff --git a/core/modules/file/tests/src/Kernel/AccessTest.php b/core/modules/file/tests/src/Kernel/AccessTest.php
deleted file mode 100644
index c2fa65b..0000000
--- a/core/modules/file/tests/src/Kernel/AccessTest.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-namespace Drupal\Tests\file\Kernel;
-
-use Drupal\file\Entity\File;
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\user\Entity\User;
-
-/**
- * Tests for the File access control.
- *
- * @group file
- */
-class AccessTest extends KernelTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = ['file', 'system', 'user'];
-
-  /**
-   * An authenticated user.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $user1;
-
-  /**
-   * An authenticated user.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $user2;
-
-  /**
-   * The file object used in the test.
-   *
-   * @var \Drupal\file\FileInterface
-   */
-  protected $file;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $this->installEntitySchema('file');
-    $this->installEntitySchema('user');
-    $this->installSchema('file', array('file_usage'));
-    $this->installSchema('system', 'sequences');
-
-    $this->user1 = User::create([
-      'name' => 'user1',
-      'status' => 1,
-    ]);
-    $this->user1->save();
-
-    $this->user2 = User::create([
-      'name' => 'user2',
-      'status' => 1,
-    ]);
-    $this->user2->save();
-
-    $this->file = File::create(array(
-      'uid' => $this->user1->id(),
-      'filename' => 'druplicon.txt',
-      'filemime' => 'text/plain',
-    ));
-  }
-
-  /**
-   * Tests that only the file owner can delete or update a file.
-   */
-  public function testOnlyOwnerCanDeleteUpdateFile() {
-    \Drupal::currentUser()->setAccount($this->user2);
-    $this->assertFalse($this->file->access('delete'));
-    $this->assertFalse($this->file->access('update'));
-
-    \Drupal::currentUser()->setAccount($this->user1);
-    $this->assertTrue($this->file->access('delete'));
-    $this->assertTrue($this->file->access('update'));
-  }
-
-  /**
-   * Tests that the status field is not editable.
-   */
-  public function testStatusFieldIsNotEditable() {
-    \Drupal::currentUser()->setAccount($this->user1);
-    $this->assertFalse($this->file->get('status')->access('edit'));
-  }
-
-  /**
-   * Tests create access checks.
-   */
-  public function testCreateAccess() {
-    // Anonymous users can create a file by default.
-    $this->assertFalse($this->file->access('create'));
-
-    // Authenticated users can create a file by default.
-    \Drupal::currentUser()->setAccount($this->user1);
-    $this->assertFalse($this->file->access('create'));
-  }
-
-}
diff --git a/core/modules/file/tests/src/Kernel/FileItemTest.php b/core/modules/file/tests/src/Kernel/FileItemTest.php
index 747d5da..8827fb0 100644
--- a/core/modules/file/tests/src/Kernel/FileItemTest.php
+++ b/core/modules/file/tests/src/Kernel/FileItemTest.php
@@ -83,7 +83,7 @@ public function testFileItem() {
     $entity->name->value = $this->randomMachineName();
     $entity->save();
 
-    $entity = EntityTest::load($entity->id());
+    $entity = entity_load('entity_test', $entity->id());
     $this->assertTrue($entity->file_test instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->file_test[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->file_test->target_id, $this->file->id());
diff --git a/core/modules/filter/migration_templates/d7_filter_format.yml b/core/modules/filter/migration_templates/d7_filter_format.yml
index 2b44a80..c671b75 100644
--- a/core/modules/filter/migration_templates/d7_filter_format.yml
+++ b/core/modules/filter/migration_templates/d7_filter_format.yml
@@ -8,7 +8,6 @@ process:
   format: format
   name: name
   cache: cache
-  weight: weight
   filters:
     plugin: iterator
     source: filters
@@ -26,6 +25,5 @@ process:
       status:
         plugin: default_value
         default_value: true
-      weight: weight
 destination:
   plugin: entity:filter_format
diff --git a/core/modules/filter/src/FilterFormatListBuilder.php b/core/modules/filter/src/FilterFormatListBuilder.php
index cf08456..71458c5 100644
--- a/core/modules/filter/src/FilterFormatListBuilder.php
+++ b/core/modules/filter/src/FilterFormatListBuilder.php
@@ -139,7 +139,7 @@ public function getDefaultOperations(EntityInterface $entity) {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form = parent::buildForm($form, $form_state);
-    $form['actions']['submit']['#value'] = $this->t('Save');
+    $form['actions']['submit']['#value'] = $this->t('Save changes');
     return $form;
   }
 
diff --git a/core/modules/filter/src/Tests/FilterAdminTest.php b/core/modules/filter/src/Tests/FilterAdminTest.php
index e71b57a..86d5ce7 100644
--- a/core/modules/filter/src/Tests/FilterAdminTest.php
+++ b/core/modules/filter/src/Tests/FilterAdminTest.php
@@ -130,7 +130,7 @@ function testFormatAdmin() {
     $edit = array(
       "formats[$format_id][weight]" => 5,
     );
-    $this->drupalPostForm('admin/config/content/formats', $edit, t('Save'));
+    $this->drupalPostForm('admin/config/content/formats', $edit, t('Save changes'));
     $this->assertFieldByName("formats[$format_id][weight]", 5, 'Text format weight was saved.');
 
     // Edit text format.
@@ -202,7 +202,7 @@ function testFilterAdmin() {
     $this->assertResponse(403, 'The fallback format cannot be disabled.');
 
     // Verify access permissions to Full HTML format.
-    $full_format = FilterFormat::load($full);
+    $full_format = entity_load('filter_format', $full);
     $this->assertTrue($full_format->access('use', $this->adminUser), 'Admin user may use Full HTML.');
     $this->assertFalse($full_format->access('use', $this->webUser), 'Web user may not use Full HTML.');
 
@@ -236,7 +236,7 @@ function testFilterAdmin() {
     ));
     $this->assertTrue(!empty($elements), 'Reorder confirmed in admin interface.');
 
-    $filter_format = FilterFormat::load($restricted);
+    $filter_format = entity_load('filter_format', $restricted);
     foreach ($filter_format->filters() as $filter_name => $filter) {
       if ($filter_name == $second_filter || $filter_name == $first_filter) {
         $filters[] = $filter_name;
@@ -257,7 +257,7 @@ function testFilterAdmin() {
     $this->assertRaw(t('Added text format %format.', array('%format' => $edit['name'])), 'New filter created.');
 
     filter_formats_reset();
-    $format = FilterFormat::load($edit['format']);
+    $format = entity_load('filter_format', $edit['format']);
     $this->assertNotNull($format, 'Format found in database.');
     $this->drupalGet('admin/config/content/formats/manage/' . $format->id());
     $this->assertFieldByName('roles[' . RoleInterface::AUTHENTICATED_ID . ']', '', 'Role found.');
@@ -270,7 +270,7 @@ function testFilterAdmin() {
     $this->assertRaw(t('Disabled text format %format.', array('%format' => $edit['name'])), 'Format successfully disabled.');
 
     // Allow authenticated users on full HTML.
-    $format = FilterFormat::load($full);
+    $format = entity_load('filter_format', $full);
     $edit = array();
     $edit['roles[' . RoleInterface::ANONYMOUS_ID . ']'] = 0;
     $edit['roles[' . RoleInterface::AUTHENTICATED_ID . ']'] = 1;
@@ -294,11 +294,7 @@ function testFilterAdmin() {
     $edit['body[0][value]'] = $text;
     $edit['body[0][format]'] = $basic;
     $this->drupalPostForm('node/add/page', $edit, t('Save'));
-    $this->assertText(t('Basic page @title has been created.', array('@title' => $edit['title[0][value]'])), 'Filtered node created.');
-
-    // Verify that the creation message contains a link to a node.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'node/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a node');
+    $this->assertRaw(t('Basic page %title has been created.', array('%title' => $edit['title[0][value]'])), 'Filtered node created.');
 
     $node = $this->drupalGetNodeByTitle($edit['title[0][value]']);
     $this->assertTrue($node, 'Node found in database.');
diff --git a/core/modules/filter/src/Tests/FilterDefaultFormatTest.php b/core/modules/filter/src/Tests/FilterDefaultFormatTest.php
index 39a6295..800d706 100644
--- a/core/modules/filter/src/Tests/FilterDefaultFormatTest.php
+++ b/core/modules/filter/src/Tests/FilterDefaultFormatTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\filter\Tests;
 
 use Drupal\Component\Utility\Unicode;
-use Drupal\filter\Entity\FilterFormat;
 use Drupal\simpletest\WebTestBase;
 
 /**
@@ -36,7 +35,7 @@ function testDefaultTextFormats() {
       );
       $this->drupalPostForm('admin/config/content/formats/add', $edit, t('Save configuration'));
       $this->resetFilterCaches();
-      $formats[] = FilterFormat::load($edit['format']);
+      $formats[] = entity_load('filter_format', $edit['format']);
     }
     list($first_format, $second_format) = $formats;
     $second_format_permission = $second_format->getPermissionName();
@@ -48,7 +47,7 @@ function testDefaultTextFormats() {
     $edit = array();
     $edit['formats[' . $first_format->id() . '][weight]'] = -2;
     $edit['formats[' . $second_format->id() . '][weight]'] = -1;
-    $this->drupalPostForm('admin/config/content/formats', $edit, t('Save'));
+    $this->drupalPostForm('admin/config/content/formats', $edit, t('Save changes'));
     $this->resetFilterCaches();
 
     // Check that each user's default format is the lowest weighted format that
@@ -64,7 +63,7 @@ function testDefaultTextFormats() {
     // default.
     $edit = array();
     $edit['formats[' . $second_format->id() . '][weight]'] = -3;
-    $this->drupalPostForm('admin/config/content/formats', $edit, t('Save'));
+    $this->drupalPostForm('admin/config/content/formats', $edit, t('Save changes'));
     $this->resetFilterCaches();
     $this->assertEqual(filter_default_format($first_user), filter_default_format($second_user), 'After the formats are reordered, both users have the same default format.');
   }
diff --git a/core/modules/filter/src/Tests/FilterFormTest.php b/core/modules/filter/src/Tests/FilterFormTest.php
index 24bbc15..022d2bf 100644
--- a/core/modules/filter/src/Tests/FilterFormTest.php
+++ b/core/modules/filter/src/Tests/FilterFormTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\filter\Tests;
 
 use Drupal\Component\Utility\SafeMarkup;
-use Drupal\filter\Entity\FilterFormat;
 use Drupal\simpletest\WebTestBase;
 
 /**
@@ -41,11 +40,11 @@ protected function setUp() {
     parent::setUp();
 
     /** @var \Drupal\filter\FilterFormatInterface $filter_test_format */
-    $filter_test_format = FilterFormat::load('filter_test');
+    $filter_test_format = entity_load('filter_format', 'filter_test');
     /** @var \Drupal\filter\FilterFormatInterface $filtered_html_format */
-    $filtered_html_format = FilterFormat::load('filtered_html');
+    $filtered_html_format = entity_load('filter_format', 'filtered_html');
     /** @var \Drupal\filter\FilterFormatInterface $full_html_format */
-    $full_html_format = FilterFormat::load('full_html');
+    $full_html_format = entity_load('filter_format', 'full_html');
 
     // Create users.
     $this->adminUser = $this->drupalCreateUser(array(
diff --git a/core/modules/filter/src/Tests/FilterFormatAccessTest.php b/core/modules/filter/src/Tests/FilterFormatAccessTest.php
index 496cfb8..ed41db0 100644
--- a/core/modules/filter/src/Tests/FilterFormatAccessTest.php
+++ b/core/modules/filter/src/Tests/FilterFormatAccessTest.php
@@ -4,7 +4,6 @@
 
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Access\AccessResult;
-use Drupal\filter\Entity\FilterFormat;
 use Drupal\simpletest\WebTestBase;
 
 /**
@@ -90,7 +89,7 @@ protected function setUp() {
       );
       $this->drupalPostForm('admin/config/content/formats/add', $edit, t('Save configuration'));
       $this->resetFilterCaches();
-      $formats[] = FilterFormat::load($edit['format']);
+      $formats[] = entity_load('filter_format', $edit['format']);
     }
     list($this->allowedFormat, $this->secondAllowedFormat, $this->disallowedFormat) = $formats;
     $this->drupalLogout();
@@ -121,7 +120,7 @@ protected function setUp() {
   function testFormatPermissions() {
     // Make sure that a regular user only has access to the text formats for
     // which they were granted access.
-    $fallback_format = FilterFormat::load(filter_fallback_format());
+    $fallback_format = entity_load('filter_format', filter_fallback_format());
     $this->assertTrue($this->allowedFormat->access('use', $this->webUser), 'A regular user has access to use a text format they were granted access to.');
     $this->assertEqual(AccessResult::allowed()->addCacheContexts(['user.permissions']), $this->allowedFormat->access('use', $this->webUser, TRUE), 'A regular user has access to use a text format they were granted access to.');
     $this->assertFalse($this->disallowedFormat->access('use', $this->webUser), 'A regular user does not have access to use a text format they were not granted access to.');
@@ -198,7 +197,7 @@ function testFormatRoles() {
     $this->assertFalse(in_array($this->disallowedFormat->id(), array_keys(filter_get_formats_by_role($rid))), 'A text format which a role does not have access to does not appear in the list of formats available to that role.');
 
     // Check that the fallback format is always allowed.
-    $this->assertEqual(filter_get_roles_by_format(FilterFormat::load(filter_fallback_format())), user_role_names(), 'All roles have access to the fallback format.');
+    $this->assertEqual(filter_get_roles_by_format(entity_load('filter_format', filter_fallback_format())), user_role_names(), 'All roles have access to the fallback format.');
     $this->assertTrue(in_array(filter_fallback_format(), array_keys(filter_get_formats_by_role($rid))), 'The fallback format appears in the list of allowed formats for any role.');
   }
 
diff --git a/core/modules/filter/src/Tests/FilterSecurityTest.php b/core/modules/filter/src/Tests/FilterSecurityTest.php
index 12cd97a..b86e072 100644
--- a/core/modules/filter/src/Tests/FilterSecurityTest.php
+++ b/core/modules/filter/src/Tests/FilterSecurityTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\filter\Tests;
 
-use Drupal\filter\Entity\FilterFormat;
 use Drupal\simpletest\WebTestBase;
 use Drupal\filter\Plugin\FilterInterface;
 use Drupal\user\RoleInterface;
@@ -37,7 +36,7 @@ protected function setUp() {
     $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page'));
 
     /** @var \Drupal\filter\Entity\FilterFormat $filtered_html_format */
-    $filtered_html_format = FilterFormat::load('filtered_html');
+    $filtered_html_format = entity_load('filter_format', 'filtered_html');
     $filtered_html_permission = $filtered_html_format->getPermissionName();
     user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, array($filtered_html_permission));
 
diff --git a/core/modules/filter/tests/src/Kernel/FilterAPITest.php b/core/modules/filter/tests/src/Kernel/FilterAPITest.php
index 50189a6..0f9feff 100644
--- a/core/modules/filter/tests/src/Kernel/FilterAPITest.php
+++ b/core/modules/filter/tests/src/Kernel/FilterAPITest.php
@@ -100,7 +100,7 @@ function testCheckMarkupFilterSubset() {
    */
   function testFilterFormatAPI() {
     // Test on filtered_html.
-    $filtered_html_format = FilterFormat::load('filtered_html');
+    $filtered_html_format = entity_load('filter_format', 'filtered_html');
     $this->assertIdentical(
       $filtered_html_format->getHtmlRestrictions(),
       array(
@@ -121,7 +121,7 @@ function testFilterFormatAPI() {
     );
 
     // Test on full_html.
-    $full_html_format = FilterFormat::load('full_html');
+    $full_html_format = entity_load('filter_format', 'full_html');
     $this->assertIdentical(
       $full_html_format->getHtmlRestrictions(),
       FALSE, // Every tag is allowed.
@@ -334,7 +334,7 @@ function testTypedDataAPI() {
     $this->assertTrue($data instanceof OptionsProviderInterface, 'Typed data object implements \Drupal\Core\TypedData\OptionsProviderInterface');
 
     $filtered_html_user = $this->createUser(array('uid' => 2), array(
-      FilterFormat::load('filtered_html')->getPermissionName(),
+      entity_load('filter_format', 'filtered_html')->getPermissionName(),
     ));
 
     // Test with anonymous user.
diff --git a/core/modules/filter/tests/src/Kernel/FilterCrudTest.php b/core/modules/filter/tests/src/Kernel/FilterCrudTest.php
index 0a9be18..35e181c 100644
--- a/core/modules/filter/tests/src/Kernel/FilterCrudTest.php
+++ b/core/modules/filter/tests/src/Kernel/FilterCrudTest.php
@@ -93,7 +93,7 @@ function verifyTextFormat($format) {
     $default_langcode = \Drupal::languageManager()->getDefaultLanguage()->getId();
 
     // Verify the loaded filter has all properties.
-    $filter_format = FilterFormat::load($format->id());
+    $filter_format = entity_load('filter_format', $format->id());
     $this->assertEqual($filter_format->id(), $format->id(), format_string('filter_format_load: Proper format id for text format %format.', $t_args));
     $this->assertEqual($filter_format->label(), $format->label(), format_string('filter_format_load: Proper title for text format %format.', $t_args));
     $this->assertEqual($filter_format->get('weight'), $format->get('weight'), format_string('filter_format_load: Proper weight for text format %format.', $t_args));
diff --git a/core/modules/filter/tests/src/Kernel/FilterDefaultConfigTest.php b/core/modules/filter/tests/src/Kernel/FilterDefaultConfigTest.php
index b4ce50c..4b3684b 100644
--- a/core/modules/filter/tests/src/Kernel/FilterDefaultConfigTest.php
+++ b/core/modules/filter/tests/src/Kernel/FilterDefaultConfigTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\Tests\filter\Kernel;
 
-use Drupal\filter\Entity\FilterFormat;
 use Drupal\KernelTests\KernelTestBase;
 use Drupal\user\RoleInterface;
 
@@ -32,7 +31,7 @@ protected function setUp() {
    */
   function testInstallation() {
     // Verify that the format was installed correctly.
-    $format = FilterFormat::load('filter_test');
+    $format = entity_load('filter_format', 'filter_test');
     $this->assertTrue((bool) $format);
     $this->assertEqual($format->id(), 'filter_test');
     $this->assertEqual($format->label(), 'Test format');
@@ -72,7 +71,7 @@ function testInstallation() {
    */
   function testUpdateRoles() {
     // Verify role permissions declared in default config.
-    $format = FilterFormat::load('filter_test');
+    $format = entity_load('filter_format', 'filter_test');
     $this->assertEqual(array_keys(filter_get_roles_by_format($format)), array(
       RoleInterface::ANONYMOUS_ID,
       RoleInterface::AUTHENTICATED_ID,
@@ -85,7 +84,7 @@ function testUpdateRoles() {
     $format->save();
 
     // Verify that roles have not been updated.
-    $format = FilterFormat::load('filter_test');
+    $format = entity_load('filter_format', 'filter_test');
     $this->assertEqual(array_keys(filter_get_roles_by_format($format)), array(
       RoleInterface::ANONYMOUS_ID,
       RoleInterface::AUTHENTICATED_ID,
diff --git a/core/modules/filter/tests/src/Kernel/FilterKernelTest.php b/core/modules/filter/tests/src/Kernel/FilterUnitTest.php
similarity index 99%
rename from core/modules/filter/tests/src/Kernel/FilterKernelTest.php
rename to core/modules/filter/tests/src/Kernel/FilterUnitTest.php
index 06c1e4b..3f46739 100644
--- a/core/modules/filter/tests/src/Kernel/FilterKernelTest.php
+++ b/core/modules/filter/tests/src/Kernel/FilterUnitTest.php
@@ -15,7 +15,7 @@
  *
  * @group filter
  */
-class FilterKernelTest extends KernelTestBase {
+class FilterUnitTest extends KernelTestBase {
 
   /**
    * Modules to enable.
diff --git a/core/modules/filter/tests/src/Kernel/Migrate/d7/MigrateFilterFormatTest.php b/core/modules/filter/tests/src/Kernel/Migrate/d7/MigrateFilterFormatTest.php
index 8eb13b9..0ab5d05 100644
--- a/core/modules/filter/tests/src/Kernel/Migrate/d7/MigrateFilterFormatTest.php
+++ b/core/modules/filter/tests/src/Kernel/Migrate/d7/MigrateFilterFormatTest.php
@@ -35,31 +35,25 @@ protected function setUp() {
    * @param string $label
    *   The expected label of the format.
    * @param array $enabled_filters
-   *   The expected filters in the format, keyed by ID with weight as values.
-   * @param int $weight
-   *   The weight of the filter.
+   *   The expected filters in the format, keyed by ID.
    */
-  protected function assertEntity($id, $label, array $enabled_filters, $weight) {
+  protected function assertEntity($id, $label, array $enabled_filters) {
     /** @var \Drupal\filter\FilterFormatInterface $entity */
     $entity = FilterFormat::load($id);
     $this->assertTrue($entity instanceof FilterFormatInterface);
     $this->assertIdentical($label, $entity->label());
     // get('filters') will return enabled filters only, not all of them.
-    $this->assertIdentical(array_keys($enabled_filters), array_keys($entity->get('filters')));
-    $this->assertIdentical($weight, $entity->get('weight'));
-    foreach ($entity->get('filters') as $filter_id => $filter) {
-      $this->assertIdentical($filter['weight'], $enabled_filters[$filter_id]);
-    }
+    $this->assertIdentical($enabled_filters, array_keys($entity->get('filters')));
   }
 
   /**
    * Tests the Drupal 7 filter format to Drupal 8 migration.
    */
   public function testFilterFormat() {
-    $this->assertEntity('custom_text_format', 'Custom Text format', ['filter_autop' => 0, 'filter_html' => -10], 0);
-    $this->assertEntity('filtered_html', 'Filtered HTML', ['filter_autop' => 2, 'filter_html' => 1, 'filter_htmlcorrector' => 10, 'filter_url' => 0], 0);
-    $this->assertEntity('full_html', 'Full HTML', ['filter_autop' => 1, 'filter_htmlcorrector' => 10, 'filter_url' => 0], 1);
-    $this->assertEntity('plain_text', 'Plain text', ['filter_html_escape' => 0, 'filter_url' => 1, 'filter_autop' => 2], 10);
+    $this->assertEntity('custom_text_format', 'Custom Text format', ['filter_autop', 'filter_html']);
+    $this->assertEntity('filtered_html', 'Filtered HTML', ['filter_autop', 'filter_html', 'filter_htmlcorrector', 'filter_url']);
+    $this->assertEntity('full_html', 'Full HTML', ['filter_autop', 'filter_htmlcorrector', 'filter_url']);
+    $this->assertEntity('plain_text', 'Plain text', ['filter_html_escape', 'filter_url', 'filter_autop']);
     // This assertion covers issue #2555089. Drupal 7 formats are identified
     // by machine names, so migrated formats should be merged into existing
     // ones.
diff --git a/core/modules/filter/tests/src/Unit/Plugin/migrate/source/d6/FilterFormatTest.php b/core/modules/filter/tests/src/Unit/Plugin/migrate/source/d6/FilterFormatTest.php
index 018c033..a50a069 100644
--- a/core/modules/filter/tests/src/Unit/Plugin/migrate/source/d6/FilterFormatTest.php
+++ b/core/modules/filter/tests/src/Unit/Plugin/migrate/source/d6/FilterFormatTest.php
@@ -32,19 +32,16 @@ class FilterFormatTest extends MigrateSqlSourceTestCase {
           'module' => 'filter',
           'delta' => 2,
           'weight' => 0,
-          'settings' => array(),
         ),
         array(
           'module' => 'filter',
           'delta' => 0,
           'weight' => 1,
-          'settings' => array(),
         ),
         array(
           'module' => 'filter',
           'delta' => 1,
           'weight' => 2,
-          'settings' => array(),
         ),
       ),
     ),
@@ -58,19 +55,16 @@ class FilterFormatTest extends MigrateSqlSourceTestCase {
           'module' => 'filter',
           'delta' => 2,
           'weight' => 0,
-          'settings' => array(),
         ),
         array(
           'module' => 'filter',
           'delta' => 1,
           'weight' => 1,
-          'settings' => array(),
         ),
         array(
           'module' => 'filter',
           'delta' => 3,
           'weight' => 10,
-          'settings' => array(),
         ),
       ),
     ),
@@ -85,7 +79,6 @@ class FilterFormatTest extends MigrateSqlSourceTestCase {
           'module' => 'markdown',
           'delta' => 1,
           'weight' => 10,
-          'settings' => array(),
         ),
       ),
     ),
@@ -96,11 +89,9 @@ class FilterFormatTest extends MigrateSqlSourceTestCase {
    */
   protected function setUp() {
     $fid = 1;
-    $empty_array = serialize(array());
     foreach ($this->expectedResults as $k => $row) {
       $row['roles'] = ',' . implode(',', $row['roles']) . ',';
       foreach ($row['filters'] as $filter) {
-        $filter['settings'] = $empty_array;
         $this->databaseContents['filters'][$fid] = $filter;
         $this->databaseContents['filters'][$fid]['format'] = $row['format'];
         $this->databaseContents['filters'][$fid]['fid'] = $fid;
diff --git a/core/modules/filter/tests/src/Unit/Plugin/migrate/source/d7/FilterFormatTest.php b/core/modules/filter/tests/src/Unit/Plugin/migrate/source/d7/FilterFormatTest.php
index 2616ad1..2684c22 100644
--- a/core/modules/filter/tests/src/Unit/Plugin/migrate/source/d7/FilterFormatTest.php
+++ b/core/modules/filter/tests/src/Unit/Plugin/migrate/source/d7/FilterFormatTest.php
@@ -29,7 +29,6 @@ class FilterFormatTest extends MigrateSqlSourceTestCase {
       'weight' => 0,
       'filters' => array(
         'filter_autop' => array(
-          'format' => 'custom_text_format',
           'module' => 'filter',
           'name' => 'filter_autop',
           'weight' => 0,
@@ -37,7 +36,6 @@ class FilterFormatTest extends MigrateSqlSourceTestCase {
           'settings' => array(),
         ),
         'filter_html' => array(
-          'format' => 'custom_text_format',
           'module' => 'filter',
           'name' => 'filter_html',
           'weight' => 1,
@@ -54,7 +52,6 @@ class FilterFormatTest extends MigrateSqlSourceTestCase {
       'weight' => 1,
       'filters' => array(
         'filter_url' => array(
-          'format' => 'full_html',
           'module' => 'filter',
           'name' => 'filter_url',
           'weight' => 0,
diff --git a/core/modules/forum/config/optional/comment.type.comment_forum.yml b/core/modules/forum/config/install/comment.type.comment_forum.yml
similarity index 100%
rename from core/modules/forum/config/optional/comment.type.comment_forum.yml
rename to core/modules/forum/config/install/comment.type.comment_forum.yml
diff --git a/core/modules/forum/config/optional/core.base_field_override.node.forum.promote.yml b/core/modules/forum/config/install/core.base_field_override.node.forum.promote.yml
similarity index 100%
rename from core/modules/forum/config/optional/core.base_field_override.node.forum.promote.yml
rename to core/modules/forum/config/install/core.base_field_override.node.forum.promote.yml
diff --git a/core/modules/forum/config/optional/core.base_field_override.node.forum.title.yml b/core/modules/forum/config/install/core.base_field_override.node.forum.title.yml
similarity index 100%
rename from core/modules/forum/config/optional/core.base_field_override.node.forum.title.yml
rename to core/modules/forum/config/install/core.base_field_override.node.forum.title.yml
diff --git a/core/modules/forum/config/optional/core.entity_form_display.comment.comment_forum.default.yml b/core/modules/forum/config/install/core.entity_form_display.comment.comment_forum.default.yml
similarity index 100%
rename from core/modules/forum/config/optional/core.entity_form_display.comment.comment_forum.default.yml
rename to core/modules/forum/config/install/core.entity_form_display.comment.comment_forum.default.yml
diff --git a/core/modules/forum/config/optional/core.entity_form_display.node.forum.default.yml b/core/modules/forum/config/install/core.entity_form_display.node.forum.default.yml
similarity index 100%
rename from core/modules/forum/config/optional/core.entity_form_display.node.forum.default.yml
rename to core/modules/forum/config/install/core.entity_form_display.node.forum.default.yml
diff --git a/core/modules/forum/config/optional/core.entity_form_display.taxonomy_term.forums.default.yml b/core/modules/forum/config/install/core.entity_form_display.taxonomy_term.forums.default.yml
similarity index 89%
rename from core/modules/forum/config/optional/core.entity_form_display.taxonomy_term.forums.default.yml
rename to core/modules/forum/config/install/core.entity_form_display.taxonomy_term.forums.default.yml
index b18c869..a2f890d 100644
--- a/core/modules/forum/config/optional/core.entity_form_display.taxonomy_term.forums.default.yml
+++ b/core/modules/forum/config/install/core.entity_form_display.taxonomy_term.forums.default.yml
@@ -2,7 +2,6 @@ langcode: en
 status: true
 dependencies:
   config:
-    - field.field.taxonomy_term.forums.forum_container
     - taxonomy.vocabulary.forums
   module:
     - text
diff --git a/core/modules/forum/config/optional/core.entity_view_display.comment.comment_forum.default.yml b/core/modules/forum/config/install/core.entity_view_display.comment.comment_forum.default.yml
similarity index 100%
rename from core/modules/forum/config/optional/core.entity_view_display.comment.comment_forum.default.yml
rename to core/modules/forum/config/install/core.entity_view_display.comment.comment_forum.default.yml
diff --git a/core/modules/forum/config/optional/core.entity_view_display.node.forum.default.yml b/core/modules/forum/config/install/core.entity_view_display.node.forum.default.yml
similarity index 89%
rename from core/modules/forum/config/optional/core.entity_view_display.node.forum.default.yml
rename to core/modules/forum/config/install/core.entity_view_display.node.forum.default.yml
index b157c83..39389a5 100644
--- a/core/modules/forum/config/optional/core.entity_view_display.node.forum.default.yml
+++ b/core/modules/forum/config/install/core.entity_view_display.node.forum.default.yml
@@ -2,7 +2,6 @@ langcode: en
 status: true
 dependencies:
   config:
-    - core.entity_view_display.comment.comment_forum.default
     - field.field.node.forum.body
     - field.field.node.forum.comment_forum
     - field.field.node.forum.taxonomy_forums
@@ -27,7 +26,6 @@ content:
     type: comment_default
     weight: 20
     settings:
-      view_mode: default
       pager_id: 0
     third_party_settings: {  }
   links:
diff --git a/core/modules/forum/config/optional/core.entity_view_display.node.forum.teaser.yml b/core/modules/forum/config/install/core.entity_view_display.node.forum.teaser.yml
similarity index 100%
rename from core/modules/forum/config/optional/core.entity_view_display.node.forum.teaser.yml
rename to core/modules/forum/config/install/core.entity_view_display.node.forum.teaser.yml
diff --git a/core/modules/forum/config/optional/core.entity_view_display.taxonomy_term.forums.default.yml b/core/modules/forum/config/install/core.entity_view_display.taxonomy_term.forums.default.yml
similarity index 86%
rename from core/modules/forum/config/optional/core.entity_view_display.taxonomy_term.forums.default.yml
rename to core/modules/forum/config/install/core.entity_view_display.taxonomy_term.forums.default.yml
index d1242d9..07b131a 100644
--- a/core/modules/forum/config/optional/core.entity_view_display.taxonomy_term.forums.default.yml
+++ b/core/modules/forum/config/install/core.entity_view_display.taxonomy_term.forums.default.yml
@@ -2,7 +2,6 @@ langcode: en
 status: true
 dependencies:
   config:
-    - field.field.taxonomy_term.forums.forum_container
     - taxonomy.vocabulary.forums
   module:
     - text
diff --git a/core/modules/forum/config/optional/field.field.comment.comment_forum.comment_body.yml b/core/modules/forum/config/install/field.field.comment.comment_forum.comment_body.yml
similarity index 100%
rename from core/modules/forum/config/optional/field.field.comment.comment_forum.comment_body.yml
rename to core/modules/forum/config/install/field.field.comment.comment_forum.comment_body.yml
diff --git a/core/modules/forum/config/optional/field.field.node.forum.body.yml b/core/modules/forum/config/install/field.field.node.forum.body.yml
similarity index 100%
rename from core/modules/forum/config/optional/field.field.node.forum.body.yml
rename to core/modules/forum/config/install/field.field.node.forum.body.yml
diff --git a/core/modules/forum/config/optional/field.field.node.forum.comment_forum.yml b/core/modules/forum/config/install/field.field.node.forum.comment_forum.yml
similarity index 100%
rename from core/modules/forum/config/optional/field.field.node.forum.comment_forum.yml
rename to core/modules/forum/config/install/field.field.node.forum.comment_forum.yml
diff --git a/core/modules/forum/config/optional/field.field.node.forum.taxonomy_forums.yml b/core/modules/forum/config/install/field.field.node.forum.taxonomy_forums.yml
similarity index 100%
rename from core/modules/forum/config/optional/field.field.node.forum.taxonomy_forums.yml
rename to core/modules/forum/config/install/field.field.node.forum.taxonomy_forums.yml
diff --git a/core/modules/forum/config/optional/field.field.taxonomy_term.forums.forum_container.yml b/core/modules/forum/config/install/field.field.taxonomy_term.forums.forum_container.yml
similarity index 100%
rename from core/modules/forum/config/optional/field.field.taxonomy_term.forums.forum_container.yml
rename to core/modules/forum/config/install/field.field.taxonomy_term.forums.forum_container.yml
diff --git a/core/modules/forum/config/optional/field.storage.node.comment_forum.yml b/core/modules/forum/config/install/field.storage.node.comment_forum.yml
similarity index 100%
rename from core/modules/forum/config/optional/field.storage.node.comment_forum.yml
rename to core/modules/forum/config/install/field.storage.node.comment_forum.yml
diff --git a/core/modules/forum/config/optional/field.storage.node.taxonomy_forums.yml b/core/modules/forum/config/install/field.storage.node.taxonomy_forums.yml
similarity index 100%
rename from core/modules/forum/config/optional/field.storage.node.taxonomy_forums.yml
rename to core/modules/forum/config/install/field.storage.node.taxonomy_forums.yml
diff --git a/core/modules/forum/config/optional/field.storage.taxonomy_term.forum_container.yml b/core/modules/forum/config/install/field.storage.taxonomy_term.forum_container.yml
similarity index 100%
rename from core/modules/forum/config/optional/field.storage.taxonomy_term.forum_container.yml
rename to core/modules/forum/config/install/field.storage.taxonomy_term.forum_container.yml
diff --git a/core/modules/forum/config/optional/node.type.forum.yml b/core/modules/forum/config/install/node.type.forum.yml
similarity index 100%
rename from core/modules/forum/config/optional/node.type.forum.yml
rename to core/modules/forum/config/install/node.type.forum.yml
diff --git a/core/modules/forum/config/optional/taxonomy.vocabulary.forums.yml b/core/modules/forum/config/install/taxonomy.vocabulary.forums.yml
similarity index 100%
rename from core/modules/forum/config/optional/taxonomy.vocabulary.forums.yml
rename to core/modules/forum/config/install/taxonomy.vocabulary.forums.yml
diff --git a/core/modules/forum/forum.services.yml b/core/modules/forum/forum.services.yml
index 5f56f3d..6ab41c9 100644
--- a/core/modules/forum/forum.services.yml
+++ b/core/modules/forum/forum.services.yml
@@ -6,12 +6,12 @@ services:
       - { name: backend_overridable }
   forum.breadcrumb.node:
     class: Drupal\forum\Breadcrumb\ForumNodeBreadcrumbBuilder
-    arguments: ['@entity.manager', '@config.factory', '@forum_manager', '@string_translation']
+    arguments: ['@entity.manager', '@config.factory', '@forum_manager']
     tags:
       - { name: breadcrumb_builder, priority: 1001 }
   forum.breadcrumb.listing:
     class: Drupal\forum\Breadcrumb\ForumListingBreadcrumbBuilder
-    arguments: ['@entity.manager', '@config.factory', '@forum_manager', '@string_translation']
+    arguments: ['@entity.manager', '@config.factory', '@forum_manager']
     tags:
       - { name: breadcrumb_builder, priority: 1001 }
   forum.index_storage:
diff --git a/core/modules/forum/src/Breadcrumb/ForumBreadcrumbBuilderBase.php b/core/modules/forum/src/Breadcrumb/ForumBreadcrumbBuilderBase.php
index 63d2d86..6604001 100644
--- a/core/modules/forum/src/Breadcrumb/ForumBreadcrumbBuilderBase.php
+++ b/core/modules/forum/src/Breadcrumb/ForumBreadcrumbBuilderBase.php
@@ -9,7 +9,6 @@
 use Drupal\Core\Link;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\Core\StringTranslation\StringTranslationTrait;
-use Drupal\Core\StringTranslation\TranslationInterface;
 use Drupal\forum\ForumManagerInterface;
 
 /**
@@ -51,14 +50,11 @@
    *   The configuration factory.
    * @param \Drupal\forum\ForumManagerInterface $forum_manager
    *   The forum manager service.
-   * @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
-   *   The string translation service.
    */
-  public function __construct(EntityManagerInterface $entity_manager, ConfigFactoryInterface $config_factory, ForumManagerInterface $forum_manager, TranslationInterface $string_translation) {
+  public function __construct(EntityManagerInterface $entity_manager, ConfigFactoryInterface $config_factory, ForumManagerInterface $forum_manager) {
     $this->entityManager = $entity_manager;
     $this->config = $config_factory->get('forum.settings');
     $this->forumManager = $forum_manager;
-    $this->setStringTranslation($string_translation);
   }
 
   /**
diff --git a/core/modules/forum/src/Form/ForumForm.php b/core/modules/forum/src/Form/ForumForm.php
index 30f0cf1..415fef7 100644
--- a/core/modules/forum/src/Form/ForumForm.php
+++ b/core/modules/forum/src/Form/ForumForm.php
@@ -78,10 +78,9 @@ public function save(array $form, FormStateInterface $form_state) {
     $route_name = $this->urlStub == 'container' ? 'entity.taxonomy_term.forum_edit_container_form' : 'entity.taxonomy_term.forum_edit_form';
     $route_parameters  = ['taxonomy_term' => $term->id()];
     $link = $this->l($this->t('Edit'), new Url($route_name, $route_parameters));
-    $view_link = $term->link($term->getName());
     switch ($status) {
       case SAVED_NEW:
-        drupal_set_message($this->t('Created new @type %term.', array('%term' => $view_link, '@type' => $this->forumFormType)));
+        drupal_set_message($this->t('Created new @type %term.', array('%term' => $term->getName(), '@type' => $this->forumFormType)));
         $this->logger('forum')->notice('Created new @type %term.', array('%term' => $term->getName(), '@type' => $this->forumFormType, 'link' => $link));
         $form_state->setValue('tid', $term->id());
         break;
diff --git a/core/modules/forum/tests/src/Functional/ForumBlockTest.php b/core/modules/forum/src/Tests/ForumBlockTest.php
similarity index 97%
rename from core/modules/forum/tests/src/Functional/ForumBlockTest.php
rename to core/modules/forum/src/Tests/ForumBlockTest.php
index 0c42602..1bcc9bc 100644
--- a/core/modules/forum/tests/src/Functional/ForumBlockTest.php
+++ b/core/modules/forum/src/Tests/ForumBlockTest.php
@@ -1,17 +1,17 @@
 <?php
 
-namespace Drupal\Tests\forum\Functional;
+namespace Drupal\forum\Tests;
 
+use Drupal\simpletest\WebTestBase;
 use Drupal\Core\Datetime\DrupalDateTime;
 use Drupal\comment\Entity\Comment;
-use Drupal\Tests\BrowserTestBase;
 
 /**
  * Tests the forum blocks.
  *
  * @group forum
  */
-class ForumBlockTest extends BrowserTestBase {
+class ForumBlockTest extends WebTestBase {
 
   /**
    * Modules to enable.
diff --git a/core/modules/forum/tests/src/Functional/ForumIndexTest.php b/core/modules/forum/src/Tests/ForumIndexTest.php
similarity index 95%
rename from core/modules/forum/tests/src/Functional/ForumIndexTest.php
rename to core/modules/forum/src/Tests/ForumIndexTest.php
index 8bcb482..8ead34f 100644
--- a/core/modules/forum/tests/src/Functional/ForumIndexTest.php
+++ b/core/modules/forum/src/Tests/ForumIndexTest.php
@@ -1,15 +1,15 @@
 <?php
 
-namespace Drupal\Tests\forum\Functional;
+namespace Drupal\forum\Tests;
 
-use Drupal\Tests\BrowserTestBase;
+use Drupal\simpletest\WebTestBase;
 
 /**
  * Tests the forum index listing.
  *
  * @group forum
  */
-class ForumIndexTest extends BrowserTestBase {
+class ForumIndexTest extends WebTestBase {
 
   /**
    * Modules to enable.
diff --git a/core/modules/forum/tests/src/Functional/ForumNodeAccessTest.php b/core/modules/forum/src/Tests/ForumNodeAccessTest.php
similarity index 95%
rename from core/modules/forum/tests/src/Functional/ForumNodeAccessTest.php
rename to core/modules/forum/src/Tests/ForumNodeAccessTest.php
index 38b02da..8eda252 100644
--- a/core/modules/forum/tests/src/Functional/ForumNodeAccessTest.php
+++ b/core/modules/forum/src/Tests/ForumNodeAccessTest.php
@@ -1,16 +1,16 @@
 <?php
 
-namespace Drupal\Tests\forum\Functional;
+namespace Drupal\forum\Tests;
 
+use Drupal\simpletest\WebTestBase;
 use Drupal\node\Entity\NodeType;
-use Drupal\Tests\BrowserTestBase;
 
 /**
  * Tests forum block view for private node access.
  *
  * @group forum
  */
-class ForumNodeAccessTest extends BrowserTestBase {
+class ForumNodeAccessTest extends WebTestBase {
 
   /**
    * Modules to enable.
diff --git a/core/modules/forum/tests/src/Functional/ForumTest.php b/core/modules/forum/src/Tests/ForumTest.php
similarity index 91%
rename from core/modules/forum/tests/src/Functional/ForumTest.php
rename to core/modules/forum/src/Tests/ForumTest.php
index 067e2bc..1327714 100644
--- a/core/modules/forum/tests/src/Functional/ForumTest.php
+++ b/core/modules/forum/src/Tests/ForumTest.php
@@ -1,14 +1,14 @@
 <?php
 
-namespace Drupal\Tests\forum\Functional;
+namespace Drupal\forum\Tests;
 
 use Drupal\Core\Entity\Entity\EntityFormDisplay;
 use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Link;
+use Drupal\simpletest\WebTestBase;
 use Drupal\Core\Url;
 use Drupal\taxonomy\Entity\Vocabulary;
-use Drupal\Tests\BrowserTestBase;
 
 /**
  * Tests for forum.module.
@@ -18,7 +18,7 @@
  *
  * @group forum
  */
-class ForumTest extends BrowserTestBase {
+class ForumTest extends WebTestBase {
 
   /**
    * Modules to enable.
@@ -193,21 +193,21 @@ function testForum() {
     // Topics cell contains number of topics and number of unread topics.
     $xpath = $this->buildXPathQuery('//tr[@id=:forum]//td[@class="forum__topics"]', $forum_arg);
     $topics = $this->xpath($xpath);
-    $topics = trim($topics[0]->getText());
-    // The extracted text contains the number of topics (6) and new posts
-    // (also 6) in this table cell.
-    $this->assertEquals('6 6 new posts in forum ' . $this->forum['name'], $topics, 'Number of topics found.');
+    $topics = trim($topics[0]);
+    $this->assertEqual($topics, '6', 'Number of topics found.');
 
     // Verify the number of unread topics.
-    $elements = $this->xpath('//tr[@id=:forum]//td[@class="forum__topics"]//a', $forum_arg);
-    $this->assertStringStartsWith('6 new posts', $elements[0]->getText(), 'Number of unread topics found.');
+    $unread_topics = $this->container->get('forum_manager')->unreadTopics($this->forum['tid'], $this->editAnyTopicsUser->id());
+    $unread_topics = \Drupal::translation()->formatPlural($unread_topics, '1 new post', '@count new posts');
+    $xpath = $this->buildXPathQuery('//tr[@id=:forum]//td[@class="forum__topics"]//a', $forum_arg);
+    $this->assertFieldByXPath($xpath, $unread_topics, 'Number of unread topics found.');
     // Verify that the forum name is in the unread topics text.
-    $elements = $this->xpath('//tr[@id=:forum]//em[@class="placeholder"]', $forum_arg);
-    $this->assertContains($this->forum['name'], $elements[0]->getText(), 'Forum name found in unread topics text.');
+    $xpath = $this->buildXPathQuery('//tr[@id=:forum]//em[@class="placeholder"]', $forum_arg);
+    $this->assertFieldByXpath($xpath, $this->forum['name'], 'Forum name found in unread topics text.');
 
     // Verify total number of posts in forum.
-    $elements = $this->xpath('//tr[@id=:forum]//td[@class="forum__posts"]', $forum_arg);
-    $this->assertEquals('6', $elements[0]->getText(), 'Number of posts found.');
+    $xpath = $this->buildXPathQuery('//tr[@id=:forum]//td[@class="forum__posts"]', $forum_arg);
+    $this->assertFieldByXPath($xpath, '6', 'Number of posts found.');
 
     // Test loading multiple forum nodes on the front page.
     $this->drupalLogin($this->drupalCreateUser(array('administer content types', 'create forum content', 'post comments')));
@@ -322,8 +322,8 @@ private function doAdminTests($user) {
 
     // Test vocabulary form alterations.
     $this->drupalGet('admin/structure/taxonomy/manage/forums');
-    $this->assertSession()->buttonExists('Save');
-    $this->assertSession()->buttonNotExists('Delete');
+    $this->assertFieldByName('op', t('Save'), 'Save button found.');
+    $this->assertNoFieldByName('op', t('Delete'), 'Delete button not found.');
 
     // Test term edit form alterations.
     $this->drupalGet('taxonomy/term/' . $this->forumContainer['tid'] . '/edit');
@@ -343,7 +343,7 @@ private function doAdminTests($user) {
     $vocabulary->save();
     // Test tags vocabulary form is not affected.
     $this->drupalGet('admin/structure/taxonomy/manage/tags');
-    $this->assertSession()->buttonExists('Save');
+    $this->assertFieldByName('op', t('Save'), 'Save button found.');
     $this->assertLink(t('Delete'));
     // Test tags vocabulary term form is not affected.
     $this->drupalGet('admin/structure/taxonomy/manage/tags/add');
@@ -415,18 +415,14 @@ function createForum($type, $parent = 0) {
     $this->drupalPostForm('admin/structure/forum/add/' . $type, $edit, t('Save'));
     $this->assertResponse(200);
     $type = ($type == 'container') ? 'forum container' : 'forum';
-    $this->assertText(
+    $this->assertRaw(
       t(
-        'Created new @type @term.',
-        array('@term' => $name, '@type' => t($type))
+        'Created new @type %term.',
+        array('%term' => $name, '@type' => t($type))
       ),
       format_string('@type was created', array('@type' => ucfirst($type)))
     );
 
-    // Verify that the creation message contains a link to a term.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'term/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a term');
-
     // Verify forum.
     $term = db_query("SELECT * FROM {taxonomy_term_field_data} t WHERE t.vid = :vid AND t.name = :name AND t.description__value = :desc AND t.default_langcode = 1", array(':vid' => $this->config('forum.settings')->get('vocabulary'), ':name' => $name, ':desc' => $description))->fetchAssoc();
     $this->assertTrue(!empty($term), 'The ' . $type . ' exists in the database');
@@ -544,17 +540,13 @@ function createForumTopic($forum, $container = FALSE) {
 
     $type = t('Forum topic');
     if ($container) {
-      $this->assertNoText(t('@type @title has been created.', array('@type' => $type, '@title' => $title)), 'Forum topic was not created');
+      $this->assertNoRaw(t('@type %title has been created.', array('@type' => $type, '%title' => $title)), 'Forum topic was not created');
       $this->assertRaw(t('The item %title is a forum container, not a forum.', array('%title' => $forum['name'])), 'Error message was shown');
       return;
     }
     else {
-      $this->assertText(t('@type @title has been created.', array('@type' => $type, '@title' => $title)), 'Forum topic was created');
+      $this->assertRaw(t('@type %title has been created.', array('@type' => $type, '%title' => $title)), 'Forum topic was created');
       $this->assertNoRaw(t('The item %title is a forum container, not a forum.', array('%title' => $forum['name'])), 'No error message was shown');
-
-      // Verify that the creation message contains a link to a term.
-      $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'term/'));
-      $this->assert(isset($view_link), 'The message area contains a link to a term');
     }
 
     // Retrieve node object, ensure that the topic was created and in the proper forum.
@@ -630,7 +622,7 @@ private function verifyForums(EntityInterface $node, $admin, $response = 200) {
       $edit['taxonomy_forums'] = $this->rootForum['tid'];
       $edit['shadow'] = TRUE;
       $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save'));
-      $this->assertText(t('Forum topic @title has been updated.', array('@title' => $edit['title[0][value]'])), 'Forum node was edited');
+      $this->assertRaw(t('Forum topic %title has been updated.', array('%title' => $edit['title[0][value]'])), 'Forum node was edited');
 
       // Verify topic was moved to a different forum.
       $forum_tid = db_query("SELECT tid FROM {forum} WHERE nid = :nid AND vid = :vid", array(
diff --git a/core/modules/forum/tests/src/Functional/ForumUninstallTest.php b/core/modules/forum/src/Tests/ForumUninstallTest.php
similarity index 96%
rename from core/modules/forum/tests/src/Functional/ForumUninstallTest.php
rename to core/modules/forum/src/Tests/ForumUninstallTest.php
index b514970..1978e6b 100644
--- a/core/modules/forum/tests/src/Functional/ForumUninstallTest.php
+++ b/core/modules/forum/src/Tests/ForumUninstallTest.php
@@ -1,20 +1,20 @@
 <?php
 
-namespace Drupal\Tests\forum\Functional;
+namespace Drupal\forum\Tests;
 
 use Drupal\comment\CommentInterface;
 use Drupal\field\Entity\FieldStorageConfig;
 use Drupal\node\Entity\NodeType;
+use Drupal\simpletest\WebTestBase;
 use Drupal\comment\Entity\Comment;
 use Drupal\taxonomy\Entity\Term;
-use Drupal\Tests\BrowserTestBase;
 
 /**
  * Tests forum module uninstallation.
  *
  * @group forum
  */
-class ForumUninstallTest extends BrowserTestBase {
+class ForumUninstallTest extends WebTestBase {
 
   /**
    * Modules to enable.
@@ -66,7 +66,7 @@ public function testForumUninstallWithField() {
     // Attempt to uninstall forum.
     $this->drupalGet('admin/modules/uninstall');
     // Assert forum is required.
-    $this->assertSession()->fieldDisabled('uninstall[forum]');
+    $this->assertNoFieldByName('uninstall[forum]');
     $this->assertText('To uninstall Forum, first delete all Forum content');
 
     // Delete the node.
@@ -75,7 +75,7 @@ public function testForumUninstallWithField() {
     // Attempt to uninstall forum.
     $this->drupalGet('admin/modules/uninstall');
     // Assert forum is still required.
-    $this->assertSession()->fieldDisabled('uninstall[forum]');
+    $this->assertNoFieldByName('uninstall[forum]');
     $this->assertText('To uninstall Forum, first delete all Forums terms');
 
     // Delete any forum terms.
diff --git a/core/modules/forum/tests/src/Unit/Breadcrumb/ForumBreadcrumbBuilderBaseTest.php b/core/modules/forum/tests/src/Unit/Breadcrumb/ForumBreadcrumbBuilderBaseTest.php
index 8001e57..da897ad 100644
--- a/core/modules/forum/tests/src/Unit/Breadcrumb/ForumBreadcrumbBuilderBaseTest.php
+++ b/core/modules/forum/tests/src/Unit/Breadcrumb/ForumBreadcrumbBuilderBaseTest.php
@@ -42,7 +42,6 @@ public function testConstructor() {
       )
     );
     $forum_manager = $this->getMock('Drupal\forum\ForumManagerInterface');
-    $translation_manager = $this->getMock('Drupal\Core\StringTranslation\TranslationInterface');
 
     // Make an object to test.
     $builder = $this->getMockForAbstractClass(
@@ -52,7 +51,6 @@ public function testConstructor() {
         $entity_manager,
         $config_factory,
         $forum_manager,
-        $translation_manager,
       )
     );
 
@@ -60,7 +58,6 @@ public function testConstructor() {
     $property_names = array(
       'entityManager' => $entity_manager,
       'forumManager' => $forum_manager,
-      'stringTranslation' => $translation_manager,
     );
     foreach ($property_names as $property_name => $property_value) {
       $this->assertAttributeEquals(
@@ -85,10 +82,6 @@ public function testConstructor() {
    */
   public function testBuild() {
     // Build all our dependencies, backwards.
-    $translation_manager = $this->getMockBuilder('Drupal\Core\StringTranslation\TranslationInterface')
-      ->disableOriginalConstructor()
-      ->getMock();
-
     $forum_manager = $this->getMockBuilder('Drupal\forum\ForumManagerInterface')
       ->disableOriginalConstructor()
       ->getMock();
@@ -132,7 +125,6 @@ public function testBuild() {
         $entity_manager,
         $config_factory,
         $forum_manager,
-        $translation_manager,
       )
     );
 
diff --git a/core/modules/forum/tests/src/Unit/Breadcrumb/ForumListingBreadcrumbBuilderTest.php b/core/modules/forum/tests/src/Unit/Breadcrumb/ForumListingBreadcrumbBuilderTest.php
index 4e5a6c4..c7e949d 100644
--- a/core/modules/forum/tests/src/Unit/Breadcrumb/ForumListingBreadcrumbBuilderTest.php
+++ b/core/modules/forum/tests/src/Unit/Breadcrumb/ForumListingBreadcrumbBuilderTest.php
@@ -46,7 +46,6 @@ public function testApplies($expected, $route_name = NULL, $parameter_map = arra
     $entity_manager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
     $config_factory = $this->getConfigFactoryStub(array());
     $forum_manager = $this->getMock('Drupal\forum\ForumManagerInterface');
-    $translation_manager = $this->getMock('Drupal\Core\StringTranslation\TranslationInterface');
 
     // Make an object to test.
     $builder = $this->getMockBuilder('Drupal\forum\Breadcrumb\ForumListingBreadcrumbBuilder')
@@ -54,7 +53,6 @@ public function testApplies($expected, $route_name = NULL, $parameter_map = arra
         $entity_manager,
         $config_factory,
         $forum_manager,
-        $translation_manager,
       ))
       ->setMethods(NULL)
       ->getMock();
@@ -118,10 +116,6 @@ public function providerTestApplies() {
    */
   public function testBuild() {
     // Build all our dependencies, backwards.
-    $translation_manager = $this->getMockBuilder('Drupal\Core\StringTranslation\TranslationInterface')
-      ->disableOriginalConstructor()
-      ->getMock();
-
     $prophecy = $this->prophesize('Drupal\taxonomy\Entity\Term');
     $prophecy->label()->willReturn('Something');
     $prophecy->id()->willReturn(1);
@@ -183,7 +177,6 @@ public function testBuild() {
         $entity_manager,
         $config_factory,
         $forum_manager,
-        $translation_manager,
       )
     );
 
diff --git a/core/modules/forum/tests/src/Unit/Breadcrumb/ForumNodeBreadcrumbBuilderTest.php b/core/modules/forum/tests/src/Unit/Breadcrumb/ForumNodeBreadcrumbBuilderTest.php
index 1998ffa..3421a7d 100644
--- a/core/modules/forum/tests/src/Unit/Breadcrumb/ForumNodeBreadcrumbBuilderTest.php
+++ b/core/modules/forum/tests/src/Unit/Breadcrumb/ForumNodeBreadcrumbBuilderTest.php
@@ -51,8 +51,6 @@ public function testApplies($expected, $route_name = NULL, $parameter_map = arra
       ->method('checkNodeType')
       ->will($this->returnValue(TRUE));
 
-    $translation_manager = $this->getMock('Drupal\Core\StringTranslation\TranslationInterface');
-
     // Make an object to test.
     $builder = $this->getMockBuilder('Drupal\forum\Breadcrumb\ForumNodeBreadcrumbBuilder')
       ->setConstructorArgs(
@@ -60,7 +58,6 @@ public function testApplies($expected, $route_name = NULL, $parameter_map = arra
           $entity_manager,
           $config_factory,
           $forum_manager,
-          $translation_manager,
         )
       )
       ->setMethods(NULL)
@@ -126,10 +123,6 @@ public function providerTestApplies() {
    */
   public function testBuild() {
     // Build all our dependencies, backwards.
-    $translation_manager = $this->getMockBuilder('Drupal\Core\StringTranslation\TranslationInterface')
-      ->disableOriginalConstructor()
-      ->getMock();
-
     $prophecy = $this->prophesize('Drupal\taxonomy\Entity\Term');
     $prophecy->label()->willReturn('Something');
     $prophecy->id()->willReturn(1);
@@ -192,7 +185,6 @@ public function testBuild() {
         $entity_manager,
         $config_factory,
         $forum_manager,
-        $translation_manager,
       )
     );
 
diff --git a/core/modules/help/tests/src/Functional/ExperimentalHelpTest.php b/core/modules/help/src/Tests/ExperimentalHelpTest.php
similarity index 90%
rename from core/modules/help/tests/src/Functional/ExperimentalHelpTest.php
rename to core/modules/help/src/Tests/ExperimentalHelpTest.php
index 9d1a74e..416b69f 100644
--- a/core/modules/help/tests/src/Functional/ExperimentalHelpTest.php
+++ b/core/modules/help/src/Tests/ExperimentalHelpTest.php
@@ -1,15 +1,15 @@
 <?php
 
-namespace Drupal\Tests\help\Functional;
+namespace Drupal\help\Tests;
 
-use Drupal\Tests\BrowserTestBase;
+use Drupal\simpletest\WebTestBase;
 
 /**
  * Verifies help for experimental modules.
  *
  * @group help
  */
-class ExperimentalHelpTest extends BrowserTestBase {
+class ExperimentalHelpTest extends WebTestBase {
 
   /**
    * Modules to enable.
diff --git a/core/modules/help/tests/src/Functional/HelpBlockTest.php b/core/modules/help/src/Tests/HelpBlockTest.php
similarity index 90%
rename from core/modules/help/tests/src/Functional/HelpBlockTest.php
rename to core/modules/help/src/Tests/HelpBlockTest.php
index 81c4fc1..f1ba622 100644
--- a/core/modules/help/tests/src/Functional/HelpBlockTest.php
+++ b/core/modules/help/src/Tests/HelpBlockTest.php
@@ -1,15 +1,15 @@
 <?php
 
-namespace Drupal\Tests\help\Functional;
+namespace Drupal\help\Tests;
 
-use Drupal\Tests\BrowserTestBase;
+use Drupal\simpletest\WebTestBase;
 
 /**
  * Tests display of help block.
  *
  * @group help
  */
-class HelpBlockTest extends BrowserTestBase {
+class HelpBlockTest extends WebTestBase {
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/help/tests/src/Functional/HelpTest.php b/core/modules/help/src/Tests/HelpTest.php
similarity index 95%
rename from core/modules/help/tests/src/Functional/HelpTest.php
rename to core/modules/help/src/Tests/HelpTest.php
index 2e82499..76e2ee3 100644
--- a/core/modules/help/tests/src/Functional/HelpTest.php
+++ b/core/modules/help/src/Tests/HelpTest.php
@@ -1,15 +1,15 @@
 <?php
 
-namespace Drupal\Tests\help\Functional;
+namespace Drupal\help\Tests;
 
-use Drupal\Tests\BrowserTestBase;
+use Drupal\simpletest\WebTestBase;
 
 /**
  * Verify help display and user access to help based on permissions.
  *
  * @group help
  */
-class HelpTest extends BrowserTestBase {
+class HelpTest extends WebTestBase {
 
   /**
    * Modules to enable.
@@ -40,6 +40,8 @@ class HelpTest extends BrowserTestBase {
   protected function setUp() {
     parent::setUp();
 
+    $this->getModuleList();
+
     // Create users.
     $this->adminUser = $this->drupalCreateUser(array('access administration pages', 'view the administration theme', 'administer permissions'));
     $this->anyUser = $this->drupalCreateUser(array());
@@ -120,7 +122,7 @@ protected function verifyHelp($response = 200) {
       $this->assertResponse($response);
       if ($response == 200) {
         $this->assertTitle($name . ' | Drupal', format_string('%module title was displayed', array('%module' => $module)));
-        $this->assertEquals($name, $this->cssSelect('h1.page-title')[0]->getText(), "$module heading was displayed");
+        $this->assertEqual($this->cssSelect('h1.page-title')[0], t($name), format_string('%module heading was displayed', array('%module' => $module)));
         $admin_tasks = system_get_module_admin_tasks($module, system_get_info('module', $module));
         if (!empty($admin_tasks)) {
           $this->assertText(t('@module administration pages', array('@module' => $name)));
diff --git a/core/modules/help/tests/src/Functional/NoHelpTest.php b/core/modules/help/src/Tests/NoHelpTest.php
similarity index 91%
rename from core/modules/help/tests/src/Functional/NoHelpTest.php
rename to core/modules/help/src/Tests/NoHelpTest.php
index 49c768d..7a6fb7a 100644
--- a/core/modules/help/tests/src/Functional/NoHelpTest.php
+++ b/core/modules/help/src/Tests/NoHelpTest.php
@@ -1,15 +1,15 @@
 <?php
 
-namespace Drupal\Tests\help\Functional;
+namespace Drupal\help\Tests;
 
-use Drupal\Tests\BrowserTestBase;
+use Drupal\simpletest\WebTestBase;
 
 /**
  * Verify no help is displayed for modules not providing any help.
  *
  * @group help
  */
-class NoHelpTest extends BrowserTestBase {
+class NoHelpTest extends WebTestBase {
 
   /**
    * Modules to enable.
diff --git a/core/modules/image/image.permissions.yml b/core/modules/image/image.permissions.yml
index 3044584..bc07792 100644
--- a/core/modules/image/image.permissions.yml
+++ b/core/modules/image/image.permissions.yml
@@ -1,2 +1,3 @@
 administer image styles:
   title: 'Administer image styles'
+  description: 'Create and modify styles for generating image modifications such as thumbnails.'
diff --git a/core/modules/image/src/Entity/ImageStyle.php b/core/modules/image/src/Entity/ImageStyle.php
index e5460ee..7314435 100644
--- a/core/modules/image/src/Entity/ImageStyle.php
+++ b/core/modules/image/src/Entity/ImageStyle.php
@@ -16,7 +16,7 @@
 use Drupal\Component\Utility\UrlHelper;
 use Drupal\Core\StreamWrapper\StreamWrapperInterface;
 use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
-use Drupal\Core\Entity\Entity\EntityViewDisplay;
+
 /**
  * Defines an image style configuration entity.
  *
@@ -137,7 +137,7 @@ protected static function replaceImageStyle(ImageStyleInterface $style) {
     if ($style->id() != $style->getOriginalId()) {
       // Loop through all entity displays looking for formatters / widgets using
       // the image style.
-      foreach (EntityViewDisplay::loadMultiple() as $display) {
+      foreach (entity_load_multiple('entity_view_display') as $display) {
         foreach ($display->getComponents() as $name => $options) {
           if (isset($options['type']) && $options['type'] == 'image' && $options['settings']['image_style'] == $style->getOriginalId()) {
             $options['settings']['image_style'] = $style->id();
@@ -146,7 +146,7 @@ protected static function replaceImageStyle(ImageStyleInterface $style) {
           }
         }
       }
-      foreach (EntityViewDisplay::loadMultiple() as $display) {
+      foreach (entity_load_multiple('entity_form_display') as $display) {
         foreach ($display->getComponents() as $name => $options) {
           if (isset($options['type']) && $options['type'] == 'image_image' && $options['settings']['preview_image_style'] == $style->getOriginalId()) {
             $options['settings']['preview_image_style'] = $style->id();
diff --git a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php
index 4c3a27d..232f1a8 100644
--- a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php
+++ b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php
@@ -188,14 +188,14 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
     $image_style_setting = $this->getSetting('image_style');
 
     // Collect cache tags to be added for each item in the field.
-    $base_cache_tags = [];
+    $cache_tags = array();
     if (!empty($image_style_setting)) {
       $image_style = $this->imageStyleStorage->load($image_style_setting);
-      $base_cache_tags = $image_style->getCacheTags();
+      $cache_tags = $image_style->getCacheTags();
     }
 
     foreach ($files as $delta => $file) {
-      $cache_contexts = [];
+      $cache_contexts = array();
       if (isset($link_file)) {
         $image_uri = $file->getFileUri();
         // @todo Wrap in file_url_transform_relative(). This is currently
@@ -206,7 +206,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
         $url = Url::fromUri(file_create_url($image_uri));
         $cache_contexts[] = 'url.site';
       }
-      $cache_tags = Cache::mergeTags($base_cache_tags, $file->getCacheTags());
+      $cache_tags = Cache::mergeTags($cache_tags, $file->getCacheTags());
 
       // Extract field item attributes for the theme function, and unset them
       // from the $item so that the field template does not re-render them.
diff --git a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
index c83e143..fb65593 100644
--- a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
+++ b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
@@ -343,7 +343,7 @@ public static function generateSampleValue(FieldDefinitionInterface $field_defin
         $image = File::create();
         $image->setFileUri($path);
         $image->setOwnerId(\Drupal::currentUser()->id());
-        $image->setMimeType(\Drupal::service('file.mime_type.guesser')->guess($path));
+        $image->setMimeType('image/' . pathinfo($path, PATHINFO_EXTENSION));
         $image->setFileName(drupal_basename($path));
         $destination_dir = static::doGetUploadLocation($settings);
         file_prepare_directory($destination_dir, FILE_CREATE_DIRECTORY);
diff --git a/core/modules/image/src/Tests/ImageFieldValidateTest.php b/core/modules/image/src/Tests/ImageFieldValidateTest.php
index 5f0bf21..2532524 100644
--- a/core/modules/image/src/Tests/ImageFieldValidateTest.php
+++ b/core/modules/image/src/Tests/ImageFieldValidateTest.php
@@ -12,43 +12,15 @@ class ImageFieldValidateTest extends ImageFieldTestBase {
    * Test min/max resolution settings.
    */
   function testResolution() {
-    $field_names = [
-      0 => strtolower($this->randomMachineName()),
-      1 => strtolower($this->randomMachineName()),
-      2 => strtolower($this->randomMachineName()),
-    ];
-    $min_resolution = [
-      'width' => 50,
-      'height' => 50
-    ];
-    $max_resolution = [
-      'width' => 100,
-      'height' => 100
-    ];
-    $no_height_min_resolution = [
-      'width' => 50,
-      'height' => NULL
-    ];
-    $no_height_max_resolution = [
-      'width' => 100,
-      'height' => NULL
-    ];
-    $no_width_min_resolution = [
-      'width' => NULL,
-      'height' => 50
-    ];
-    $no_width_max_resolution = [
-      'width' => NULL,
-      'height' => 100
-    ];
-    $field_settings = [
-      0 => $this->getFieldSettings($min_resolution, $max_resolution),
-      1 => $this->getFieldSettings($no_height_min_resolution, $no_height_max_resolution),
-      2 => $this->getFieldSettings($no_width_min_resolution, $no_width_max_resolution),
-    ];
-    $this->createImageField($field_names[0], 'article', [], $field_settings[0]);
-    $this->createImageField($field_names[1], 'article', [], $field_settings[1]);
-    $this->createImageField($field_names[2], 'article', [], $field_settings[2]);
+    $field_name = strtolower($this->randomMachineName());
+    $min_resolution = 50;
+    $max_resolution = 100;
+    $field_settings = array(
+      'max_resolution' => $max_resolution . 'x' . $max_resolution,
+      'min_resolution' => $min_resolution . 'x' . $min_resolution,
+      'alt_field' => 0,
+    );
+    $this->createImageField($field_name, 'article', array(), $field_settings);
 
     // We want a test image that is too small, and a test image that is too
     // big, so cycle through test image files until we have what we need.
@@ -57,29 +29,21 @@ function testResolution() {
     $image_factory = $this->container->get('image.factory');
     foreach ($this->drupalGetTestFiles('image') as $image) {
       $image_file = $image_factory->get($image->uri);
-      if ($image_file->getWidth() > $max_resolution['width']) {
+      if ($image_file->getWidth() > $max_resolution) {
         $image_that_is_too_big = $image;
       }
-      if ($image_file->getWidth() < $min_resolution['width']) {
+      if ($image_file->getWidth() < $min_resolution) {
         $image_that_is_too_small = $image;
       }
       if ($image_that_is_too_small && $image_that_is_too_big) {
         break;
       }
     }
-    $this->uploadNodeImage($image_that_is_too_small, $field_names[0], 'article');
-    $this->assertRaw(t('The specified file %name could not be uploaded.', ['%name' => $image_that_is_too_small->filename]));
-    $this->assertRaw(t('The image is too small; the minimum dimensions are %dimensions pixels.', ['%dimensions' => '50x50']));
-    $this->uploadNodeImage($image_that_is_too_big, $field_names[0], 'article');
+    $this->uploadNodeImage($image_that_is_too_small, $field_name, 'article');
+    $this->assertRaw(t('The specified file %name could not be uploaded.', array('%name' => $image_that_is_too_small->filename)));
+    $this->assertRaw(t('The image is too small; the minimum dimensions are %dimensions pixels.', array('%dimensions' => '50x50')));
+    $this->uploadNodeImage($image_that_is_too_big, $field_name, 'article');
     $this->assertText(t('The image was resized to fit within the maximum allowed dimensions of 100x100 pixels.'));
-    $this->uploadNodeImage($image_that_is_too_small, $field_names[1], 'article');
-    $this->assertRaw(t('The specified file %name could not be uploaded.', ['%name' => $image_that_is_too_small->filename]));
-    $this->uploadNodeImage($image_that_is_too_big, $field_names[1], 'article');
-    $this->assertText(t('The image was resized to fit within the maximum allowed width of 100 pixels.'));
-    $this->uploadNodeImage($image_that_is_too_small, $field_names[2], 'article');
-    $this->assertRaw(t('The specified file %name could not be uploaded.', ['%name' => $image_that_is_too_small->filename]));
-    $this->uploadNodeImage($image_that_is_too_big, $field_names[2], 'article');
-    $this->assertText(t('The image was resized to fit within the maximum allowed height of 100 pixels.'));
   }
 
   /**
@@ -138,22 +102,4 @@ function testRequiredAttributes() {
     $this->assertNoText(t('Title field is required.'));
   }
 
-  /**
-   * Returns field settings.
-   *
-   * @param int[] $min_resolution
-   *   The minimum width and height resolution setting.
-   * @param int[] $max_resolution
-   *   The maximum width and height resolution setting.
-   *
-   * @return array
-   */
-  protected function getFieldSettings($min_resolution, $max_resolution) {
-    return [
-      'max_resolution' => $max_resolution['width'] . 'x' . $max_resolution['height'],
-      'min_resolution' => $min_resolution['width'] . 'x' . $min_resolution['height'],
-      'alt_field' => 0,
-    ];
-  }
-
 }
diff --git a/core/modules/image/src/Tests/ImageOnTranslatedEntityTest.php b/core/modules/image/src/Tests/ImageOnTranslatedEntityTest.php
index e716d28..436139e 100644
--- a/core/modules/image/src/Tests/ImageOnTranslatedEntityTest.php
+++ b/core/modules/image/src/Tests/ImageOnTranslatedEntityTest.php
@@ -191,6 +191,10 @@ public function testSyncedImages() {
     $file = File::load($replaced_second_fid);
     $this->assertTrue($file->isPermanent());
 
+    // Ensure the file status of the old second file is now temporary.
+    $file = File::load($second_fid);
+    $this->assertTrue($file->isTemporary());
+
     // Delete the third translation.
     $this->drupalPostForm('nl/node/' . $default_language_node->id() . '/delete', array(), t('Delete Dutch translation'));
 
diff --git a/core/modules/image/tests/src/Kernel/ImageFormatterTest.php b/core/modules/image/tests/src/Kernel/ImageFormatterTest.php
deleted file mode 100644
index d1b132e..0000000
--- a/core/modules/image/tests/src/Kernel/ImageFormatterTest.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-namespace Drupal\Tests\image\Kernel;
-
-use Drupal\Component\Utility\Unicode;
-use Drupal\Core\Field\FieldStorageDefinitionInterface;
-use Drupal\entity_test\Entity\EntityTest;
-use Drupal\field\Entity\FieldConfig;
-use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\Tests\field\Kernel\FieldKernelTestBase;
-
-/**
- * Tests the image field rendering using entity fields of the image field type.
- *
- * @group image
- */
-class ImageFormatterTest extends FieldKernelTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('file', 'image');
-
-  /**
-   * @var string
-   */
-  protected $entityType;
-
-  /**
-   * @var string
-   */
-  protected $bundle;
-
-  /**
-   * @var string
-   */
-  protected $fieldName;
-
-  /**
-   * @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface
-   */
-  protected $display;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $this->installConfig(['field']);
-    $this->installEntitySchema('entity_test');
-    $this->installEntitySchema('file');
-    $this->installSchema('file', array('file_usage'));
-
-    $this->entityType = 'entity_test';
-    $this->bundle = $this->entityType;
-    $this->fieldName = Unicode::strtolower($this->randomMachineName());
-
-    FieldStorageConfig::create(array(
-      'entity_type' => $this->entityType,
-      'field_name' => $this->fieldName,
-      'type' => 'image',
-      'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
-    ))->save();
-    FieldConfig::create([
-      'entity_type' => $this->entityType,
-      'field_name' => $this->fieldName,
-      'bundle' => $this->bundle,
-      'settings' => [
-        'file_extensions' => 'jpg',
-      ],
-    ])->save();
-
-    $this->display = entity_get_display($this->entityType, $this->bundle, 'default')
-      ->setComponent($this->fieldName, [
-        'type' => 'image',
-        'label' => 'hidden',
-      ]);
-    $this->display->save();
-  }
-
-  /**
-   * Tests the cache tags from image formatters.
-   */
-  function testImageFormatterCacheTags() {
-    // Create a test entity with the image field set.
-    $entity = EntityTest::create([
-      'name' => $this->randomMachineName(),
-    ]);
-    $entity->{$this->fieldName}->generateSampleItems(2);
-    $entity->save();
-
-    // Generate the render array to verify if the cache tags are as expected.
-    $build = $this->display->build($entity);
-
-    $this->assertEquals($entity->{$this->fieldName}[0]->entity->getCacheTags(), $build[$this->fieldName][0]['#cache']['tags'], 'First image cache tags is as expected');
-    $this->assertEquals($entity->{$this->fieldName}[1]->entity->getCacheTags(), $build[$this->fieldName][1]['#cache']['tags'], 'Second image cache tags is as expected');
-  }
-
-}
diff --git a/core/modules/image/tests/src/Kernel/ImageItemTest.php b/core/modules/image/tests/src/Kernel/ImageItemTest.php
index dea4534..3321b20 100644
--- a/core/modules/image/tests/src/Kernel/ImageItemTest.php
+++ b/core/modules/image/tests/src/Kernel/ImageItemTest.php
@@ -53,9 +53,6 @@ protected function setUp() {
       'entity_type' => 'entity_test',
       'field_name' => 'image_test',
       'bundle' => 'entity_test',
-      'settings' => [
-        'file_extensions' => 'jpg',
-      ],
     ])->save();
     file_unmanaged_copy(\Drupal::root() . '/core/misc/druplicon.png', 'public://example.jpg');
     $this->image = File::create([
@@ -77,7 +74,7 @@ public function testImageItem() {
     $entity->name->value = $this->randomMachineName();
     $entity->save();
 
-    $entity = EntityTest::load($entity->id());
+    $entity = entity_load('entity_test', $entity->id());
     $this->assertTrue($entity->image_test instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->image_test[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->image_test->target_id, $this->image->id());
@@ -126,7 +123,6 @@ public function testImageItem() {
     $entity = EntityTest::create();
     $entity->image_test->generateSampleItems();
     $this->entityValidateAndSave($entity);
-    $this->assertEqual($entity->image_test->entity->get('filemime')->value, 'image/jpeg');
   }
 
 }
diff --git a/core/modules/image/tests/src/Unit/ImageStyleTest.php b/core/modules/image/tests/src/Unit/ImageStyleTest.php
index 96c50c4..652c149 100644
--- a/core/modules/image/tests/src/Unit/ImageStyleTest.php
+++ b/core/modules/image/tests/src/Unit/ImageStyleTest.php
@@ -41,7 +41,7 @@ class ImageStyleTest extends UnitTestCase {
    * @param \Drupal\image\ImageEffectInterface|\PHPUnit_Framework_MockObject_MockObject $image_effect
    *   The image effect used for testing.
    *
-   * @return \Drupal\image\ImageStyleInterface
+   * @return \Drupal\image\ImageStyleInterface|\Drupal\image\ImageStyleInterface
    *   The mocked image style.
    */
   protected function getImageStyleMock($image_effect_id, $image_effect, $stubs = array()) {
diff --git a/core/modules/inline_form_errors/inline_form_errors.info.yml b/core/modules/inline_form_errors/inline_form_errors.info.yml
index 2ee74f1..04c05b9 100644
--- a/core/modules/inline_form_errors/inline_form_errors.info.yml
+++ b/core/modules/inline_form_errors/inline_form_errors.info.yml
@@ -1,6 +1,6 @@
 type: module
 name: Inline Form Errors
-description: 'Adds WCAG 2.0 accessibility compliance for web form errors, but some functionality might not work.'
+description: 'Adds WCAG 2.0 accessibility compliance for web form errors. Some form functionality may not work with this experimental module.'
 version: VERSION
 core: 8.x
 package: Core (Experimental)
diff --git a/core/modules/language/migration_templates/d6_language_content_settings.yml b/core/modules/language/migration_templates/d6_language_content_settings.yml
deleted file mode 100644
index 3bf9078..0000000
--- a/core/modules/language/migration_templates/d6_language_content_settings.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-id: d6_language_content_settings
-label: Drupal 6 language content settings
-
-migration_tags:
-  - Drupal 6
-source:
-  plugin: d6_language_content_settings
-  constants:
-    target_type: 'node'
-process:
-# Ignore i18n_node_options_[node_type] options not available in Drupal 8,
-# i18n_required_node and i18n_newnode_current
-  target_bundle: type
-  target_entity_type_id: 'constants/target_type'
-  default_langcode:
-    -
-      plugin: static_map
-      source: language_content_type
-      map:
-        0: NULL
-        1: 'current_interface'
-        2: 'current_interface'
-    -
-      plugin: skip_on_empty
-      method: row
-  language_alterable:
-    plugin: static_map
-    source: i18n_lock_node
-    map:
-      0: true
-      1: false
-  'third_party_settings/content_translation/enabled':
-    plugin: static_map
-    source: language_content_type
-    map:
-      # In the case of being 0, it will be skipped. We are not actually setting
-      # a null value.
-      0: NULL
-      1: false
-      2: true
-destination:
-  plugin: entity:language_content_settings
-  content_translation_update_definitions:
-    - node
-migration_dependencies:
-  required:
-    - d6_node_type
diff --git a/core/modules/language/migration_templates/d7_language_content_settings.yml b/core/modules/language/migration_templates/d7_language_content_settings.yml
deleted file mode 100644
index 09437fa..0000000
--- a/core/modules/language/migration_templates/d7_language_content_settings.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-id: d7_language_content_settings
-label: Drupal 7 language content settings
-migration_tags:
-  - Drupal 7
-source:
-  plugin: d7_language_content_settings
-  constants:
-    target_type: 'node'
-process:
-# Ignore i18n_node_options_[node_type] options not available in Drupal 8,
-# i18n_required_node and i18n_newnode_current
-  target_bundle: type
-  target_entity_type_id: 'constants/target_type'
-  default_langcode:
-    -
-      plugin: static_map
-      source: language_content_type
-      map:
-        0: NULL
-        1: 'current_interface'
-        2: 'current_interface'
-    -
-      plugin: skip_on_empty
-      method: row
-  language_alterable:
-    plugin: static_map
-    source: i18n_lock_node
-    map:
-      0: true
-      1: false
-  'third_party_settings/content_translation/enabled':
-    plugin: static_map
-    source: language_content_type
-    map:
-      # In the case of being 0, it will be skipped. We are not actually setting
-      # a null value.
-      0: NULL
-      1: false
-      2: true
-destination:
-  plugin: entity:language_content_settings
-  content_translation_update_definitions:
-    - node
-migration_dependencies:
-  required:
-    - d7_node_type
diff --git a/core/modules/language/src/DefaultLanguageItem.php b/core/modules/language/src/DefaultLanguageItem.php
index 0e38890..3710afd 100644
--- a/core/modules/language/src/DefaultLanguageItem.php
+++ b/core/modules/language/src/DefaultLanguageItem.php
@@ -40,7 +40,7 @@ public function applyDefaultValue($notify = TRUE) {
    *   The entity whose language code to be loaded.
    *
    * @return string
-   *   A string language code.
+   *  A string language code.
    */
   public function getDefaultLangcode(EntityInterface $entity) {
     return language_get_default_langcode($entity->getEntityTypeId(), $entity->bundle());
diff --git a/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationContentEntity.php b/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationContentEntity.php
index 78edb89..53d80c8 100644
--- a/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationContentEntity.php
+++ b/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationContentEntity.php
@@ -91,7 +91,7 @@ public static function create(ContainerInterface $container, array $configuratio
    * {@inheritdoc}
    */
   public function getLangcode(Request $request = NULL) {
-    $langcode = $request->query->get(static::QUERY_PARAMETER);
+    $langcode = $request->get(static::QUERY_PARAMETER);
 
     $language_enabled = array_key_exists($langcode, $this->languageManager->getLanguages());
     return $language_enabled ? $langcode : NULL;
diff --git a/core/modules/language/src/Plugin/migrate/source/d6/LanguageContentSettings.php b/core/modules/language/src/Plugin/migrate/source/d6/LanguageContentSettings.php
deleted file mode 100644
index c41b635..0000000
--- a/core/modules/language/src/Plugin/migrate/source/d6/LanguageContentSettings.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-namespace Drupal\language\Plugin\migrate\source\d6;
-
-use Drupal\migrate\Row;
-use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
-
-/**
- * Drupal multilingual node settings from database.
- *
- * @MigrateSource(
- *   id = "d6_language_content_settings",
- * )
- */
-class LanguageContentSettings extends DrupalSqlBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function query() {
-    return $this->select('node_type', 't')
-      ->fields('t', array(
-        'type',
-      ));
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function fields() {
-    $fields = array(
-      'type' => $this->t('Type'),
-      'language_content_type' => $this->t('Multilingual support.'),
-      'i18n_lock_node' => $this->t('Lock language.'),
-    );
-    return $fields;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function prepareRow(Row $row) {
-    $type = $row->getSourceProperty('type');
-    $row->setSourceProperty('language_content_type', $this->variableGet('language_content_type_' . $type, NULL));
-    $row->setSourceProperty('i18n_lock_node', $this->variableGet('i18n_lock_node_' . $type, 0));
-    return parent::prepareRow($row);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getIds() {
-    $ids['type']['type'] = 'string';
-    return $ids;
-  }
-
-}
diff --git a/core/modules/language/src/Plugin/migrate/source/d7/LanguageContentSettings.php b/core/modules/language/src/Plugin/migrate/source/d7/LanguageContentSettings.php
deleted file mode 100644
index 91ed020..0000000
--- a/core/modules/language/src/Plugin/migrate/source/d7/LanguageContentSettings.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace Drupal\language\Plugin\migrate\source\d7;
-
-use Drupal\migrate\Row;
-use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
-
-/**
- * Drupal multilingual node settings from database.
- *
- * @MigrateSource(
- *   id = "d7_language_content_settings",
- * )
- */
-class LanguageContentSettings extends DrupalSqlBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function query() {
-    return $this->select('node_type', 't')
-      ->fields('t', array(
-        'type',
-      ));
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function fields() {
-    $fields = array(
-      'type' => $this->t('Type'),
-      'language_content_type' => $this->t('Multilingual support.'),
-      'i18n_lock_node' => $this->t('Lock language.'),
-    );
-    return $fields;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function prepareRow(Row $row) {
-    $type = $row->getSourceProperty('type');
-    $row->setSourceProperty('language_content_type', $this->variableGet('language_content_type_' . $type, NULL));
-    $i18n_node_options = $this->variableGet('i18n_node_options_' . $type, NULL);
-    if ($i18n_node_options && in_array('lock', $i18n_node_options)) {
-      $row->setSourceProperty('i18n_lock_node', 1);
-    }
-    else {
-      $row->setSourceProperty('i18n_lock_node', 0);
-    }
-    return parent::prepareRow($row);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getIds() {
-    $ids['type']['type'] = 'string';
-    return $ids;
-  }
-
-}
diff --git a/core/modules/language/tests/src/Kernel/Migrate/d6/MigrateLanguageContentSettingsTest.php b/core/modules/language/tests/src/Kernel/Migrate/d6/MigrateLanguageContentSettingsTest.php
deleted file mode 100644
index 0420d70..0000000
--- a/core/modules/language/tests/src/Kernel/Migrate/d6/MigrateLanguageContentSettingsTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace Drupal\Tests\language\Kernel\Migrate\d6;
-
-use Drupal\language\Entity\ContentLanguageSettings;
-use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
-
-/**
- * Tests migration of language content setting variables,
- * language_content_type_$type, i18n_node_options_* and i18n_lock_node_*.
- *
- * @group migrate_drupal_6
- */
-class MigrateLanguageContentSettingsTest extends MigrateDrupal6TestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['node', 'text', 'language', 'content_translation'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $this->installConfig(['node']);
-    $this->executeMigrations(['d6_node_type', 'd6_language_content_settings']);
-  }
-
-  /**
-   * Tests migration of content language settings.
-   */
-  public function testLanguageContent() {
-    // Assert that a translatable content is still translatable.
-    $config = $this->config('language.content_settings.node.article');
-    $this->assertSame($config->get('target_entity_type_id'), 'node');
-    $this->assertSame($config->get('target_bundle'), 'article');
-    $this->assertSame($config->get('default_langcode'), 'current_interface');
-    $this->assertTrue($config->get('third_party_settings.content_translation.enabled'));
-
-    // Assert that a non-translatable content is not translatable.
-    $config = ContentLanguageSettings::loadByEntityTypeBundle('node', 'company');
-    $this->assertTrue($config->isDefaultConfiguration());
-    $this->assertFalse($config->isLanguageAlterable());
-    $this->assertSame($config->getDefaultLangcode(), 'site_default');
-  }
-
-  /**
-   * Tests migration of content language settings when there is no language lock.
-   */
-  public function testLanguageContentWithNoLanguageLock() {
-    // Assert that a we can assign a language.
-    $config = ContentLanguageSettings::loadByEntityTypeBundle('node', 'employee');
-    $this->assertSame($config->getDefaultLangcode(), 'current_interface');
-    $this->assertTrue($config->isLanguageAlterable());
-  }
-
-}
diff --git a/core/modules/language/tests/src/Kernel/Migrate/d7/MigrateLanguageContentSettingsTest.php b/core/modules/language/tests/src/Kernel/Migrate/d7/MigrateLanguageContentSettingsTest.php
deleted file mode 100644
index defc6cd..0000000
--- a/core/modules/language/tests/src/Kernel/Migrate/d7/MigrateLanguageContentSettingsTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Drupal\Tests\language\Kernel\Migrate\d7;
-
-use Drupal\language\Entity\ContentLanguageSettings;
-use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
-
-/**
- * Tests migration of language content setting variables,
- * language_content_type_$type, i18n_node_options_* and i18n_lock_node_*.
- *
- * @group migrate_drupal_7
- */
-class MigrateLanguageContentSettingsTest extends MigrateDrupal7TestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['node', 'text', 'language', 'content_translation'];
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $this->installConfig(['node']);
-    $this->executeMigrations(['d7_node_type', 'd7_language_content_settings']);
-  }
-
-  /**
-   * Tests migration of content language settings.
-   */
-  public function testLanguageContent() {
-    // Assert that a translatable content is still translatable.
-    $config = $this->config('language.content_settings.node.blog');
-    $this->assertIdentical($config->get('target_entity_type_id'), 'node');
-    $this->assertIdentical($config->get('target_bundle'), 'blog');
-    $this->assertIdentical($config->get('default_langcode'), 'current_interface');
-    $this->assertFalse($config->get('language_alterable'));
-    $this->assertTrue($config->get('third_party_settings.content_translation.enabled'));
-
-    // Assert that a non-translatable content is not translatable.
-    $config = ContentLanguageSettings::loadByEntityTypeBundle('node', 'page');
-    $this->assertTrue($config->isDefaultConfiguration());
-    $this->assertFalse($config->isLanguageAlterable());
-    $this->assertSame($config->getDefaultLangcode(), 'site_default');
-
-  }
-
-}
diff --git a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php b/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
index 3c92345..4310fb9 100644
--- a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
+++ b/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
@@ -169,7 +169,7 @@ public static function mainPropertyName() {
    * {@inheritdoc}
    */
   public function getUrl() {
-    return Url::fromUri($this->uri, $this->options);
+    return Url::fromUri($this->uri);
   }
 
   /**
diff --git a/core/modules/link/src/Plugin/migrate/cckfield/LinkField.php b/core/modules/link/src/Plugin/migrate/cckfield/LinkField.php
index 47b3830..f3b5d14 100644
--- a/core/modules/link/src/Plugin/migrate/cckfield/LinkField.php
+++ b/core/modules/link/src/Plugin/migrate/cckfield/LinkField.php
@@ -7,11 +7,7 @@
 
 /**
  * @MigrateCckField(
- *   id = "link",
- *   core = {6},
- *   type_map = {
- *     "link_field" = "link"
- *   }
+ *   id = "link"
  * )
  */
 class LinkField extends CckFieldPluginBase {
diff --git a/core/modules/link/src/Plugin/migrate/cckfield/d7/LinkField.php b/core/modules/link/src/Plugin/migrate/cckfield/d7/LinkField.php
deleted file mode 100644
index 3d657ba..0000000
--- a/core/modules/link/src/Plugin/migrate/cckfield/d7/LinkField.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Drupal\link\Plugin\migrate\cckfield\d7;
-
-use Drupal\link\Plugin\migrate\cckfield\LinkField as D6LinkField;
-
-/**
- * @MigrateCckField(
- *   id = "link_field",
- *   core = {7},
- *   type_map = {
- *     "link_field" = "link"
- *   }
- * )
- *
- * This plugin provides the exact same functionality as the Drupal 6 "link"
- * plugin with the exception that the plugin ID "link_field" is used in the
- * field type map.
- */
-class LinkField extends D6LinkField {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFieldWidgetMap() {
-    // By default, use the plugin ID for the widget types.
-    return ['link_field' => 'link_default'];
-  }
-
-}
diff --git a/core/modules/link/src/Plugin/migrate/process/d6/CckLink.php b/core/modules/link/src/Plugin/migrate/process/d6/CckLink.php
index 2c03412..47c2f8b 100644
--- a/core/modules/link/src/Plugin/migrate/process/d6/CckLink.php
+++ b/core/modules/link/src/Plugin/migrate/process/d6/CckLink.php
@@ -37,32 +37,6 @@ public static function create(ContainerInterface $container, array $configuratio
   }
 
   /**
-   * Turn a Drupal 6 URI into a Drupal 8-compatible format.
-   *
-   * @param string $uri
-   *   The 'url' value from Drupal 6.
-   *
-   * @return string
-   *   The Drupal 8-compatible URI.
-   *
-   * @see \Drupal\link\Plugin\Field\FieldWidget\LinkWidget::getUserEnteredStringAsUri()
-   */
-  protected function canonicalizeUri($uri) {
-    // If we already have a scheme, we're fine.
-    if (empty($uri) || !is_null(parse_url($uri, PHP_URL_SCHEME))) {
-      return $uri;
-    }
-
-    // Remove the <front> component of the URL.
-    if (strpos($uri, '<front>') === 0) {
-      $uri = substr($uri, strlen('<front>'));
-    }
-
-    // Add the internal: scheme and ensure a leading slash.
-    return 'internal:/' . ltrim($uri, '/');
-  }
-
-  /**
    * {@inheritdoc}
    */
   public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
@@ -77,7 +51,7 @@ public function transform($value, MigrateExecutableInterface $migrate_executable
     }
 
     // Massage the values into the correct form for the link.
-    $route['uri'] = $this->canonicalizeUri($value['url']);
+    $route['uri'] = $value['url'];
     $route['options']['attributes'] = $attributes;
     $route['title'] = $value['title'];
     return $route;
diff --git a/core/modules/link/src/Tests/LinkFieldTest.php b/core/modules/link/src/Tests/LinkFieldTest.php
index e85ad53..477382b 100644
--- a/core/modules/link/src/Tests/LinkFieldTest.php
+++ b/core/modules/link/src/Tests/LinkFieldTest.php
@@ -624,7 +624,7 @@ protected function renderTestEntity($id, $view_mode = 'full', $reset = TRUE) {
     if ($reset) {
       $this->container->get('entity.manager')->getStorage('entity_test')->resetCache(array($id));
     }
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), $view_mode);
     $content = $display->build($entity);
     $output = \Drupal::service('renderer')->renderRoot($content);
diff --git a/core/modules/link/tests/src/Kernel/LinkItemTest.php b/core/modules/link/tests/src/Kernel/LinkItemTest.php
index c1f97ae..617c025 100644
--- a/core/modules/link/tests/src/Kernel/LinkItemTest.php
+++ b/core/modules/link/tests/src/Kernel/LinkItemTest.php
@@ -78,19 +78,12 @@ public function testLinkItem() {
     $entity->field_test->title = $title;
     $entity->field_test->first()->get('options')->set('query', $parsed_url['query']);
     $entity->field_test->first()->get('options')->set('attributes', array('class' => $class));
-    $this->assertEquals([
-      'query' => $parsed_url['query'],
-      'attributes' => [
-        'class' => $class,
-      ],
-      'external' => TRUE,
-    ], $entity->field_test->first()->getUrl()->getOptions());
     $entity->name->value = $this->randomMachineName();
     $entity->save();
 
     // Verify that the field value is changed.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertTrue($entity->field_test instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->field_test[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->field_test->uri, $parsed_url['path']);
@@ -105,7 +98,7 @@ public function testLinkItem() {
     $entity->name->value = $this->randomMachineName();
     $entity->save();
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_test->uri, $parsed_url['path']);
     $this->assertEqual($entity->field_test->options['attributes']['class'], $class);
     $this->assertEqual($entity->field_test->options['query'], $parsed_url['query']);
@@ -125,7 +118,7 @@ public function testLinkItem() {
 
     // Read changed entity and assert changed values.
     $entity->save();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_test->uri, $new_url);
     $this->assertEqual($entity->field_test->title, $new_title);
     $this->assertEqual($entity->field_test->options['attributes']['class'], $new_class);
diff --git a/core/modules/link/tests/src/Unit/Plugin/migrate/process/d6/CckLinkTest.php b/core/modules/link/tests/src/Unit/Plugin/migrate/process/d6/CckLinkTest.php
deleted file mode 100644
index a96287a..0000000
--- a/core/modules/link/tests/src/Unit/Plugin/migrate/process/d6/CckLinkTest.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-namespace Drupal\Tests\link\Unit\Plugin\migrate\process\d6;
-
-use Drupal\link\Plugin\migrate\process\d6\CckLink;
-use Drupal\Tests\UnitTestCase;
-
-/**
- * @group Link
- */
-class CckLinkTest extends UnitTestCase {
-
-  /**
-   * Test the url transformations in the CckLink process plugin.
-   *
-   * @dataProvider canonicalizeUriDataProvider
-   */
-  public function testCanonicalizeUri($url, $expected) {
-    $link_plugin = new CckLink([], '', [], $this->getMock('\Drupal\migrate\Plugin\MigrationInterface'));
-    $transformed = $link_plugin->transform([
-      'url' => $url,
-      'title' => '',
-      'attributes' => serialize([]),
-    ], $this->getMock('\Drupal\migrate\MigrateExecutableInterface'), $this->getMockBuilder('\Drupal\migrate\Row')->disableOriginalConstructor()->getMock(), NULL);
-    $this->assertEquals($expected, $transformed['uri']);
-  }
-
-  /**
-   * Data provider for testCanonicalizeUri.
-   */
-  public function canonicalizeUriDataProvider() {
-    return [
-      'Simple front-page' => [
-        '<front>',
-        'internal:/',
-      ],
-      'Front page with query' => [
-        '<front>?query=1',
-        'internal:/?query=1',
-      ],
-      'No leading forward slash' => [
-        'node/10',
-        'internal:/node/10',
-      ],
-      'Leading forward slash' => [
-        '/node/10',
-        'internal:/node/10',
-      ],
-      'Existing scheme' => [
-        'scheme:test',
-        'scheme:test',
-      ],
-    ];
-  }
-
-}
diff --git a/core/modules/locale/src/Tests/LocaleContentTest.php b/core/modules/locale/src/Tests/LocaleContentTest.php
index 188b574..07021fa 100644
--- a/core/modules/locale/src/Tests/LocaleContentTest.php
+++ b/core/modules/locale/src/Tests/LocaleContentTest.php
@@ -118,11 +118,7 @@ public function testContentTypeLanguageConfiguration() {
       'langcode[0][value]' => 'en',
     );
     $this->drupalPostForm($path, $edit, t('Save'));
-    $this->assertText(t('@title has been updated.', array('@title' => $node_title)));
-
-    // Verify that the creation message contains a link to a node.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'node/' . $node->id()));
-    $this->assert(isset($view_link), 'The message area contains the link to the edited node');
+    $this->assertRaw(t('%title has been updated.', array('%title' => $node_title)));
 
     $this->drupalLogout();
   }
diff --git a/core/modules/menu_link_content/migration_templates/menu_links.yml b/core/modules/menu_link_content/migration_templates/menu_links.yml
index cda0f57..7b818c6 100644
--- a/core/modules/menu_link_content/migration_templates/menu_links.yml
+++ b/core/modules/menu_link_content/migration_templates/menu_links.yml
@@ -5,8 +5,11 @@ migration_tags:
   - Drupal 7
 source:
   plugin: menu_link
+  constants:
+    bundle: menu_link_content
 process:
   id: mlid
+  bundle: 'constants/bundle'
   title: link_title
   description: description
   menu_name:
@@ -20,7 +23,7 @@ process:
         management: admin
       bypass: true
   'link/uri':
-    plugin: link_uri
+    plugin: internal_uri
     source:
       - link_path
   'link/options': options
@@ -46,7 +49,6 @@ process:
   changed: updated
 destination:
   plugin: entity:menu_link_content
-  default_bundle: menu_link_content
   no_stub: true
 migration_dependencies:
   required:
diff --git a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
index 669d1e6..d70889b 100644
--- a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
+++ b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
@@ -236,7 +236,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
     /** @var \Drupal\Core\Field\BaseFieldDefinition[] $fields */
     $fields = parent::baseFieldDefinitions($entity_type);
 
-    $fields['id']->setLabel(t('Entity ID'))
+    $fields['id'] ->setLabel(t('Entity ID'))
       ->setDescription(t('The entity ID for this menu link content entity.'));
 
     $fields['uuid']->setDescription(t('The content menu link UUID.'));
diff --git a/core/modules/menu_link_content/src/Plugin/migrate/process/d6/InternalUri.php b/core/modules/menu_link_content/src/Plugin/migrate/process/d6/InternalUri.php
new file mode 100644
index 0000000..58c363c
--- /dev/null
+++ b/core/modules/menu_link_content/src/Plugin/migrate/process/d6/InternalUri.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Drupal\menu_link_content\Plugin\migrate\process\d6;
+
+use Drupal\migrate\MigrateExecutableInterface;
+use Drupal\migrate\ProcessPluginBase;
+use Drupal\migrate\Row;
+
+/**
+ * Process a path into an 'internal:' URI.
+ *
+ * @MigrateProcessPlugin(
+ *   id = "internal_uri"
+ * )
+ */
+class InternalUri extends ProcessPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
+    list($path) = $value;
+
+    if (parse_url($path, PHP_URL_SCHEME) === NULL) {
+      return 'internal:/' . $path;
+    }
+    return $path;
+  }
+
+}
diff --git a/core/modules/menu_link_content/src/Plugin/migrate/process/d6/LinkUri.php b/core/modules/menu_link_content/src/Plugin/migrate/process/d6/LinkUri.php
deleted file mode 100644
index 08c45d8..0000000
--- a/core/modules/menu_link_content/src/Plugin/migrate/process/d6/LinkUri.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-namespace Drupal\menu_link_content\Plugin\migrate\process\d6;
-
-use Drupal\Core\Entity\EntityTypeManagerInterface;
-use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
-use Drupal\Core\Url;
-use Drupal\migrate\MigrateExecutableInterface;
-use Drupal\migrate\ProcessPluginBase;
-use Drupal\migrate\Row;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Processes a link path into an 'internal:' or 'entity:' URI.
- *
- * @MigrateProcessPlugin(
- *   id = "link_uri"
- * )
- */
-class LinkUri extends ProcessPluginBase implements ContainerFactoryPluginInterface {
-
-  /**
-   * The entity type manager, used to fetch entity link templates.
-   *
-   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
-   */
-  protected $entityTypeManager;
-
-  /**
-   * Constructs a LinkUri object.
-   *
-   * @param array $configuration
-   *   A configuration array containing information about the plugin instance.
-   * @param string $plugin_id
-   *   The plugin_id for the plugin instance.
-   * @param mixed $plugin_definition
-   *   The plugin implementation definition.
-   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
-   *   The entity type manager, used to fetch entity link templates.
-   */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition);
-    $this->entityTypeManager = $entity_type_manager;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-      $container->get('entity_type.manager')
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
-    list($path) = $value;
-    $path = ltrim($path, '/');
-
-    if (parse_url($path, PHP_URL_SCHEME) === NULL) {
-      $path = 'internal:/' . $path;
-
-      // Convert entity URIs to the entity scheme, if the path matches a route
-      // of the form "entity.$entity_type_id.canonical".
-      // @see \Drupal\Core\Url::fromEntityUri()
-      $url = Url::fromUri($path);
-      if ($url->isRouted()) {
-        $route_name = $url->getRouteName();
-        foreach (array_keys($this->entityTypeManager->getDefinitions()) as $entity_type_id) {
-          if ($route_name == "entity.$entity_type_id.canonical" && isset($url->getRouteParameters()[$entity_type_id])) {
-            return "entity:$entity_type_id/" . $url->getRouteParameters()[$entity_type_id];
-          }
-        }
-      }
-    }
-    return $path;
-  }
-
-}
diff --git a/core/modules/menu_link_content/tests/src/Unit/Plugin/migrate/process/d6/LinkUriTest.php b/core/modules/menu_link_content/tests/src/Unit/Plugin/migrate/process/d6/LinkUriTest.php
deleted file mode 100644
index 93a7280..0000000
--- a/core/modules/menu_link_content/tests/src/Unit/Plugin/migrate/process/d6/LinkUriTest.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-namespace Drupal\Tests\menu_link_content\Unit\Plugin\migrate\process\d6;
-
-use Drupal\Core\DependencyInjection\ContainerBuilder;
-use Drupal\Core\Url;
-use Drupal\menu_link_content\Plugin\migrate\process\d6\LinkUri;
-use Drupal\migrate\MigrateExecutableInterface;
-use Drupal\migrate\Row;
-use Drupal\Tests\UnitTestCase;
-use Drupal\Core\Entity\EntityTypeManagerInterface;
-use Drupal\Core\Path\PathValidator;
-
-/**
- * Tests \Drupal\menu_link_content\Plugin\migrate\process\d6\LinkUri.
- *
- * @group menu_link_content
- *
- * @coversDefaultClass \Drupal\menu_link_content\Plugin\migrate\process\d6\LinkUri
- */
-class LinkUriTest extends UnitTestCase {
-
-  /**
-   * The entity type manager prophecy used in the test.
-   *
-   * @var \Prophecy\Prophecy\ProphecyInterface|\Drupal\Core\Entity\EntityTypeManagerInterface
-   */
-  protected $entityTypeManager;
-
-  /**
-   * The 'link_uri' process plugin being tested.
-   *
-   * @var \Drupal\menu_link_content\Plugin\migrate\process\d6\LinkUri
-   */
-  protected $processPlugin;
-
-  /**
-   * The path validator prophecy used in the test.
-   *
-   * @var \Drupal\Core\Path\PathValidator
-   */
-  protected $pathValidator;
-
-  /**
-   * The fake entity type ID used in the test.
-   *
-   * @var string
-   */
-  protected $entityTypeId = 'the_entity_type_id';
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $this->entityTypeManager = $this->prophesize(EntityTypeManagerInterface::class);
-    $this->entityTypeManager->getDefinitions()->willReturn([$this->entityTypeId => '']);
-    $this->processPlugin = new LinkUri([], 'link_uri', [], $this->entityTypeManager->reveal());
-
-    // Url::fromInternalUri() accesses the path validator from the global
-    // container.
-    // @see \Drupal\Core\Url::fromInternalUri()
-    $this->pathValidator = $this->prophesize(PathValidator::class);
-    $container = new ContainerBuilder();
-    $container->set('path.validator', $this->pathValidator->reveal());
-    \Drupal::setContainer($container);
-  }
-
-  /**
-   * Tests LinkUri::transform().
-   *
-   * @param array $value
-   *   The value to pass to LinkUri::transform().
-   * @param string $expected
-   *   The expected return value of LinkUri::transform().
-   * @param \Drupal\Core\Url $url
-   *   (optional) The URL that the path validator prophecy will return.
-   *
-   * @dataProvider providerTestTransform
-   *
-   * @covers ::transform
-   */
-  public function testTransform(array $value, $expected, Url $url = NULL) {
-    $migrate_executable = $this->prophesize(MigrateExecutableInterface::class);
-    $row = $this->prophesize(Row::class);
-
-    if ($url) {
-      $this->pathValidator->getUrlIfValidWithoutAccessCheck(reset($value))->willReturn($url);
-    }
-
-    $actual = $this->processPlugin->transform($value, $migrate_executable->reveal(), $row->reveal(), 'link/uri');
-    $this->assertEquals($expected, $actual);
-  }
-
-  /**
-   * Provides test cases for LinkUriTest::testTransform().
-   *
-   * @return array
-   *   An array of test cases, each which the following values:
-   *   - The value array to pass to LinkUri::transform().
-   *   - The expected path returned by LinkUri::transform().
-   *   - (optional) A URL object that the path validator prophecy will return.
-   */
-  public function providerTestTransform() {
-    $tests = [];
-
-    $value = ['http://example.com'];
-    $expected = 'http://example.com';
-    $tests['with_scheme'] = [$value, $expected];
-
-    $value = ['/test'];
-    $expected = 'internal:/test';
-    $tests['leading_slash'] = [$value, $expected];
-
-    $value = ['test'];
-    $expected = 'internal:/test';
-    $tests['without_scheme'] = [$value, $expected];
-
-    $url = Url::fromRoute('route_name');
-    $tests['with_route'] = [$value, $expected, $url];
-
-    $url = Url::fromRoute('entity.not_an_entity_type_id.canonical');
-    $tests['without_entity_type'] = [$value, $expected, $url];
-
-    $url = Url::fromRoute('entity.the_entity_type_id.canonical');
-    $tests['without_route_parameter'] = [$value, $expected, $url];
-
-    $url = Url::fromRoute('entity.the_entity_type_id.canonical', ['the_entity_type_id' => 'the_entity_id']);
-    $expected = 'entity:the_entity_type_id/the_entity_id';
-    $tests['entity_path'] = [$value, $expected, $url];
-
-    return $tests;
-  }
-
-}
diff --git a/core/modules/migrate/migrate.api.php b/core/modules/migrate/migrate.api.php
index d5e14f4..fa55b7d 100644
--- a/core/modules/migrate/migrate.api.php
+++ b/core/modules/migrate/migrate.api.php
@@ -17,30 +17,33 @@
  * @section overview Overview of migration
  * Migration is an
  * @link http://wikipedia.org/wiki/Extract,_transform,_load Extract, Transform, Load @endlink
- * (ETL) process. In the Drupal migration API the extract phase is called
- * "source", the transform phase is called "process", and the load phase is
- * called "destination". It is important to understand that the "load" in ETL
- * means to load data into storage, while traditionally Drupal uses "load" to
- * mean load data from storage into memory.
+ * (ETL) process. For historical reasons, in the Drupal migration tool the
+ * extract phase is called "source", the transform phase is called "process",
+ * and the load phase is called "destination".
  *
- * Source, process, and destination phases are each provided by plugins.
- * Source plugins extract data from a data source in "rows", containing
- * "properties". Each row is handed off to one or more process plugins which
- * transform the row's properties. After all the properties are processed, the
- * resulting row is handed off to a destination plugin, which saves the data.
+ * Source, process, and destination phases are each provided by plugins. Source
+ * plugins extract data from a data source in "rows", containing "properties".
+ * Each row is handed off to one or more series of process plugins, where each
+ * series operates to transform the row data into one result property. After all
+ * the properties are processed, the resulting row is handed off to a
+ * destination plugin, which saves the data.
  *
- * A source plugin, one or more process plugins, and a destination plugin are
- * brought together to extract, transform, and load (in the ETL sense) a specific
- * type of data by a migration plugin.
+ * The Migrate module provides process plugins for common operations (setting
+ * default values, mapping values, etc.), and destination plugins for Drupal
+ * core objects (configuration, entity, URL alias, etc.). The Migrate Drupal
+ * module provides source plugins to extract data from various versions of
+ * Drupal. Custom and contributed modules can provide additional plugins; see
+ * the @link plugin_api Plugin API topic @endlink for generic information about
+ * providing plugins, and sections below for details about the plugin types.
  *
- * @section sec_migrations Migration plugins
- * Migration plugin definitions are stored in a module's 'migrations' directory.
- * For backwards compatibility we also scan the 'migration_templates' directory.
- * Examples of migration plugin definitions can be found in
- * 'core/modules/action/migration_templates'. The plugin class is
- * \Drupal\migrate\Plugin\Migration, with interface
- * \Drupal\migrate\Plugin\MigrationInterface. Migration plugins are managed by
- * the \Drupal\migrate\Plugin\MigrationPluginManager class.
+ * The configuration of migrations is stored in configuration entities, which
+ * list the IDs and configurations of the plugins that are involved. See
+ * @ref sec_entity below for details. To migrate an entire site, you'll need to
+ * create a migration manifest; see @ref sec_manifest for details.
+ *
+ * https://www.drupal.org/node/2127611 has more complete information on the
+ * Migration API, including information on load plugins, which are only used
+ * in Drupal 6 migration.
  *
  * @section sec_source Source plugins
  * Migration source plugins implement
@@ -58,9 +61,7 @@
  * with \Drupal\migrate\Annotation\MigrateProcessPlugin annotation, and must be
  * in namespace subdirectory Plugin\migrate\process under the namespace of the
  * module that defines them. Migration process plugins are managed by the
- * \Drupal\migrate\Plugin\MigratePluginManager class. The Migrate module
- * provides process plugins for common operations (setting default values,
- * mapping values, etc.).
+ * \Drupal\migrate\Plugin\MigratePluginManager class.
  *
  * @section sec_destination Destination plugins
  * Migration destination plugins implement
@@ -69,12 +70,34 @@
  * annotated with \Drupal\migrate\Annotation\MigrateDestination annotation, and
  * must be in namespace subdirectory Plugin\migrate\destination under the
  * namespace of the module that defines them. Migration destination plugins
- * are managed by the \Drupal\migrate\Plugin\MigrateDestinationPluginManager
- * class. The Migrate module provides destination plugins for Drupal core
- * objects (configuration and entity).
+ * are managed by the
+ * \Drupal\migrate\Plugin\MigrateDestinationPluginManager class.
+ *
+ * @section sec_entity Migration configuration entities
+ * The definition of how to migrate each type of data is stored in configuration
+ * entities. The migration configuration entity class is
+ * \Drupal\migrate\Entity\Migration, with interface
+ * \Drupal\migrate\Entity\MigrationInterface; the configuration schema can be
+ * found in the migrate.schema.yml file. Migration configuration consists of IDs
+ * and configuration for the source, process, and destination plugins, as well
+ * as information on dependencies. Process configuration consists of sections,
+ * each of which defines the series of process plugins needed for one
+ * destination property. You can find examples of migration configuration files
+ * in the core/modules/migrate_drupal/config/install directory.
  *
- * @section sec_more_info More information
- * @link https://www.drupal.org/node/2127611 Migration API documentation. @endlink
+ * @section sec_manifest Migration manifests
+ * You can run a migration with the "drush migrate-manifest" command, providing
+ * a migration manifest file. This file lists the configuration names of the
+ * migrations you want to execute, as well as any dependencies they have (you
+ * can find these in the "migration_dependencies" sections of the individual
+ * configuration files). For example, to migrate blocks from a Drupal 6 site,
+ * you would list:
+ * @code
+ * # Migrate blocks from Drupal 6 to 8
+ * - d6_filter_format
+ * - d6_custom_block
+ * - d6_block
+ * @endcode
  *
  * @see update_api
  * @}
diff --git a/core/modules/migrate/migrate.services.yml b/core/modules/migrate/migrate.services.yml
index da43b38..2c59d1c 100644
--- a/core/modules/migrate/migrate.services.yml
+++ b/core/modules/migrate/migrate.services.yml
@@ -17,6 +17,12 @@ services:
   plugin.manager.migrate.id_map:
     class: Drupal\migrate\Plugin\MigratePluginManager
     arguments: [id_map, '@container.namespaces', '@cache.discovery', '@module_handler']
+  cache.discovery_migration:
+    class: Drupal\Core\Cache\CacheBackendInterface
+    tags:
+      - { name: cache.bin, default_backend: cache.backend.memory }
+    factory: cache_factory:get
+    arguments: [discovery_migration]
   plugin.manager.migration:
     class: Drupal\migrate\Plugin\MigrationPluginManager
-    arguments: ['@module_handler', '@cache.discovery', '@language_manager']
+    arguments: ['@module_handler', '@cache.discovery_migration', '@language_manager']
diff --git a/core/modules/migrate/src/MigrateExecutable.php b/core/modules/migrate/src/MigrateExecutable.php
index c0b3537..89eb0e4 100644
--- a/core/modules/migrate/src/MigrateExecutable.php
+++ b/core/modules/migrate/src/MigrateExecutable.php
@@ -378,7 +378,6 @@ public function processRow(Row $row, array $process = NULL, $value = NULL) {
               $new_value[] = $plugin->transform($scalar_value, $this, $row, $destination);
             }
             catch (MigrateSkipProcessException $e) {
-              $new_value[] = NULL;
               $break = TRUE;
             }
           }
@@ -392,7 +391,6 @@ public function processRow(Row $row, array $process = NULL, $value = NULL) {
             $value = $plugin->transform($value, $this, $row, $destination);
           }
           catch (MigrateSkipProcessException $e) {
-            $value = NULL;
             break;
           }
           $multiple = $multiple || $plugin->multiple();
diff --git a/core/modules/migrate/src/MigrationStorage.php b/core/modules/migrate/src/MigrationStorage.php
new file mode 100644
index 0000000..282b0c9
--- /dev/null
+++ b/core/modules/migrate/src/MigrationStorage.php
@@ -0,0 +1,187 @@
+<?php
+
+namespace Drupal\migrate;
+
+use Drupal\Component\Graph\Graph;
+use Drupal\Component\Uuid\UuidInterface;
+use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\Core\Config\Entity\ConfigEntityStorage;
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Entity\Query\QueryFactoryInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Storage for migration entities.
+ */
+class MigrationStorage extends ConfigEntityStorage implements MigrateBuildDependencyInterface {
+
+  /**
+   * The entity query factory service.
+   *
+   * @var \Drupal\Core\Entity\Query\QueryFactoryInterface
+   */
+  protected $queryFactory;
+
+  /**
+   * Constructs a MigrationStorage object.
+   *
+   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
+   *   An entity type definition.
+   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
+   *   The config factory service.
+   * @param \Drupal\Component\Uuid\UuidInterface $uuid_service
+   *   The UUID service.
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   *   The language manager.
+   * @param \Drupal\Core\Entity\Query\QueryFactoryInterface $query_factory
+   *   The entity query factory service.
+   */
+  public function __construct(EntityTypeInterface $entity_type, ConfigFactoryInterface $config_factory, UuidInterface $uuid_service, LanguageManagerInterface $language_manager, QueryFactoryInterface $query_factory) {
+    parent::__construct($entity_type, $config_factory, $uuid_service, $language_manager);
+    $this->queryFactory = $query_factory;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
+    return new static(
+      $entity_type,
+      $container->get('config.factory'),
+      $container->get('uuid'),
+      $container->get('language_manager'),
+      $container->get('entity.query.config')
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function loadMultiple(array $ids = NULL) {
+    if ($ids) {
+      $ids = $this->getVariantIds($ids);
+    }
+    /** @var \Drupal\migrate\Plugin\MigrationInterface[] $migrations */
+    $migrations = parent::loadMultiple($ids);
+
+    foreach ($migrations as $migration) {
+      $dependencies = array_map([$this, 'getVariantIds'], $migration->getMigrationDependencies());
+      $migration->set('migration_dependencies', $dependencies);
+    }
+
+    // Build an array of dependencies and set the order of the migrations.
+    return $this->buildDependencyMigration($migrations, []);
+  }
+
+  /**
+   * Splices variant IDs into a list of migration IDs.
+   *
+   * IDs which match the template_id:* pattern are shorthand for every variant
+   * of template_id. This method queries for those variant IDs and splices them
+   * into the original list.
+   *
+   * @param string[] $ids
+   *   A set of migration IDs.
+   *
+   * @return string[]
+   *   The expanded list of IDs.
+   */
+  public function getVariantIds(array $ids) {
+    // Re-index the array numerically, since we need to limit the loop by size.
+    $ids = array_values($ids);
+
+    $index = 0;
+    while ($index < count($ids)) {
+      if (substr($ids[$index], -2) == ':*') {
+        $template_id = substr($ids[$index], 0, -2);
+        $variants = $this->queryFactory->get($this->entityType, 'OR')
+          ->condition('id', $template_id)
+          ->condition('template', $template_id)
+          ->execute();
+        array_splice($ids, $index, 1, $variants);
+        $index += count($variants);
+      }
+      else {
+        $index++;
+      }
+    }
+    return $ids;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildDependencyMigration(array $migrations, array $dynamic_ids) {
+    // Migration dependencies defined in the migration storage can be
+    // optional or required. If an optional dependency does not run, the current
+    // migration is still OK to go. Both optional and required dependencies
+    // (if run at all) must run before the current migration.
+    $dependency_graph = array();
+    $requirement_graph = array();
+    $different = FALSE;
+    foreach ($migrations as $migration) {
+      /** @var \Drupal\migrate\Plugin\MigrationInterface $migration */
+      $id = $migration->id();
+      $requirements[$id] = array();
+      $dependency_graph[$id]['edges'] = array();
+      $migration_dependencies = $migration->getMigrationDependencies();
+
+      if (isset($migration_dependencies['required'])) {
+        foreach ($migration_dependencies['required'] as $dependency) {
+          if (!isset($dynamic_ids[$dependency])) {
+            $this->addDependency($requirement_graph, $id, $dependency, $dynamic_ids);
+          }
+          $this->addDependency($dependency_graph, $id, $dependency, $dynamic_ids);
+        }
+      }
+      if (isset($migration_dependencies['optional'])) {
+        foreach ($migration_dependencies['optional'] as $dependency) {
+          $different = TRUE;
+          $this->addDependency($dependency_graph, $id, $dependency, $dynamic_ids);
+        }
+      }
+    }
+    $graph_object = new Graph($dependency_graph);
+    $dependency_graph = $graph_object->searchAndSort();
+    if ($different) {
+      $graph_object = new Graph($requirement_graph);
+      $requirement_graph = $graph_object->searchAndSort();
+    }
+    else {
+      $requirement_graph = $dependency_graph;
+    }
+    $weights = array();
+    foreach ($migrations as $migration_id => $migration) {
+      // Populate a weights array to use with array_multisort later.
+      $weights[] = $dependency_graph[$migration_id]['weight'];
+      if (!empty($requirement_graph[$migration_id]['paths'])) {
+        $migration->set('requirements', $requirement_graph[$migration_id]['paths']);
+      }
+    }
+    array_multisort($weights, SORT_DESC, SORT_NUMERIC, $migrations);
+
+    return $migrations;
+  }
+
+  /**
+   * Add one or more dependencies to a graph.
+   *
+   * @param array $graph
+   *   The graph so far, passed by reference.
+   * @param int $id
+   *   The migration ID.
+   * @param string $dependency
+   *   The dependency string.
+   * @param array $dynamic_ids
+   *   The dynamic ID mapping.
+   */
+  protected function addDependency(array &$graph, $id, $dependency, $dynamic_ids) {
+    $dependencies = isset($dynamic_ids[$dependency]) ? $dynamic_ids[$dependency] : array($dependency);
+    if (!isset($graph[$id]['edges'])) {
+      $graph[$id]['edges'] = array();
+    }
+    $graph[$id]['edges'] += array_combine($dependencies, $dependencies);
+  }
+
+}
diff --git a/core/modules/migrate/src/Plugin/MigrateIdMapInterface.php b/core/modules/migrate/src/Plugin/MigrateIdMapInterface.php
index d3bdb89..58ec334 100644
--- a/core/modules/migrate/src/Plugin/MigrateIdMapInterface.php
+++ b/core/modules/migrate/src/Plugin/MigrateIdMapInterface.php
@@ -209,33 +209,11 @@ public function lookupSourceID(array $destination_id_values);
    *   The source identifier keyed values of the record, e.g. ['nid' => 5].
    *
    * @return array
-   *   The destination identifier values of the record, or empty on failure.
-   *
-   * @deprecated in Drupal 8.1.x, will be removed before Drupal 9.0.x. Use
-   *   lookupDestinationIds() instead.
+   *   The destination identifier values of the record, or NULL on failure.
    */
   public function lookupDestinationId(array $source_id_values);
 
   /**
-   * Looks up the destination identifiers corresponding to a source key.
-   *
-   * This can look up a subset of source keys if only some are provided, and
-   * will return all destination keys that match.
-   *
-   * @param array $source_id_values
-   *   The source identifier keyed values of the records, e.g. ['nid' => 5].
-   *   If unkeyed, the first count($source_id_values) keys will be assumed.
-   *
-   * @return array
-   *    An array of arrays of destination identifier values.
-   *
-   * @throws \Drupal\migrate\MigrateException
-   *   Thrown when $source_id_values contains unknown keys, or is the wrong
-   *   length.
-   */
-  public function lookupDestinationIds(array $source_id_values);
-
-  /**
    * Looks up the destination identifier currently being iterated.
    *
    * @return array
diff --git a/core/modules/migrate/src/Plugin/Migration.php b/core/modules/migrate/src/Plugin/Migration.php
index 9f9b518..86294b5 100644
--- a/core/modules/migrate/src/Plugin/Migration.php
+++ b/core/modules/migrate/src/Plugin/Migration.php
@@ -174,13 +174,6 @@ class Migration extends PluginBase implements MigrationInterface, RequirementsIn
   protected $requirements = [];
 
   /**
-   * An optional list of tags, used by the plugin manager for filtering.
-   *
-   * @var array
-   */
-  protected $migration_tags = [];
-
-  /**
    * These migrations, if run, must be executed before this migration.
    *
    * These are different from the configuration dependencies. Migration
@@ -669,7 +662,7 @@ public function setTrackLastImported($track_last_imported) {
    * {@inheritdoc}
    */
   public function getMigrationDependencies() {
-    return ($this->migration_dependencies ?: []) + ['required' => [], 'optional' => []];
+    return $this->migration_dependencies + ['required' => [], 'optional' => []];
   }
 
   /**
@@ -710,21 +703,14 @@ public function getHighWaterProperty() {
    * {@inheritdoc}
    */
   public function getTrackLastImported() {
-    return $this->trackLastImported;
+    $this->trackLastImported;
   }
 
   /**
    * {@inheritdoc}
    */
   public function getDestinationIds() {
-    return $this->destinationIds;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getMigrationTags() {
-    return $this->migration_tags;
+    $this->destinationIds;
   }
 
 }
diff --git a/core/modules/migrate/src/Plugin/MigrationInterface.php b/core/modules/migrate/src/Plugin/MigrationInterface.php
index 18d2c66..7572760 100644
--- a/core/modules/migrate/src/Plugin/MigrationInterface.php
+++ b/core/modules/migrate/src/Plugin/MigrationInterface.php
@@ -374,12 +374,4 @@ public function getTrackLastImported();
    */
   public function getDestinationIds();
 
-  /**
-   * The migration tags.
-   *
-   * @return array
-   *   Migration tags.
-   */
-  public function getMigrationTags();
-
 }
diff --git a/core/modules/migrate/src/Plugin/MigrationPluginManager.php b/core/modules/migrate/src/Plugin/MigrationPluginManager.php
index d082c11..f0e6493 100644
--- a/core/modules/migrate/src/Plugin/MigrationPluginManager.php
+++ b/core/modules/migrate/src/Plugin/MigrationPluginManager.php
@@ -157,7 +157,6 @@ public function buildDependencyMigration(array $migrations, array $dynamic_ids)
     // current migration.
     $dependency_graph = [];
     $required_dependency_graph = [];
-    $have_optional = FALSE;
     foreach ($migrations as $migration) {
       /** @var \Drupal\migrate\Plugin\MigrationInterface $migration */
       $id = $migration->id();
@@ -173,15 +172,14 @@ public function buildDependencyMigration(array $migrations, array $dynamic_ids)
           $this->addDependency($dependency_graph, $id, $dependency, $dynamic_ids);
         }
       }
-      if (!empty($migration_dependencies['optional'])) {
+      if (isset($migration_dependencies['optional'])) {
         foreach ($migration_dependencies['optional'] as $dependency) {
           $this->addDependency($dependency_graph, $id, $dependency, $dynamic_ids);
         }
-        $have_optional = TRUE;
       }
     }
     $dependency_graph = (new Graph($dependency_graph))->searchAndSort();
-    if ($have_optional) {
+    if (!empty($migration_dependencies['optional'])) {
       $required_dependency_graph = (new Graph($required_dependency_graph))->searchAndSort();
     }
     else {
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php b/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php
index 18a95e6..b4cf30b 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php
@@ -94,10 +94,8 @@ public function supportsRollback() {
    *
    * @param array $id_map
    *   The map row data for the item.
-   * @param int $update_action
-   *   The rollback action to take if we are updating an existing item.
    */
-  protected function setRollbackAction(array $id_map, $update_action = MigrateIdMapInterface::ROLLBACK_PRESERVE) {
+  protected function setRollbackAction(array $id_map) {
     // If the entity we're updating was previously migrated by us, preserve the
     // existing rollback action.
     if (isset($id_map['sourceid1'])) {
@@ -106,7 +104,7 @@ protected function setRollbackAction(array $id_map, $update_action = MigrateIdMa
     // Otherwise, we're updating an entity which already existed on the
     // destination and want to make sure we do not delete it on rollback.
     else {
-      $this->rollbackAction = $update_action;
+      $this->rollbackAction = MigrateIdMapInterface::ROLLBACK_PRESERVE;
     }
   }
 
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/Entity.php b/core/modules/migrate/src/Plugin/migrate/destination/Entity.php
index 1b2c2e7..55c59fc 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/Entity.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/Entity.php
@@ -89,21 +89,6 @@ protected static function getEntityTypeId($plugin_id) {
   }
 
   /**
-   * Gets the bundle for the row taking into account the default.
-   *
-   * @param \Drupal\migrate\Row $row
-   *   The current row we're importing.
-   *
-   * @return string
-   *   The bundle for this row.
-   */
-  public function getBundle(Row $row) {
-    $default_bundle = isset($this->configuration['default_bundle']) ? $this->configuration['default_bundle'] : '';
-    $bundle_key = $this->getKey('bundle');
-    return $row->getDestinationProperty($bundle_key) ?: $default_bundle;
-  }
-
-  /**
    * {@inheritdoc}
    */
   public function fields(MigrationInterface $migration = NULL) {
@@ -124,15 +109,9 @@ public function fields(MigrationInterface $migration = NULL) {
   protected function getEntity(Row $row, array $old_destination_id_values) {
     $entity_id = reset($old_destination_id_values) ?: $this->getEntityId($row);
     if (!empty($entity_id) && ($entity = $this->storage->load($entity_id))) {
-      // Allow updateEntity() to change the entity.
-      $entity = $this->updateEntity($entity, $row) ?: $entity;
+      $this->updateEntity($entity, $row);
     }
     else {
-      // Attempt to ensure we always have a bundle.
-      if ($bundle = $this->getBundle($row)) {
-        $row->setDestinationProperty($this->getKey('bundle'), $bundle);
-      }
-
       // Stubs might need some required fields filled in.
       if ($row->isStub()) {
         $this->processStubRow($row);
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php b/core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php
index 3617f38..6a2fb98 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php
@@ -7,7 +7,6 @@
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Field\FieldTypePluginManagerInterface;
-use Drupal\Core\TypedData\TranslatableInterface;
 use Drupal\Core\TypedData\TypedDataInterface;
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\MigrateException;
@@ -86,12 +85,7 @@ public function import(Row $row, array $old_destination_id_values = array()) {
     if (!$entity) {
       throw new MigrateException('Unable to get entity');
     }
-
-    $ids = $this->save($entity, $old_destination_id_values);
-    if (!empty($this->configuration['translations'])) {
-      $ids[] = $entity->language()->getId();
-    }
-    return $ids;
+    return $this->save($entity, $old_destination_id_values);
   }
 
   /**
@@ -111,31 +105,11 @@ protected function save(ContentEntityInterface $entity, array $old_destination_i
   }
 
   /**
-   * Get whether this destination is for translations.
-   *
-   * @return bool
-   *   Whether this destination is for translations.
-   */
-  protected function isTranslationDestination() {
-    return !empty($this->configuration['translations']);
-  }
-
-  /**
    * {@inheritdoc}
    */
   public function getIds() {
     $id_key = $this->getKey('id');
     $ids[$id_key]['type'] = 'integer';
-
-    if ($this->isTranslationDestination()) {
-      if ($key = $this->getKey('langcode')) {
-        $ids[$key]['type'] = 'string';
-      }
-      else {
-        throw new MigrateException('This entity type does not support translation.');
-      }
-    }
-
     return $ids;
   }
 
@@ -146,29 +120,8 @@ public function getIds() {
    *   The entity to update.
    * @param \Drupal\migrate\Row $row
    *   The row object to update from.
-   *
-   * @return NULL|\Drupal\Core\Entity\EntityInterface
-   *   An updated entity, or NULL if it's the same as the one passed in.
    */
   protected function updateEntity(EntityInterface $entity, Row $row) {
-    // By default, an update will be preserved.
-    $rollback_action = MigrateIdMapInterface::ROLLBACK_PRESERVE;
-
-    // Make sure we have the right translation.
-    if ($this->isTranslationDestination()) {
-      $property = $this->storage->getEntityType()->getKey('langcode');
-      if ($row->hasDestinationProperty($property)) {
-        $language = $row->getDestinationProperty($property);
-        if (!$entity->hasTranslation($language)) {
-          $entity->addTranslation($language);
-
-          // We're adding a translation, so delete it on rollback.
-          $rollback_action = MigrateIdMapInterface::ROLLBACK_DELETE;
-        }
-        $entity = $entity->getTranslation($language);
-      }
-    }
-
     // If the migration has specified a list of properties to be overwritten,
     // clone the row with an empty set of destination values, and re-add only
     // the specified properties.
@@ -187,10 +140,7 @@ protected function updateEntity(EntityInterface $entity, Row $row) {
       }
     }
 
-    $this->setRollbackAction($row->getIdMap(), $rollback_action);
-
-    // We might have a different (translated) entity, so return it.
-    return $entity;
+    $this->setRollbackAction($row->getIdMap());
   }
 
   /**
@@ -235,32 +185,4 @@ protected function processStubRow(Row $row) {
     }
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function rollback(array $destination_identifier) {
-    if ($this->isTranslationDestination()) {
-      // Attempt to remove the translation.
-      $entity = $this->storage->load(reset($destination_identifier));
-      if ($entity && $entity instanceof TranslatableInterface) {
-        if ($key = $this->getKey('langcode')) {
-          if (isset($destination_identifier[$key])) {
-            $langcode = $destination_identifier[$key];
-            if ($entity->hasTranslation($langcode)) {
-              // Make sure we don't remove the default translation.
-              $translation = $entity->getTranslation($langcode);
-              if (!$translation->isDefaultTranslation()) {
-                $entity->removeTranslation($langcode);
-                $entity->save();
-              }
-            }
-          }
-        }
-      }
-    }
-    else {
-      parent::rollback($destination_identifier);
-    }
-  }
-
 }
diff --git a/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php b/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
index cf39275..8269957 100644
--- a/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
+++ b/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
@@ -517,56 +517,16 @@ public function lookupSourceID(array $destination_id_values) {
    * {@inheritdoc}
    */
   public function lookupDestinationId(array $source_id_values) {
-    $results = $this->lookupDestinationIds($source_id_values);
-    return $results ? reset($results) : array();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function lookupDestinationIds(array $source_id_values) {
     if (empty($source_id_values)) {
       return array();
     }
-
-    // Canonicalize the keys into a hash of DB-field => value.
-    $is_associative = !isset($source_id_values[0]);
-    $conditions = [];
-    foreach ($this->sourceIdFields() as $field_name => $db_field) {
-      if ($is_associative) {
-        // Associative $source_id_values can have fields out of order.
-        if (isset($source_id_values[$field_name])) {
-          $conditions[$db_field] = $source_id_values[$field_name];
-          unset($source_id_values[$field_name]);
-        }
-      }
-      else {
-        // For non-associative $source_id_values, we assume they're the first
-        // few fields.
-        if (empty($source_id_values)) {
-          break;
-        }
-        $conditions[$db_field] = array_shift($source_id_values);
-      }
-    }
-
-    if (!empty($source_id_values)) {
-      throw new MigrateException("Extra unknown items in source IDs");
-    }
-
     $query = $this->getDatabase()->select($this->mapTableName(), 'map')
-      ->fields('map', $this->destinationIdFields());
-    if (count($this->sourceIdFields()) === count($conditions)) {
-      // Optimization: Use the primary key.
-      $query->condition(self::SOURCE_IDS_HASH, $this->getSourceIDsHash(array_values($conditions)));
-    }
-    else {
-      foreach ($conditions as $db_field => $value) {
-        $query->condition($db_field, $value);
-      }
-    }
+              ->fields('map', $this->destinationIdFields());
 
-    return $query->execute()->fetchAll(\PDO::FETCH_NUM);
+    $query->condition(static::SOURCE_IDS_HASH, $this->getSourceIDsHash($source_id_values));
+    $result = $query->execute();
+    $destination_id = $result->fetchAssoc();
+    return array_values($destination_id ?: array());
   }
 
   /**
diff --git a/core/modules/migrate/src/Plugin/migrate/process/Migration.php b/core/modules/migrate/src/Plugin/migrate/process/Migration.php
index c67c754..6a24495 100644
--- a/core/modules/migrate/src/Plugin/migrate/process/Migration.php
+++ b/core/modules/migrate/src/Plugin/migrate/process/Migration.php
@@ -93,7 +93,7 @@ public function transform($value, MigrateExecutableInterface $migrate_executable
         $source_id_values[$migration_id] = $value;
       }
       // Break out of the loop as soon as a destination ID is found.
-      if ($destination_ids = $migration->getIdMap()->lookupDestinationId($source_id_values[$migration_id])) {
+      if ($destination_ids = $migration->getIdMap()->lookupDestinationID($source_id_values[$migration_id])) {
         break;
       }
     }
@@ -162,7 +162,7 @@ public function transform($value, MigrateExecutableInterface $migrate_executable
    *
    * @throws \Drupal\migrate\MigrateSkipProcessException
    */
-  protected function skipOnEmpty(array $value) {
+  protected function skipOnEmpty($value) {
     if (!array_filter($value)) {
       throw new MigrateSkipProcessException();
     }
diff --git a/core/modules/migrate/src/Plugin/migrate/process/Substr.php b/core/modules/migrate/src/Plugin/migrate/process/Substr.php
deleted file mode 100644
index ab6171a..0000000
--- a/core/modules/migrate/src/Plugin/migrate/process/Substr.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace Drupal\migrate\Plugin\migrate\process;
-
-use Drupal\migrate\ProcessPluginBase;
-use Drupal\migrate\MigrateExecutableInterface;
-use Drupal\migrate\Row;
-use Drupal\migrate\MigrateException;
-use Drupal\Component\Utility\Unicode;
-
-/**
- * This plugin returns a substring of the current value.
- *
- * @MigrateProcessPlugin(
- *   id = "substr"
- * )
- */
-class Substr extends ProcessPluginBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
-    $start = isset($this->configuration['start']) ? $this->configuration['start'] : 0;
-    if (!is_int($start)) {
-      throw new MigrateException('The start position configuration value should be an integer. Omit this key to capture from the beginning of the string.');
-    }
-    $length = isset($this->configuration['length']) ? $this->configuration['length'] : NULL;
-    if (!is_null($length) && !is_int($length)) {
-      throw new MigrateException('The character length configuration value should be an integer. Omit this key to capture from the start position to the end of the string.');
-    }
-    if (!is_string($value)) {
-      throw new MigrateException('The input value must be a string.');
-    }
-
-    // Use optional start or length to return a portion of $value.
-    $new_value = Unicode::substr($value, $start, $length);
-    return $new_value;
-  }
-
-}
diff --git a/core/modules/migrate/src/Plugin/migrate/source/SourcePluginBase.php b/core/modules/migrate/src/Plugin/migrate/source/SourcePluginBase.php
index 6df555e..03f8173 100644
--- a/core/modules/migrate/src/Plugin/migrate/source/SourcePluginBase.php
+++ b/core/modules/migrate/src/Plugin/migrate/source/SourcePluginBase.php
@@ -143,7 +143,7 @@ public function __construct(array $configuration, $plugin_id, $plugin_definition
     // Set up some defaults based on the source configuration.
     $this->cacheCounts = !empty($configuration['cache_counts']);
     $this->skipCount = !empty($configuration['skip_count']);
-    $this->cacheKey = !empty($configuration['cache_key']) ? $configuration['cache_key'] : NULL;
+    $this->cacheKey = !empty($configuration['cache_key']) ? !empty($configuration['cache_key']) : NULL;
     $this->trackChanges = !empty($configuration['track_changes']) ? $configuration['track_changes'] : FALSE;
     $this->idMap = $this->migration->getIdMap();
 
diff --git a/core/modules/migrate/tests/modules/migrate_external_translated_test/migrate_external_translated_test.info.yml b/core/modules/migrate/tests/modules/migrate_external_translated_test/migrate_external_translated_test.info.yml
deleted file mode 100644
index 065d512..0000000
--- a/core/modules/migrate/tests/modules/migrate_external_translated_test/migrate_external_translated_test.info.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: 'Migration external translated test'
-type: module
-package: Testing
-version: VERSION
-core: 8.x
-dependencies:
-  - node
-  - migrate
diff --git a/core/modules/migrate/tests/modules/migrate_external_translated_test/migrations/migrate.migration.external_translated_test_node.yml b/core/modules/migrate/tests/modules/migrate_external_translated_test/migrations/migrate.migration.external_translated_test_node.yml
deleted file mode 100644
index f643b60..0000000
--- a/core/modules/migrate/tests/modules/migrate_external_translated_test/migrations/migrate.migration.external_translated_test_node.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-id: external_translated_test_node
-label: External translated content
-source:
-  plugin: migrate_external_translated_test
-  default_lang: true
-  constants:
-    type: external_test
-process:
-  type: constants/type
-  title: title
-  langcode:
-    plugin: static_map
-    source: lang
-    map:
-      English: en
-      French: fr
-      Spanish: es
-destination:
-  plugin: entity:node
diff --git a/core/modules/migrate/tests/modules/migrate_external_translated_test/migrations/migrate.migration.external_translated_test_node_translation.yml b/core/modules/migrate/tests/modules/migrate_external_translated_test/migrations/migrate.migration.external_translated_test_node_translation.yml
deleted file mode 100644
index ff29084..0000000
--- a/core/modules/migrate/tests/modules/migrate_external_translated_test/migrations/migrate.migration.external_translated_test_node_translation.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-id: external_translated_test_node_translation
-label: External translated content translations
-source:
-  plugin: migrate_external_translated_test
-  default_lang: false
-  constants:
-    type: external_test
-process:
-  nid:
-    plugin: migration
-    source: name
-    migration: external_translated_test_node
-  type: constants/type
-  title: title
-  langcode:
-    plugin: static_map
-    source: lang
-    map:
-      English: en
-      French: fr
-      Spanish: es
-destination:
-  plugin: entity:node
-  translations: true
-migration_dependencies:
-  required:
-    - external_translated_test_node
diff --git a/core/modules/migrate/tests/modules/migrate_external_translated_test/src/Plugin/migrate/source/MigrateExternalTranslatedTestSource.php b/core/modules/migrate/tests/modules/migrate_external_translated_test/src/Plugin/migrate/source/MigrateExternalTranslatedTestSource.php
deleted file mode 100644
index ceda6d8..0000000
--- a/core/modules/migrate/tests/modules/migrate_external_translated_test/src/Plugin/migrate/source/MigrateExternalTranslatedTestSource.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Drupal\migrate_external_translated_test\Plugin\migrate\source;
-
-use Drupal\migrate\Plugin\migrate\source\SourcePluginBase;
-
-/**
- * A simple migrate source for our tests.
- *
- * @MigrateSource(
- *   id = "migrate_external_translated_test"
- * )
- */
-class MigrateExternalTranslatedTestSource extends SourcePluginBase {
-
-  /**
-   * The data to import.
-   *
-   * @var array
-   */
-  protected $import = [
-    ['name' => 'cat', 'title' => 'Cat', 'lang' => 'English'],
-    ['name' => 'cat', 'title' => 'Chat', 'lang' => 'French'],
-    ['name' => 'cat', 'title' => 'Gato', 'lang' => 'Spanish'],
-    ['name' => 'dog', 'title' => 'Dog', 'lang' => 'English'],
-    ['name' => 'dog', 'title' => 'Chien', 'lang' => 'French'],
-    ['name' => 'monkey', 'title' => 'Monkey', 'lang' => 'English'],
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  public function fields() {
-    return [
-      'name' => $this->t('Unique name'),
-      'title' => $this->t('Title'),
-      'lang' => $this->t('Language'),
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function __toString() {
-    return '';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getIds() {
-    $ids['name']['type'] = 'string';
-    if (!$this->configuration['default_lang']) {
-      $ids['lang']['type'] = 'string';
-    }
-    return $ids;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function initializeIterator() {
-    $data = [];
-
-    // Keep the rows with the right languages.
-    $want_default = $this->configuration['default_lang'];
-    foreach ($this->import as $row) {
-      $is_english = $row['lang'] == 'English';
-      if ($want_default == $is_english) {
-        $data[] = $row;
-      }
-    }
-
-    return new \ArrayIterator($data);
-  }
-
-}
diff --git a/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.node_template.yml b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.node_template.yml
new file mode 100644
index 0000000..6eead8b
--- /dev/null
+++ b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.node_template.yml
@@ -0,0 +1,10 @@
+id: node_template
+label: Template test - node
+migration_tags:
+  - Template Test
+source:
+  plugin: empty
+process:
+  src: barfoo
+destination:
+  plugin: entity:node
diff --git a/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.other_template.yml b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.other_template.yml
new file mode 100644
index 0000000..3d974f0
--- /dev/null
+++ b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.other_template.yml
@@ -0,0 +1,10 @@
+id: other_template
+label: Template with a different tag
+migration_tags:
+  - Different Template Test
+source:
+  plugin: empty
+process:
+  src: raboof
+destination:
+  plugin: entity:user
diff --git a/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.url_template.yml b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.url_template.yml
new file mode 100644
index 0000000..0204046
--- /dev/null
+++ b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.url_template.yml
@@ -0,0 +1,10 @@
+id: url_template
+label: Template test - URL
+migration_tags:
+  - Template Test
+source:
+  plugin: empty
+process:
+  src: foobar
+destination:
+  plugin: url_alias
diff --git a/core/modules/migrate/tests/modules/template_test/template_test.info.yml b/core/modules/migrate/tests/modules/template_test/template_test.info.yml
new file mode 100644
index 0000000..d396c63
--- /dev/null
+++ b/core/modules/migrate/tests/modules/template_test/template_test.info.yml
@@ -0,0 +1,5 @@
+name: 'Migration template test'
+type: module
+package: Testing
+version: VERSION
+core: 8.x
diff --git a/core/modules/migrate/tests/src/Kernel/MigrateBundleTest.php b/core/modules/migrate/tests/src/Kernel/MigrateBundleTest.php
deleted file mode 100644
index 7463295..0000000
--- a/core/modules/migrate/tests/src/Kernel/MigrateBundleTest.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-
-namespace Drupal\Tests\migrate\Kernel;
-
-use Drupal\migrate\MigrateExecutable;
-use Drupal\taxonomy\Entity\Term;
-use Drupal\taxonomy\Entity\Vocabulary;
-
-/**
- * Tests setting of bundles on content entity migrations.
- *
- * @group migrate
- */
-class MigrateBundleTest extends MigrateTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = ['taxonomy', 'text'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    $this->installEntitySchema('taxonomy_vocabulary');
-    $this->installEntitySchema('taxonomy_term');
-    $this->installConfig(['taxonomy']);
-    // Set up two vocabularies (taxonomy bundles).
-    Vocabulary::create(['vid' => 'tags', 'name' => 'Tags']);
-    Vocabulary::create(['vid' => 'categories', 'name' => 'Categories']);
-  }
-
-  /**
-   * Tests setting the bundle in the destination.
-   */
-  public function testDestinationBundle() {
-    $term_data_rows = [
-      ['id' => 1, 'name' => 'Category 1'],
-    ];
-    $ids = ['id' => ['type' => 'integer']];
-    $definition = [
-      'id' => 'terms',
-      'migration_tags' => ['Bundle test'],
-      'source' => [
-        'plugin' => 'embedded_data',
-        'data_rows' => $term_data_rows,
-        'ids' => $ids,
-      ],
-      'process' => [
-        'tid' => 'id',
-        'name' => 'name',
-      ],
-      'destination' => [
-        'plugin' => 'entity:taxonomy_term',
-        'default_bundle' => 'categories',
-      ],
-      'migration_dependencies' => [],
-    ];
-
-    $term_migration = \Drupal::service('plugin.manager.migration')->createStubMigration($definition);
-
-    // Import and validate the term entity was created with the correct bundle.
-    $term_executable = new MigrateExecutable($term_migration, $this);
-    $term_executable->import();
-    /** @var Term $term */
-    $term = Term::load(1);
-    $this->assertEquals($term->bundle(), 'categories');
-  }
-
-  /**
-   * Tests setting the bundle in the process pipeline.
-   */
-  public function testProcessBundle() {
-    $term_data_rows = [
-      ['id' => 1, 'vocab' => 'categories', 'name' => 'Category 1'],
-      ['id' => 2, 'vocab' => 'tags', 'name' => 'Tag 1'],
-    ];
-    $ids = ['id' => ['type' => 'integer']];
-    $definition = [
-      'id' => 'terms',
-      'migration_tags' => ['Bundle test'],
-      'source' => [
-        'plugin' => 'embedded_data',
-        'data_rows' => $term_data_rows,
-        'ids' => $ids,
-      ],
-      'process' => [
-        'tid' => 'id',
-        'vid' => 'vocab',
-        'name' => 'name',
-      ],
-      'destination' => [
-        'plugin' => 'entity:taxonomy_term',
-      ],
-      'migration_dependencies' => [],
-    ];
-
-    $term_migration = \Drupal::service('plugin.manager.migration')->createStubMigration($definition);
-
-    // Import and validate the term entities were created with the correct bundle.
-    $term_executable = new MigrateExecutable($term_migration, $this);
-    $term_executable->import();
-    /** @var Term $term */
-    $term = Term::load(1);
-    $this->assertEquals($term->bundle(), 'categories');
-    $term = Term::load(2);
-    $this->assertEquals($term->bundle(), 'tags');
-  }
-
-  /**
-   * Tests setting bundles both in process and destination.
-   */
-  public function testMixedBundles() {
-    $term_data_rows = [
-      ['id' => 1, 'vocab' => 'categories', 'name' => 'Category 1'],
-      ['id' => 2, 'name' => 'Tag 1'],
-    ];
-    $ids = ['id' => ['type' => 'integer']];
-    $definition = [
-      'id' => 'terms',
-      'migration_tags' => ['Bundle test'],
-      'source' => [
-        'plugin' => 'embedded_data',
-        'data_rows' => $term_data_rows,
-        'ids' => $ids,
-      ],
-      'process' => [
-        'tid' => 'id',
-        'vid' => 'vocab',
-        'name' => 'name',
-      ],
-      'destination' => [
-        'plugin' => 'entity:taxonomy_term',
-        // When no vocab is provided, the destination bundle is applied.
-        'default_bundle' => 'tags',
-      ],
-      'migration_dependencies' => [],
-    ];
-
-    $term_migration = \Drupal::service('plugin.manager.migration')->createStubMigration($definition);
-
-    // Import and validate the term entities were created with the correct bundle.
-    $term_executable = new MigrateExecutable($term_migration, $this);
-    $term_executable->import();
-    /** @var Term $term */
-    $term = Term::load(1);
-    $this->assertEquals($term->bundle(), 'categories');
-    $term = Term::load(2);
-    $this->assertEquals($term->bundle(), 'tags');
-  }
-
-}
diff --git a/core/modules/migrate/tests/src/Kernel/MigrateEntityContentBaseTest.php b/core/modules/migrate/tests/src/Kernel/MigrateEntityContentBaseTest.php
deleted file mode 100644
index 352b660..0000000
--- a/core/modules/migrate/tests/src/Kernel/MigrateEntityContentBaseTest.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-
-namespace Drupal\Tests\migrate\Kernel;
-
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\language\Entity\ConfigurableLanguage;
-use Drupal\migrate\Plugin\migrate\destination\EntityContentBase;
-use Drupal\migrate\Plugin\MigrateIdMapInterface;
-use Drupal\migrate\Plugin\MigrationInterface;
-use Drupal\migrate\Row;
-
-/**
- * Tests the EntityContentBase destination.
- *
- * @group migrate
- */
-class MigrateEntityContentBaseTest extends KernelTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = ['migrate', 'user', 'language', 'entity_test'];
-
-  /**
-   * The storage for entity_test_mul.
-   *
-   * @var \Drupal\Core\Entity\ContentEntityStorageInterface
-   */
-  protected $storage;
-
-  /**
-   * A content migrate destination.
-   *
-   * @var \Drupal\migrate\Plugin\MigrateDestinationInterface
-   */
-  protected $destination;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    $this->installEntitySchema('entity_test_mul');
-
-    ConfigurableLanguage::createFromLangcode('en')->save();
-    ConfigurableLanguage::createFromLangcode('fr')->save();
-
-    $this->storage = $this->container->get('entity.manager')->getStorage('entity_test_mul');
-  }
-
-  /**
-   * Check the existing translations of an entity.
-   *
-   * @param int $id
-   *   The entity ID.
-   * @param string $default
-   *   The expected default translation language code.
-   * @param string[] $others
-   *   The expected other translation language codes.
-   */
-  protected function assertTranslations($id, $default, $others = []) {
-    $entity = $this->storage->load($id);
-    $this->assertTrue($entity, "Entity exists");
-    $this->assertEquals($default, $entity->language()->getId(), "Entity default translation");
-    $translations = array_keys($entity->getTranslationLanguages(FALSE));
-    sort($others);
-    sort($translations);
-    $this->assertEquals($others, $translations, "Entity translations");
-  }
-
-  /**
-   * Create the destination plugin to test.
-   *
-   * @param array $configuration
-   *   The plugin configuration.
-   */
-  protected function createDestination(array $configuration) {
-    $this->destination = new EntityContentBase(
-      $configuration,
-      'fake_plugin_id',
-      [],
-      $this->getMock(MigrationInterface::class),
-      $this->storage,
-      [],
-      $this->container->get('entity.manager'),
-      $this->container->get('plugin.manager.field.field_type')
-    );
-  }
-
-  /**
-   * Test importing and rolling back translated entities.
-   */
-  public function testTranslated() {
-    // Create a destination.
-    $this->createDestination(['translations' => TRUE]);
-
-    // Create some pre-existing entities.
-    $this->storage->create(['id' => 1, 'langcode' => 'en'])->save();
-    $this->storage->create(['id' => 2, 'langcode' => 'fr'])->save();
-    $translated = $this->storage->create(['id' => 3, 'langcode' => 'en']);
-    $translated->save();
-    $translated->addTranslation('fr')->save();
-
-    // Pre-assert that things are as expected.
-    $this->assertTranslations(1, 'en');
-    $this->assertTranslations(2, 'fr');
-    $this->assertTranslations(3, 'en', ['fr']);
-    $this->assertFalse($this->storage->load(4));
-
-    $destination_rows = [
-      // Existing default translation.
-      ['id' => 1, 'langcode' => 'en', 'action' => MigrateIdMapInterface::ROLLBACK_PRESERVE],
-      // New translation.
-      ['id' => 2, 'langcode' => 'en', 'action' => MigrateIdMapInterface::ROLLBACK_DELETE],
-      // Existing non-default translation.
-      ['id' => 3, 'langcode' => 'fr', 'action' => MigrateIdMapInterface::ROLLBACK_PRESERVE],
-      // Brand new row.
-      ['id' => 4, 'langcode' => 'fr', 'action' => MigrateIdMapInterface::ROLLBACK_DELETE],
-    ];
-    $rollback_actions = [];
-
-    // Import some rows.
-    foreach ($destination_rows as $idx => $destination_row) {
-      $row = new Row([], []);
-      foreach ($destination_row as $key => $value) {
-        $row->setDestinationProperty($key, $value);
-      }
-      $this->destination->import($row);
-
-      // Check that the rollback action is correct, and save it.
-      $this->assertEquals($destination_row['action'], $this->destination->rollbackAction());
-      $rollback_actions[$idx] = $this->destination->rollbackAction();
-    }
-
-    $this->assertTranslations(1, 'en');
-    $this->assertTranslations(2, 'fr', ['en']);
-    $this->assertTranslations(3, 'en', ['fr']);
-    $this->assertTranslations(4, 'fr');
-
-    // Rollback the rows.
-    foreach ($destination_rows as $idx => $destination_row) {
-      if ($rollback_actions[$idx] == MigrateIdMapInterface::ROLLBACK_DELETE) {
-        $this->destination->rollback($destination_row);
-      }
-    }
-
-    // No change, update of existing translation.
-    $this->assertTranslations(1, 'en');
-    // Remove added translation.
-    $this->assertTranslations(2, 'fr');
-    // No change, update of existing translation.
-    $this->assertTranslations(3, 'en', ['fr']);
-    // No change, can't remove default translation.
-    $this->assertTranslations(4, 'fr');
-  }
-
-}
diff --git a/core/modules/migrate/tests/src/Kernel/MigrateExternalTranslatedTest.php b/core/modules/migrate/tests/src/Kernel/MigrateExternalTranslatedTest.php
deleted file mode 100644
index ce9c013..0000000
--- a/core/modules/migrate/tests/src/Kernel/MigrateExternalTranslatedTest.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-namespace Drupal\Tests\migrate\Kernel;
-
-use Drupal\language\Entity\ConfigurableLanguage;
-use Drupal\migrate\MigrateExecutable;
-use Drupal\node\Entity\NodeType;
-
-/**
- * Tests migrating non-Drupal translated content.
- *
- * Ensure it's possible to migrate in translations, even if there's no nid or
- * tnid property on the source.
- *
- * @group migrate
- */
-class MigrateExternalTranslatedTest extends MigrateTestBase {
-
-  /**
-   * {@inheritdoc}
-   *
-   * @todo: Remove migrate_drupal when https://www.drupal.org/node/2560795 is
-   * fixed.
-   */
-  public static $modules = ['system', 'user', 'language', 'node', 'field', 'migrate_drupal', 'migrate_external_translated_test'];
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setUp() {
-    parent::setUp();
-    $this->installSchema('system', ['sequences']);
-    $this->installSchema('node', array('node_access'));
-    $this->installEntitySchema('user');
-    $this->installEntitySchema('node');
-
-    // Create some languages.
-    ConfigurableLanguage::createFromLangcode('en')->save();
-    ConfigurableLanguage::createFromLangcode('fr')->save();
-    ConfigurableLanguage::createFromLangcode('es')->save();
-
-    // Create a content type.
-    NodeType::create([
-      'type' => 'external_test',
-      'name' => 'Test node type',
-    ])->save();
-  }
-
-  /**
-   * Test importing and rolling back our data.
-   */
-  public function testMigrations() {
-    /** @var \Drupal\Core\Entity\ContentEntityStorageInterface $storage */
-    $storage = $this->container->get('entity.manager')->getStorage('node');
-    $this->assertEquals(0, count($storage->loadMultiple()));
-
-    // Run the migrations.
-    $migration_ids = ['external_translated_test_node', 'external_translated_test_node_translation'];
-    $this->executeMigrations($migration_ids);
-    $this->assertEquals(3, count($storage->loadMultiple()));
-
-    $node = $storage->load(1);
-    $this->assertEquals('en', $node->language()->getId());
-    $this->assertEquals('Cat', $node->title->value);
-    $this->assertEquals('Chat', $node->getTranslation('fr')->title->value);
-    $this->assertEquals('Gato', $node->getTranslation('es')->title->value);
-
-    $node = $storage->load(2);
-    $this->assertEquals('en', $node->language()->getId());
-    $this->assertEquals('Dog', $node->title->value);
-    $this->assertEquals('Chien', $node->getTranslation('fr')->title->value);
-    $this->assertFalse($node->hasTranslation('es'), "No spanish translation for node 2");
-
-    $node = $storage->load(3);
-    $this->assertEquals('en', $node->language()->getId());
-    $this->assertEquals('Monkey', $node->title->value);
-    $this->assertFalse($node->hasTranslation('fr'), "No french translation for node 3");
-    $this->assertFalse($node->hasTranslation('es'), "No spanish translation for node 3");
-
-    $this->assertNull($storage->load(4), "No node 4 migrated");
-
-    // Roll back the migrations.
-    foreach ($migration_ids as $migration_id) {
-      $migration = $this->getMigration($migration_id);
-      $executable = new MigrateExecutable($migration, $this);
-      $executable->rollback();
-    }
-
-    $this->assertEquals(0, count($storage->loadMultiple()));
-  }
-
-}
diff --git a/core/modules/migrate/tests/src/Kernel/Plugin/MigrationTest.php b/core/modules/migrate/tests/src/Kernel/Plugin/MigrationTest.php
index 83bf24d..a380dac 100644
--- a/core/modules/migrate/tests/src/Kernel/Plugin/MigrationTest.php
+++ b/core/modules/migrate/tests/src/Kernel/Plugin/MigrationTest.php
@@ -27,41 +27,4 @@ public function testGetProcessPlugins() {
     $this->assertEquals([], $migration->getProcessPlugins([]));
   }
 
-  /**
-   * Tests Migration::getMigrationDependencies()
-   *
-   * @covers ::getMigrationDependencies
-   */
-  public function testGetMigrationDependencies() {
-    $migration = \Drupal::service('plugin.manager.migration')->createStubMigration([
-        'migration_dependencies' => NULL
-    ]);
-    $this->assertNotEmpty($migration->getMigrationDependencies(), 'Migration dependencies is not empty');
-  }
-
-  /**
-   * Tests Migration::getDestinationIds()
-   *
-   * @covers ::getDestinationIds
-   */
-  public function testGetDestinationIds() {
-    $migration = \Drupal::service('plugin.manager.migration')->createStubMigration(['destinationIds' => ['foo' => 'bar']]);
-    $destination_ids = $migration->getDestinationIds();
-    $this->assertNotEmpty($destination_ids, 'Destination ids are not empty');
-    $this->assertEquals(['foo' => 'bar'], $destination_ids, 'Destination ids match the expected values.');
-  }
-
-  /**
-   * Tests Migration::getTrackLastImported()
-   *
-   * @covers ::getTrackLastImported
-   * @covers ::isTrackLastImported
-   */
-  public function testGetTrackLastImported() {
-    $migration = \Drupal::service('plugin.manager.migration')->createStubMigration([]);
-    $migration->setTrackLastImported(TRUE);
-    $this->assertEquals(TRUE, $migration->getTrackLastImported());
-    $this->assertEquals(TRUE, $migration->isTrackLastImported());
-  }
-
 }
diff --git a/core/modules/migrate/tests/src/Unit/MigrateSourceTest.php b/core/modules/migrate/tests/src/Unit/MigrateSourceTest.php
index 5e2a06e..65edd55 100644
--- a/core/modules/migrate/tests/src/Unit/MigrateSourceTest.php
+++ b/core/modules/migrate/tests/src/Unit/MigrateSourceTest.php
@@ -170,25 +170,6 @@ public function testCount() {
     $this->assertEquals(-1, $source->count());
   }
 
-   /**
-   * Test that the key can be set for the count cache.
-   *
-   * @covers ::count
-   */
-  public function testCountCacheKey() {
-    // Mock the cache to validate set() receives appropriate arguments.
-    $container = new ContainerBuilder();
-    $cache = $this->getMock(CacheBackendInterface::class);
-    $cache->expects($this->any())->method('set')
-        ->with('test_key', $this->isType('int'), $this->isType('int'));
-    $container->set('cache.migrate', $cache);
-    \Drupal::setContainer($container);
-
-    // Test caching the count with a configured key works.
-    $source = $this->getSource(['cache_counts' => TRUE, 'cache_key' => 'test_key']);
-    $this->assertEquals(1, $source->count());
-  }
-
   /**
    * Test that we don't get a row if prepareRow() is false.
    */
diff --git a/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php b/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php
index a9d1313..f0e7832 100644
--- a/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php
+++ b/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php
@@ -431,123 +431,6 @@ public function testLookupDestinationIdMapping($num_source_fields, $num_destinat
   }
 
   /**
-   * Setup a database with the given rows.
-   *
-   * @param array $source_keys
-   *   The source keys for the ID map table.
-   * @param array $dest_keys
-   *   The destination keys for the ID map table.
-   * @param array $rows
-   *   An array of source and destination value arrays for the ID map table.
-   *
-   * @return \Drupal\Tests\migrate\Unit\TestSqlIdMap
-   *   An ID map instance for testing.
-   */
-  protected function setupRows($source_keys, $dest_keys, $rows) {
-    $this->database = $this->getDatabase([]);
-    $this->sourceIds = array_fill_keys($source_keys, []);
-    $this->destinationIds = array_fill_keys($dest_keys, []);
-
-    $db_keys = [];
-    foreach (array_keys($source_keys) as $i) {
-      $db_keys[] = 'sourceid' . ($i + 1);
-    }
-    foreach (array_keys($dest_keys) as $i) {
-      $db_keys[] = 'destid' . ($i + 1);
-    }
-    foreach ($rows as $row) {
-      $values = array_combine($db_keys, $row);
-      $source_values = array_slice($row, 0, count($source_keys));
-      $values['source_ids_hash'] = $this->getIdMap()->getSourceIDsHash($source_values);
-      $this->saveMap($values);
-    }
-
-    return $this->getIdMap();
-  }
-
-  /**
-   * Tests lookupDestinationIds().
-   */
-  public function testLookupDestinationIds() {
-    // Simple map with one source and one destination ID.
-    $id_map = $this->setupRows(['nid'], ['nid'], [
-      [1, 101],
-      [2, 102],
-      [3, 103],
-    ]);
-
-    // Lookup nothing, gives nothing.
-    $this->assertEquals([], $id_map->lookupDestinationIds([]));
-    // Lookup by complete non-associative list.
-    $this->assertEquals([[101]], $id_map->lookupDestinationIds([1]));
-    $this->assertEquals([[102]], $id_map->lookupDestinationIds([2]));
-    $this->assertEquals([], $id_map->lookupDestinationIds([99]));
-    // Lookup by complete associative list.
-    $this->assertEquals([[101]], $id_map->lookupDestinationIds(['nid' => 1]));
-    $this->assertEquals([[102]], $id_map->lookupDestinationIds(['nid' => 2]));
-    $this->assertEquals([], $id_map->lookupDestinationIds(['nid' => 99]));
-
-    // Map with multiple source and destination IDs.
-    $id_map = $this->setupRows(['nid', 'language'], ['nid', 'langcode'], [
-      [1, 'en', 101, 'en'],
-      [1, 'fr', 101, 'fr'],
-      [1, 'de', 101, 'de'],
-      [2, 'en', 102, 'en'],
-    ]);
-
-    // Lookup nothing, gives nothing.
-    $this->assertEquals([], $id_map->lookupDestinationIds([]));
-    // Lookup by complete non-associative list.
-    $this->assertEquals([[101, 'en']], $id_map->lookupDestinationIds([1, 'en']));
-    $this->assertEquals([[101, 'fr']], $id_map->lookupDestinationIds([1, 'fr']));
-    $this->assertEquals([[102, 'en']], $id_map->lookupDestinationIds([2, 'en']));
-    $this->assertEquals([], $id_map->lookupDestinationIds([2, 'fr']));
-    $this->assertEquals([], $id_map->lookupDestinationIds([99, 'en']));
-    // Lookup by complete associative list.
-    $this->assertEquals([[101, 'en']], $id_map->lookupDestinationIds(['nid' => 1, 'language' => 'en']));
-    $this->assertEquals([[101, 'fr']], $id_map->lookupDestinationIds(['nid' => 1, 'language' => 'fr']));
-    $this->assertEquals([[102, 'en']], $id_map->lookupDestinationIds(['nid' => 2, 'language' => 'en']));
-    $this->assertEquals([], $id_map->lookupDestinationIds(['nid' => 2, 'language' => 'fr']));
-    $this->assertEquals([], $id_map->lookupDestinationIds(['nid' => 99, 'language' => 'en']));
-    // Lookup by partial non-associative list.
-    $this->assertEquals([[101, 'en'], [101, 'fr'], [101, 'de']], $id_map->lookupDestinationIds([1]));
-    $this->assertEquals([[102, 'en']], $id_map->lookupDestinationIds([2]));
-    $this->assertEquals([], $id_map->lookupDestinationIds([99]));
-    // Lookup by partial associative list.
-    $this->assertEquals([[101, 'en'], [101, 'fr'], [101, 'de']], $id_map->lookupDestinationIds(['nid' => 1]));
-    $this->assertEquals([[102, 'en']], $id_map->lookupDestinationIds(['nid' => 2]));
-    $this->assertEquals([], $id_map->lookupDestinationIds(['nid' => 99]));
-    // Out-of-order partial associative list.
-    $this->assertEquals([[101, 'en'], [102, 'en']], $id_map->lookupDestinationIds(['language' => 'en']));
-    $this->assertEquals([[101, 'fr']], $id_map->lookupDestinationIds(['language' => 'fr']));
-    $this->assertEquals([], $id_map->lookupDestinationIds(['language' => 'zh']));
-    // Error conditions.
-    try {
-      $id_map->lookupDestinationIds([1, 2, 3]);
-      $this->fail('Too many source IDs should throw');
-    }
-    catch (MigrateException $e) {
-      $this->assertEquals("Extra unknown items in source IDs", $e->getMessage());
-    }
-    try {
-      $id_map->lookupDestinationIds(['nid' => 1, 'aaa' => '2']);
-      $this->fail('Unknown source ID key should throw');
-    }
-    catch (MigrateException $e) {
-      $this->assertEquals("Extra unknown items in source IDs", $e->getMessage());
-    }
-
-    // Verify that we are looking up by source_id_hash when all source IDs are
-    // passed in.
-    $id_map->getDatabase()->update($id_map->mapTableName())
-      ->condition('sourceid1', 1)
-      ->condition('sourceid2', 'en')
-      ->fields([TestSqlIdMap::SOURCE_IDS_HASH => uniqid()])
-      ->execute();
-    $this->assertNotEquals([[101, 'en']], $id_map->lookupDestinationIds([1, 'en']));
-  }
-
-  /**
    * Tests the getRowByDestination method.
    */
   public function testGetRowByDestination() {
diff --git a/core/modules/migrate/tests/src/Unit/MigrateTestCase.php b/core/modules/migrate/tests/src/Unit/MigrateTestCase.php
index b16fef2..705eed4 100644
--- a/core/modules/migrate/tests/src/Unit/MigrateTestCase.php
+++ b/core/modules/migrate/tests/src/Unit/MigrateTestCase.php
@@ -199,11 +199,9 @@ protected function getValue($row, $key) {
    */
   protected function retrievalAssertHelper($expected_value, $actual_value, $message) {
     if (is_array($expected_value)) {
-      // If the expected and actual values are empty, no need to array compare.
-      if (empty($expected_value && $actual_value)) {
-        return;
+      foreach ($expected_value as $k => $v) {
+        $this->retrievalAssertHelper($v, $actual_value[$k], $message . '[' . $k . ']');
       }
-      $this->assertArrayEquals($expected_value, $actual_value, $message);
     }
     else {
       $this->assertSame((string) $expected_value, (string) $actual_value, $message);
diff --git a/core/modules/migrate/tests/src/Unit/MigrationPluginManagerTest.php b/core/modules/migrate/tests/src/Unit/MigrationPluginManagerTest.php
deleted file mode 100644
index 91351cf..0000000
--- a/core/modules/migrate/tests/src/Unit/MigrationPluginManagerTest.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-
-namespace Drupal\Tests\migrate\Unit;
-
-use Drupal\migrate\Plugin\Migration;
-use Drupal\migrate\Plugin\MigrationPluginManager;
-use Drupal\Tests\UnitTestCase;
-
-/**
- * @coversDefaultClass \Drupal\migrate\Plugin\MigrationPluginManager
- * @group migrate
- */
-class MigrationPluginManagerTest extends UnitTestCase {
-
-  /**
-   * A plugin manager.
-   *
-   * @param \Drupal\migrate\Plugin\MigrationPluginManager $pluginManager
-   */
-  protected $pluginManager;
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setUp() {
-    parent::setUp();
-
-    // Get a plugin manager for testing.
-    $module_handler = $this->getMock('Drupal\Core\Extension\ModuleHandlerInterface');
-    $cache_backend = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
-    $language_manager = $this->getMock('Drupal\Core\Language\LanguageManagerInterface');
-    $this->pluginManager = new MigrationPluginManager($module_handler, $cache_backend, $language_manager);
-  }
-
-  /**
-   * Tests building dependencies for multiple migrations.
-   *
-   * @dataProvider dependencyProvider
-   */
-  public function testDependencyBuilding($migrations_data, $result_ids) {
-    $migrations = [];
-    foreach ($migrations_data as $migration_id => $migration_data) {
-      $migrations[$migration_id] = new TestMigrationMock($migration_id, $migration_data['dependencies']);
-    }
-
-    $ordered_migrations = $this->pluginManager->buildDependencyMigration($migrations, []);
-
-    // Verify results.
-    $this->assertEquals($result_ids, array_keys($ordered_migrations));
-    foreach ($migrations_data as $migration_id => $migration_data) {
-      $migration = $migrations[$migration_id];
-
-      $requirements = $migration_data['result_requirements'];
-      if (empty($requirements)) {
-        $this->assertEquals([], $migration->set);
-      }
-      else {
-        $requirements = array_combine($requirements, $requirements);
-
-        $this->assertEquals(1, count($migration->set));
-        list($set_prop, $set_requirements) = reset($migration->set);
-        $this->assertEquals('requirements', $set_prop);
-        $this->assertEquals($requirements, $set_requirements);
-      }
-    }
-  }
-
-  /**
-   * Provide dependency data for testing.
-   */
-  public function dependencyProvider() {
-    return [
-      // Just one migration, with no dependencies.
-      [
-        [
-          'm1' => [
-            'dependencies' => [],
-            'result_requirements' => [],
-          ],
-        ],
-        ['m1'],
-      ],
-
-      // Just one migration, with required dependencies.
-      [
-        [
-          'm1' => [
-            'dependencies' => [
-              'required' => ['required1', 'required2'],
-            ],
-            'result_requirements' => ['required1', 'required2'],
-          ],
-        ],
-        ['m1'],
-      ],
-
-      // Just one migration, with optional dependencies.
-      [
-        [
-          'm1' => [
-            'dependencies' => [
-              'optional' => ['optional1'],
-            ],
-            'result_requirements' => [],
-          ],
-        ],
-        ['m1'],
-      ],
-
-      // Multiple migrations.
-      [
-        [
-          'm1' => [
-            'dependencies' => [
-              'required' => ['required1', 'required2'],
-            ],
-            'result_requirements' => ['required1', 'required2'],
-          ],
-          'm2' => [
-            'dependencies' => [
-              'optional' => ['optional1'],
-            ],
-            'result_requirements' => [],
-          ],
-        ],
-        ['m1', 'm2'],
-      ],
-
-      // Multiple migrations, reordered due to optional requirement.
-      [
-        [
-          'm1' => [
-            'dependencies' => [
-              'optional' => ['m2'],
-            ],
-            'result_requirements' => [],
-          ],
-          'm2' => [
-            'dependencies' => [
-              'optional' => ['optional1'],
-            ],
-            'result_requirements' => [],
-          ],
-        ],
-        ['m2', 'm1'],
-      ],
-
-      // Ensure that optional requirements aren't turned into required ones,
-      // if the last migration has no optional deps.
-      [
-        [
-          'm1' => [
-            'dependencies' => [
-              'optional' => ['m2'],
-            ],
-            'result_requirements' => [],
-          ],
-          'm2' => [
-            'dependencies' => [],
-            'result_requirements' => [],
-          ],
-        ],
-        ['m2', 'm1'],
-      ],
-    ];
-  }
-
-}
-
-/**
- * A mock migration plugin.
- *
- * Why are we using a custom class here?
- *
- * 1. The function buildDependencyMigration() calls $migration->set(), which
- * is not actually in MigrationInterface.
- *
- * 2. The function buildDependencyMigration() calls array_multisort on an
- * array with mocks in it. PHPUnit mocks are really complex, and if PHP tries
- * to compare them it will die with "Nesting level too deep".
- */
-class TestMigrationMock extends Migration {
-  /**
-   * The values passed into set().
-   *
-   * @var array $set
-   */
-  public $set = [];
-
-  /**
-   * TestMigrationMock constructor.
-   */
-  public function __construct($id, $dependencies) {
-    // Intentionally ignore parent constructor.
-    $this->id = $id;
-    $this->dependencies = $dependencies;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function id() {
-    return $this->id;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getMigrationDependencies() {
-    return $this->dependencies;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function set($prop, $value) {
-    $this->set[] = func_get_args();
-  }
-
-}
diff --git a/core/modules/migrate/tests/src/Unit/MigrationStorageTest.php b/core/modules/migrate/tests/src/Unit/MigrationStorageTest.php
new file mode 100644
index 0000000..3ff44fa
--- /dev/null
+++ b/core/modules/migrate/tests/src/Unit/MigrationStorageTest.php
@@ -0,0 +1,118 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Tests\migrate\Unit\MigrationStorageTest.
+ */
+
+namespace Drupal\Tests\migrate\Unit;
+
+use Drupal\Component\Uuid\UuidInterface;
+use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Entity\Query\QueryFactoryInterface;
+use Drupal\Core\Entity\Query\QueryInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
+use Drupal\migrate\MigrationStorage;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * @coversDefaultClass \Drupal\migrate\MigrationStorage
+ * @group migrate
+ */
+class MigrationStorageTest extends UnitTestCase {
+
+  /**
+   * The migration storage.
+   *
+   * @var \Drupal\Tests\migrate\Unit\TestMigrationStorage
+   */
+  protected $storage;
+
+  /**
+   * The storage query.
+   *
+   * @var \Drupal\Core\Entity\Query\QueryInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $query;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    $this->query = $this->getMock(QueryInterface::class);
+    $this->query->method('condition')
+      ->willReturnSelf();
+
+    $query_factory = $this->getMock(QueryFactoryInterface::class);
+    $query_factory->method('get')
+      ->willReturn($this->query);
+
+    $this->storage = new TestMigrationStorage(
+      $this->getMock(EntityTypeInterface::class),
+      $this->getMock(ConfigFactoryInterface::class),
+      $this->getMock(UuidInterface::class),
+      $this->getMock(LanguageManagerInterface::class),
+      $query_factory
+    );
+  }
+
+  /**
+   * Tests getVariantIds() when variants exist.
+   *
+   * @covers ::getVariantIds
+   */
+  public function testGetVariantIdsWithVariants() {
+    $this->query->method('execute')
+      ->willReturn(['d6_node__page', 'd6_node__article']);
+
+    $ids = $this->storage->getVariantIds(['d6_node:*', 'd6_user']);
+    $this->assertSame(['d6_node__page', 'd6_node__article', 'd6_user'], $ids);
+  }
+
+  /**
+   * Tests getVariantIds() when no variants exist.
+   *
+   * @covers ::getVariantIds
+   */
+  public function testGetVariantIdsNoVariants() {
+    $this->query->method('execute')
+      ->willReturn([]);
+
+    $ids = $this->storage->getVariantIds(['d6_node:*', 'd6_user']);
+    $this->assertSame(['d6_user'], $ids);
+  }
+
+  /**
+   * Tests getVariantIds().
+   *
+   * This tests getVariantIds() when no variants exist and there are no static
+   * (non-variant) dependencies.
+   *
+   * @covers ::getVariantIds
+   */
+  public function testGetVariantIdsNoVariantsOrStaticDependencies() {
+    $this->query->method('execute')
+      ->willReturn([]);
+
+    $ids = $this->storage->getVariantIds(['d6_node:*', 'd6_node_revision:*']);
+    $this->assertSame([], $ids);
+  }
+
+}
+
+/**
+ * Test version of \Drupal\migrate\MigrationStorage.
+ *
+ * This class exposes protected methods for testing.
+ */
+class TestMigrationStorage extends MigrationStorage {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getVariantIds(array $ids) {
+    return parent::getVariantIds($ids);
+  }
+
+}
diff --git a/core/modules/migrate/tests/src/Unit/Plugin/migrate/destination/EntityContentBaseTest.php b/core/modules/migrate/tests/src/Unit/Plugin/migrate/destination/EntityContentBaseTest.php
index 33aec58..da20b49 100644
--- a/core/modules/migrate/tests/src/Unit/Plugin/migrate/destination/EntityContentBaseTest.php
+++ b/core/modules/migrate/tests/src/Unit/Plugin/migrate/destination/EntityContentBaseTest.php
@@ -8,7 +8,6 @@
 namespace Drupal\Tests\migrate\Unit\Plugin\migrate\destination;
 
 use Drupal\Core\Entity\ContentEntityInterface;
-use Drupal\Core\Entity\ContentEntityType;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Field\FieldTypePluginManagerInterface;
@@ -98,33 +97,6 @@ public function testImportEntityLoadFailure() {
     $destination->import(new Row([], []));
   }
 
-  /**
-   * Test that translation destination fails for untranslatable entities.
-   *
-   * @expectedException \Drupal\migrate\MigrateException
-   * @expectedExceptionMessage This entity type does not support translation
-   */
-  public function testUntranslatable() {
-    // An entity type without a language.
-    $entity_type = $this->prophesize(ContentEntityType::class);
-    $entity_type->getKey('langcode')->willReturn('');
-    $entity_type->getKey('id')->willReturn('id');
-
-    $this->storage->getEntityType()->willReturn($entity_type->reveal());
-
-    $destination = new EntityTestDestination(
-      [ 'translations' => TRUE ],
-      '',
-      [],
-      $this->migration->reveal(),
-      $this->storage->reveal(),
-      [],
-      $this->entityManager->reveal(),
-      $this->prophesize(FieldTypePluginManagerInterface::class)->reveal()
-    );
-    $destination->getIds();
-  }
-
 }
 
 /**
diff --git a/core/modules/migrate/tests/src/Unit/process/MigrationTest.php b/core/modules/migrate/tests/src/Unit/process/MigrationTest.php
index 4eb52da..b005fca 100644
--- a/core/modules/migrate/tests/src/Unit/process/MigrationTest.php
+++ b/core/modules/migrate/tests/src/Unit/process/MigrationTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\Tests\migrate\Unit\process;
 
-use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Plugin\migrate\process\Migration;
 use Drupal\migrate\Plugin\MigrateDestinationInterface;
@@ -87,51 +86,4 @@ public function testTransformWithStubbing() {
     $this->assertEquals(2, $result);
   }
 
-  /**
-   * Tests that processing is skipped when the input value is empty.
-  *
-   * @expectedException \Drupal\migrate\MigrateSkipProcessException
-   */
-  public function testSkipOnEmpty() {
-    $migration_plugin = $this->prophesize(MigrationInterface::class);
-    $migration_plugin_manager = $this->prophesize(MigrationPluginManagerInterface::class);
-    $process_plugin_manager = $this->prophesize(MigratePluginManager::class);
-
-    $configuration = [
-      'migration' => 'foobaz',
-    ];
-    $migration_plugin->id()->willReturn(uniqid());
-    $migration = new Migration($configuration, 'migration', [], $migration_plugin->reveal(), $migration_plugin_manager->reveal(), $process_plugin_manager->reveal());
-    $migration->transform(0, $this->migrateExecutable, $this->row, 'foo');
-  }
-
-  /**
-   * Tests a successful lookup.
-   */
-  public function testSuccessfulLookup() {
-    $migration_plugin = $this->prophesize(MigrationInterface::class);
-    $migration_plugin_manager = $this->prophesize(MigrationPluginManagerInterface::class);
-    $process_plugin_manager = $this->prophesize(MigratePluginManager::class);
-
-    $configuration = [
-      'migration' => 'foobaz',
-    ];
-    $migration_plugin->id()->willReturn(uniqid());
-
-    $id_map = $this->prophesize(MigrateIdMapInterface::class);
-    $id_map->lookupDestinationId([1])->willReturn([3]);
-    $migration_plugin->getIdMap()->willReturn($id_map->reveal());
-
-    $migration_plugin_manager->createInstances(['foobaz'])
-      ->willReturn(['foobaz' => $migration_plugin->reveal()]);
-
-    $migrationStorage = $this->prophesize(EntityStorageInterface::class);
-    $migrationStorage
-      ->loadMultiple(['foobaz'])
-      ->willReturn([$migration_plugin->reveal()]);
-
-    $migration = new Migration($configuration, 'migration', [], $migration_plugin->reveal(), $migration_plugin_manager->reveal(), $process_plugin_manager->reveal());
-    $this->assertSame(3, $migration->transform(1, $this->migrateExecutable, $this->row, 'foo'));
-  }
-
 }
diff --git a/core/modules/migrate/tests/src/Unit/process/SubstrTest.php b/core/modules/migrate/tests/src/Unit/process/SubstrTest.php
deleted file mode 100644
index fb84509..0000000
--- a/core/modules/migrate/tests/src/Unit/process/SubstrTest.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-namespace Drupal\Tests\migrate\Unit\process;
-
-use Drupal\migrate\Plugin\migrate\process\Substr;
-
-/**
- * Tests the substr plugin.
- *
- * @coversDefaultClass \Drupal\migrate\Plugin\migrate\process\Substr
- *
- * @group migrate
- */
-class SubstrTest extends MigrateProcessTestCase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-  }
-
-  /**
-   * Tests Substr plugin based on providerTestSubstr() values.
-   *
-   * @dataProvider providerTestSubstr
-   */
-  public function testSubstr($start = NULL, $length = NULL, $expected = NULL) {
-    $configuration['start'] = $start;
-    $configuration['length'] = $length;
-    $this->plugin = new Substr($configuration, 'map', []);
-    $value = $this->plugin->transform('Captain Janeway', $this->migrateExecutable, $this->row, 'destinationproperty');
-    $this->assertSame($expected, $value);
-  }
-
-  /**
-   * Data provider for testSubstr().
-   */
-  public function providerTestSubstr() {
-    return [
-      // Tests with valid start and length values.
-      [0, 7, 'Captain'],
-      // Tests with valid start > 0 and valid length.
-      [6, 3, 'n J'],
-      // Tests with valid start < 0 and valid length.
-      [-7, 4, 'Jane'],
-      // Tests without start value and valid length value.
-      [NULL, 7, 'Captain'],
-      // Tests with valid start value and no length value.
-      [1, NULL, 'aptain Janeway'],
-      // Tests without both start and length values.
-      [NULL, NULL, 'Captain Janeway'],
-    ];
-  }
-
-  /**
-   * Tests invalid input type.
-   *
-   * @expectedException \Drupal\migrate\MigrateException
-   * @expectedExceptionMessage The input value must be a string.
-   */
-  public function testSubstrFail() {
-    $configuration = [];
-    $this->plugin = new Substr($configuration, 'map', []);
-    $this->plugin->transform(['Captain Janeway'], $this->migrateExecutable, $this->row, 'destinationproperty');
-  }
-
-  /**
-   * Tests that the start parameter is an integer.
-   *
-   * @expectedException \Drupal\migrate\MigrateException
-   * @expectedExceptionMessage The start position configuration value should be an integer. Omit this key to capture from the beginning of the string.
-   */
-  public function testStartIsString() {
-    $configuration['start'] = '2';
-    $this->plugin = new Substr($configuration, 'map', []);
-    $this->plugin->transform(['foo'], $this->migrateExecutable, $this->row, 'destinationproperty');
-  }
-
-  /**
-   * Tests that the length parameter is an integer.
-   *
-   * @expectedException \Drupal\migrate\MigrateException
-   * @expectedExceptionMessage The character length configuration value should be an integer. Omit this key to capture from the start position to the end of the string.
-   */
-  public function testLengthIsString() {
-    $configuration['length'] = '1';
-    $this->plugin = new Substr($configuration, 'map', []);
-    $this->plugin->transform(['foo'], $this->migrateExecutable, $this->row, 'destinationproperty');
-  }
-
-}
diff --git a/core/modules/migrate_drupal/migrate_drupal.services.yml b/core/modules/migrate_drupal/migrate_drupal.services.yml
index 71a0b27..2807b5f 100644
--- a/core/modules/migrate_drupal/migrate_drupal.services.yml
+++ b/core/modules/migrate_drupal/migrate_drupal.services.yml
@@ -1,6 +1,6 @@
 services:
   plugin.manager.migrate.cckfield:
-    class: Drupal\migrate_drupal\Plugin\MigrateCckFieldPluginManager
+    class: Drupal\migrate\Plugin\MigratePluginManager
     arguments:
       - cckfield
       - '@container.namespaces'
diff --git a/core/modules/migrate_drupal/src/Annotation/MigrateCckField.php b/core/modules/migrate_drupal/src/Annotation/MigrateCckField.php
index 5e5a500..39b545f 100644
--- a/core/modules/migrate_drupal/src/Annotation/MigrateCckField.php
+++ b/core/modules/migrate_drupal/src/Annotation/MigrateCckField.php
@@ -8,10 +8,9 @@
  * Defines a cckfield plugin annotation object.
  *
  * cckfield plugins are variously responsible for handling the migration of
- * CCK fields from Drupal 6 to Drupal 8, and Field API fields from Drupal 7
- * to Drupal 8. They are allowed to alter CCK-related migrations when migrations
- * are being generated, and can compute destination field types for individual
- * fields during the actual migration process.
+ * CCK fields from Drupal 6 to Drupal 8. They are allowed to alter CCK-related
+ * migrations when migrations are being generated, and can compute destination
+ * field types for individual fields during the actual migration process.
  *
  * Plugin Namespace: Plugin\migrate\cckfield
  *
@@ -20,17 +19,6 @@
 class MigrateCckField extends Plugin {
 
   /**
-   * @inheritdoc
-   */
-  public function __construct($values) {
-    parent::__construct($values);
-    // Provide default value for core property, in case it's missing.
-    if (empty($this->definition['core'])) {
-      $this->definition['core'] = [6];
-    }
-  }
-
-  /**
    * The plugin ID.
    *
    * @var string
@@ -44,11 +32,4 @@ public function __construct($values) {
    */
   public $type_map = [];
 
-  /**
-   * The Drupal core version(s) this plugin applies to.
-   *
-   * @var int[]
-   */
-  public $core = [];
-
 }
diff --git a/core/modules/migrate_drupal/src/MigrationConfigurationTrait.php b/core/modules/migrate_drupal/src/MigrationConfigurationTrait.php
deleted file mode 100644
index a7aab64..0000000
--- a/core/modules/migrate_drupal/src/MigrationConfigurationTrait.php
+++ /dev/null
@@ -1,170 +0,0 @@
-<?php
-
-namespace Drupal\migrate_drupal;
-
-use Drupal\Core\Database\Connection;
-use Drupal\Core\Database\Database;
-use Drupal\migrate\Exception\RequirementsException;
-use Drupal\migrate\Plugin\RequirementsInterface;
-
-/**
- * Configures the appropriate migrations for a given source Drupal database.
- */
-trait MigrationConfigurationTrait {
-
-  /**
-   * Gets the database connection for the source Drupal database.
-   *
-   * @param array $database
-   *   Database array representing the source Drupal database.
-   *
-   * @return \Drupal\Core\Database\Connection
-   *   The database connection for the source Drupal database.
-   */
-  protected function getConnection(array $database) {
-    // Set up the connection.
-    Database::addConnectionInfo('upgrade', 'default', $database);
-    $connection = Database::getConnection('default', 'upgrade');
-    return $connection;
-  }
-
-  /**
-   * Gets the system data from the system table of the source Drupal database.
-   *
-   * @param \Drupal\Core\Database\Connection $connection
-   *   Database connection to the source Drupal database.
-   *
-   * @return array
-   *   The system data from the system table of the source Drupal database.
-   */
-  protected function getSystemData(Connection $connection) {
-    $system_data = [];
-    try {
-      $results = $connection->select('system', 's', [
-        'fetch' => \PDO::FETCH_ASSOC,
-      ])
-        ->fields('s')
-        ->execute();
-      foreach ($results as $result) {
-        $system_data[$result['type']][$result['name']] = $result;
-      }
-    }
-    catch (\Exception $e) {
-      // The table might not exist for example in tests.
-    }
-    return $system_data;
-  }
-
-  /**
-   * Creates the necessary state entries for SqlBase::getDatabase() to work.
-   *
-   * The state entities created here have to exist before migration plugin
-   * instances are created so that derivers such as
-   * \Drupal\taxonomy\Plugin\migrate\D6TermNodeDeriver can access the source
-   * database.
-   *
-   * @param array $database
-   *   The source database settings.
-   * @param string $drupal_version
-   *   The Drupal version.
-   *
-   * @see \Drupal\migrate\Plugin\migrate\source\SqlBase::getDatabase()
-   */
-  protected function createDatabaseStateSettings(array $database, $drupal_version) {
-    $database_state['key'] = 'upgrade';
-    $database_state['database'] = $database;
-    $database_state_key = 'migrate_drupal_' . $drupal_version;
-    \Drupal::state()->set($database_state_key, $database_state);
-    \Drupal::state()->set('migrate.fallback_state_key', $database_state_key);
-  }
-
-  /**
-   * Gets the migrations for import.
-   *
-   * @param string $database_state_key
-   *   The state key.
-   * @param int $drupal_version
-   *   The version of Drupal we're getting the migrations for.
-   *
-   * @return \Drupal\migrate\Plugin\MigrationInterface[]
-   *   The migrations for import.
-   */
-  protected function getMigrations($database_state_key, $drupal_version) {
-    $version_tag = 'Drupal ' . $drupal_version;
-    $plugin_manager = \Drupal::service('plugin.manager.migration');
-    /** @var \Drupal\migrate\Plugin\Migration[] $all_migrations */
-    $all_migrations = $plugin_manager->createInstancesByTag($version_tag);
-    $migrations = [];
-    foreach ($all_migrations as $migration) {
-      try {
-        // @todo https://drupal.org/node/2681867 We should be able to validate
-        //   the entire migration at this point.
-        $source_plugin = $migration->getSourcePlugin();
-        if ($source_plugin instanceof RequirementsInterface) {
-          $source_plugin->checkRequirements();
-        }
-        $destination_plugin = $migration->getDestinationPlugin();
-        if ($destination_plugin instanceof RequirementsInterface) {
-          $destination_plugin->checkRequirements();
-        }
-        $migrations[] = $migration;
-      }
-      catch (RequirementsException $e) {
-        // Migrations which are not applicable given the source and destination
-        // site configurations (e.g., what modules are enabled) will be silently
-        // ignored.
-      }
-    }
-
-    return $migrations;
-  }
-
-  /**
-   * Determines what version of Drupal the source database contains.
-   *
-   * @param \Drupal\Core\Database\Connection $connection
-   *   The database connection object.
-   *
-   * @return int|FALSE
-   *   An integer representing the major branch of Drupal core (e.g. '6' for
-   *   Drupal 6.x), or FALSE if no valid version is matched.
-   */
-  protected function getLegacyDrupalVersion(Connection $connection) {
-    // Don't assume because a table of that name exists, that it has the columns
-    // we're querying. Catch exceptions and report that the source database is
-    // not Drupal.
-    // Drupal 5/6/7 can be detected by the schema_version in the system table.
-    if ($connection->schema()->tableExists('system')) {
-      try {
-        $version_string = $connection
-          ->query('SELECT schema_version FROM {system} WHERE name = :module', [':module' => 'system'])
-          ->fetchField();
-        if ($version_string && $version_string[0] == '1') {
-          if ((int) $version_string >= 1000) {
-            $version_string = '5';
-          }
-          else {
-            $version_string = FALSE;
-          }
-        }
-      }
-      catch (\PDOException $e) {
-        $version_string = FALSE;
-      }
-    }
-    // For Drupal 8 (and we're predicting beyond) the schema version is in the
-    // key_value store.
-    elseif ($connection->schema()->tableExists('key_value')) {
-      $result = $connection
-        ->query("SELECT value FROM {key_value} WHERE collection = :system_schema  and name = :module", [':system_schema' => 'system.schema', ':module' => 'system'])
-        ->fetchField();
-      $version_string = unserialize($result);
-    }
-    else {
-      $version_string = FALSE;
-    }
-
-    return $version_string ? substr($version_string, 0, 1) : FALSE;
-  }
-
-}
diff --git a/core/modules/migrate_drupal/src/MigrationCreationTrait.php b/core/modules/migrate_drupal/src/MigrationCreationTrait.php
index 7fa44bb..6446c72 100644
--- a/core/modules/migrate_drupal/src/MigrationCreationTrait.php
+++ b/core/modules/migrate_drupal/src/MigrationCreationTrait.php
@@ -2,12 +2,172 @@
 
 namespace Drupal\migrate_drupal;
 
+use Drupal\Core\Database\Connection;
+use Drupal\Core\Database\Database;
+use Drupal\migrate\Exception\RequirementsException;
+use Drupal\migrate\Plugin\RequirementsInterface;
 
 /**
- * @deprecated in Drupal 8.1.x, will be removed before Drupal 9.0.0. Use
- *   \Drupal\migrate_drupal\MigrationConfigurationTrait instead.
+ * Creates the appropriate migrations for a given source Drupal database.
+ *
+ * @todo https://www.drupal.org/node/2682585 The trait no longer creates
+ *   migrations.
  */
 trait MigrationCreationTrait {
-  use MigrationConfigurationTrait;
+
+  /**
+   * Gets the database connection for the source Drupal database.
+   *
+   * @param array $database
+   *   Database array representing the source Drupal database.
+   *
+   * @return \Drupal\Core\Database\Connection
+   *   The database connection for the source Drupal database.
+   */
+  protected function getConnection(array $database) {
+    // Set up the connection.
+    Database::addConnectionInfo('upgrade', 'default', $database);
+    $connection = Database::getConnection('default', 'upgrade');
+    return $connection;
+  }
+
+  /**
+   * Gets the system data from the system table of the source Drupal database.
+   *
+   * @param \Drupal\Core\Database\Connection $connection
+   *   Database connection to the source Drupal database.
+   *
+   * @return array
+   *   The system data from the system table of the source Drupal database.
+   */
+  protected function getSystemData(Connection $connection) {
+    $system_data = [];
+    try {
+      $results = $connection->select('system', 's', [
+        'fetch' => \PDO::FETCH_ASSOC,
+      ])
+        ->fields('s')
+        ->execute();
+      foreach ($results as $result) {
+        $system_data[$result['type']][$result['name']] = $result;
+      }
+    }
+    catch (\Exception $e) {
+      // The table might not exist for example in tests.
+    }
+    return $system_data;
+  }
+
+  /**
+   * Creates the necessary state entries for SqlBase::getDatabase() to work.
+   *
+   * The state entities created here have to exist before migration plugin
+   * instances are created so that derivers such as
+   * \Drupal\taxonomy\Plugin\migrate\D6TermNodeDeriver can access the source
+   * database.
+   *
+   * @param array $database
+   *   The source database settings.
+   * @param string $drupal_version
+   *   The Drupal version.
+   *
+   * @see \Drupal\migrate\Plugin\migrate\source\SqlBase::getDatabase()
+   */
+  protected function createDatabaseStateSettings(array $database, $drupal_version) {
+    $database_state['key'] = 'upgrade';
+    $database_state['database'] = $database;
+    $database_state_key = 'migrate_drupal_' . $drupal_version;
+    \Drupal::state()->set($database_state_key, $database_state);
+    \Drupal::state()->set('migrate.fallback_state_key', $database_state_key);
+  }
+
+  /**
+   * Gets the migrations for import.
+   *
+   * @param string $database_state_key
+   *   The state key.
+   * @param int $drupal_version
+   *   The version of Drupal we're getting the migrations for.
+   *
+   * @return \Drupal\migrate\Plugin\MigrationInterface[]
+   *   The migrations for import.
+   */
+  protected function getMigrations($database_state_key, $drupal_version) {
+    $version_tag = 'Drupal ' . $drupal_version;
+    $plugin_manager = \Drupal::service('plugin.manager.migration');
+    /** @var \Drupal\migrate\Plugin\Migration[] $all_migrations */
+    $all_migrations = $plugin_manager->createInstancesByTag($version_tag);
+    $migrations = [];
+    foreach ($all_migrations as $migration) {
+      try {
+        // @todo https://drupal.org/node/2681867 We should be able to validate
+        //   the entire migration at this point.
+        $source_plugin = $migration->getSourcePlugin();
+        if ($source_plugin instanceof RequirementsInterface) {
+          $source_plugin->checkRequirements();
+        }
+        $destination_plugin = $migration->getDestinationPlugin();
+        if ($destination_plugin instanceof RequirementsInterface) {
+          $destination_plugin->checkRequirements();
+        }
+        $migrations[] = $migration;
+      }
+      catch (RequirementsException $e) {
+        // Migrations which are not applicable given the source and destination
+        // site configurations (e.g., what modules are enabled) will be silently
+        // ignored.
+      }
+    }
+
+    return $migrations;
+  }
+
+  /**
+   * Determines what version of Drupal the source database contains.
+   *
+   * @param \Drupal\Core\Database\Connection $connection
+   *   The database connection object.
+   *
+   * @return int|FALSE
+   *   An integer representing the major branch of Drupal core (e.g. '6' for
+   *   Drupal 6.x), or FALSE if no valid version is matched.
+   */
+  protected function getLegacyDrupalVersion(Connection $connection) {
+    // Don't assume because a table of that name exists, that it has the columns
+    // we're querying. Catch exceptions and report that the source database is
+    // not Drupal.
+    // Drupal 5/6/7 can be detected by the schema_version in the system table.
+    if ($connection->schema()->tableExists('system')) {
+      try {
+        $version_string = $connection
+          ->query('SELECT schema_version FROM {system} WHERE name = :module', [':module' => 'system'])
+          ->fetchField();
+        if ($version_string && $version_string[0] == '1') {
+          if ((int) $version_string >= 1000) {
+            $version_string = '5';
+          }
+          else {
+            $version_string = FALSE;
+          }
+        }
+      }
+      catch (\PDOException $e) {
+        $version_string = FALSE;
+      }
+    }
+    // For Drupal 8 (and we're predicting beyond) the schema version is in the
+    // key_value store.
+    elseif ($connection->schema()->tableExists('key_value')) {
+      $result = $connection
+        ->query("SELECT value FROM {key_value} WHERE collection = :system_schema  and name = :module", [':system_schema' => 'system.schema', ':module' => 'system'])
+        ->fetchField();
+      $version_string = unserialize($result);
+    }
+    else {
+      $version_string = FALSE;
+    }
+
+    return $version_string ? substr($version_string, 0, 1) : FALSE;
+  }
 
 }
diff --git a/core/modules/migrate_drupal/src/Plugin/MigrateCckFieldPluginManager.php b/core/modules/migrate_drupal/src/Plugin/MigrateCckFieldPluginManager.php
deleted file mode 100644
index 44151cc..0000000
--- a/core/modules/migrate_drupal/src/Plugin/MigrateCckFieldPluginManager.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-namespace Drupal\migrate_drupal\Plugin;
-
-use Drupal\Component\Plugin\Exception\PluginNotFoundException;
-use Drupal\migrate\Plugin\MigratePluginManager;
-use Drupal\migrate\Plugin\MigrationInterface;
-
-/**
- * Plugin manager for migrate cckfield plugins.
- *
- * @see \Drupal\migrate_drupal\Plugin\MigrateCckFieldInterface
- * @see \Drupal\migrate\Annotation\MigrateCckField
- * @see plugin_api
- *
- * @ingroup migration
- */
-class MigrateCckFieldPluginManager extends MigratePluginManager {
-
-  /**
-   * The default version of core to use for cck field plugins.
-   *
-   * These plugins were initially only built and used for Drupal 6 fields.
-   * Having been extended for Drupal 7 with a "core" annotation, we fall back to
-   * Drupal 6 where none exists.
-   */
-  const DEFAULT_CORE_VERSION = 6;
-
-  /**
-   * {@inheritdoc}
-   */
-  public function createInstance($field_type, array $configuration = array(), MigrationInterface $migration = NULL) {
-    $core = static::DEFAULT_CORE_VERSION;
-    if (!empty($configuration['core'])) {
-      $core = $configuration['core'];
-    }
-    elseif (!empty($migration->getPluginDefinition()['migration_tags'])) {
-      foreach ($migration->getPluginDefinition()['migration_tags'] as $tag) {
-        if ($tag == 'Drupal 7') {
-          $core = 7;
-        }
-      }
-    }
-
-    foreach ($this->getDefinitions() as $plugin_id => $definition) {
-      if (in_array($core, $definition['core'])) {
-        if (array_key_exists($field_type, $definition['type_map']) || $field_type === $plugin_id) {
-          return parent::createInstance($plugin_id, $configuration, $migration);
-        }
-      }
-    }
-    throw new PluginNotFoundException($field_type);
-  }
-
-}
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/CckMigration.php b/core/modules/migrate_drupal/src/Plugin/migrate/CckMigration.php
index bffba2c..d521e0d 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/CckMigration.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/CckMigration.php
@@ -38,13 +38,6 @@ class CckMigration extends Migration implements ContainerFactoryPluginInterface
   protected $cckPluginCache;
 
   /**
-   * The cckfield plugin manager.
-   *
-   * @var \Drupal\migrate\Plugin\MigratePluginManager
-   */
-  protected $cckPluginManager;
-
-  /**
    * Constructs a CckMigration.
    *
    * @param array $configuration
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/cckfield/CckFieldPluginBase.php b/core/modules/migrate_drupal/src/Plugin/migrate/cckfield/CckFieldPluginBase.php
index d942bce..87d5457 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/cckfield/CckFieldPluginBase.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/cckfield/CckFieldPluginBase.php
@@ -10,7 +10,7 @@
 /**
  * The base class for all cck field plugins.
  *
- * @see \Drupal\migrate\Plugin\MigratePluginManager
+ * @see \Drupal\migrate_drupal\Plugin\MigratePluginManager
  * @see \Drupal\migrate_drupal\Annotation\MigrateCckField
  * @see \Drupal\migrate_drupal\Plugin\MigrateCckFieldInterface
  * @see plugin_api
diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal6.php b/core/modules/migrate_drupal/tests/fixtures/drupal6.php
index 347b2f2..1ca67a5 100644
--- a/core/modules/migrate_drupal/tests/fixtures/drupal6.php
+++ b/core/modules/migrate_drupal/tests/fixtures/drupal6.php
@@ -3089,6 +3089,24 @@
   'mysql_character_set' => 'utf8',
 ));
 
+$connection->insert('content_type_page')
+->fields(array(
+  'vid',
+  'nid',
+  'field_text_field_value',
+))
+->values(array(
+  'vid' => '1',
+  'nid' => '1',
+  'field_text_field_value' => NULL,
+))
+->values(array(
+  'vid' => '3',
+  'nid' => '1',
+  'field_text_field_value' => NULL,
+))
+->execute();
+
 $connection->schema()->createTable('content_type_story', array(
   'fields' => array(
     'nid' => array(
@@ -3402,9 +3420,9 @@
   'field_test_three_value' => '101.00',
   'field_test_identical1_value' => NULL,
   'field_test_identical2_value' => NULL,
-  'field_test_link_url' => 'node/10',
+  'field_test_link_url' => 'http://www.example.com/buy-one-upon-a-time',
   'field_test_link_title' => 'Buy it now',
-  'field_test_link_attributes' => 's:32:"a:1:{s:6:"target";s:6:"_blank";}";',
+  'field_test_link_attributes' => 'a:1:{s:6:"target";s:6:"_blank";}',
   'field_test_date_value' => NULL,
   'field_test_datestamp_value' => NULL,
   'field_test_datetime_value' => NULL,
@@ -8034,17 +8052,7 @@
 ->values(array(
   'uid' => '1',
   'nid' => '9',
-  'timestamp' => '1468384961',
-))
-->values(array(
-  'uid' => '1',
-  'nid' => '12',
-  'timestamp' => '1468384823',
-))
-->values(array(
-  'uid' => '1',
-  'nid' => '13',
-  'timestamp' => '1468384931',
+  'timestamp' => '1457655127',
 ))
 ->execute();
 
@@ -34719,7 +34727,7 @@
   'access_callback' => 'user_access',
   'access_arguments' => 'a:1:{i:0;s:24:"administer content types";}',
   'page_callback' => 'drupal_get_form',
-  'page_arguments' => 'a:2:{i:0;s:14:"node_type_form";i:1;O:8:"stdClass":14:{s:4:"type";s:7:"company";s:4:"name";s:7:"Company";s:6:"module";s:4:"node";s:11:"description";s:17:"Company node type";s:4:"help";s:0:"";s:9:"has_title";s:1:"1";s:11:"title_label";s:4:"Name";s:8:"has_body";s:1:"1";s:10:"body_label";s:11:"Description";s:14:"min_word_count";s:1:"0";s:6:"custom";s:1:"0";s:8:"modified";s:1:"1";s:6:"locked";s:1:"0";s:9:"orig_type";s:7:"company";}}',
+  'page_arguments' => 'a:2:{i:0;s:14:"node_type_form";i:1;O:8:"stdClass":14:{s:4:"type";s:7:"company";s:4:"name";s:7:"Company";s:6:"module";s:4:"node";s:11:"description";s:17:"Company node type";s:4:"help";s:0:"";s:9:"has_title";s:1:"1";s:11:"title_label";s:4:"Name";s:8:"has_body";s:1:"1";s:10:"body_label";s:11:"Description";s:14:"min_word_count";s:2:"20";s:6:"custom";s:1:"0";s:8:"modified";s:1:"0";s:6:"locked";s:1:"0";s:9:"orig_type";s:7:"company";}}',
   'fit' => '15',
   'number_parts' => '4',
   'tab_parent' => '',
@@ -34741,7 +34749,7 @@
   'access_callback' => 'user_access',
   'access_arguments' => 'a:1:{i:0;s:24:"administer content types";}',
   'page_callback' => 'drupal_get_form',
-  'page_arguments' => 'a:2:{i:0;s:24:"node_type_delete_confirm";i:1;O:8:"stdClass":14:{s:4:"type";s:7:"company";s:4:"name";s:7:"Company";s:6:"module";s:4:"node";s:11:"description";s:17:"Company node type";s:4:"help";s:0:"";s:9:"has_title";s:1:"1";s:11:"title_label";s:4:"Name";s:8:"has_body";s:1:"1";s:10:"body_label";s:11:"Description";s:14:"min_word_count";s:1:"0";s:6:"custom";s:1:"0";s:8:"modified";s:1:"1";s:6:"locked";s:1:"0";s:9:"orig_type";s:7:"company";}}',
+  'page_arguments' => 'a:2:{i:0;s:24:"node_type_delete_confirm";i:1;O:8:"stdClass":14:{s:4:"type";s:7:"company";s:4:"name";s:7:"Company";s:6:"module";s:4:"node";s:11:"description";s:17:"Company node type";s:4:"help";s:0:"";s:9:"has_title";s:1:"1";s:11:"title_label";s:4:"Name";s:8:"has_body";s:1:"1";s:10:"body_label";s:11:"Description";s:14:"min_word_count";s:2:"20";s:6:"custom";s:1:"0";s:8:"modified";s:1:"0";s:6:"locked";s:1:"0";s:9:"orig_type";s:7:"company";}}',
   'fit' => '31',
   'number_parts' => '5',
   'tab_parent' => '',
@@ -34851,7 +34859,7 @@
   'access_callback' => 'user_access',
   'access_arguments' => 'a:1:{i:0;s:24:"administer content types";}',
   'page_callback' => 'drupal_get_form',
-  'page_arguments' => 'a:2:{i:0;s:14:"node_type_form";i:1;O:8:"stdClass":14:{s:4:"type";s:7:"company";s:4:"name";s:7:"Company";s:6:"module";s:4:"node";s:11:"description";s:17:"Company node type";s:4:"help";s:0:"";s:9:"has_title";s:1:"1";s:11:"title_label";s:4:"Name";s:8:"has_body";s:1:"1";s:10:"body_label";s:11:"Description";s:14:"min_word_count";s:1:"0";s:6:"custom";s:1:"0";s:8:"modified";s:1:"1";s:6:"locked";s:1:"0";s:9:"orig_type";s:7:"company";}}',
+  'page_arguments' => 'a:2:{i:0;s:14:"node_type_form";i:1;O:8:"stdClass":14:{s:4:"type";s:7:"company";s:4:"name";s:7:"Company";s:6:"module";s:4:"node";s:11:"description";s:17:"Company node type";s:4:"help";s:0:"";s:9:"has_title";s:1:"1";s:11:"title_label";s:4:"Name";s:8:"has_body";s:1:"1";s:10:"body_label";s:11:"Description";s:14:"min_word_count";s:2:"20";s:6:"custom";s:1:"0";s:8:"modified";s:1:"0";s:6:"locked";s:1:"0";s:9:"orig_type";s:7:"company";}}',
   'fit' => '31',
   'number_parts' => '5',
   'tab_parent' => 'admin/content/node-type/company',
@@ -41344,40 +41352,6 @@
   'tnid' => '0',
   'translate' => '0',
 ))
-->values(array(
-  'nid' => '10',
-  'vid' => '13',
-  'type' => 'page',
-  'language' => 'en',
-  'title' => 'The Real McCoy',
-  'uid' => '1',
-  'status' => '1',
-  'created' => '1444238800',
-  'changed' => '1444238808',
-  'comment' => '2',
-  'promote' => '1',
-  'moderate' => '0',
-  'sticky' => '0',
-  'tnid' => '10',
-  'translate' => '0',
-))
-->values(array(
-  'nid' => '11',
-  'vid' => '14',
-  'type' => 'page',
-  'language' => 'fr',
-  'title' => 'Le Vrai McCoy',
-  'uid' => '1',
-  'status' => '1',
-  'created' => '1444239050',
-  'changed' => '1444239050',
-  'comment' => '2',
-  'promote' => '1',
-  'moderate' => '0',
-  'sticky' => '0',
-  'tnid' => '10',
-  'translate' => '0',
-))
 ->execute();
 
 $connection->schema()->createTable('node_access', array(
@@ -41508,13 +41482,6 @@
   'comment_count',
 ))
 ->values(array(
-  'nid' => '0',
-  'last_comment_timestamp' => '1468384735',
-  'last_comment_name' => NULL,
-  'last_comment_uid' => '1',
-  'comment_count' => '0',
-))
-->values(array(
   'nid' => '1',
   'last_comment_timestamp' => '1388271197',
   'last_comment_name' => NULL,
@@ -41530,14 +41497,7 @@
 ))
 ->values(array(
   'nid' => '9',
-  'last_comment_timestamp' => '1444238800',
-  'last_comment_name' => NULL,
-  'last_comment_uid' => '1',
-  'comment_count' => '0',
-))
-->values(array(
-  'nid' => '10',
-  'last_comment_timestamp' => '1444239050',
+  'last_comment_timestamp' => '1444671588',
   'last_comment_name' => NULL,
   'last_comment_uid' => '1',
   'comment_count' => '0',
@@ -41785,28 +41745,6 @@
   'timestamp' => '1444671588',
   'format' => '1',
 ))
-->values(array(
-  'nid' => '10',
-  'vid' => '13',
-  'uid' => '1',
-  'title' => 'The Real McCoy',
-  'body' => "In the original, Queen's English.",
-  'teaser' => "In the original, Queen's English.",
-  'log' => '',
-  'timestamp' => '1444238808',
-  'format' => '1',
-))
-->values(array(
-  'nid' => '11',
-  'vid' => '14',
-  'uid' => '1',
-  'title' => 'Le Vrai McCoy',
-  'body' => 'Ooh là là!',
-  'teaser' => 'Ooh là là!',
-  'log' => '',
-  'timestamp' => '1444239050',
-  'format' => '1',
-))
 ->execute();
 
 $connection->schema()->createTable('node_type', array(
@@ -41941,9 +41879,9 @@
   'title_label' => 'Name',
   'has_body' => '1',
   'body_label' => 'Description',
-  'min_word_count' => '0',
+  'min_word_count' => '20',
   'custom' => '0',
-  'modified' => '1',
+  'modified' => '0',
   'locked' => '0',
   'orig_type' => 'company',
 ))
@@ -44545,8 +44483,8 @@
   'signature' => '',
   'signature_format' => '0',
   'created' => '0',
-  'access' => '1468384823',
-  'login' => '1468384420',
+  'access' => '1458198052',
+  'login' => '1458193160',
   'status' => '1',
   'timezone' => NULL,
   'language' => '',
@@ -44890,16 +44828,12 @@
   'value' => 's:1:"2";',
 ))
 ->values(array(
-  'name' => 'comment_company',
-  'value' => 's:1:"2";',
-))
-->values(array(
   'name' => 'comment_controls_article',
   'value' => 'i:3;',
 ))
 ->values(array(
   'name' => 'comment_controls_company',
-  'value' => 's:1:"3";',
+  'value' => 'i:3;',
 ))
 ->values(array(
   'name' => 'comment_controls_employee',
@@ -44939,7 +44873,7 @@
 ))
 ->values(array(
   'name' => 'comment_default_mode_company',
-  'value' => 's:1:"4";',
+  'value' => 'i:4;',
 ))
 ->values(array(
   'name' => 'comment_default_mode_employee',
@@ -44979,7 +44913,7 @@
 ))
 ->values(array(
   'name' => 'comment_default_order_company',
-  'value' => 's:1:"1";',
+  'value' => 'i:1;',
 ))
 ->values(array(
   'name' => 'comment_default_order_employee',
@@ -45019,7 +44953,7 @@
 ))
 ->values(array(
   'name' => 'comment_default_per_page_company',
-  'value' => 's:2:"50";',
+  'value' => 'i:50;',
 ))
 ->values(array(
   'name' => 'comment_default_per_page_employee',
@@ -45059,7 +44993,7 @@
 ))
 ->values(array(
   'name' => 'comment_form_location_company',
-  'value' => 's:1:"0";',
+  'value' => 'i:0;',
 ))
 ->values(array(
   'name' => 'comment_form_location_employee',
@@ -45103,7 +45037,7 @@
 ))
 ->values(array(
   'name' => 'comment_preview_company',
-  'value' => 's:1:"1";',
+  'value' => 'i:1;',
 ))
 ->values(array(
   'name' => 'comment_preview_employee',
@@ -45147,7 +45081,7 @@
 ))
 ->values(array(
   'name' => 'comment_subject_field_company',
-  'value' => 's:1:"1";',
+  'value' => 'i:1;',
 ))
 ->values(array(
   'name' => 'comment_subject_field_employee',
@@ -45510,10 +45444,6 @@
   'value' => 's:5:"never";',
 ))
 ->values(array(
-  'name' => 'event_nodeapi_company',
-  'value' => 's:5:"never";',
-))
-->values(array(
   'name' => 'event_nodeapi_event',
   'value' => 's:3:"all";',
 ))
@@ -45575,11 +45505,7 @@
 ))
 ->values(array(
   'name' => 'form_build_id_article',
-  'value' => 's:48:"form-t2zKJflpBD4rpYoGQH33ckjjWAYdo5lF3Hl1O_YnWyE";',
-))
-->values(array(
-  'name' => 'form_build_id_company',
-  'value' => 's:48:"form-jFw2agRukPxjG5dG-N6joZLyoxXmCoxTzua0HUciqK0";',
+  'value' => 's:48:"form-mXZfFJxcCFGB80PPYtNOuwYbho6-xKTvrRLb3TAMkic";',
 ))
 ->values(array(
   'name' => 'forum_block_num_0',
@@ -45626,14 +45552,6 @@
   'value' => 's:1:"2";',
 ))
 ->values(array(
-  'name' => 'language_content_type_employee',
-  'value' => 's:1:"2";',
-))
-->values(array(
-  'name' => 'i18n_lock_node_article',
-  'value' => 'i:1;',
-))
-->values(array(
   'name' => 'language_count',
   'value' => 'i:11;',
 ))
@@ -45682,10 +45600,6 @@
   'value' => 'a:1:{i:0;s:6:"status";}',
 ))
 ->values(array(
-  'name' => 'node_options_company',
-  'value' => 'a:2:{i:0;s:6:"status";i:1;s:7:"promote";}',
-))
-->values(array(
   'name' => 'node_options_forum',
   'value' => 'a:1:{i:0;s:6:"status";}',
 ))
@@ -45882,10 +45796,6 @@
   'value' => 'b:0;',
 ))
 ->values(array(
-  'name' => 'upload_company',
-  'value' => 's:1:"1";',
-))
-->values(array(
   'name' => 'upload_page',
   'value' => 'b:1;',
 ))
diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal7.php b/core/modules/migrate_drupal/tests/fixtures/drupal7.php
index bbc8088..fb307f0 100644
--- a/core/modules/migrate_drupal/tests/fixtures/drupal7.php
+++ b/core/modules/migrate_drupal/tests/fixtures/drupal7.php
@@ -3474,7 +3474,7 @@
   'field_name' => 'body',
   'entity_type' => 'node',
   'bundle' => 'article',
-  'data' => 'a:6:{s:5:"label";s:4:"Body";s:6:"widget";a:4:{s:4:"type";s:26:"text_textarea_with_summary";s:8:"settings";a:2:{s:4:"rows";i:20;s:12:"summary_rows";i:5;}s:6:"weight";i:-4;s:6:"module";s:4:"text";}s:8:"settings";a:3:{s:15:"display_summary";b:1;s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:7:"display";a:3:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:8:"settings";a:0:{}s:6:"module";s:4:"text";s:6:"weight";i:0;}s:6:"teaser";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:23:"text_summary_or_trimmed";s:8:"settings";a:1:{s:11:"trim_length";i:600;}s:6:"module";s:4:"text";s:6:"weight";i:0;}s:6:"custom";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:23:"text_summary_or_trimmed";s:8:"settings";a:0:{}s:6:"module";s:4:"text";s:6:"weight";i:11;}}s:8:"required";b:0;s:11:"description";s:0:"";}',
+  'data' => 'a:6:{s:5:"label";s:4:"Body";s:6:"widget";a:4:{s:4:"type";s:26:"text_textarea_with_summary";s:8:"settings";a:2:{s:4:"rows";i:20;s:12:"summary_rows";i:5;}s:6:"weight";i:-4;s:6:"module";s:4:"text";}s:8:"settings";a:3:{s:15:"display_summary";b:1;s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:7:"display";a:2:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:8:"settings";a:0:{}s:6:"module";s:4:"text";s:6:"weight";i:0;}s:6:"teaser";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:23:"text_summary_or_trimmed";s:8:"settings";a:1:{s:11:"trim_length";i:600;}s:6:"module";s:4:"text";s:6:"weight";i:0;}}s:8:"required";b:0;s:11:"description";s:0:"";}',
   'deleted' => '0',
 ))
 ->values(array(
@@ -3720,24 +3720,6 @@
   'data' => 'a:6:{s:5:"label";s:4:"File";s:6:"widget";a:5:{s:6:"weight";s:1:"8";s:4:"type";s:12:"file_generic";s:6:"module";s:4:"file";s:6:"active";i:1;s:8:"settings";a:1:{s:18:"progress_indicator";s:8:"throbber";}}s:8:"settings";a:5:{s:14:"file_directory";s:0:"";s:15:"file_extensions";s:3:"txt";s:12:"max_filesize";s:0:"";s:17:"description_field";i:0;s:18:"user_register_form";i:0;}s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:5:"above";s:4:"type";s:12:"file_default";s:8:"settings";a:0:{}s:6:"module";s:4:"file";s:6:"weight";i:0;}}s:8:"required";i:0;s:11:"description";s:0:"";}',
   'deleted' => '0',
 ))
-->values(array(
-  'id' => '34',
-  'field_id' => '15',
-  'field_name' => 'field_link',
-  'entity_type' => 'node',
-  'bundle' => 'article',
-  'data' => 'a:7:{s:5:"label";s:4:"Link";s:6:"widget";a:5:{s:6:"weight";s:2:"10";s:4:"type";s:10:"link_field";s:6:"module";s:4:"link";s:6:"active";i:0;s:8:"settings";a:0:{}}s:8:"settings";a:12:{s:12:"absolute_url";i:1;s:12:"validate_url";i:1;s:3:"url";i:0;s:5:"title";s:8:"optional";s:11:"title_value";s:19:"Unused Static Title";s:27:"title_label_use_field_label";i:0;s:15:"title_maxlength";s:3:"128";s:7:"display";a:1:{s:10:"url_cutoff";s:2:"81";}s:10:"attributes";a:6:{s:6:"target";s:6:"_blank";s:3:"rel";s:8:"nofollow";s:18:"configurable_class";i:0;s:5:"class";s:7:"classes";s:18:"configurable_title";i:1;s:5:"title";s:0:"";}s:10:"rel_remove";s:19:"rel_remove_external";s:13:"enable_tokens";i:1;s:18:"user_register_form";b:0;}s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:5:"above";s:4:"type";s:12:"link_default";s:6:"weight";s:1:"9";s:8:"settings";a:0:{}s:6:"module";s:4:"link";}}s:8:"required";i:0;s:11:"description";s:0:"";s:13:"default_value";N;}',
-  'deleted' => '0',
-))
-->values(array(
-  'id' => '35',
-  'field_id' => '14',
-  'field_name' => 'field_integer',
-  'entity_type' => 'taxonomy_term',
-  'bundle' => 'test_vocabulary',
-  'data' => 'a:7:{s:5:"label";s:7:"Integer";s:6:"widget";a:5:{s:6:"weight";s:1:"2";s:4:"type";s:6:"number";s:6:"module";s:6:"number";s:6:"active";i:0;s:8:"settings";a:0:{}}s:8:"settings";a:5:{s:3:"min";s:0:"";s:3:"max";s:0:"";s:6:"prefix";s:0:"";s:6:"suffix";s:0:"";s:18:"user_register_form";b:0;}s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:5:"above";s:4:"type";s:14:"number_integer";s:8:"settings";a:4:{s:18:"thousand_separator";s:0:"";s:17:"decimal_separator";s:1:".";s:5:"scale";i:0;s:13:"prefix_suffix";b:1;}s:6:"module";s:6:"number";s:6:"weight";i:0;}}s:8:"required";i:0;s:11:"description";s:0:"";s:13:"default_value";N;}',
-  'deleted' => '0',
-))
 ->execute();
 
 $connection->schema()->createTable('field_data_body', array(
@@ -4918,18 +4900,6 @@
   'field_link_title' => 'Click Here',
   'field_link_attributes' => 'a:1:{s:5:"title";s:10:"Click Here";}',
 ))
-->values(array(
-  'entity_type' => 'node',
-  'bundle' => 'article',
-  'deleted' => '0',
-  'entity_id' => '2',
-  'revision_id' => '2',
-  'language' => 'und',
-  'delta' => '0',
-  'field_link_url' => '<front>',
-  'field_link_title' => 'Home',
-  'field_link_attributes' => 'a:0:{}',
-))
 ->execute();
 
 $connection->schema()->createTable('field_data_field_long_text', array(
@@ -6698,18 +6668,6 @@
   'field_link_title' => 'Click Here',
   'field_link_attributes' => 'a:1:{s:5:"title";s:10:"Click Here";}',
 ))
-->values(array(
-  'entity_type' => 'node',
-  'bundle' => 'article',
-  'deleted' => '0',
-  'entity_id' => '2',
-  'revision_id' => '2',
-  'language' => 'und',
-  'delta' => '0',
-  'field_link_url' => '<front>',
-  'field_link_title' => 'Home',
-  'field_link_attributes' => 'a:0:{}',
-))
 ->execute();
 
 $connection->schema()->createTable('field_revision_field_long_text', array(
@@ -40831,7 +40789,7 @@
 ->values(array(
   'uid' => '2',
   'name' => 'Odo',
-  'pass' => '$S$DGFZUE.FhrXbe4y52eC7p0ZVRGD/gOPtVctDlmC89qkujnBokAlJ',
+  'pass' => '$S$DZ4P7zZOh92vgrgZDBbv8Pu6lQB337OJ1wsOy21602G4A5F7.M9K',
   'mail' => 'odo@local.host',
   'theme' => '',
   'signature' => '',
@@ -41365,10 +41323,6 @@
   'value' => 's:1:"0";',
 ))
 ->values(array(
-  'name' => 'i18n_node_options_blog',
-  'value' => 'a:2:{i:0;s:8:"required";i:1;s:4:"lock";}',
-))
-->values(array(
   'name' => 'language_count',
   'value' => 'i:2;',
 ))
diff --git a/core/modules/migrate_drupal/tests/modules/migrate_cckfield_plugin_manager_test/migrate_cckfield_plugin_manager_test.info.yml b/core/modules/migrate_drupal/tests/modules/migrate_cckfield_plugin_manager_test/migrate_cckfield_plugin_manager_test.info.yml
deleted file mode 100644
index 8449e1a..0000000
--- a/core/modules/migrate_drupal/tests/modules/migrate_cckfield_plugin_manager_test/migrate_cckfield_plugin_manager_test.info.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: 'Migrate cck field plugin manager test'
-type: module
-description: 'Example module demonstrating the cck field plugin manager in the Migrate API.'
-package: Testing
-version: VERSION
-core: 8.x
diff --git a/core/modules/migrate_drupal/tests/modules/migrate_cckfield_plugin_manager_test/src/Plugin/migrate/cckfield/D6FileField.php b/core/modules/migrate_drupal/tests/modules/migrate_cckfield_plugin_manager_test/src/Plugin/migrate/cckfield/D6FileField.php
deleted file mode 100644
index 529907a..0000000
--- a/core/modules/migrate_drupal/tests/modules/migrate_cckfield_plugin_manager_test/src/Plugin/migrate/cckfield/D6FileField.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace Drupal\migrate_cckfield_plugin_manager_test\Plugin\migrate\cckfield;
-
-use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase;
-use Drupal\migrate\Plugin\MigrationInterface;
-
-/**
- * @MigrateCckField(
- *   id = "d6_file",
- *   core = {6},
- *   type_map = {
- *     "file" = "file"
- *   }
- * )
- */
-class D6FileField extends CckFieldPluginBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFieldFormatterMap() {}
-
-  /**
-   * {@inheritdoc}
-   */
-  public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {}
-
-}
diff --git a/core/modules/migrate_drupal/tests/modules/migrate_cckfield_plugin_manager_test/src/Plugin/migrate/cckfield/D6NoCoreVersionSpecified.php b/core/modules/migrate_drupal/tests/modules/migrate_cckfield_plugin_manager_test/src/Plugin/migrate/cckfield/D6NoCoreVersionSpecified.php
deleted file mode 100644
index 16967db..0000000
--- a/core/modules/migrate_drupal/tests/modules/migrate_cckfield_plugin_manager_test/src/Plugin/migrate/cckfield/D6NoCoreVersionSpecified.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace Drupal\migrate_cckfield_plugin_manager_test\Plugin\migrate\cckfield;
-
-use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase;
-use Drupal\migrate\Plugin\MigrationInterface;
-
-/**
- * @MigrateCckField(
- *   id = "d6_no_core_version_specified"
- * )
- */
-class D6NoCoreVersionSpecified extends CckFieldPluginBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFieldFormatterMap() {}
-
-  /**
-   * {@inheritdoc}
-   */
-  public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {}
-
-}
diff --git a/core/modules/migrate_drupal/tests/src/Kernel/MigrateCckFieldPluginManagerTest.php b/core/modules/migrate_drupal/tests/src/Kernel/MigrateCckFieldPluginManagerTest.php
deleted file mode 100644
index 8cea74c..0000000
--- a/core/modules/migrate_drupal/tests/src/Kernel/MigrateCckFieldPluginManagerTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Drupal\Tests\migrate_drupal\Kernel;
-
-use Drupal\Component\Plugin\Exception\PluginNotFoundException;
-
-/**
- * Tests the cck field plugin manager.
- *
- * @group migrate_drupal
- */
-class MigrateCckFieldPluginManagerTest extends MigrateDrupalTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = array('system', 'user', 'field', 'migrate_drupal', 'options', 'file', 'text', 'migrate_cckfield_plugin_manager_test');
-
-  /**
-   * Tests that the correct MigrateCckField plugins are used.
-   */
-  public function testPluginSelection() {
-    $plugin_manager = \Drupal::service('plugin.manager.migrate.cckfield');
-
-    $this->assertIdentical('Drupal\\file\\Plugin\\migrate\\cckfield\\d6\\FileField', get_class($plugin_manager->createInstance('filefield', ['core' => 6])));
-
-    try {
-      // If this test passes, createInstance will raise a
-      // PluginNotFoundException and we'll never reach fail().
-      $plugin_manager->createInstance('filefield', ['core' => 7]);
-      $this->fail('Expected Drupal\Component\Plugin\Exception\PluginNotFoundException.');
-    }
-    catch (PluginNotFoundException $e) {
-      $this->assertIdentical($e->getMessage(), "Plugin ID 'filefield' was not found.");
-    }
-
-    $this->assertIdentical('Drupal\\file\\Plugin\\migrate\\cckfield\\d7\\ImageField', get_class($plugin_manager->createInstance('image', ['core' => 7])));
-    $this->assertIdentical('Drupal\\file\\Plugin\\migrate\\cckfield\\d7\\FileField', get_class($plugin_manager->createInstance('file', ['core' => 7])));
-    $this->assertIdentical('Drupal\\migrate_cckfield_plugin_manager_test\\Plugin\\migrate\\cckfield\\D6FileField', get_class($plugin_manager->createInstance('file', ['core' => 6])));
-
-    $this->assertIdentical('Drupal\\text\\Plugin\\migrate\\cckfield\\TextField', get_class($plugin_manager->createInstance('text', ['core' => 6])));
-    $this->assertIdentical('Drupal\\text\\Plugin\\migrate\\cckfield\\TextField', get_class($plugin_manager->createInstance('text', ['core' => 7])));
-
-    // Test fallback when no core version is specified.
-    $this->assertIdentical('Drupal\\migrate_cckfield_plugin_manager_test\\Plugin\\migrate\\cckfield\\D6NoCoreVersionSpecified', get_class($plugin_manager->createInstance('d6_no_core_version_specified', ['core' => 6])));
-
-    try {
-      // If this test passes, createInstance will raise a
-      // PluginNotFoundException and we'll never reach fail().
-      $plugin_manager->createInstance('d6_no_core_version_specified', ['core' => 7]);
-      $this->fail('Expected Drupal\Component\Plugin\Exception\PluginNotFoundException.');
-    }
-    catch (PluginNotFoundException $e) {
-      $this->assertIdentical($e->getMessage(), "Plugin ID 'd6_no_core_version_specified' was not found.");
-    }
-  }
-
-}
diff --git a/core/modules/migrate_drupal/tests/src/Kernel/d6/EntityContentBaseTest.php b/core/modules/migrate_drupal/tests/src/Kernel/d6/EntityContentBaseTest.php
index 5074473..bdac5c9 100644
--- a/core/modules/migrate_drupal/tests/src/Kernel/d6/EntityContentBaseTest.php
+++ b/core/modules/migrate_drupal/tests/src/Kernel/d6/EntityContentBaseTest.php
@@ -4,10 +4,7 @@
 
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\migrate\MigrateExecutable;
-use Drupal\migrate\MigrateMessageInterface;
 use Drupal\user\Entity\User;
-use Prophecy\Argument;
 
 /**
  * @group migrate_drupal
@@ -88,40 +85,4 @@ public function testOverwriteProperties() {
     $this->assertIdentical('proto@zo.an', $account->getInitialEmail());
   }
 
-  /**
-   * Test that translation destination fails for untranslatable entities.
-   */
-  public function testUntranslatable() {
-    $this->enableModules(['language_test']);
-    $this->installEntitySchema('no_language_entity_test');
-
-    /** @var MigrationInterface $migration */
-    $migration = \Drupal::service('plugin.manager.migration')->createStubMigration([
-      'source' => [
-        'plugin' => 'embedded_data',
-        'ids' => ['id' => ['type' => 'integer']],
-        'data_rows' => [['id' => 1]],
-      ],
-      'process' => [
-        'id' => 'id',
-      ],
-      'destination' => [
-        'plugin' => 'entity:no_language_entity_test',
-        'translations' => TRUE,
-      ],
-    ]);
-
-    $message = $this->prophesize(MigrateMessageInterface::class);
-    // Match the expected message. Can't use default argument types, because
-    // we need to convert to string from TranslatableMarkup.
-    $argument = Argument::that(function($msg) {
-      return strpos((string) $msg, "This entity type does not support translation") !== FALSE;
-    });
-    $message->display($argument, Argument::any())
-      ->shouldBeCalled();
-
-    $executable = new MigrateExecutable($migration, $message->reveal());
-    $executable->import();
-  }
-
 }
diff --git a/core/modules/migrate_drupal/tests/src/Kernel/d6/MigrateDrupal6TestBase.php b/core/modules/migrate_drupal/tests/src/Kernel/d6/MigrateDrupal6TestBase.php
index 3a9467e..761e718 100644
--- a/core/modules/migrate_drupal/tests/src/Kernel/d6/MigrateDrupal6TestBase.php
+++ b/core/modules/migrate_drupal/tests/src/Kernel/d6/MigrateDrupal6TestBase.php
@@ -28,14 +28,7 @@
    */
   protected function setUp() {
     parent::setUp();
-    $this->loadFixture($this->getFixtureFilePath());
-  }
-
-  /**
-   * Gets the path to the fixture file.
-   */
-  protected function getFixtureFilePath() {
-    return __DIR__ . '/../../../fixtures/drupal6.php';
+    $this->loadFixture( __DIR__ . '/../../../fixtures/drupal6.php');
   }
 
   /**
@@ -89,24 +82,17 @@ protected function migrateFields() {
   /**
    * Executes all content migrations.
    *
-   * @param array $include
-   *   Extra things to include as part of the migrations. Values may be
-   *   'revisions' or 'translations'.
+   * @param bool $include_revisions
+   *   If TRUE, migrates node revisions.
    */
-  protected function migrateContent($include = []) {
-    if (in_array('translations', $include)) {
-      $this->executeMigrations(['language']);
-    }
+  protected function migrateContent($include_revisions = FALSE) {
     $this->migrateUsers(FALSE);
     $this->migrateFields();
 
     $this->installEntitySchema('node');
     $this->executeMigrations(['d6_node_settings', 'd6_node']);
 
-    if (in_array('translations', $include)) {
-      $this->executeMigrations(['translations']);
-    }
-    if (in_array('revisions', $include)) {
+    if ($include_revisions) {
       $this->executeMigrations(['d6_node_revision']);
     }
   }
diff --git a/core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7TestBase.php b/core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7TestBase.php
index 3afa82d..1ae92c4 100644
--- a/core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7TestBase.php
+++ b/core/modules/migrate_drupal/tests/src/Kernel/d7/MigrateDrupal7TestBase.php
@@ -14,14 +14,7 @@
    */
   protected function setUp() {
     parent::setUp();
-    $this->loadFixture($this->getFixtureFilePath());
-  }
-
-  /**
-   * Gets the path to the fixture file.
-   */
-  protected function getFixtureFilePath() {
-    return __DIR__ . '/../../../fixtures/drupal7.php';
+    $this->loadFixture(__DIR__ . '/../../../fixtures/drupal7.php');
   }
 
 }
diff --git a/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php b/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php
index b437852..643c116 100644
--- a/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php
+++ b/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php
@@ -10,7 +10,7 @@
 use Drupal\Core\Url;
 use Drupal\migrate\Plugin\MigrationPluginManagerInterface;
 use Drupal\migrate_drupal_ui\MigrateUpgradeRunBatch;
-use Drupal\migrate_drupal\MigrationConfigurationTrait;
+use Drupal\migrate_drupal\MigrationCreationTrait;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -18,7 +18,7 @@
  */
 class MigrateUpgradeForm extends ConfirmFormBase {
 
-  use MigrationConfigurationTrait;
+  use MigrationCreationTrait;
 
   /**
    * Mapping of known migrations and their source and destination modules.
@@ -266,14 +266,6 @@ class MigrateUpgradeForm extends ConfirmFormBase {
       'source_module' => 'image',
       'destination_module' => 'image',
     ],
-    'd6_language_content_settings' => [
-      'source_module' => 'locale',
-      'destination_module' => 'language',
-    ],
-    'd7_language_content_settings' => [
-      'source_module' => 'locale',
-      'destination_module' => 'language',
-    ],
     'd7_language_negotiation_settings' => [
       'source_module' => 'locale',
       'destination_module' => 'language',
@@ -298,10 +290,6 @@ class MigrateUpgradeForm extends ConfirmFormBase {
       'source_module' => 'node',
       'destination_module' => 'node',
     ],
-    'd6_node_translation' => [
-      'source_module' => 'node',
-      'destination_module' => 'node',
-    ],
     'd6_node_revision' => [
       'source_module' => 'node',
       'destination_module' => 'node',
@@ -699,7 +687,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
    *   The form structure.
    */
   public function buildOverviewForm(array $form, FormStateInterface $form_state) {
-    $form['#title'] = $this->t('Upgrade');
+    $form['#title'] = $this->t('Drupal Upgrade');
 
     if ($date_performed = $this->state->get('migrate_drupal_ui.performed')) {
       // @todo Add back support for rollbacks and incremental migrations.
@@ -714,7 +702,7 @@ public function buildOverviewForm(array $form, FormStateInterface $form_state) {
     }
     else {
       $form['info_header'] = [
-        '#markup' => '<p>' . $this->t('Upgrade a site by importing it into a clean and empty new install of Drupal 8. You will lose any existing configuration once you import your site into it. See the <a href=":url">online documentation for Drupal site upgrades</a> for more detailed information.', [
+        '#markup' => '<p>' . $this->t('Upgrade a Drupal site by importing it into a clean and empty new install of Drupal 8. You will lose any existing configuration once you import your site into it. See the <a href=":url">upgrading handbook</a> for more detailed information.', [
           ':url' => 'https://www.drupal.org/upgrade/migrate',
         ]),
       ];
@@ -850,7 +838,7 @@ public function buildCredentialForm(array $form, FormStateInterface $form_state)
     $form['source']['source_base_path'] = [
       '#type' => 'textfield',
       '#title' => $this->t('Files directory'),
-      '#description' => $this->t('To import files from your current Drupal site, enter a local file directory containing your site (e.g. /var/www/docroot), or your site address (for example http://example.com).'),
+      '#description' => $this->t('To import files from your current Drupal site, enter a local file directory containing your site (e.g. /var/www/docroot), or your site address (e.g. http://example.com).'),
     ];
 
     $form['actions'] = ['#type' => 'actions'];
diff --git a/core/modules/migrate_drupal_ui/src/Tests/MigrateAccessTest.php b/core/modules/migrate_drupal_ui/src/Tests/MigrateAccessTest.php
index 2401d86..95691d4 100644
--- a/core/modules/migrate_drupal_ui/src/Tests/MigrateAccessTest.php
+++ b/core/modules/migrate_drupal_ui/src/Tests/MigrateAccessTest.php
@@ -25,13 +25,13 @@ protected function testAccess() {
     $this->drupalLogin($this->rootUser);
     $this->drupalGet('upgrade');
     $this->assertResponse(200);
-    $this->assertText(t('Upgrade'));
+    $this->assertText(t('Drupal Upgrade'));
 
     $user = $this->createUser(['administer software updates']);
     $this->drupalLogin($user);
     $this->drupalGet('upgrade');
     $this->assertResponse(403);
-    $this->assertNoText(t('Upgrade'));
+    $this->assertNoText(t('Drupal Upgrade'));
   }
 
 }
diff --git a/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php b/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php
index c139291..5398c48 100644
--- a/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php
+++ b/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php
@@ -4,14 +4,14 @@
 
 use Drupal\Core\Database\Database;
 use Drupal\migrate\Plugin\MigrateIdMapInterface;
-use Drupal\migrate_drupal\MigrationConfigurationTrait;
+use Drupal\migrate_drupal\MigrationCreationTrait;
 use Drupal\simpletest\WebTestBase;
 
 /**
  * Provides a base class for testing migration upgrades in the UI.
  */
 abstract class MigrateUpgradeTestBase extends WebTestBase {
-  use MigrationConfigurationTrait;
+  use MigrationCreationTrait;
 
   /**
    * Use the Standard profile to test help implementations of many core modules.
@@ -30,7 +30,7 @@
    *
    * @var array
    */
-  public static $modules = ['language', 'content_translation', 'migrate_drupal_ui', 'telephone'];
+  public static $modules = ['migrate_drupal_ui', 'telephone'];
 
   /**
    * {@inheritdoc}
@@ -104,7 +104,7 @@ protected function tearDown() {
   protected function testMigrateUpgrade() {
     $connection_options = $this->sourceDatabase->getConnectionOptions();
     $this->drupalGet('/upgrade');
-    $this->assertText('Upgrade a site by importing it into a clean and empty new install of Drupal 8. You will lose any existing configuration once you import your site into it. See the online documentation for Drupal site upgrades for more detailed information.');
+    $this->assertText('Upgrade a Drupal site by importing it into a clean and empty new install of Drupal 8. You will lose any existing configuration once you import your site into it. See the upgrading handbook for more detailed information.');
 
     $this->drupalPostForm(NULL, [], t('Continue'));
     $this->assertText('Provide credentials for the database of the Drupal site you want to upgrade.');
@@ -174,7 +174,6 @@ protected function testMigrateUpgrade() {
         }
       }
     }
-    \Drupal::service('module_installer')->install(['forum']);
   }
 
   /**
diff --git a/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php b/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php
index 2a806de..d073c18 100644
--- a/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php
+++ b/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php
@@ -3,7 +3,6 @@
 namespace Drupal\migrate_drupal_ui\Tests\d6;
 
 use Drupal\migrate_drupal_ui\Tests\MigrateUpgradeTestBase;
-use Drupal\user\Entity\User;
 
 /**
  * Tests Drupal 6 upgrade using the migrate UI.
@@ -40,16 +39,14 @@ protected function getEntityCounts() {
       'comment' => 3,
       'comment_type' => 2,
       'contact_form' => 5,
-      'configurable_language' => 5,
       'editor' => 2,
-      'field_config' => 63,
+      'field_config' => 62,
       'field_storage_config' => 43,
       'file' => 7,
       'filter_format' => 7,
       'image_style' => 5,
-      'language_content_settings' => 2,
       'migration' => 105,
-      'node' => 10,
+      'node' => 9,
       'node_type' => 11,
       'rdf_mapping' => 5,
       'search_page' => 2,
@@ -59,7 +56,7 @@ protected function getEntityCounts() {
       'menu' => 8,
       'taxonomy_term' => 6,
       'taxonomy_vocabulary' => 6,
-      'tour' => 4,
+      'tour' => 1,
       'user' => 7,
       'user_role' => 6,
       'menu_link_content' => 4,
@@ -73,16 +70,4 @@ protected function getEntityCounts() {
     ];
   }
 
-  /**
-   * Executes all steps of migrations upgrade.
-   */
-  protected function testMigrateUpgrade() {
-    parent::testMigrateUpgrade();
-
-    // Ensure migrated users can log in.
-    $user = User::load(2);
-    $user->pass_raw = 'john.doe_pass';
-    $this->drupalLogin($user);
-  }
-
 }
diff --git a/core/modules/migrate_drupal_ui/src/Tests/d7/MigrateUpgrade7Test.php b/core/modules/migrate_drupal_ui/src/Tests/d7/MigrateUpgrade7Test.php
index 6b30ade..084f8ba 100644
--- a/core/modules/migrate_drupal_ui/src/Tests/d7/MigrateUpgrade7Test.php
+++ b/core/modules/migrate_drupal_ui/src/Tests/d7/MigrateUpgrade7Test.php
@@ -3,7 +3,6 @@
 namespace Drupal\migrate_drupal_ui\Tests\d7;
 
 use Drupal\migrate_drupal_ui\Tests\MigrateUpgradeTestBase;
-use Drupal\user\Entity\User;
 
 /**
  * Tests Drupal 7 upgrade using the migrate UI.
@@ -39,16 +38,13 @@ protected function getEntityCounts() {
       'block_content_type' => 1,
       'comment' => 1,
       'comment_type' => 7,
-      // Module 'language' comes with 'en', 'und', 'zxx'. Migration adds 'is'.
-      'configurable_language' => 4,
       'contact_form' => 3,
       'editor' => 2,
-      'field_config' => 43,
-      'field_storage_config' => 32,
+      'field_config' => 41,
+      'field_storage_config' => 31,
       'file' => 1,
       'filter_format' => 7,
       'image_style' => 6,
-      'language_content_settings' => 1,
       'migration' => 59,
       'node' => 2,
       'node_type' => 6,
@@ -60,30 +56,18 @@ protected function getEntityCounts() {
       'menu' => 10,
       'taxonomy_term' => 18,
       'taxonomy_vocabulary' => 3,
-      'tour' => 4,
+      'tour' => 1,
       'user' => 3,
       'user_role' => 4,
       'menu_link_content' => 9,
       'view' => 12,
       'date_format' => 11,
-      'entity_form_display' => 16,
+      'entity_form_display' => 15,
       'entity_form_mode' => 1,
-      'entity_view_display' => 24,
-      'entity_view_mode' => 11,
+      'entity_view_display' => 22,
+      'entity_view_mode' => 10,
       'base_field_override' => 7,
     ];
   }
 
-  /**
-   * Executes all steps of migrations upgrade.
-   */
-  protected function testMigrateUpgrade() {
-    parent::testMigrateUpgrade();
-
-    // Ensure migrated users can log in.
-    $user = User::load(2);
-    $user->pass_raw = 'a password';
-    $this->drupalLogin($user);
-  }
-
 }
diff --git a/core/modules/node/migration_templates/d6_node.yml b/core/modules/node/migration_templates/d6_node.yml
index 58aea35..82571b8 100644
--- a/core/modules/node/migration_templates/d6_node.yml
+++ b/core/modules/node/migration_templates/d6_node.yml
@@ -6,11 +6,9 @@ deriver: Drupal\node\Plugin\migrate\D6NodeDeriver
 source:
   plugin: d6_node
 process:
-  # In D6, nodes always have a tnid, but it's zero for untranslated nodes.
-  # We normalize it to equal the nid in that case.
-  # @see \Drupal\node\Plugin\migrate\source\d6\Node::prepareRow().
-  nid: tnid
+  nid: nid
   vid: vid
+  type: type
   langcode:
     plugin: default_value
     source: language
diff --git a/core/modules/node/migration_templates/d6_node_revision.yml b/core/modules/node/migration_templates/d6_node_revision.yml
index b7826a1..cd32ea0 100644
--- a/core/modules/node/migration_templates/d6_node_revision.yml
+++ b/core/modules/node/migration_templates/d6_node_revision.yml
@@ -8,6 +8,7 @@ source:
 process:
   nid: nid
   vid: vid
+  type: type
   langcode:
     plugin: default_value
     source: language
diff --git a/core/modules/node/migration_templates/d6_node_translation.yml b/core/modules/node/migration_templates/d6_node_translation.yml
deleted file mode 100644
index b4a2402..0000000
--- a/core/modules/node/migration_templates/d6_node_translation.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-id: d6_node_translation
-label: Node translations
-migration_tags:
-  - Drupal 6
-deriver: Drupal\node\Plugin\migrate\D6NodeDeriver
-source:
-  plugin: d6_node
-  translations: true
-process:
-  nid: tnid
-  type: type
-  langcode:
-    plugin: default_value
-    source: language
-    default_value: "und"
-  title: title
-  uid: node_uid
-  status: status
-  created: created
-  changed: changed
-  promote: promote
-  sticky: sticky
-  'body/format':
-    plugin: migration
-    migration: d6_filter_format
-    source: format
-  'body/value': body
-  'body/summary': teaser
-  revision_uid: revision_uid
-  revision_log: log
-  revision_timestamp: timestamp
-
-#  unmapped d6 fields.
-#  translate
-#  moderate
-#  comment
-
-destination:
-  plugin: entity:node
-  translations: true
-migration_dependencies:
-  required:
-    - d6_user
-    - d6_node_type
-    - d6_node_settings
-    - d6_filter_format
-    - language
-  optional:
-    - d6_field_instance_widget_settings
-    - d6_field_formatter_settings
-    - d6_upload_field_instance
-provider: migrate_drupal
diff --git a/core/modules/node/migration_templates/d7_node.yml b/core/modules/node/migration_templates/d7_node.yml
index b763534..18e01d1 100644
--- a/core/modules/node/migration_templates/d7_node.yml
+++ b/core/modules/node/migration_templates/d7_node.yml
@@ -8,6 +8,7 @@ source:
 process:
   nid: nid
   vid: vid
+  type: type
   langcode:
     plugin: default_value
     source: language
diff --git a/core/modules/node/migration_templates/d7_node_revision.yml b/core/modules/node/migration_templates/d7_node_revision.yml
index 0ee8bca..11f9d0a 100644
--- a/core/modules/node/migration_templates/d7_node_revision.yml
+++ b/core/modules/node/migration_templates/d7_node_revision.yml
@@ -8,6 +8,7 @@ source:
 process:
   nid: nid
   vid: vid
+  type: type
   langcode:
     plugin: default_value
     source: language
diff --git a/core/modules/node/node.api.php b/core/modules/node/node.api.php
index ae36aa0..e347423 100644
--- a/core/modules/node/node.api.php
+++ b/core/modules/node/node.api.php
@@ -64,8 +64,6 @@
  * sure to restore your {node_access} record after node_access_rebuild() is
  * called.
  *
- * For a detailed example, see node_access_example.module.
- *
  * @param \Drupal\Core\Session\AccountInterface $account
  *   The account object whose grants are requested.
  * @param string $op
@@ -75,6 +73,8 @@
  *   An array whose keys are "realms" of grants, and whose values are arrays of
  *   the grant IDs within this realm that this user is being granted.
  *
+ * For a detailed example, see node_access_example.module.
+ *
  * @see node_access_view_all_nodes()
  * @see node_access_rebuild()
  * @ingroup node_access
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index aade3e8..fa9d3e9 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -463,11 +463,14 @@ function node_revision_load($vid = NULL) {
 /**
  * Deletes a node revision.
  *
- * @param int $revision_id
+ * @param $revision_id
  *   The revision ID to delete.
+ *
+ * @return bool
+ *   TRUE if the revision deletion was successful; otherwise, FALSE.
  */
 function node_revision_delete($revision_id) {
-  \Drupal::entityTypeManager()->getStorage('node')->deleteRevision($revision_id);
+  entity_revision_delete('node', $revision_id);
 }
 
 /**
@@ -1078,9 +1081,8 @@ function node_query_node_access_alter(AlterableInterface $query) {
 
   // Bubble the 'user.node_grants:$op' cache context to the current render
   // context.
-  $request = \Drupal::requestStack()->getCurrentRequest();
   $renderer = \Drupal::service('renderer');
-  if ($request->isMethodSafe() && $renderer->hasRenderContext()) {
+  if ($renderer->hasRenderContext()) {
     $build = ['#cache' => ['contexts' => ['user.node_grants:' . $op]]];
     $renderer->render($build);
   }
diff --git a/core/modules/node/node.permissions.yml b/core/modules/node/node.permissions.yml
index 753ed40..f852db7 100644
--- a/core/modules/node/node.permissions.yml
+++ b/core/modules/node/node.permissions.yml
@@ -12,6 +12,7 @@ administer nodes:
   restrict access: true
 access content overview:
   title: 'Access the Content overview page'
+  description: 'Get an overview of all content.'
 access content:
   title: 'View published content'
 view own unpublished content:
diff --git a/core/modules/node/src/Controller/NodeController.php b/core/modules/node/src/Controller/NodeController.php
index 89a6d7e..8fd04b6 100644
--- a/core/modules/node/src/Controller/NodeController.php
+++ b/core/modules/node/src/Controller/NodeController.php
@@ -8,7 +8,6 @@
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\Render\RendererInterface;
 use Drupal\Core\Url;
-use Drupal\node\NodeStorageInterface;
 use Drupal\node\NodeTypeInterface;
 use Drupal\node\NodeInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -171,9 +170,12 @@ public function revisionOverview(NodeInterface $node) {
     $delete_permission = (($account->hasPermission("delete $type revisions") || $account->hasPermission('delete all revisions') || $account->hasPermission('administer nodes')) && $node->access('delete'));
 
     $rows = array();
-    $default_revision = $node->getRevisionId();
 
-    foreach ($this->getRevisionIds($node, $node_storage) as $vid) {
+    $vids = $node_storage->revisionIds($node);
+
+    $latest_revision = TRUE;
+
+    foreach (array_reverse($vids) as $vid) {
       /** @var \Drupal\node\NodeInterface $revision */
       $revision = $node_storage->loadRevision($vid);
       // Only show revisions that are affected by the language that is being
@@ -209,7 +211,7 @@ public function revisionOverview(NodeInterface $node) {
         $this->renderer->addCacheableDependency($column['data'], $username);
         $row[] = $column;
 
-        if ($vid == $default_revision) {
+        if ($latest_revision) {
           $row[] = [
             'data' => [
               '#prefix' => '<em>',
@@ -217,17 +219,16 @@ public function revisionOverview(NodeInterface $node) {
               '#suffix' => '</em>',
             ],
           ];
-
-          $rows[] = [
-            'data' => $row,
-            'class' => ['revision-current'],
-          ];
+          foreach ($row as &$current) {
+            $current['class'] = ['revision-current'];
+          }
+          $latest_revision = FALSE;
         }
         else {
           $links = [];
           if ($revert_permission) {
             $links['revert'] = [
-              'title' => $vid < $node->getRevisionId() ? $this->t('Revert') : $this->t('Set as current revision'),
+              'title' => $this->t('Revert'),
               'url' => $has_translations ?
                 Url::fromRoute('node.revision_revert_translation_confirm', ['node' => $node->id(), 'node_revision' => $vid, 'langcode' => $langcode]) :
                 Url::fromRoute('node.revision_revert_confirm', ['node' => $node->id(), 'node_revision' => $vid]),
@@ -247,9 +248,9 @@ public function revisionOverview(NodeInterface $node) {
               '#links' => $links,
             ],
           ];
-
-          $rows[] = $row;
         }
+
+        $rows[] = $row;
       }
     }
 
@@ -260,11 +261,8 @@ public function revisionOverview(NodeInterface $node) {
       '#attached' => array(
         'library' => array('node/drupal.node.admin'),
       ),
-      '#attributes' => ['class' => 'node-revision-table'],
     );
 
-    $build['pager'] = array('#type' => 'pager');
-
     return $build;
   }
 
@@ -281,25 +279,4 @@ public function addPageTitle(NodeTypeInterface $node_type) {
     return $this->t('Create @name', array('@name' => $node_type->label()));
   }
 
-  /**
-   * Gets a list of node revision IDs for a specific node.
-   *
-   * @param \Drupal\node\NodeInterface
-   *   The node entity.
-   * @param \Drupal\node\NodeStorageInterface $node_storage
-   *   The node storage handler.
-   *
-   * @return int[]
-   *   Node revision IDs (in descending order).
-   */
-  protected function getRevisionIds(NodeInterface $node, NodeStorageInterface $node_storage) {
-    $result = $node_storage->getQuery()
-      ->allRevisions()
-      ->condition($node->getEntityType()->getKey('id'), $node->id())
-      ->sort($node->getEntityType()->getKey('revision'), 'DESC')
-      ->pager(50)
-      ->execute();
-    return array_keys($result);
-  }
-
 }
diff --git a/core/modules/node/src/Controller/NodePreviewController.php b/core/modules/node/src/Controller/NodePreviewController.php
index 1a1c3ca..fab222e 100644
--- a/core/modules/node/src/Controller/NodePreviewController.php
+++ b/core/modules/node/src/Controller/NodePreviewController.php
@@ -22,6 +22,26 @@ public function view(EntityInterface $node_preview, $view_mode_id = 'full', $lan
     // Don't render cache previews.
     unset($build['#cache']);
 
+    foreach ($node_preview->uriRelationships() as $rel) {
+      // Set the node path as the canonical URL to prevent duplicate content.
+      $build['#attached']['html_head_link'][] = array(
+        array(
+        'rel' => $rel,
+        'href' => $node_preview->url($rel),
+        )
+        , TRUE);
+
+      if ($rel == 'canonical') {
+        // Set the non-aliased canonical path as a default shortlink.
+        $build['#attached']['html_head_link'][] = array(
+          array(
+            'rel' => 'shortlink',
+            'href' => $node_preview->url($rel, array('alias' => TRUE)),
+          )
+        , TRUE);
+      }
+    }
+
     return $build;
   }
 
diff --git a/core/modules/node/src/Entity/Node.php b/core/modules/node/src/Entity/Node.php
index bdb8050..51794be 100644
--- a/core/modules/node/src/Entity/Node.php
+++ b/core/modules/node/src/Entity/Node.php
@@ -178,8 +178,13 @@ public function getType() {
    * {@inheritdoc}
    */
   public function access($operation = 'view', AccountInterface $account = NULL, $return_as_object = FALSE) {
-    // This override exists to set the operation to the default value "view".
-    return parent::access($operation, $account, $return_as_object);
+    if ($operation == 'create') {
+      return parent::access($operation, $account, $return_as_object);
+    }
+
+    return \Drupal::entityManager()
+      ->getAccessControlHandler($this->entityTypeId)
+      ->access($this, $operation, $account, $return_as_object);
   }
 
   /**
diff --git a/core/modules/node/src/Entity/NodeType.php b/core/modules/node/src/Entity/NodeType.php
index 91d8a90..22ad920 100644
--- a/core/modules/node/src/Entity/NodeType.php
+++ b/core/modules/node/src/Entity/NodeType.php
@@ -83,7 +83,7 @@ class NodeType extends ConfigEntityBundleBase implements NodeTypeInterface {
    *
    * @var bool
    */
-  protected $new_revision = TRUE;
+  protected $new_revision = FALSE;
 
   /**
    * The preview mode.
diff --git a/core/modules/node/src/Form/NodePreviewForm.php b/core/modules/node/src/Form/NodePreviewForm.php
index 4027fdb..d28b6b2 100644
--- a/core/modules/node/src/Form/NodePreviewForm.php
+++ b/core/modules/node/src/Form/NodePreviewForm.php
@@ -3,6 +3,7 @@
 namespace Drupal\node\Form;
 
 use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Form\FormBase;
@@ -13,7 +14,7 @@
 /**
  * Contains a form for switching the view mode of a node during preview.
  */
-class NodePreviewForm extends FormBase {
+class NodePreviewForm extends FormBase implements ContainerInjectionInterface {
 
   /**
    * The entity manager service.
diff --git a/core/modules/node/src/NodeForm.php b/core/modules/node/src/NodeForm.php
index 82faab7..4d1c42c 100644
--- a/core/modules/node/src/NodeForm.php
+++ b/core/modules/node/src/NodeForm.php
@@ -356,7 +356,7 @@ public function save(array $form, FormStateInterface $form_state) {
     $node->save();
     $node_link = $node->link($this->t('View'));
     $context = array('@type' => $node->getType(), '%title' => $node->label(), 'link' => $node_link);
-    $t_args = array('@type' => node_get_type_label($node), '%title' => $node->link($node->label()));
+    $t_args = array('@type' => node_get_type_label($node), '%title' => $node->label());
 
     if ($insert) {
       $this->logger('content')->notice('@type: added %title.', $context);
diff --git a/core/modules/node/src/Plugin/migrate/D6NodeDeriver.php b/core/modules/node/src/Plugin/migrate/D6NodeDeriver.php
index f3e1a92..d586efd 100644
--- a/core/modules/node/src/Plugin/migrate/D6NodeDeriver.php
+++ b/core/modules/node/src/Plugin/migrate/D6NodeDeriver.php
@@ -38,37 +38,25 @@ class D6NodeDeriver extends DeriverBase implements ContainerDeriverInterface {
   protected $cckPluginManager;
 
   /**
-   * Whether or not to include translations.
-   *
-   * @var bool
-   */
-  protected $includeTranslations;
-
-  /**
    * D6NodeDeriver constructor.
    *
    * @param string $base_plugin_id
    *   The base plugin ID for the plugin ID.
    * @param \Drupal\Component\Plugin\PluginManagerInterface $cck_manager
    *   The CCK plugin manager.
-   * @param bool $translations
-   *   Whether or not to include translations.
    */
-  public function __construct($base_plugin_id, PluginManagerInterface $cck_manager, $translations) {
+  public function __construct($base_plugin_id, PluginManagerInterface $cck_manager) {
     $this->basePluginId = $base_plugin_id;
     $this->cckPluginManager = $cck_manager;
-    $this->includeTranslations = $translations;
   }
 
   /**
    * {@inheritdoc}
    */
   public static function create(ContainerInterface $container, $base_plugin_id) {
-    // Translations don't make sense unless we have content_translation.
     return new static(
       $base_plugin_id,
-      $container->get('plugin.manager.migrate.cckfield'),
-      $container->get('module_handler')->moduleExists('content_translation')
+      $container->get('plugin.manager.migrate.cckfield')
     );
   }
 
@@ -84,11 +72,6 @@ public static function create(ContainerInterface $container, $base_plugin_id) {
    * @see \Drupal\Component\Plugin\Derivative\DeriverBase::getDerivativeDefinition()
    */
   public function getDerivativeDefinitions($base_plugin_definition) {
-    if ($base_plugin_definition['id'] == 'd6_node_translation' && !$this->includeTranslations) {
-      // Refuse to generate anything.
-      return $this->derivatives;
-    }
-
     // Read all CCK field instance definitions in the source database.
     $fields = array();
     try {
@@ -115,12 +98,10 @@ public function getDerivativeDefinitions($base_plugin_definition) {
           '@type' => $node_type,
         ]);
         $values['source']['node_type'] = $node_type;
-        $values['destination']['default_bundle'] = $node_type;
 
-        // If this migration is based on the d6_node_revision migration or
-        // is for translations of nodes, it should explicitly depend on the
-        // corresponding d6_node variant.
-        if (in_array($base_plugin_definition['id'], ['d6_node_revision', 'd6_node_translation'])) {
+        // If this migration is based on the d6_node_revision migration, it
+        // should explicitly depend on the corresponding d6_node variant.
+        if ($base_plugin_definition['id'] == 'd6_node_revision') {
           $values['migration_dependencies']['required'][] = 'd6_node:' . $node_type;
         }
 
@@ -130,7 +111,7 @@ public function getDerivativeDefinitions($base_plugin_definition) {
             $field_type = $info['type'];
             if ($this->cckPluginManager->hasDefinition($info['type'])) {
               if (!isset($this->cckPluginCache[$field_type])) {
-                $this->cckPluginCache[$field_type] = $this->cckPluginManager->createInstance($field_type, ['core' => 6], $migration);
+                $this->cckPluginCache[$field_type] = $this->cckPluginManager->createInstance($field_type, [], $migration);
               }
               $this->cckPluginCache[$field_type]
                 ->processCckFieldValues($migration, $field_name, $info);
diff --git a/core/modules/node/src/Plugin/migrate/D7NodeDeriver.php b/core/modules/node/src/Plugin/migrate/D7NodeDeriver.php
index 6efa1c7..3809c03 100644
--- a/core/modules/node/src/Plugin/migrate/D7NodeDeriver.php
+++ b/core/modules/node/src/Plugin/migrate/D7NodeDeriver.php
@@ -92,7 +92,6 @@ public function getDerivativeDefinitions($base_plugin_definition) {
           '@type' => $row->getSourceProperty('name'),
         ]);
         $values['source']['node_type'] = $node_type;
-        $values['destination']['default_bundle'] = $node_type;
 
         $migration = \Drupal::service('plugin.manager.migration')->createStubMigration($values);
         if (isset($fields[$node_type])) {
@@ -100,7 +99,7 @@ public function getDerivativeDefinitions($base_plugin_definition) {
             $field_type = $info['type'];
             if ($this->cckPluginManager->hasDefinition($field_type)) {
               if (!isset($this->cckPluginCache[$field_type])) {
-                $this->cckPluginCache[$field_type] = $this->cckPluginManager->createInstance($field_type, ['core' => 7], $migration);
+                $this->cckPluginCache[$field_type] = $this->cckPluginManager->createInstance($field_type, [], $migration);
               }
               $this->cckPluginCache[$field_type]
                 ->processCckFieldValues($migration, $field_name, $info);
diff --git a/core/modules/node/src/Plugin/migrate/source/d6/Node.php b/core/modules/node/src/Plugin/migrate/source/d6/Node.php
index 5ca698f..c70fd27 100644
--- a/core/modules/node/src/Plugin/migrate/source/d6/Node.php
+++ b/core/modules/node/src/Plugin/migrate/source/d6/Node.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\node\Plugin\migrate\source\d6;
 
-use Drupal\Core\Database\Query\SelectInterface;
 use Drupal\migrate\Row;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
@@ -38,11 +37,9 @@ class Node extends DrupalSqlBase {
    * {@inheritdoc}
    */
   public function query() {
-    $query = $this->select('node_revisions', 'nr');
-    $query->innerJoin('node', 'n', static::JOIN);
-    $this->handleTranslations($query);
-
-    $query->fields('n', array(
+    // Select node in its last revision.
+    $query = $this->select('node_revisions', 'nr')
+      ->fields('n', array(
         'nid',
         'type',
         'language',
@@ -57,19 +54,20 @@ public function query() {
         'translate',
       ))
       ->fields('nr', array(
+        'vid',
         'title',
         'body',
         'teaser',
         'log',
         'timestamp',
         'format',
-        'vid',
       ));
     $query->addField('n', 'uid', 'node_uid');
     $query->addField('nr', 'uid', 'revision_uid');
+    $query->innerJoin('node', 'n', static::JOIN);
 
     if (isset($this->configuration['node_type'])) {
-      $query->condition('n.type', $this->configuration['node_type']);
+      $query->condition('type', $this->configuration['node_type']);
     }
 
     return $query;
@@ -125,11 +123,6 @@ public function prepareRow(Row $row) {
       }
     }
 
-    // Make sure we always have a translation set.
-    if ($row->getSourceProperty('tnid') == 0) {
-      $row->setSourceProperty('tnid', $row->getSourceProperty('nid'));
-    }
-
     return parent::prepareRow($row);
   }
 
@@ -258,22 +251,4 @@ public function getIds() {
     return $ids;
   }
 
-  /**
-   * Adapt our query for translations.
-   *
-   * @param \Drupal\Core\Database\Query\SelectInterface
-   *   The generated query.
-   */
-  protected function handleTranslations(SelectInterface $query) {
-    // Check whether or not we want translations.
-    if (empty($this->configuration['translations'])) {
-      // No translations: Yield untranslated nodes, or default translations.
-      $query->where('n.tnid = 0 OR n.tnid = n.nid');
-    }
-    else {
-      // Translations: Yield only non-default translations.
-      $query->where('n.tnid <> 0 AND n.tnid <> n.nid');
-    }
-  }
-
 }
diff --git a/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php b/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php
index 3f9a580..41e7a18 100644
--- a/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php
+++ b/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php
@@ -1,7 +1,6 @@
 <?php
 
 namespace Drupal\node\Plugin\migrate\source\d6;
-use Drupal\Core\Database\Query\SelectInterface;
 
 /**
  * Drupal 6 node revision source from database.
@@ -38,11 +37,4 @@ public function getIds() {
     return $ids;
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function handleTranslations(SelectInterface $query) {
-    // @todo in https://www.drupal.org/node/2746541
-  }
-
 }
diff --git a/core/modules/node/src/Plugin/migrate/source/d7/Node.php b/core/modules/node/src/Plugin/migrate/source/d7/Node.php
index 6286d5f..a0a3a7d 100644
--- a/core/modules/node/src/Plugin/migrate/source/d7/Node.php
+++ b/core/modules/node/src/Plugin/migrate/source/d7/Node.php
@@ -50,7 +50,7 @@ public function query() {
     $query->innerJoin('node', 'n', static::JOIN);
 
     if (isset($this->configuration['node_type'])) {
-      $query->condition('n.type', $this->configuration['node_type']);
+      $query->condition('type', $this->configuration['node_type']);
     }
 
     return $query;
diff --git a/core/modules/node/src/Plugin/views/field/Path.php b/core/modules/node/src/Plugin/views/field/Path.php
index 5fb07cd..176ce81 100644
--- a/core/modules/node/src/Plugin/views/field/Path.php
+++ b/core/modules/node/src/Plugin/views/field/Path.php
@@ -63,9 +63,7 @@ public function query() {
    */
   public function render(ResultRow $values) {
     $nid = $this->getValue($values, 'nid');
-    return array(
-      '#markup' => \Drupal::url('entity.node.canonical', ['node' => $nid], ['absolute' => $this->options['absolute']]),
-    );
+    return \Drupal::url('entity.node.canonical', ['node' => $nid], ['absolute' => $this->options['absolute']]);
   }
 
 }
diff --git a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeRevisionTest.php b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeRevisionTest.php
index a02ef3f..05be99f 100644
--- a/core/modules/node/src/Tests/Migrate/d6/MigrateNodeRevisionTest.php
+++ b/core/modules/node/src/Tests/Migrate/d6/MigrateNodeRevisionTest.php
@@ -13,11 +13,6 @@ class MigrateNodeRevisionTest extends MigrateNodeTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['language', 'content_translation'];
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->executeMigrations(['d6_node', 'd6_node_revision']);
diff --git a/core/modules/node/src/Tests/NodeCreationTest.php b/core/modules/node/src/Tests/NodeCreationTest.php
index bf3ce86..5071056 100644
--- a/core/modules/node/src/Tests/NodeCreationTest.php
+++ b/core/modules/node/src/Tests/NodeCreationTest.php
@@ -48,11 +48,7 @@ function testNodeCreation() {
     $this->drupalPostForm('node/add/page', $edit, t('Save'));
 
     // Check that the Basic page has been created.
-    $this->assertText(t('@post @title has been created.', array('@post' => 'Basic page', '@title' => $edit['title[0][value]'])), 'Basic page created.');
-
-    // Verify that the creation message contains a link to a node.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'node/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a node');
+    $this->assertRaw(t('@post %title has been created.', array('@post' => 'Basic page', '%title' => $edit['title[0][value]'])), 'Basic page created.');
 
     // Check that the node exists in the database.
     $node = $this->drupalGetNodeByTitle($edit['title[0][value]']);
@@ -141,11 +137,7 @@ function testUnpublishedNodeCreation() {
     $this->assertText(t('Test page text'));
 
     // Confirm that the node was created.
-    $this->assertText(t('@post @title has been created.', array('@post' => 'Basic page', '@title' => $edit['title[0][value]'])));
-
-    // Verify that the creation message contains a link to a node.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'node/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a node');
+    $this->assertRaw(t('@post %title has been created.', array('@post' => 'Basic page', '%title' => $edit['title[0][value]'])));
   }
 
   /**
diff --git a/core/modules/node/src/Tests/NodeEditFormTest.php b/core/modules/node/src/Tests/NodeEditFormTest.php
index b154ca0..fe10b38 100644
--- a/core/modules/node/src/Tests/NodeEditFormTest.php
+++ b/core/modules/node/src/Tests/NodeEditFormTest.php
@@ -73,8 +73,10 @@ public function testNodeEdit() {
     $this->assertUrl($node->url('edit-form', ['absolute' => TRUE]));
 
     // Check that the title and body fields are displayed with the correct values.
+    // As you see the expected link text has no HTML, but we are using
+    $link_text = 'Edit<span class="visually-hidden">(active tab)</span>';
     // @todo Ideally assertLink would support HTML, but it doesn't.
-    $this->assertRaw('Edit<span class="visually-hidden">(active tab)</span>', 'Edit tab found and marked active.');
+    $this->assertRaw($link_text, 'Edit tab found and marked active.');
     $this->assertFieldByName($title_key, $edit[$title_key], 'Title field displayed.');
     $this->assertFieldByName($body_key, $edit[$body_key], 'Body field displayed.');
 
diff --git a/core/modules/node/src/Tests/NodeFormSaveChangedTimeTest.php b/core/modules/node/src/Tests/NodeFormSaveChangedTimeTest.php
index 36c1ccc..aecf8a9 100644
--- a/core/modules/node/src/Tests/NodeFormSaveChangedTimeTest.php
+++ b/core/modules/node/src/Tests/NodeFormSaveChangedTimeTest.php
@@ -52,13 +52,11 @@ protected function setUp() {
    * Test the changed time after API and FORM save without changes.
    */
   public function testChangedTimeAfterSaveWithoutChanges() {
-    $storage = $this->container->get('entity_type.manager')->getStorage('node');
-    $storage->resetCache([1]);
-    $node = $storage->load(1);
+    $node = entity_load('node', 1);
     $changed_timestamp = $node->getChangedTime();
+
     $node->save();
-    $storage->resetCache([1]);
-    $node = $storage->load(1);
+    $node = entity_load('node', 1, TRUE);
     $this->assertEqual($changed_timestamp, $node->getChangedTime(), "The entity's changed time wasn't updated after API save without changes.");
 
     // Ensure different save timestamps.
@@ -67,8 +65,7 @@ public function testChangedTimeAfterSaveWithoutChanges() {
     // Save the node on the regular node edit form.
     $this->drupalPostForm('node/1/edit', array(), t('Save'));
 
-    $storage->resetCache([1]);
-    $node = $storage->load(1);
+    $node = entity_load('node', 1, TRUE);
     $this->assertNotEqual($changed_timestamp, $node->getChangedTime(), "The entity's changed time was updated after form save without changes.");
   }
 
diff --git a/core/modules/node/src/Tests/NodeLoadMultipleTest.php b/core/modules/node/src/Tests/NodeLoadMultipleTest.php
index 4add3bd..31a30ee 100644
--- a/core/modules/node/src/Tests/NodeLoadMultipleTest.php
+++ b/core/modules/node/src/Tests/NodeLoadMultipleTest.php
@@ -39,9 +39,9 @@ function testNodeMultipleLoad() {
     $this->assertText($node2->label(), 'Node title appears on the default listing.');
     $this->assertNoText($node3->label(), 'Node title does not appear in the default listing.');
     $this->assertNoText($node4->label(), 'Node title does not appear in the default listing.');
+
     // Load nodes with only a condition. Nodes 3 and 4 will be loaded.
-    $nodes = $this->container->get('entity_type.manager')->getStorage('node')
-      ->loadByProperties(array('promote' => 0));
+    $nodes = entity_load_multiple_by_properties('node', array('promote' => 0));
     $this->assertEqual($node3->label(), $nodes[$node3->id()]->label(), 'Node was loaded.');
     $this->assertEqual($node4->label(), $nodes[$node4->id()]->label(), 'Node was loaded.');
     $count = count($nodes);
diff --git a/core/modules/node/src/Tests/NodeRevisionsAllTest.php b/core/modules/node/src/Tests/NodeRevisionsAllTest.php
index 7963aa0..582ca5b 100644
--- a/core/modules/node/src/Tests/NodeRevisionsAllTest.php
+++ b/core/modules/node/src/Tests/NodeRevisionsAllTest.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\node\Tests;
 
-use Drupal\node\NodeInterface;
-
 /**
  * Create a node with revisions and test viewing, saving, reverting, and
  * deleting revisions for user with access to all.
@@ -17,7 +15,7 @@ class NodeRevisionsAllTest extends NodeTestBase {
 
   protected function setUp() {
     parent::setUp();
-
+    $node_storage = $this->container->get('entity.manager')->getStorage('node');
     // Create and log in user.
     $web_user = $this->drupalCreateUser(
       array(
@@ -47,7 +45,17 @@ protected function setUp() {
     for ($i = 0; $i < $revision_count; $i++) {
       $logs[] = $node->revision_log = $this->randomMachineName(32);
 
-      $node = $this->createNodeRevision($node);
+      // Create revision with a random title and body and update variables.
+      $node->title = $this->randomMachineName();
+      $node->body = array(
+        'value' => $this->randomMachineName(32),
+        'format' => filter_default_format(),
+      );
+      $node->setNewRevision();
+      $node->save();
+
+      $node_storage->resetCache(array($node->id()));
+      $node = $node_storage->load($node->id()); // Make sure we get revision information.
       $nodes[] = clone $node;
     }
 
@@ -56,28 +64,6 @@ protected function setUp() {
   }
 
   /**
-   * Creates a new revision for a given node.
-   *
-   * @param \Drupal\node\NodeInterface $node
-   *   A node object.
-   *
-   * @return \Drupal\node\NodeInterface
-   *   A node object with up to date revision information.
-   */
-  protected function createNodeRevision(NodeInterface $node) {
-    // Create revision with a random title and body and update variables.
-    $node->title = $this->randomMachineName();
-    $node->body = array(
-      'value' => $this->randomMachineName(32),
-      'format' => filter_default_format(),
-    );
-    $node->setNewRevision();
-    $node->save();
-
-    return $node;
-  }
-
-  /**
    * Checks node revision operations.
    */
   function testRevisions() {
@@ -159,29 +145,6 @@ function testRevisions() {
       '%title' => $nodes[2]->getTitle(),
       '%revision-date' => format_date($old_revision_date),
     )));
-
-    // Create 50 more revisions in order to trigger paging on the revisions
-    // overview screen.
-    $node = $nodes[0];
-    for ($i = 0; $i < 50; $i++) {
-      $logs[] = $node->revision_log = $this->randomMachineName(32);
-
-      $node = $this->createNodeRevision($node);
-      $nodes[] = clone $node;
-    }
-
-    $this->drupalGet('node/' . $node->id() . '/revisions');
-
-    // Check that the pager exists.
-    $this->assertRaw('page=1');
-
-    // Check that the last revision is displayed on the first page.
-    $this->assertText(end($logs));
-
-    // Go to the second page and check that one of the initial three revisions
-    // is displayed.
-    $this->clickLink(t('Page 2'));
-    $this->assertText($logs[2]);
   }
 
 }
diff --git a/core/modules/node/src/Tests/NodeRevisionsUiTest.php b/core/modules/node/src/Tests/NodeRevisionsUiTest.php
index cf609b8..278809a 100644
--- a/core/modules/node/src/Tests/NodeRevisionsUiTest.php
+++ b/core/modules/node/src/Tests/NodeRevisionsUiTest.php
@@ -121,43 +121,4 @@ public function testNodeRevisionDoubleEscapeFix() {
     $this->assertRaw($nodes[1]->link($date) . ' by ' . $editor . '<p class="revision-log">' . $revision_log . '</p>');
   }
 
-  /**
-   * Checks the Revisions tab.
-   */
-  public function testNodeRevisionsTabWithDefaultRevision() {
-    $this->drupalLogin($this->editor);
-
-    // Create the node.
-    $node = $this->drupalCreateNode();
-
-    $node->setNewRevision(TRUE);
-    $node->save();
-    $node->setNewRevision(TRUE);
-    $node->save();
-    $node->isDefaultRevision(FALSE);
-    $node->setNewRevision(TRUE);
-    $node->save();
-    $node->isDefaultRevision(FALSE);
-    $node->setNewRevision(TRUE);
-    $node->save();
-
-    $node_id = $node->id();
-
-    $this->drupalGet('node/' . $node_id . '/revisions');
-
-    // Verify that the default revision can be an older revision than the latest
-    // one.
-    $this->assertLinkByHref('/node/' . $node_id . '/revisions/5/revert');
-    $this->assertLinkByHref('/node/' . $node_id . '/revisions/4/revert');
-    $this->assertNoLinkByHref('/node/' . $node_id . '/revisions/3/revert');
-    $current_revision_row = $this->xpath("//table[contains(@class, :table_class)]//tbody//tr[3 and contains(@class, :class) and contains(., :text)]", [
-      ':table_class' => 'node-revision-table',
-      ':class' => 'revision-current',
-      ':text' => 'Current revision',
-    ]);
-    $this->assertEqual(count($current_revision_row), 1, 'The default revision can be a revision other than the latest one.');
-    $this->assertLinkByHref('/node/' . $node_id . '/revisions/2/revert');
-    $this->assertLinkByHref('/node/' . $node_id . '/revisions/1/revert');
-  }
-
 }
diff --git a/core/modules/node/src/Tests/NodeTypeTranslationTest.php b/core/modules/node/src/Tests/NodeTypeTranslationTest.php
index 1c3a768..f86ccc4 100644
--- a/core/modules/node/src/Tests/NodeTypeTranslationTest.php
+++ b/core/modules/node/src/Tests/NodeTypeTranslationTest.php
@@ -23,9 +23,7 @@ class NodeTypeTranslationTest extends WebTestBase {
    * @var array
    */
   public static $modules = array(
-    'block',
     'config_translation',
-    'field_ui',
     'node',
   );
 
@@ -55,8 +53,6 @@ protected function setUp() {
 
     $admin_permissions = array(
       'administer content types',
-      'administer node fields',
-      'administer languages',
       'administer site configuration',
       'administer themes',
       'translate configuration',
@@ -148,29 +144,6 @@ public function testNodeTypeTitleLabelTranslation() {
     $this->assertText('Edited title');
     $this->drupalGet("$langcode/node/add/$type");
     $this->assertText('Translated title');
-
-    // Add an e-mail field.
-    $this->drupalPostForm("admin/structure/types/manage/$type/fields/add-field", array('new_storage_type' => 'email', 'label' => 'Email', 'field_name' => 'email'), 'Save and continue');
-    $this->drupalPostForm(NULL, array(), 'Save field settings');
-    $this->drupalPostForm(NULL, array(), 'Save settings');
-
-    $type = Unicode::strtolower($this->randomMachineName(16));
-    $name = $this->randomString();
-    $this->drupalCreateContentType(array('type' => $type, 'name' => $name));
-
-    // Set tabs.
-    $this->drupalPlaceBlock('local_tasks_block', array('primary' => TRUE));
-
-    // Change default language.
-    $this->drupalPostForm('admin/config/regional/language', array('site_default_language' => 'es'), 'Save configuration');
-
-    // Try re-using the email field.
-    $this->drupalGet("es/admin/structure/types/manage/$type/fields/add-field");
-    $this->drupalPostForm(NULL, array('existing_storage_name' => 'field_email', 'existing_storage_label' => 'Email'), 'Save and continue');
-    $this->assertResponse(200);
-    $this->drupalGet("es/admin/structure/types/manage/$type/fields/node.$type.field_email/translate");
-    $this->assertResponse(200);
-    $this->assertText("The configuration objects have different language codes so they cannot be translated");
   }
 
 }
diff --git a/core/modules/node/src/Tests/PagePreviewTest.php b/core/modules/node/src/Tests/PagePreviewTest.php
index 2bfd2e7..9777ccc 100644
--- a/core/modules/node/src/Tests/PagePreviewTest.php
+++ b/core/modules/node/src/Tests/PagePreviewTest.php
@@ -296,24 +296,6 @@ function testPagePreviewWithRevisions() {
 
     // Check that the revision log field has the correct value.
     $this->assertFieldByName('revision_log[0][value]', $edit['revision_log[0][value]'], 'Revision log field displayed.');
-
-    // Save the node after coming back from the preview page so we can create a
-    // forward revision for it.
-    $this->drupalPostForm(NULL, [], t('Save'));
-    $node = $this->drupalGetNodeByTitle($edit[$title_key]);
-
-    // Check that previewing a forward revision of a node works. This can not be
-    // accomplished through the UI so we have to use API calls.
-    // @todo Change this test to use the UI when we will be able to create
-    // forward revisions in core.
-    // @see https://www.drupal.org/node/2725533
-    $node->setNewRevision(TRUE);
-    $node->isDefaultRevision(FALSE);
-
-    /** @var \Drupal\Core\Controller\ControllerResolverInterface $controller_resolver */
-    $controller_resolver = \Drupal::service('controller_resolver');
-    $node_preview_controller = $controller_resolver->getControllerFromDefinition('\Drupal\node\Controller\NodePreviewController::view');
-    $node_preview_controller($node, 'default');
   }
 
   /**
diff --git a/core/modules/node/src/Tests/Views/BulkFormAccessTest.php b/core/modules/node/src/Tests/Views/BulkFormAccessTest.php
index a9f9ba9..050068b 100644
--- a/core/modules/node/src/Tests/Views/BulkFormAccessTest.php
+++ b/core/modules/node/src/Tests/Views/BulkFormAccessTest.php
@@ -87,7 +87,7 @@ public function testNodeEditAccess() {
       'node_bulk_form[0]' => TRUE,
       'action' => 'node_unpublish_action',
     );
-    $this->drupalPostForm('test-node-bulk-form', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('test-node-bulk-form', $edit, t('Apply'));
     $this->assertRaw(SafeMarkup::format('No access to execute %action on the @entity_type_label %entity_label.', [
       '%action' => 'Unpublish content',
       '@entity_type_label' => 'Content',
@@ -115,7 +115,7 @@ public function testNodeEditAccess() {
       'node_bulk_form[0]' => TRUE,
       'action' => 'node_unpublish_action',
     );
-    $this->drupalPostForm('test-node-bulk-form', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('test-node-bulk-form', $edit, t('Apply'));
     // Re-load the node and check the status.
     $node = Node::load($node->id());
     $this->assertTrue($node->isPublished(), 'The node is still published.');
@@ -160,7 +160,7 @@ public function testNodeDeleteAccess() {
       'node_bulk_form[1]' => TRUE,
       'action' => 'node_delete_action',
     );
-    $this->drupalPostForm('test-node-bulk-form', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('test-node-bulk-form', $edit, t('Apply'));
     $this->drupalPostForm(NULL, array(), t('Delete'));
     // Ensure the private node still exists.
     $private_node = Node::load($private_node->id());
diff --git a/core/modules/node/src/Tests/Views/BulkFormTest.php b/core/modules/node/src/Tests/Views/BulkFormTest.php
index 677c9d8..b2e3ae4 100644
--- a/core/modules/node/src/Tests/Views/BulkFormTest.php
+++ b/core/modules/node/src/Tests/Views/BulkFormTest.php
@@ -105,7 +105,7 @@ public function testBulkForm() {
       'node_bulk_form[0]' => TRUE,
       'action' => 'node_unpublish_action',
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     $node = $this->loadNode($node->id());
     $this->assertFalse($node->isPublished(), 'Node has been unpublished');
     $this->assertTrue($node->getTranslation('en-gb')->isPublished(), 'Node translation has not been unpublished');
@@ -116,7 +116,7 @@ public function testBulkForm() {
       'node_bulk_form[0]' => TRUE,
       'action' => 'node_publish_action',
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     $node = $this->loadNode($node->id());
     $this->assertTrue($node->isPublished(), 'Node has been published again');
 
@@ -128,7 +128,7 @@ public function testBulkForm() {
       'node_bulk_form[0]' => TRUE,
       'action' => 'node_make_sticky_action',
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     $node = $this->loadNode($node->id());
     $this->assertTrue($node->isSticky(), 'Node has been made sticky');
     $this->assertFalse($node->getTranslation('en-gb')->isSticky(), 'Node translation has not been made sticky');
@@ -139,7 +139,7 @@ public function testBulkForm() {
       'node_bulk_form[0]' => TRUE,
       'action' => 'node_make_unsticky_action',
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     $node = $this->loadNode($node->id());
     $this->assertFalse($node->isSticky(), 'Node is not sticky anymore');
 
@@ -151,7 +151,7 @@ public function testBulkForm() {
       'node_bulk_form[0]' => TRUE,
       'action' => 'node_promote_action',
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     $node = $this->loadNode($node->id());
     $this->assertTrue($node->isPromoted(), 'Node has been promoted to the front page');
     $this->assertFalse($node->getTranslation('en-gb')->isPromoted(), 'Node translation has not been promoted to the front page');
@@ -162,7 +162,7 @@ public function testBulkForm() {
       'node_bulk_form[0]' => TRUE,
       'action' => 'node_unpromote_action',
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     $node = $this->loadNode($node->id());
     $this->assertFalse($node->isPromoted(), 'Node has been demoted');
 
@@ -185,7 +185,7 @@ public function testBulkForm() {
       'node_bulk_form[9]' => FALSE, // Node 5, British English, untranslated.
       'action' => 'node_unpublish_action',
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     $node = $this->loadNode(1);
     $this->assertFalse($node->getTranslation('en')->isPublished(), '1: English translation has been unpublished');
     $this->assertFalse($node->getTranslation('en-gb')->isPublished(), '1: British English translation has been unpublished');
@@ -226,7 +226,7 @@ public function testBulkDeletion() {
       'node_bulk_form[9]' => FALSE, // Node 5, British English, untranslated.
       'action' => 'node_delete_action',
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
 
     $label = $this->loadNode(1)->label();
     $this->assertText("$label (Original translation) - The following content translations will be deleted:");
diff --git a/core/modules/node/src/Tests/Views/PathPluginTest.php b/core/modules/node/src/Tests/Views/PathPluginTest.php
deleted file mode 100644
index 1ee6272..0000000
--- a/core/modules/node/src/Tests/Views/PathPluginTest.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Drupal\node\Tests\Views;
-
-use Drupal\views\Views;
-
-/**
- * Tests the node row plugin.
- *
- * @group node
- */
-class PathPluginTest extends NodeTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('node');
-
-  /**
-   * Views used by this test.
-   *
-   * @var array
-   */
-  public static $testViews = array('test_node_path_plugin');
-
-  /**
-   * Contains all nodes used by this test.
-   *
-   * @var Node[]
-   */
-  protected $nodes;
-
-  protected function setUp() {
-    parent::setUp();
-
-    $this->drupalCreateContentType(array('type' => 'article'));
-
-    // Create two nodes.
-    for ($i = 0; $i < 2; $i++) {
-      $this->nodes[] = $this->drupalCreateNode(
-        array(
-          'type' => 'article',
-          'body' => array(
-            array(
-              'value' => $this->randomMachineName(42),
-              'format' => filter_default_format(),
-              'summary' => $this->randomMachineName(),
-            ),
-          ),
-        )
-      );
-    }
-  }
-
-  /**
-   * Tests the node path plugin.
-   */
-  public function testPathPlugin() {
-    /** @var \Drupal\Core\Render\RendererInterface $renderer */
-    $renderer = $this->container->get('renderer');
-    $view = Views::getView('test_node_path_plugin');
-    $view->initDisplay();
-    $view->setDisplay('page_1');
-    $view->initStyle();
-    $view->rowPlugin->options['view_mode'] = 'full';
-
-    // Test with view_mode full.
-    $output = $view->preview();
-    $output = $renderer->renderRoot($output);
-    foreach ($this->nodes as $node) {
-      $this->assertTrue(strpos($output, 'This is <strong>not escaped</strong> and this is ' . $node->link('the link')) !== FALSE, 'Make sure path field rewriting is not escaped.');
-    }
-  }
-
-}
diff --git a/core/modules/node/tests/modules/node_test_config/config/install/node.type.default.yml b/core/modules/node/tests/modules/node_test_config/config/install/node.type.default.yml
index b65ee9f..33d62b3 100644
--- a/core/modules/node/tests/modules/node_test_config/config/install/node.type.default.yml
+++ b/core/modules/node/tests/modules/node_test_config/config/install/node.type.default.yml
@@ -2,7 +2,7 @@ type: default
 name: Default
 description: 'Default description.'
 help: ''
-new_revision: true
+new_revision: false
 display_submitted: true
 preview_mode: 1
 status: true
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_path_plugin.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_path_plugin.yml
deleted file mode 100644
index f298ad1..0000000
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_path_plugin.yml
+++ /dev/null
@@ -1,182 +0,0 @@
-langcode: en
-status: true
-dependencies:
-  module:
-    - node
-    - user
-id: test_node_path_plugin
-label: test_node_path_plugin
-module: views
-description: ''
-tag: ''
-base_table: node_field_data
-base_field: nid
-core: 8.x
-display:
-  default:
-    display_plugin: default
-    id: default
-    display_title: Master
-    position: 0
-    display_options:
-      access:
-        type: perm
-        options:
-          perm: 'access content'
-      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: full
-        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: '‹ Previous'
-            next: 'Next ›'
-            first: '« First'
-            last: 'Last »'
-          quantity: 9
-      style:
-        type: default
-      row:
-        type: fields
-      fields:
-        path:
-          id: path
-          table: node
-          field: path
-          relationship: none
-          group_type: group
-          admin_label: ''
-          label: ''
-          exclude: false
-          alter:
-            alter_text: true
-            text: 'This is <strong>not escaped</strong> and this is <a href="{{ path }}" hreflang="en">the link</a>.'
-            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: false
-          element_wrapper_type: ''
-          element_wrapper_class: ''
-          element_default_classes: true
-          empty: ''
-          hide_empty: false
-          empty_zero: false
-          hide_alter_empty: true
-          absolute: false
-          entity_type: node
-          plugin_id: node_path
-      filters:
-        status:
-          value: true
-          table: node_field_data
-          field: status
-          plugin_id: boolean
-          entity_type: node
-          entity_field: status
-          id: status
-          expose:
-            operator: ''
-          group: 1
-      sorts:
-        created:
-          id: created
-          table: node_field_data
-          field: created
-          order: DESC
-          entity_type: node
-          entity_field: created
-          plugin_id: date
-          relationship: none
-          group_type: group
-          admin_label: ''
-          exposed: false
-          expose:
-            label: ''
-          granularity: second
-      title: test_node_path_plugin
-      header: {  }
-      footer: {  }
-      empty: {  }
-      relationships: {  }
-      arguments: {  }
-      display_extenders: {  }
-    cache_metadata:
-      max-age: -1
-      contexts:
-        - 'languages:language_interface'
-        - url.query_args
-        - 'user.node_grants:view'
-        - user.permissions
-      tags: {  }
-  page_1:
-    display_plugin: page
-    id: page_1
-    display_title: Page
-    position: 1
-    display_options:
-      display_extenders: {  }
-      path: test-node-path-plugin
-    cache_metadata:
-      max-age: -1
-      contexts:
-        - 'languages:language_interface'
-        - url.query_args
-        - 'user.node_grants:view'
-        - user.permissions
-      tags: {  }
diff --git a/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeDeriverTest.php b/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeDeriverTest.php
deleted file mode 100644
index abce689..0000000
--- a/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeDeriverTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Drupal\Tests\node\Kernel\Migrate\d6;
-
-use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
-
-/**
- * Test D6NodeDeriver.
- *
- * @group migrate_drupal_6
- */
-class MigrateNodeDeriverTest extends MigrateDrupal6TestBase {
-  /**
-   * The migration plugin manager.
-   *
-   * @var \Drupal\migrate\Plugin\MigrationPluginManagerInterface
-   */
-  protected $pluginManager;
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setUp() {
-    parent::setUp();
-    $this->pluginManager = $this->container->get('plugin.manager.migration');
-  }
-
-  /**
-   * Test node translation migrations with translation disabled.
-   */
-  public function testNoTranslations() {
-    // Without content_translation, there should be no translation migrations.
-    $migrations = $this->pluginManager->createInstances('d6_node_translation');
-    $this->assertSame([], $migrations,
-      "No node translation migrations without content_translation");
-  }
-
-  /**
-   * Test node translation migrations with translation enabled.
-   */
-  public function testTranslations() {
-    // With content_translation, there should be translation migrations for
-    // each content type.
-    $this->enableModules(['language', 'content_translation']);
-    $migrations = $this->pluginManager->createInstances('d6_node_translation');
-    $this->assertArrayHasKey('d6_node_translation:story', $migrations,
-      "Node translation migrations exist after content_translation installed");
-  }
-
-}
diff --git a/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php b/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php
index 122199f..7f07d11 100644
--- a/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php
+++ b/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php
@@ -19,16 +19,11 @@ class MigrateNodeTest extends MigrateNodeTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['language', 'content_translation'];
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
     $this->setUpMigratedFiles();
     $this->installSchema('file', ['file_usage']);
-    $this->executeMigrations(['language', 'd6_node', 'd6_node_translation']);
+    $this->executeMigrations(['d6_node']);
   }
 
   /**
@@ -79,28 +74,12 @@ public function testNode() {
     $this->assertIdentical('test rev 3', $node->body->value);
     $this->assertIdentical('filtered_html', $node->body->format);
 
-    // Test that a link field with an external link is migrated.
+    // Test that link fields are migrated.
     $this->assertIdentical('http://groups.drupal.org/', $node->field_test_link->uri);
     $this->assertIdentical('Drupal Groups', $node->field_test_link->title);
     $this->assertIdentical([], $node->field_test_link->options['attributes']);
 
-    // Test that a link field with an internal link is migrated.
-    $node = Node::load(9);
-    $this->assertSame('internal:/node/10', $node->field_test_link->uri);
-    $this->assertSame('Buy it now', $node->field_test_link->title);
-    $this->assertSame(['attributes' => ['target' => '_blank']], $node->field_test_link->options);
-
-    // Test that translations are working.
-    $node = Node::load(10);
-    $this->assertIdentical('en', $node->langcode->value);
-    $this->assertIdentical('The Real McCoy', $node->title->value);
-    $this->assertTrue($node->hasTranslation('fr'), "Node 10 has french translation");
-
-    // Node 11 is a translation of node 10, and should not be imported separately.
-    $this->assertNull(Node::load(11), "Node 11 doesn't exist in D8, it was a translation");
-
-    // Rerun migration with two source database changes.
-    // 1. Add an invalid link attributes and a different URL and
+    // Rerun migration with invalid link attributes and a different URL and
     // title. If only the attributes are changed the error does not occur.
     Database::getConnection('default', 'migrate')
       ->update('content_type_story')
@@ -113,27 +92,12 @@ public function testNode() {
       ->condition('vid', '3')
       ->execute();
 
-    // 2. Add a leading slash to an internal link.
-    Database::getConnection('default', 'migrate')
-      ->update('content_type_story')
-      ->fields([
-        'field_test_link_url' => '/node/10',
-      ])
-      ->condition('nid', '9')
-      ->condition('vid', '12')
-      ->execute();
-
     $this->rerunMigration();
     $node = Node::load(2);
     $this->assertIdentical('https://www.drupal.org/node/2127611', $node->field_test_link->uri);
     $this->assertIdentical('Migrate API in Drupal 8', $node->field_test_link->title);
     $this->assertIdentical([], $node->field_test_link->options['attributes']);
 
-    $node = Node::load(9);
-    $this->assertSame('internal:/node/10', $node->field_test_link->uri);
-    $this->assertSame('Buy it now', $node->field_test_link->title);
-    $this->assertSame(['attributes' => ['target' => '_blank']], $node->field_test_link->options);
-
     // Test that we can re-import using the EntityContentBase destination.
     $title = $this->rerunMigration();
     $node = Node::load(2);
diff --git a/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php b/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php
index bbec07c..ab51971 100644
--- a/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php
+++ b/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php
@@ -44,7 +44,6 @@ protected function setUp() {
       'd7_user',
       'd7_node_type',
       'd7_comment_type',
-      'd7_taxonomy_vocabulary',
       'd7_field',
       'd7_field_instance',
       'd7_node:test_content_type',
@@ -140,13 +139,9 @@ public function testNode() {
     $this->assertIdentical('title text', $node->field_images->title);
     $this->assertIdentical('93', $node->field_images->width);
     $this->assertIdentical('93', $node->field_images->height);
-    $this->assertIdentical('http://google.com', $node->field_link->uri);
-    $this->assertIdentical('Click Here', $node->field_link->title);
 
     $node = Node::load(2);
     $this->assertIdentical("...is that it's the absolute best show ever. Trust me, I would know.", $node->body->value);
-    $this->assertIdentical('internal:/', $node->field_link->uri);
-    $this->assertIdentical('Home', $node->field_link->title);
   }
 
 }
diff --git a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeByNodeTypeTest.php b/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeByNodeTypeTest.php
index 6a308ff..0c31810 100644
--- a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeByNodeTypeTest.php
+++ b/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeByNodeTypeTest.php
@@ -40,7 +40,7 @@ class NodeByNodeTypeTest extends MigrateSqlSourceTestCase {
       'promote' => 1,
       'moderate' => 0,
       'sticky' => 0,
-      'tnid' => 1,
+      'tnid' => 0,
       'translate' => 0,
       // Node revision fields.
       'body' => 'body for node 1',
@@ -64,7 +64,7 @@ class NodeByNodeTypeTest extends MigrateSqlSourceTestCase {
       'promote' => 1,
       'moderate' => 0,
       'sticky' => 0,
-      'tnid' => 2,
+      'tnid' => 0,
       'translate' => 0,
       // Node revision fields.
       'body' => 'body for node 2',
diff --git a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeRevisionByNodeTypeTest.php b/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeRevisionByNodeTypeTest.php
index d548ff3..8c78be7 100644
--- a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeRevisionByNodeTypeTest.php
+++ b/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeRevisionByNodeTypeTest.php
@@ -134,7 +134,7 @@ class NodeRevisionByNodeTypeTest extends MigrateSqlSourceTestCase {
       'promote' => 1,
       'moderate' => 0,
       'sticky' => 0,
-      'tnid' => 1,
+      'tnid' => 0,
       'translate' => 0,
       'vid' => 1,
       'node_uid' => 1,
@@ -156,7 +156,7 @@ class NodeRevisionByNodeTypeTest extends MigrateSqlSourceTestCase {
       'promote' => 1,
       'moderate' => 0,
       'sticky' => 0,
-      'tnid' => 1,
+      'tnid' => 0,
       'translate' => 0,
       'vid' => 3,
       'node_uid' => 1,
diff --git a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeRevisionTest.php b/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeRevisionTest.php
index 752ed9b..b1c23f8 100644
--- a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeRevisionTest.php
+++ b/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeRevisionTest.php
@@ -133,7 +133,7 @@ class NodeRevisionTest extends MigrateSqlSourceTestCase {
       'promote' => 1,
       'moderate' => 0,
       'sticky' => 0,
-      'tnid' => 1,
+      'tnid' => 0,
       'translate' => 0,
       // Node revision fields.
       'vid' => 1,
@@ -157,7 +157,7 @@ class NodeRevisionTest extends MigrateSqlSourceTestCase {
       'promote' => 1,
       'moderate' => 0,
       'sticky' => 0,
-      'tnid' => 1,
+      'tnid' => 0,
       'translate' => 0,
       // Node revision fields.
       'vid' => 3,
diff --git a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeTest.php b/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeTest.php
index b6ce22e..79f2bac 100644
--- a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeTest.php
+++ b/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeTest.php
@@ -2,12 +2,16 @@
 
 namespace Drupal\Tests\node\Unit\Plugin\migrate\source\d6;
 
+use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
+
 /**
  * Tests D6 node source plugin.
  *
  * @group node
  */
-class NodeTest extends NodeTestBase {
+class NodeTest extends MigrateSqlSourceTestCase {
+
+  const PLUGIN_CLASS = 'Drupal\node\Plugin\migrate\source\d6\Node';
 
   protected $migrationConfiguration = array(
     'id' => 'test',
@@ -32,7 +36,7 @@ class NodeTest extends NodeTestBase {
       'promote' => 1,
       'moderate' => 0,
       'sticky' => 0,
-      'tnid' => 1,
+      'tnid' => 0,
       'translate' => 0,
       // Node revision fields.
       'body' => 'body for node 1',
@@ -56,7 +60,7 @@ class NodeTest extends NodeTestBase {
       'promote' => 1,
       'moderate' => 0,
       'sticky' => 0,
-      'tnid' => 2,
+      'tnid' => 0,
       'translate' => 0,
       // Node revision fields.
       'body' => 'body for node 2',
@@ -79,7 +83,7 @@ class NodeTest extends NodeTestBase {
       'promote' => 1,
       'moderate' => 0,
       'sticky' => 0,
-      'tnid' => 5,
+      'tnid' => 0,
       'translate' => 0,
       // Node revision fields.
       'body' => 'body for node 5',
@@ -88,35 +92,82 @@ class NodeTest extends NodeTestBase {
       'timestamp' => 1279308993,
       'format' => 1,
       'field_test_four' => array(
-        array(
-          'value' => '3.14159',
-          'delta' => 0,
-        ),
+        array('value' => '3.14159'),
       ),
     ),
-    array(
-      'nid' => 6,
-      'vid' => 6,
-      'type' => 'story',
-      'language' => 'en',
-      'title' => 'node title 6',
-      'uid' => 1,
-      'status' => 1,
-      'created' => 1279290909,
-      'changed' => 1279308994,
-      'comment' => 0,
-      'promote' => 1,
-      'moderate' => 0,
-      'sticky' => 0,
-      'tnid' => 6,
-      'translate' => 0,
-      // Node revision fields.
-      'body' => 'body for node 6',
-      'teaser' => 'body for node 6',
-      'log' => '',
-      'timestamp' => 1279308994,
-      'format' => 1,
-    ),
   );
 
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    $this->databaseContents['content_node_field'] = array(
+      array(
+        'field_name' => 'field_test_four',
+        'type' => 'number_float',
+        'global_settings' => 'a:0:{}',
+        'required' => '0',
+        'multiple' => '0',
+        'db_storage' => '1',
+        'module' => 'number',
+        'db_columns' => 'a:1:{s:5:"value";a:3:{s:4:"type";s:5:"float";s:8:"not null";b:0;s:8:"sortable";b:1;}}',
+        'active' => '1',
+        'locked' => '0',
+      ),
+    );
+    $this->databaseContents['content_node_field_instance'] = array(
+      array(
+        'field_name' => 'field_test_four',
+        'type_name' => 'story',
+        'weight' => '3',
+        'label' => 'Float Field',
+        'widget_type' => 'number',
+        'widget_settings' => 'a:0:{}',
+        'display_settings' => 'a:0:{}',
+        'description' => 'An example float field.',
+        'widget_module' => 'number',
+        'widget_active' => '1',
+      ),
+    );
+    $this->databaseContents['content_type_story'] = array(
+      array(
+        'nid' => 5,
+        'vid' => 5,
+        'uid' => 5,
+        'field_test_four_value' => '3.14159',
+      ),
+    );
+    $this->databaseContents['system'] = array(
+      array(
+        'type' => 'module',
+        'name' => 'content',
+        'schema_version' => 6001,
+        'status' => TRUE,
+      ),
+    );
+    foreach ($this->expectedResults as $k => $row) {
+      foreach (array('nid', 'vid', 'title', 'uid', 'body', 'teaser', 'format', 'timestamp', 'log') as $field) {
+        $this->databaseContents['node_revisions'][$k][$field] = $row[$field];
+        switch ($field) {
+          case 'nid': case 'vid':
+            break;
+          case 'uid':
+            $this->databaseContents['node_revisions'][$k]['uid']++;
+            break;
+          default:
+            unset($row[$field]);
+            break;
+        }
+      }
+      $this->databaseContents['node'][$k] = $row;
+    }
+    array_walk($this->expectedResults, function (&$row) {
+      $row['node_uid'] = $row['uid'];
+      $row['revision_uid'] = $row['uid'] + 1;
+      unset($row['uid']);
+    });
+
+    parent::setUp();
+  }
+
 }
diff --git a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeTestBase.php b/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeTestBase.php
deleted file mode 100644
index 8850fc4..0000000
--- a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeTestBase.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-
-namespace Drupal\Tests\node\Unit\Plugin\migrate\source\d6;
-
-use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
-
-/**
- * Base for D6 node migration tests.
- */
-abstract class NodeTestBase extends MigrateSqlSourceTestCase {
-
-  const PLUGIN_CLASS = 'Drupal\node\Plugin\migrate\source\d6\Node';
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    $this->databaseContents['content_node_field'] = array(
-      array(
-        'field_name' => 'field_test_four',
-        'type' => 'number_float',
-        'global_settings' => 'a:0:{}',
-        'required' => '0',
-        'multiple' => '0',
-        'db_storage' => '1',
-        'module' => 'number',
-        'db_columns' => 'a:1:{s:5:"value";a:3:{s:4:"type";s:5:"float";s:8:"not null";b:0;s:8:"sortable";b:1;}}',
-        'active' => '1',
-        'locked' => '0',
-      ),
-    );
-    $this->databaseContents['content_node_field_instance'] = array(
-      array(
-        'field_name' => 'field_test_four',
-        'type_name' => 'story',
-        'weight' => '3',
-        'label' => 'Float Field',
-        'widget_type' => 'number',
-        'widget_settings' => 'a:0:{}',
-        'display_settings' => 'a:0:{}',
-        'description' => 'An example float field.',
-        'widget_module' => 'number',
-        'widget_active' => '1',
-      ),
-    );
-    $this->databaseContents['content_type_story'] = array(
-      array(
-        'nid' => 5,
-        'vid' => 5,
-        'uid' => 5,
-        'field_test_four_value' => '3.14159',
-      ),
-    );
-    $this->databaseContents['system'] = array(
-      array(
-        'type' => 'module',
-        'name' => 'content',
-        'schema_version' => 6001,
-        'status' => TRUE,
-      ),
-    );
-    $this->databaseContents['node'] = [
-      [
-        'nid' => 1,
-        'vid' => 1,
-        'type' => 'page',
-        'language' => 'en',
-        'title' => 'node title 1',
-        'uid' => 1,
-        'status' => 1,
-        'created' => 1279051598,
-        'changed' => 1279051598,
-        'comment' => 2,
-        'promote' => 1,
-        'moderate' => 0,
-        'sticky' => 0,
-        'translate' => 0,
-        'tnid' => 0,
-      ],
-      [
-        'nid' => 2,
-        'vid' => 2,
-        'type' => 'page',
-        'language' => 'en',
-        'title' => 'node title 2',
-        'uid' => 1,
-        'status' => 1,
-        'created' => 1279290908,
-        'changed' => 1279308993,
-        'comment' => 0,
-        'promote' => 1,
-        'moderate' => 0,
-        'sticky' => 0,
-        'translate' => 0,
-        'tnid' => 0,
-      ],
-      [
-        'nid' => 5,
-        'vid' => 5,
-        'type' => 'story',
-        'language' => 'en',
-        'title' => 'node title 5',
-        'uid' => 1,
-        'status' => 1,
-        'created' => 1279290908,
-        'changed' => 1279308993,
-        'comment' => 0,
-        'promote' => 1,
-        'moderate' => 0,
-        'sticky' => 0,
-        'translate' => 0,
-        'tnid' => 0,
-      ],
-      [
-        'nid' => 6,
-        'vid' => 6,
-        'type' => 'story',
-        'language' => 'en',
-        'title' => 'node title 6',
-        'uid' => 1,
-        'status' => 1,
-        'created' => 1279290909,
-        'changed' => 1279308994,
-        'comment' => 0,
-        'promote' => 1,
-        'moderate' => 0,
-        'sticky' => 0,
-        'translate' => 0,
-        'tnid' => 6,
-      ],
-      [
-        'nid' => 7,
-        'vid' => 7,
-        'type' => 'story',
-        'language' => 'fr',
-        'title' => 'node title 7',
-        'uid' => 1,
-        'status' => 1,
-        'created' => 1279290910,
-        'changed' => 1279308995,
-        'comment' => 0,
-        'promote' => 1,
-        'moderate' => 0,
-        'sticky' => 0,
-        'translate' => 0,
-        'tnid' => 6,
-      ],
-    ];
-
-    foreach ($this->databaseContents['node'] as $k => $row) {
-      // Find the equivalent row from expected results.
-      $result_row = NULL;
-      foreach ($this->expectedResults as $result) {
-        if (in_array($result['nid'], [$row['nid'], $row['tnid']]) && $result['language'] == $row['language']) {
-          $result_row = $result;
-          break;
-        }
-      }
-
-      // Populate node_revisions.
-      foreach (array('nid', 'vid', 'title', 'uid', 'body', 'teaser', 'format', 'timestamp', 'log') as $field) {
-        $value = isset($row[$field]) ? $row[$field] : $result_row[$field];
-        $this->databaseContents['node_revisions'][$k][$field] = $value;
-        if ($field == 'uid') {
-          $this->databaseContents['node_revisions'][$k]['uid']++;
-        }
-      }
-    }
-
-    array_walk($this->expectedResults, function (&$row) {
-      $row['node_uid'] = $row['uid'];
-      $row['revision_uid'] = $row['uid'] + 1;
-      unset($row['uid']);
-    });
-
-    parent::setUp();
-  }
-
-}
diff --git a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeTranslationTest.php b/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeTranslationTest.php
deleted file mode 100644
index da0b167..0000000
--- a/core/modules/node/tests/src/Unit/Plugin/migrate/source/d6/NodeTranslationTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Drupal\Tests\node\Unit\Plugin\migrate\source\d6;
-
-/**
- * Tests D6 node translation source plugin.
- *
- * @group node
- */
-class NodeTranslationTest extends NodeTestBase {
-
-  protected $migrationConfiguration = array(
-    'id' => 'test',
-    'source' => array(
-      'plugin' => 'd6_node',
-      'translations' => TRUE,
-    ),
-  );
-
-  protected $expectedResults = array(
-    array(
-      'nid' => 7,
-      'vid' => 7,
-      'type' => 'story',
-      'language' => 'fr',
-      'title' => 'node title 7',
-      'uid' => 1,
-      'status' => 1,
-      'created' => 1279290910,
-      'changed' => 1279308995,
-      'comment' => 0,
-      'promote' => 1,
-      'moderate' => 0,
-      'sticky' => 0,
-      'tnid' => 6,
-      'translate' => 0,
-      // Node revision fields.
-      'body' => 'body for node 7',
-      'teaser' => 'body for node 7',
-      'log' => '',
-      'timestamp' => 1279308995,
-      'format' => 1,
-    ),
-  );
-
-}
diff --git a/core/modules/page_cache/src/StackMiddleware/PageCache.php b/core/modules/page_cache/src/StackMiddleware/PageCache.php
index a4d9053..14f9df5 100644
--- a/core/modules/page_cache/src/StackMiddleware/PageCache.php
+++ b/core/modules/page_cache/src/StackMiddleware/PageCache.php
@@ -7,7 +7,6 @@
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\PageCache\RequestPolicyInterface;
 use Drupal\Core\PageCache\ResponsePolicyInterface;
-use Drupal\Core\Site\Settings;
 use Symfony\Component\HttpFoundation\BinaryFileResponse;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
@@ -244,34 +243,15 @@ protected function fetch(Request $request, $type = self::MASTER_REQUEST, $catch
       return $response;
     }
 
-    $request_time = $request->server->get('REQUEST_TIME');
-    // The response passes all of the above checks, so cache it. Page cache
-    // entries default to Cache::PERMANENT since they will be expired via cache
-    // tags locally. Because of this, page cache ignores max age.
+    // The response passes all of the above checks, so cache it.
     // - Get the tags from CacheableResponseInterface per the earlier comments.
     // - Get the time expiration from the Expires header, rather than the
     //   interface, but see https://www.drupal.org/node/2352009 about possibly
     //   changing that.
-    $expire = 0;
-    // 403 and 404 responses can fill non-LRU cache backends and generally are
-    // likely to have a low cache hit rate. So do not cache them permanently.
-    if ($response->isClientError()) {
-      // Cache for an hour by default. If the 'cache_ttl_4xx' setting is
-      // set to 0 then do not cache the response.
-      $cache_ttl_4xx = Settings::get('cache_ttl_4xx', 3600);
-      if ($cache_ttl_4xx > 0) {
-        $expire = $request_time + $cache_ttl_4xx;
-      }
-    }
-    else {
-      $date = $response->getExpires()->getTimestamp();
-      $expire = ($date > $request_time) ? $date : Cache::PERMANENT;
-    }
-
-    if ($expire === Cache::PERMANENT || $expire > $request_time) {
-      $tags = $response->getCacheableMetadata()->getCacheTags();
-      $this->set($request, $response, $expire, $tags);
-    }
+    $tags = $response->getCacheableMetadata()->getCacheTags();
+    $date = $response->getExpires()->getTimestamp();
+    $expire = ($date > time()) ? $date : Cache::PERMANENT;
+    $this->set($request, $response, $expire, $tags);
 
     // Mark response as a cache miss.
     $response->headers->set('X-Drupal-Cache', 'MISS');
diff --git a/core/modules/page_cache/src/Tests/PageCacheTest.php b/core/modules/page_cache/src/Tests/PageCacheTest.php
index 64e4ee9..44c94e1 100644
--- a/core/modules/page_cache/src/Tests/PageCacheTest.php
+++ b/core/modules/page_cache/src/Tests/PageCacheTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\page_cache\Tests;
 
 use Drupal\Component\Datetime\DateTimePlus;
-use Drupal\Core\Site\Settings;
 use Drupal\Core\Url;
 use Drupal\entity_test\Entity\EntityTest;
 use Drupal\simpletest\WebTestBase;
@@ -131,7 +130,7 @@ function testQueryParameterFormatRequests() {
     $this->assertRaw('{"content":"oh hai this is json"}', 'The correct Json response was returned.');
 
     // Enable REST support for nodes and hal+json.
-    \Drupal::service('module_installer')->install(['node', 'rest', 'hal', 'basic_auth']);
+    \Drupal::service('module_installer')->install(['node', 'rest', 'hal']);
     $this->drupalCreateContentType(['type' => 'article']);
     $node = $this->drupalCreateNode(['type' => 'article']);
     $node_uri = $node->urlInfo();
@@ -342,7 +341,6 @@ function testPageCacheAnonymous403404() {
       403 => $admin_url,
       404 => $invalid_url,
     ];
-    $cache_ttl_4xx = Settings::get('cache_ttl_4xx', 3600);
     foreach ($tests as $code => $content_url) {
       // Anonymous user, without permissions.
       $this->drupalGet($content_url);
@@ -376,35 +374,6 @@ function testPageCacheAnonymous403404() {
       $this->drupalGet($content_url);
       $this->assertResponse($code);
       $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'MISS');
-
-      // Ensure the 'expire' field on the cache entry uses cache_ttl_4xx.
-      $cache_item = \Drupal::service('cache.render')->get($this->getUrl() . ':html');
-      $difference = $cache_item->expire - (int) $cache_item->created;
-      // Given that a second might have passed we cannot be sure that
-      // $difference will exactly equal the default cache_ttl_4xx setting.
-      // Account for any timing difference or rounding errors by ensuring the
-      // value is within 5 seconds.
-      $this->assertTrue(
-        $difference > $cache_ttl_4xx - 5 &&
-        $difference < $cache_ttl_4xx + 5,
-        'The cache entry expiry time uses the cache_ttl_4xx setting.'
-      );
-    }
-
-    // Disable 403 and 404 caching.
-    $settings['settings']['cache_ttl_4xx'] = (object) array(
-      'value' => 0,
-      'required' => TRUE,
-    );
-    $this->writeSettings($settings);
-    \Drupal::service('cache.render')->deleteAll();
-
-    foreach ($tests as $code => $content_url) {
-      // Getting the 404 page twice should still result in a cache miss.
-      $this->drupalGet($content_url);
-      $this->drupalGet($content_url);
-      $this->assertResponse($code);
-      $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'MISS');
     }
   }
 
diff --git a/core/modules/path/src/Form/PathFilterForm.php b/core/modules/path/src/Form/PathFilterForm.php
index 6ac1585..ddc048c 100644
--- a/core/modules/path/src/Form/PathFilterForm.php
+++ b/core/modules/path/src/Form/PathFilterForm.php
@@ -38,6 +38,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $keys = N
     );
     $form['basic']['submit'] = array(
       '#type' => 'submit',
+      '#button_type' => 'primary',
       '#value' => $this->t('Filter'),
     );
     if ($keys) {
diff --git a/core/modules/path/src/Plugin/Field/FieldType/PathItem.php b/core/modules/path/src/Plugin/Field/FieldType/PathItem.php
index 2d8fb1e..4ee5729 100644
--- a/core/modules/path/src/Plugin/Field/FieldType/PathItem.php
+++ b/core/modules/path/src/Plugin/Field/FieldType/PathItem.php
@@ -90,11 +90,4 @@ public static function generateSampleValue(FieldDefinitionInterface $field_defin
     return $values;
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function mainPropertyName() {
-    return 'alias';
-  }
-
 }
diff --git a/core/modules/path/src/Tests/PathAliasTest.php b/core/modules/path/src/Tests/PathAliasTest.php
index c7e70d2..df4e18d 100644
--- a/core/modules/path/src/Tests/PathAliasTest.php
+++ b/core/modules/path/src/Tests/PathAliasTest.php
@@ -43,7 +43,7 @@ function testPathCache() {
     $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
 
     // Check the path alias whitelist cache.
-    $whitelist = \Drupal::cache('bootstrap')->get('path_alias_whitelist');
+    $whitelist = \Drupal::cache()->get('path_alias_whitelist');
     $this->assertTrue($whitelist->data['node']);
     $this->assertFalse($whitelist->data['admin']);
 
diff --git a/core/modules/quickedit/quickedit.routing.yml b/core/modules/quickedit/quickedit.routing.yml
index af22056..489d855 100644
--- a/core/modules/quickedit/quickedit.routing.yml
+++ b/core/modules/quickedit/quickedit.routing.yml
@@ -2,6 +2,8 @@ quickedit.metadata:
   path: '/quickedit/metadata'
   defaults:
     _controller: '\Drupal\quickedit\QuickEditController::metadata'
+  options:
+    _theme: ajax_base_page
   requirements:
     _permission: 'access in-place editing'
 
@@ -17,6 +19,7 @@ quickedit.field_form:
   defaults:
     _controller: '\Drupal\quickedit\QuickEditController::fieldForm'
   options:
+    _theme: ajax_base_page
     parameters:
       entity:
         type: entity:{entity_type}
diff --git a/core/modules/quickedit/src/Annotation/InPlaceEditor.php b/core/modules/quickedit/src/Annotation/InPlaceEditor.php
index 8c9594b..f30d8e0 100644
--- a/core/modules/quickedit/src/Annotation/InPlaceEditor.php
+++ b/core/modules/quickedit/src/Annotation/InPlaceEditor.php
@@ -28,6 +28,14 @@ class InPlaceEditor extends Plugin {
   public $id;
 
   /**
+   * An array of in-place editors plugin IDs that have registered themselves as
+   * alternatives to this in-place editor.
+   *
+   * @var array
+   */
+  public $alternativeTo;
+
+  /**
    * The name of the module providing the in-place editor plugin.
    *
    * @var string
diff --git a/core/modules/quickedit/src/EditorSelector.php b/core/modules/quickedit/src/EditorSelector.php
index 9e2252e..6b199fa 100644
--- a/core/modules/quickedit/src/EditorSelector.php
+++ b/core/modules/quickedit/src/EditorSelector.php
@@ -50,8 +50,21 @@ public function __construct(PluginManagerInterface $editor_manager, FormatterPlu
    * {@inheritdoc}
    */
   public function getEditor($formatter_type, FieldItemListInterface $items) {
+    // Build a static cache of the editors that have registered themselves as
+    // alternatives to a certain editor.
+    if (!isset($this->alternatives)) {
+      $editors = $this->editorManager->getDefinitions();
+      foreach ($editors as $alternative_editor_id => $editor) {
+        if (isset($editor['alternativeTo'])) {
+          foreach ($editor['alternativeTo'] as $original_editor_id) {
+            $this->alternatives[$original_editor_id][] = $alternative_editor_id;
+          }
+        }
+      }
+    }
+
     // Check if the formatter defines an appropriate in-place editor. For
-    // example, text formatters displaying plain text can choose to use the
+    // example, text formatters displaying untrimmed text can choose to use the
     // 'plain_text' editor. If the formatter doesn't specify, fall back to the
     // 'form' editor, since that can work for any field. Formatter definitions
     // can use 'disabled' to explicitly opt out of in-place editing.
diff --git a/core/modules/quickedit/src/Plugin/InPlaceEditor/PlainTextEditor.php b/core/modules/quickedit/src/Plugin/InPlaceEditor/PlainTextEditor.php
index 1f61a56..08f4efa 100644
--- a/core/modules/quickedit/src/Plugin/InPlaceEditor/PlainTextEditor.php
+++ b/core/modules/quickedit/src/Plugin/InPlaceEditor/PlainTextEditor.php
@@ -21,7 +21,16 @@ public function isCompatible(FieldItemListInterface $items) {
     $field_definition = $items->getFieldDefinition();
 
     // This editor is incompatible with multivalued fields.
-    return $field_definition->getFieldStorageDefinition()->getCardinality() == 1;
+    if ($field_definition->getFieldStorageDefinition()->getCardinality() != 1) {
+      return FALSE;
+    }
+    // This editor is incompatible with formatted ("rich") text fields.
+    elseif (in_array($field_definition->getType(), array('text', 'text_long', 'text_with_summary'), TRUE)) {
+      return FALSE;
+    }
+    else {
+      return TRUE;
+    }
   }
 
   /**
diff --git a/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php b/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php
index 1eedb1c..aa46a77 100644
--- a/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php
+++ b/core/modules/quickedit/src/Tests/QuickEditAutocompleteTermTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\quickedit\Tests;
 
 use Drupal\Component\Serialization\Json;
-use Drupal\Core\EventSubscriber\MainContentViewSubscriber;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\field\Tests\EntityReference\EntityReferenceTestTrait;
@@ -131,7 +130,7 @@ public function testAutocompleteQuickEdit() {
 
     $quickedit_uri = 'quickedit/form/node/' . $this->node->id() . '/' . $this->fieldName . '/' . $this->node->language()->getId() . '/full';
     $post = array('nocssjs' => 'true') + $this->getAjaxPageStatePostData();
-    $response = $this->drupalPost($quickedit_uri, '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+    $response = $this->drupalPost($quickedit_uri, 'application/vnd.drupal-ajax', $post);
     $ajax_commands = Json::decode($response);
 
     // Prepare form values for submission. drupalPostAJAX() is not suitable for
@@ -149,7 +148,7 @@ public function testAutocompleteQuickEdit() {
       );
 
       // Submit field form and check response. Should render back all the terms.
-      $response = $this->drupalPost($quickedit_uri, '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+      $response = $this->drupalPost($quickedit_uri, 'application/vnd.drupal-ajax', $post);
       $this->assertResponse(200);
       $ajax_commands = Json::decode($response);
       $this->setRawContent($ajax_commands[0]['data']);
@@ -162,7 +161,7 @@ public function testAutocompleteQuickEdit() {
       // PrivateTempStore.
       $quickedit_uri = 'quickedit/form/node/' . $this->node->id() . '/' . $this->fieldName . '/' . $this->node->language()->getId() . '/full';
       $post = array('nocssjs' => 'true') + $this->getAjaxPageStatePostData();
-      $response = $this->drupalPost($quickedit_uri, '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+      $response = $this->drupalPost($quickedit_uri, 'application/vnd.drupal-ajax', $post);
       $ajax_commands = Json::decode($response);
 
       // The AjaxResponse's first command is an InsertCommand which contains
diff --git a/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php b/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php
index 2a91fec..6baaed3 100644
--- a/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php
+++ b/core/modules/quickedit/src/Tests/QuickEditLoadingTest.php
@@ -67,12 +67,6 @@ protected function setUp() {
       'name' => 'Article',
     ));
 
-    // Set the node type to initially not have revisions.
-    // Testing with revisions will be done later.
-    $node_type = NodeType::load('article');
-    $node_type->setNewRevision(FALSE);
-    $node_type->save();
-
     // Create one node of the above node type using the above text format.
     $this->drupalCreateNode(array(
       'type' => 'article',
@@ -188,7 +182,7 @@ public function testUserWithPermission() {
     //  1. a settings command with useless metadata: AjaxController is dumb
     //  2. an insert command that loads the required in-place editors
     $post = array('editors[0]' => 'form') + $this->getAjaxPageStatePostData();
-    $response = $this->drupalPost('quickedit/attachments', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+    $response = $this->drupalPost('quickedit/attachments', 'application/vnd.drupal-ajax', $post);
     $ajax_commands = Json::decode($response);
     $this->assertIdentical(2, count($ajax_commands), 'The attachments HTTP request results in two AJAX commands.');
     // First command: settings.
@@ -200,7 +194,7 @@ public function testUserWithPermission() {
     // Retrieving the form for this field should result in a 200 response,
     // containing only a quickeditFieldForm command.
     $post = array('nocssjs' => 'true', 'reset' => 'true') + $this->getAjaxPageStatePostData();
-    $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+    $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', 'application/vnd.drupal-ajax', $post);
     $this->assertResponse(200);
     $ajax_commands = Json::decode($response);
     $this->assertIdentical(1, count($ajax_commands), 'The field form HTTP request results in one AJAX command.');
@@ -228,7 +222,7 @@ public function testUserWithPermission() {
 
       // Submit field form and check response. This should store the updated
       // entity in PrivateTempStore on the server.
-      $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+      $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', 'application/vnd.drupal-ajax', $post);
       $this->assertResponse(200);
       $ajax_commands = Json::decode($response);
       $this->assertIdentical(1, count($ajax_commands), 'The field form HTTP request results in one AJAX command.');
@@ -270,7 +264,7 @@ public function testUserWithPermission() {
 
       // Retrieve field form.
       $post = array('nocssjs' => 'true', 'reset' => 'true');
-      $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+      $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', 'application/vnd.drupal-ajax', $post);
       $this->assertResponse(200);
       $ajax_commands = Json::decode($response);
       $this->assertIdentical(1, count($ajax_commands), 'The field form HTTP request results in one AJAX command.');
@@ -287,7 +281,7 @@ public function testUserWithPermission() {
         'form_build_id' => $build_id_match[1],
       );
       $post += $edit + $this->getAjaxPageStatePostData();
-      $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+      $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', 'application/vnd.drupal-ajax', $post);
       $this->assertResponse(200);
       $ajax_commands = Json::decode($response);
       $this->assertIdentical(1, count($ajax_commands), 'The field form HTTP request results in one AJAX command.');
@@ -345,7 +339,7 @@ public function testTitleBaseField() {
     // Retrieving the form for this field should result in a 200 response,
     // containing only a quickeditFieldForm command.
     $post = array('nocssjs' => 'true', 'reset' => 'true') + $this->getAjaxPageStatePostData();
-    $response = $this->drupalPost('quickedit/form/' . 'node/1/title/en/full', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+    $response = $this->drupalPost('quickedit/form/' . 'node/1/title/en/full', 'application/vnd.drupal-ajax', $post);
     $this->assertResponse(200);
     $ajax_commands = Json::decode($response);
     $this->assertIdentical(1, count($ajax_commands), 'The field form HTTP request results in one AJAX command.');
@@ -372,7 +366,7 @@ public function testTitleBaseField() {
 
       // Submit field form and check response. This should store the
       // updated entity in PrivateTempStore on the server.
-      $response = $this->drupalPost('quickedit/form/' . 'node/1/title/en/full', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+      $response = $this->drupalPost('quickedit/form/' . 'node/1/title/en/full', 'application/vnd.drupal-ajax', $post);
       $this->assertResponse(200);
       $ajax_commands = Json::decode($response);
       $this->assertIdentical(1, count($ajax_commands), 'The field form HTTP request results in one AJAX command.');
@@ -424,7 +418,7 @@ public function testCustomPipeline() {
 
     // Request editing to render results with the custom render pipeline.
     $post = array('nocssjs' => 'true') + $this->getAjaxPageStatePostData();
-    $response = $this->drupalPost($custom_render_url, '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+    $response = $this->drupalPost($custom_render_url, 'application/vnd.drupal-ajax', $post);
     $ajax_commands = Json::decode($response);
 
     // Prepare form values for submission. drupalPostAJAX() is not suitable for
@@ -448,7 +442,7 @@ public function testCustomPipeline() {
 
       // Submit field form and check response. Should render with the custom
       // render pipeline.
-      $response = $this->drupalPost($custom_render_url, '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+      $response = $this->drupalPost($custom_render_url, 'application/vnd.drupal-ajax', $post);
       $this->assertResponse(200);
       $ajax_commands = Json::decode($response);
       $this->assertIdentical(1, count($ajax_commands), 'The field form HTTP request results in one AJAX command.');
@@ -468,7 +462,7 @@ public function testConcurrentEdit() {
     $this->drupalLogin($this->editorUser);
 
     $post = array('nocssjs' => 'true') + $this->getAjaxPageStatePostData();
-    $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+    $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', 'application/vnd.drupal-ajax', $post);
     $this->assertResponse(200);
     $ajax_commands = Json::decode($response);
 
@@ -496,7 +490,7 @@ public function testConcurrentEdit() {
 
       // Submit field form and check response. Should throw a validation error
       // because the node was changed in the meantime.
-      $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+      $response = $this->drupalPost('quickedit/form/' . 'node/1/body/en/full', 'application/vnd.drupal-ajax', $post);
       $this->assertResponse(200);
       $ajax_commands = Json::decode($response);
       $this->assertIdentical(2, count($ajax_commands), 'The field form HTTP request results in two AJAX commands.');
@@ -560,7 +554,7 @@ public function testImageField() {
     ], t('Save'));
 
     // The image field form should load normally.
-    $response = $this->drupalPost('quickedit/form/node/1/field_image/en/full', '', ['nocssjs' => 'true'] + $this->getAjaxPageStatePostData(), ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+    $response = $this->drupalPost('quickedit/form/node/1/field_image/en/full', 'application/vnd.drupal-ajax', ['nocssjs' => 'true'] + $this->getAjaxPageStatePostData());
     $this->assertResponse(200);
     $ajax_commands = Json::decode($response);
     $this->assertIdentical('<form ', Unicode::substr($ajax_commands[0]['data'], 0, 6), 'The quickeditFieldForm command contains a form.');
diff --git a/core/modules/quickedit/tests/modules/quickedit_test.module b/core/modules/quickedit/tests/modules/quickedit_test.module
index 3d2106d..cd12fc9 100644
--- a/core/modules/quickedit/tests/modules/quickedit_test.module
+++ b/core/modules/quickedit/tests/modules/quickedit_test.module
@@ -18,16 +18,3 @@ function quickedit_test_quickedit_render_field(EntityInterface $entity, $field_n
     '#suffix' => '</div>',
   );
 }
-
-/**
- * Implements hook_field_formatter_info_alter().
- *
- * @see quickedit_field_formatter_info_alter()
- * @see editor_field_formatter_info_alter()
- */
-function quickedit_test_field_formatter_info_alter(&$info) {
-  // Update \Drupal\text\Plugin\Field\FieldFormatter\TextDefaultFormatter's
-  // annotation to indicate that it supports the 'wysiwyg' in-place editor
-  // provided by this module.
-  $info['text_default']['quickedit'] = ['editor' => 'wysiwyg'];
-}
diff --git a/core/modules/quickedit/tests/modules/src/Plugin/InPlaceEditor/WysiwygEditor.php b/core/modules/quickedit/tests/modules/src/Plugin/InPlaceEditor/WysiwygEditor.php
index 596df75..8ce768f 100644
--- a/core/modules/quickedit/tests/modules/src/Plugin/InPlaceEditor/WysiwygEditor.php
+++ b/core/modules/quickedit/tests/modules/src/Plugin/InPlaceEditor/WysiwygEditor.php
@@ -10,6 +10,7 @@
  *
  * @InPlaceEditor(
  *   id = "wysiwyg",
+ *   alternativeTo = {"plain_text"}
  * )
  */
 class WysiwygEditor extends InPlaceEditorBase {
@@ -27,7 +28,12 @@ public function isCompatible(FieldItemListInterface $items) {
     // This editor is compatible with formatted ("rich") text fields; but only
     // if there is a currently active text format and that text format is the
     // 'full_html' text format.
-    return $items[0]->format === 'full_html';
+    elseif (in_array($field_definition->getType(), array('text', 'text_long', 'text_with_summary'), TRUE)) {
+      if ($items[0]->format === 'full_html') {
+        return TRUE;
+      }
+      return FALSE;
+    }
   }
 
   /**
diff --git a/core/modules/quickedit/tests/src/Kernel/EditorSelectionTest.php b/core/modules/quickedit/tests/src/Kernel/EditorSelectionTest.php
index 0b3820c..18a86f8 100644
--- a/core/modules/quickedit/tests/src/Kernel/EditorSelectionTest.php
+++ b/core/modules/quickedit/tests/src/Kernel/EditorSelectionTest.php
@@ -37,9 +37,7 @@ protected function setUp() {
    * Returns the in-place editor that Quick Edit selects.
    */
   protected function getSelectedEditor($entity_id, $field_name, $view_mode = 'default') {
-    $storage = $this->container->get('entity_type.manager')->getStorage('entity_test');
-    $storage->resetCache([$entity_id]);
-    $entity = $storage->load($entity_id);
+    $entity = entity_load('entity_test', $entity_id, TRUE);
     $items = $entity->get($field_name);
     $options = entity_get_display('entity_test', 'entity_test', $view_mode)->getComponent($field_name);
     return $this->editorSelector->getEditor($options['type'], $items);
diff --git a/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php b/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php
index 7fdc8fb..ce9a977 100644
--- a/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php
+++ b/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php
@@ -93,7 +93,7 @@ public function testSimpleEntityType() {
     $entity->{$field_1_name}->value = 'Test';
     $entity->{$field_2_name}->value = 42;
     $entity->save();
-    $entity = EntityTest::load($entity->id());
+    $entity = entity_load('entity_test', $entity->id());
 
     // Verify metadata for field 1.
     $items_1 = $entity->get($field_1_name);
@@ -159,7 +159,7 @@ public function testEditorWithCustomMetadata() {
     $entity->{$field_name}->value = 'Test';
     $entity->{$field_name}->format = 'full_html';
     $entity->save();
-    $entity = EntityTest::load($entity->id());
+    $entity = entity_load('entity_test', $entity->id());
 
     // Verify metadata.
     $items = $entity->get($field_name);
diff --git a/core/modules/rdf/rdf.module b/core/modules/rdf/rdf.module
index 3108ee1..12abf9e 100644
--- a/core/modules/rdf/rdf.module
+++ b/core/modules/rdf/rdf.module
@@ -70,7 +70,7 @@ function rdf_help($route_name, RouteMatchInterface $route_match) {
  */
 function rdf_get_mapping($entity_type, $bundle) {
   // Try loading the mapping from configuration.
-  $mapping = RdfMapping::load($entity_type . '.' . $bundle);
+  $mapping = entity_load('rdf_mapping', $entity_type . '.' . $bundle);
 
   // If not found, create a fresh mapping object.
   if (!$mapping) {
@@ -233,12 +233,9 @@ function rdf_comment_storage_load($comments) {
     // to optimize performance for websites that implement an entity cache.
     $created_mapping = rdf_get_mapping('comment', $comment->bundle())
       ->getPreparedFieldMapping('created');
-    /** @var \Drupal\comment\CommentInterface $comment*/
     $comment->rdf_data['date'] = rdf_rdfa_attributes($created_mapping, $comment->get('created')->first()->toArray());
     $entity = $comment->getCommentedEntity();
-    // The current function is a storage level hook, so avoid to bubble
-    // bubbleable metadata, because it can be outside of a render context.
-    $comment->rdf_data['entity_uri'] = $entity->toUrl()->toString(TRUE)->getGeneratedUrl();
+    $comment->rdf_data['entity_uri'] = $entity->url();
     if ($comment->hasParentComment()) {
       $comment->rdf_data['pid_uri'] = $comment->getParentComment()->url();
     }
diff --git a/core/modules/responsive_image/responsive_image.post_update.php b/core/modules/responsive_image/responsive_image.post_update.php
deleted file mode 100644
index d6767f7..0000000
--- a/core/modules/responsive_image/responsive_image.post_update.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/**
- * @file
- * Post update functions for Responsive Image.
- */
-
-use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
-use Drupal\Core\Entity\Entity\EntityViewDisplay;
-
-/**
- * @addtogroup updates-8.1.x
- * @{
- */
-
-/**
- * Make responsive image formatters dependent on responsive image styles.
- */
-function responsive_image_post_update_recreate_dependencies() {
-  $displays = EntityViewDisplay::loadMultiple();
-  array_walk($displays, function(EntityViewDisplayInterface $entity_view_display) {
-    $old_dependencies = $entity_view_display->getDependencies();
-    $new_dependencies = $entity_view_display->calculateDependencies()->getDependencies();
-    if ($old_dependencies !== $new_dependencies) {
-      $entity_view_display->save();
-    }
-  });
-}
-
-/**
- * @} End of "addtogroup updates-8.1.x".
- */
diff --git a/core/modules/responsive_image/src/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php b/core/modules/responsive_image/src/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php
index ff91e68..b91ef18 100644
--- a/core/modules/responsive_image/src/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php
+++ b/core/modules/responsive_image/src/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php
@@ -10,7 +10,6 @@
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\Core\Url;
 use Drupal\image\Plugin\Field\FieldFormatter\ImageFormatterBase;
-use Drupal\responsive_image\Entity\ResponsiveImageStyle;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\Utility\LinkGeneratorInterface;
@@ -248,18 +247,4 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
     return $elements;
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function calculateDependencies() {
-    $dependencies = parent::calculateDependencies();
-    $style_id = $this->getSetting('responsive_image_style');
-    /** @var \Drupal\responsive_image\ResponsiveImageStyleInterface $style */
-    if ($style_id && $style = ResponsiveImageStyle::load($style_id)) {
-      // Add the responsive image style as dependency.
-      $dependencies[$style->getConfigDependencyKey()][] = $style->getConfigDependencyName();
-    }
-    return $dependencies;
-  }
-
 }
diff --git a/core/modules/responsive_image/src/Tests/Update/ResponsiveImageUpdateTest.php b/core/modules/responsive_image/src/Tests/Update/ResponsiveImageUpdateTest.php
deleted file mode 100644
index 9427d47..0000000
--- a/core/modules/responsive_image/src/Tests/Update/ResponsiveImageUpdateTest.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Drupal\responsive_image\Tests\Update;
-
-use Drupal\Component\Serialization\Yaml;
-use Drupal\Core\Entity\Entity\EntityViewDisplay;
-use Drupal\system\Tests\Update\UpdatePathTestBase;
-
-/**
- * Tests responsive image module updates.
- *
- * @group responsive_image
- */
-class ResponsiveImageUpdateTest extends UpdatePathTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8-rc1.bare.standard.php.gz',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    /** @var \Drupal\Core\State\StateInterface $state */
-    $state = $this->container->get('state');
-
-    // Enable responsive_image module without using the module installer to
-    // avoid installation of configuration shipped in module.
-    $system_module_files = $state->get('system.module.files', []);
-    $system_module_files += ['responsive_image' => 'core/modules/responsive_image/responsive_image.info.yml'];
-    $state->set('system.module.files', $system_module_files);
-    $this->config('core.extension')->set('module.responsive_image', 0)->save();
-    $this->container->get('module_handler')->addModule('responsive_image', 'core/modules/responsive_image');
-  }
-
-  /**
-   * Tests post-update responsive_image_post_update_dependency().
-   *
-   * @see responsive_image_post_update_dependency()
-   */
-  public function testPostUpdateDependency() {
-    // Installing the 'wide' responsive image style.
-    $wide_image_style = Yaml::decode(file_get_contents(__DIR__ . '/../../../../../profiles/standard/config/optional/responsive_image.styles.wide.yml'));
-    $this->config('responsive_image.styles.wide')->setData($wide_image_style)->save(TRUE);
-
-    // Change 'field_image' formatter to a responsive image formatter.
-    $options = [
-      'type' => 'responsive_image',
-      'label' => 'hidden',
-      'settings' => ['responsive_image_style' => 'wide', 'image_link' => ''],
-      'third_party_settings' => [],
-    ];
-    $display = $this->config('core.entity_view_display.node.article.default');
-    $display->set('content.field_image', $options)->save(TRUE);
-
-    // Check that there's no dependency to 'responsive_image.styles.wide'.
-    $dependencies = $display->get('dependencies.config') ?: [];
-    $this->assertFalse(in_array('responsive_image.styles.wide', $dependencies));
-
-    // Run updates.
-    $this->runUpdates();
-
-    /** @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface $view_display */
-    $view_display = EntityViewDisplay::load('node.article.default');
-    $dependencies = $view_display->getDependencies() + ['config' => []];
-    // Check that post-update added a 'responsive_image.styles.wide' dependency.
-    $this->assertTrue(in_array('responsive_image.styles.wide', $dependencies['config']));
-  }
-
-}
diff --git a/core/modules/responsive_image/tests/src/Kernel/ResponsiveImageIntegrationTest.php b/core/modules/responsive_image/tests/src/Kernel/ResponsiveImageIntegrationTest.php
deleted file mode 100644
index d481291..0000000
--- a/core/modules/responsive_image/tests/src/Kernel/ResponsiveImageIntegrationTest.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-namespace Drupal\Tests\responsive_image\Kernel;
-
-use Drupal\Core\Entity\Entity\EntityViewDisplay;
-use Drupal\field\Entity\FieldConfig;
-use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\responsive_image\Entity\ResponsiveImageStyle;
-
-/**
- * Tests the integration of responsive image with other components.
- *
- * @group responsive_image
- */
-class ResponsiveImageIntegrationTest extends KernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['responsive_image', 'field', 'image', 'file', 'entity_test', 'breakpoint', 'responsive_image_test_module'];
-
-  /**
-   * Tests integration with entity view display.
-   */
-  public function testEntityViewDisplayDependency() {
-    // Create a responsive image style.
-    ResponsiveImageStyle::create([
-      'id' => 'foo',
-      'label' => 'Foo',
-      'breakpoint_group' => 'responsive_image_test_module',
-    ])->save();
-    // Create an image field to be used with a responsive image formatter.
-    FieldStorageConfig::create([
-      'type' => 'image',
-      'entity_type' => 'entity_test',
-      'field_name' => 'bar',
-    ])->save();
-    FieldConfig::create([
-      'entity_type' => 'entity_test',
-      'bundle' => 'entity_test',
-      'field_name' => 'bar',
-    ])->save();
-    /** @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display */
-    $display = EntityViewDisplay::create([
-      'targetEntityType' => 'entity_test',
-      'bundle' => 'entity_test',
-      'mode' => 'default',
-    ]);
-    $display->setComponent('bar', [
-      'type' => 'responsive_image',
-      'label' => 'hidden',
-      'settings' => ['responsive_image_style' => 'foo', 'image_link' => ''],
-      'third_party_settings' => [],
-    ])->save();
-
-    // Check that the 'foo' field is on the display.
-    $this->assertNotNull($display = EntityViewDisplay::load('entity_test.entity_test.default'));
-    $this->assertTrue($display->getComponent('bar'));
-    $this->assertArrayNotHasKey('bar', $display->get('hidden'));
-
-    // Delete the responsive image style.
-    ResponsiveImageStyle::load('foo')->delete();
-
-    // Check that the view display was not deleted.
-    $this->assertNotNull($display = EntityViewDisplay::load('entity_test.entity_test.default'));
-    // Check that the 'foo' field was disabled.
-    $this->assertNull($display->getComponent('bar'));
-    $this->assertArrayHasKey('bar', $display->get('hidden'));
-  }
-
-}
diff --git a/core/modules/rest/config/install/rest.settings.yml b/core/modules/rest/config/install/rest.settings.yml
index 2d8185e..d3aa82b 100644
--- a/core/modules/rest/config/install/rest.settings.yml
+++ b/core/modules/rest/config/install/rest.settings.yml
@@ -1,3 +1,50 @@
+# Enable all methods on nodes.
+# You must install Hal and Basic_auth modules for this to work. Also, if you are
+# going to use Basic_auth in a production environment then you should consider
+# setting up SSL.
+# There are alternatives to Basic_auth in contrib such as OAuth module.
+resources:
+  entity:node:
+    GET:
+      supported_formats:
+        - hal_json
+      supported_auth:
+        - basic_auth
+    POST:
+      supported_formats:
+        - hal_json
+      supported_auth:
+        - basic_auth
+    PATCH:
+      supported_formats:
+        - hal_json
+      supported_auth:
+        - basic_auth
+    DELETE:
+      supported_formats:
+        - hal_json
+      supported_auth:
+        - basic_auth
+
+# Multiple formats and multiple authentication providers can be defined for a
+# resource:
+#
+# resources:
+#   entity:node:
+#     GET:
+#       supported_formats:
+#         - json
+#         - hal_json
+#         - xml
+#       supported_auth:
+#         - cookie
+#         - basic_auth
+#
+# hal_json is the only format supported for POST and PATCH methods.
+#
+# The full documentation is located at
+# https://www.drupal.org/documentation/modules/rest.
+
 # Set the domain for REST type and relation links.
 # If left blank, the site's domain will be used.
 link_domain: ~
diff --git a/core/modules/rest/config/optional/rest.resource.entity.node.yml b/core/modules/rest/config/optional/rest.resource.entity.node.yml
deleted file mode 100644
index caeed78..0000000
--- a/core/modules/rest/config/optional/rest.resource.entity.node.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-langcode: en
-status: true
-dependencies:
-  module:
-    - basic_auth
-    - hal
-    - node
-id: entity.node
-plugin_id: 'entity:node'
-granularity: method
-configuration:
-  GET:
-    supported_formats:
-      - hal_json
-    supported_auth:
-      - basic_auth
-  POST:
-    supported_formats:
-      - hal_json
-    supported_auth:
-      - basic_auth
-  PATCH:
-    supported_formats:
-      - hal_json
-    supported_auth:
-      - basic_auth
-  DELETE:
-    supported_formats:
-      - hal_json
-    supported_auth:
-      - basic_auth
diff --git a/core/modules/rest/config/schema/rest.schema.yml b/core/modules/rest/config/schema/rest.schema.yml
index 41bc2bf..8014b31 100644
--- a/core/modules/rest/config/schema/rest.schema.yml
+++ b/core/modules/rest/config/schema/rest.schema.yml
@@ -1,15 +1,20 @@
 # Schema for the configuration files of the REST module.
+
 rest.settings:
   type: config_object
   label: 'REST settings'
   mapping:
+    resources:
+      type: sequence
+      label: 'Resources'
+      sequence:
+        type: rest_resource
+        label: 'Resource'
     link_domain:
       type: string
       label: 'Domain of the relation'
 
-# Method-level granularity of REST resource configuration.
-# @todo Add resource-level granularity in https://www.drupal.org/node/2721595.
-rest_resource.method:
+rest_resource:
   type: mapping
   mapping:
     GET:
@@ -40,20 +45,3 @@ rest_request:
       sequence:
         type: string
         label: 'Authentication'
-
-rest.resource.*:
-  type: config_entity
-  label: 'REST resource config'
-  mapping:
-    id:
-      type: string
-      label: 'REST resource config ID'
-    plugin_id:
-      type: string
-      label: 'REST resource plugin id'
-    granularity:
-      type: string
-      label: 'REST resource configuration granularity'
-    configuration:
-      type: rest_resource.[%parent.granularity]
-      label: 'REST resource configuration'
diff --git a/core/modules/rest/config/schema/rest.views.schema.yml b/core/modules/rest/config/schema/rest.views.schema.yml
index 040187a..a914081 100644
--- a/core/modules/rest/config/schema/rest.views.schema.yml
+++ b/core/modules/rest/config/schema/rest.views.schema.yml
@@ -3,13 +3,6 @@
 views.display.rest_export:
   type: views_display_path
   label: 'REST display options'
-  mapping:
-    auth:
-      type: sequence
-      label: 'Authentication'
-      sequence:
-        type: string
-        label: 'Authentication Provider'
 
 views.row.data_field:
   type: views_row
diff --git a/core/modules/rest/rest.install b/core/modules/rest/rest.install
index 918b4f5..4bca69b 100644
--- a/core/modules/rest/rest.install
+++ b/core/modules/rest/rest.install
@@ -21,48 +21,3 @@ function rest_requirements($phase) {
   }
   return $requirements;
 }
-
-/**
- * @defgroup updates-8.1.x-to-8.2.x
- * @{
- * Update functions from 8.1.x to 8.2.x.
- */
-
-/**
- * Install the REST config entity type and fix old settings-based config.
- */
-function rest_update_8201() {
-  \Drupal::entityDefinitionUpdateManager()->installEntityType(\Drupal::entityTypeManager()->getDefinition('rest_resource_config'));
-  \Drupal::state()->set('rest_update_8201_resources', \Drupal::config('rest.settings')->get('resources'));
-  \Drupal::configFactory()->getEditable('rest.settings')
-    ->clear('resources')
-    ->save();
-}
-
-/**
- * Re-save all views with a REST display to add new auth defaults.
- */
-function rest_update_8202() {
-  $config_factory = \Drupal::configFactory();
-  foreach ($config_factory->listAll('views.view.') as $view_config_name) {
-    $save = FALSE;
-    $view = $config_factory->getEditable($view_config_name);
-    $displays = $view->get('display');
-    foreach ($displays as $display_name => &$display) {
-      if ($display['display_plugin'] == 'rest_export') {
-        if (!isset($display['display_options']['auth'])) {
-          $display['display_options']['auth'] = [];
-          $save = TRUE;
-        }
-      }
-    }
-    if ($save) {
-      $view->set('display', $displays);
-      $view->save(TRUE);
-    }
-  }
-}
-
-/**
- * @} End of "defgroup updates-8.1.x-to-8.2.x".
- */
diff --git a/core/modules/rest/rest.permissions.yml b/core/modules/rest/rest.permissions.yml
index 171a284..2ab7154 100644
--- a/core/modules/rest/rest.permissions.yml
+++ b/core/modules/rest/rest.permissions.yml
@@ -1,5 +1,2 @@
 permission_callbacks:
   - Drupal\rest\RestPermissions::permissions
-
-administer rest resources:
-  title: 'Administer REST resource configuration'
diff --git a/core/modules/rest/rest.post_update.php b/core/modules/rest/rest.post_update.php
deleted file mode 100644
index 7068662..0000000
--- a/core/modules/rest/rest.post_update.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @file
- * Post update functions for Rest.
- */
-
-use Drupal\rest\Entity\RestResourceConfig;
-use Drupal\rest\RestResourceConfigInterface;
-
-/**
- * @addtogroup updates-8.1.x-to-8.2.x
- * @{
- */
-
-/**
- * Create REST resource configuration entities.
- *
- * @todo https://www.drupal.org/node/2721595 Automatically upgrade those REST
- *   resource config entities that have the same formats/auth mechanisms for all
- *   methods to "granular: resource".
- *
- * @see rest_update_8201()
- */
-function rest_post_update_create_rest_resource_config_entities() {
-  $resources = \Drupal::state()->get('rest_update_8201_resources', []);
-  foreach ($resources as $key => $resource) {
-    $resource = RestResourceConfig::create([
-      'id' => str_replace(':', '.', $key),
-      'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
-      'configuration' => $resource,
-    ]);
-    $resource->save();
-  }
-}
-
-/**
- * @} End of "addtogroup updates-8.1.x-to-8.2.x".
- */
diff --git a/core/modules/rest/rest.services.yml b/core/modules/rest/rest.services.yml
index c702719..6b613e3 100644
--- a/core/modules/rest/rest.services.yml
+++ b/core/modules/rest/rest.services.yml
@@ -24,7 +24,7 @@ services:
     arguments: ['@cache.default', '@entity.manager', '@module_handler', '@config.factory', '@request_stack']
   rest.resource_routes:
     class: Drupal\rest\Routing\ResourceRoutes
-    arguments: ['@plugin.manager.rest', '@entity_type.manager', '@logger.channel.rest']
+    arguments: ['@plugin.manager.rest', '@config.factory', '@logger.channel.rest']
     tags:
       - { name: 'event_subscriber' }
   logger.channel.rest:
diff --git a/core/modules/rest/src/Annotation/RestResource.php b/core/modules/rest/src/Annotation/RestResource.php
index 0af11a8..82269db 100644
--- a/core/modules/rest/src/Annotation/RestResource.php
+++ b/core/modules/rest/src/Annotation/RestResource.php
@@ -38,11 +38,4 @@ class RestResource extends Plugin {
    */
   public $label;
 
-  /**
-   * The serialization class to deserialize serialized data into.
-   *
-   * @var string (optional)
-   */
-  public $serialization_class;
-
 }
diff --git a/core/modules/rest/src/Entity/ConfigDependencies.php b/core/modules/rest/src/Entity/ConfigDependencies.php
deleted file mode 100644
index 72fc8cc..0000000
--- a/core/modules/rest/src/Entity/ConfigDependencies.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-
-namespace Drupal\rest\Entity;
-
-use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
-use Drupal\rest\RestResourceConfigInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Calculates rest resource config dependencies.
- */
-class ConfigDependencies implements ContainerInjectionInterface {
-
-  /**
-   * The serialization format providers, keyed by format.
-   *
-   * @var string[]
-   */
-  protected $formatProviders;
-
-  /**
-   * The authentication providers, keyed by ID.
-   *
-   * @var string[]
-   */
-  protected $authProviders;
-
-  /**
-   * Creates a new ConfigDependencies instance.
-   *
-   * @param string[] $format_providers
-   *   The serialization format providers, keyed by format.
-   * @param string[] $auth_providers
-   *   The authentication providers, keyed by ID.
-   */
-  public function __construct(array $format_providers, array $auth_providers) {
-    $this->formatProviders = $format_providers;
-    $this->authProviders = $auth_providers;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container) {
-    return new static(
-      $container->getParameter('serializer.format_providers'),
-      $container->getParameter('authentication_providers')
-    );
-  }
-
-  /**
-   * Calculates dependencies of a specific rest resource configuration.
-   *
-   * @param \Drupal\rest\RestResourceConfigInterface $rest_config
-   *   The rest configuration.
-   *
-   * @return string[][]
-   *   Dependencies keyed by dependency type.
-   *
-   * @see \Drupal\Core\Config\Entity\ConfigEntityInterface::calculateDependencies()
-   */
-  public function calculateDependencies(RestResourceConfigInterface $rest_config) {
-    $granularity = $rest_config->get('granularity');
-    if ($granularity === RestResourceConfigInterface::METHOD_GRANULARITY) {
-      return $this->calculateDependenciesForMethodGranularity($rest_config);
-    }
-    else {
-      throw new \InvalidArgumentException("A different granularity then 'method' is not supported yet.");
-      // @todo Add resource-level granularity support in https://www.drupal.org/node/2721595.
-    }
-  }
-
-  /**
-   * Calculates dependencies of a specific rest resource configuration.
-   *
-   * @param \Drupal\rest\RestResourceConfigInterface $rest_config
-   *   The rest configuration.
-   *
-   * @return string[][]
-   *   Dependencies keyed by dependency type.
-   *
-   * @see \Drupal\Core\Config\Entity\ConfigEntityInterface::calculateDependencies()
-   */
-  protected function calculateDependenciesForMethodGranularity(RestResourceConfigInterface $rest_config) {
-    // The dependency lists for authentication providers and formats
-    // generated on container build.
-    $dependencies = [];
-    foreach (array_keys($rest_config->get('configuration')) as $request_method) {
-      // Add dependencies based on the supported authentication providers.
-      foreach ($rest_config->getAuthenticationProviders($request_method) as $auth) {
-        if (isset($this->authProviders[$auth])) {
-          $module_name = $this->authProviders[$auth];
-          $dependencies['module'][] = $module_name;
-        }
-      }
-      // Add dependencies based on the supported authentication formats.
-      foreach ($rest_config->getFormats($request_method) as $format) {
-        if (isset($this->formatProviders[$format])) {
-          $module_name = $this->formatProviders[$format];
-          $dependencies['module'][] = $module_name;
-        }
-      }
-    }
-
-    return $dependencies;
-  }
-
-  /**
-   * Informs the entity that entities it depends on will be deleted.
-   *
-   * @param \Drupal\rest\RestResourceConfigInterface $rest_config
-   *   The rest configuration.
-   * @param array $dependencies
-   *   An array of dependencies that will be deleted keyed by dependency type.
-   *   Dependency types are, for example, entity, module and theme.
-   *
-   * @return bool
-   *   TRUE if the entity has been changed as a result, FALSE if not.
-   *
-   * @see \Drupal\Core\Config\Entity\ConfigEntityInterface::onDependencyRemoval()
-   */
-  public function onDependencyRemoval(RestResourceConfigInterface $rest_config, array $dependencies) {
-    $granularity = $rest_config->get('granularity');
-    if ($granularity === RestResourceConfigInterface::METHOD_GRANULARITY) {
-      return $this->onDependencyRemovalForMethodGranularity($rest_config, $dependencies);
-    }
-    else {
-      throw new \InvalidArgumentException("A different granularity then 'method' is not supported yet.");
-      // @todo Add resource-level granularity support in https://www.drupal.org/node/2721595.
-    }
-  }
-
-  /**
-   * Informs the entity that entities it depends on will be deleted.
-   *
-   * @param \Drupal\rest\RestResourceConfigInterface $rest_config
-   *   The rest configuration.
-   * @param array $dependencies
-   *   An array of dependencies that will be deleted keyed by dependency type.
-   *   Dependency types are, for example, entity, module and theme.
-   *
-   * @return bool
-   *   TRUE if the entity has been changed as a result, FALSE if not.
-   */
-  protected function onDependencyRemovalForMethodGranularity(RestResourceConfigInterface $rest_config, array $dependencies) {
-    $changed = FALSE;
-    // Only module-related dependencies can be fixed. All other types of
-    // dependencies cannot, because they were not generated based on supported
-    // authentication providers or formats.
-    if (isset($dependencies['module'])) {
-      // Try to fix dependencies.
-      $removed_auth = array_keys(array_intersect($this->authProviders, $dependencies['module']));
-      $removed_formats = array_keys(array_intersect($this->formatProviders, $dependencies['module']));
-      $configuration_before = $configuration = $rest_config->get('configuration');
-      if (!empty($removed_auth) || !empty($removed_formats)) {
-        // Try to fix dependency problems by removing affected
-        // authentication providers and formats.
-        foreach (array_keys($rest_config->get('configuration')) as $request_method) {
-          foreach ($removed_formats as $format) {
-            if (in_array($format, $rest_config->getFormats($request_method))) {
-              $configuration[$request_method]['supported_formats'] = array_diff($configuration[$request_method]['supported_formats'], $removed_formats);
-            }
-          }
-          foreach ($removed_auth as $auth) {
-            if (in_array($auth, $rest_config->getAuthenticationProviders($request_method))) {
-              $configuration[$request_method]['supported_auth'] = array_diff($configuration[$request_method]['supported_auth'], $removed_auth);
-            }
-          }
-          if (empty($configuration[$request_method]['supported_auth'])) {
-            // Remove the key if there are no more authentication providers
-            // supported by this request method.
-            unset($configuration[$request_method]['supported_auth']);
-          }
-          if (empty($configuration[$request_method]['supported_formats'])) {
-            // Remove the key if there are no more formats supported by this
-            // request method.
-            unset($configuration[$request_method]['supported_formats']);
-          }
-          if (empty($configuration[$request_method])) {
-            // Remove the request method altogether if it no longer has any
-            // supported authentication providers or formats.
-            unset($configuration[$request_method]);
-          }
-        }
-      }
-      if (!empty($configuration_before != $configuration)) {
-        $rest_config->set('configuration', $configuration);
-        // Only mark the dependencies problems as fixed if there is any
-        // configuration left.
-        $changed = TRUE;
-      }
-    }
-    // If the dependency problems are not marked as fixed at this point they
-    // should be related to the resource plugin and the config entity should
-    // be deleted.
-    return $changed;
-  }
-
-}
diff --git a/core/modules/rest/src/Entity/RestResourceConfig.php b/core/modules/rest/src/Entity/RestResourceConfig.php
deleted file mode 100644
index f2b8b0e..0000000
--- a/core/modules/rest/src/Entity/RestResourceConfig.php
+++ /dev/null
@@ -1,261 +0,0 @@
-<?php
-
-namespace Drupal\rest\Entity;
-
-use Drupal\Core\Config\Entity\ConfigEntityBase;
-use Drupal\Core\Plugin\DefaultSingleLazyPluginCollection;
-use Drupal\rest\RestResourceConfigInterface;
-
-/**
- * Defines a RestResourceConfig configuration entity class.
- *
- * @ConfigEntityType(
- *   id = "rest_resource_config",
- *   label = @Translation("REST resource configuration"),
- *   config_prefix = "resource",
- *   admin_permission = "administer rest resources",
- *   label_callback = "getLabelFromPlugin",
- *   entity_keys = {
- *     "id" = "id"
- *   },
- *   config_export = {
- *     "id",
- *     "plugin_id",
- *     "granularity",
- *     "configuration"
- *   }
- * )
- */
-class RestResourceConfig extends ConfigEntityBase implements RestResourceConfigInterface {
-
-  /**
-   * The REST resource config id.
-   *
-   * @var string
-   */
-  protected $id;
-
-  /**
-   * The REST resource plugin id.
-   *
-   * @var string
-   */
-  protected $plugin_id;
-
-  /**
-   * The REST resource configuration granularity.
-   *
-   * @todo Currently only 'method', but https://www.drupal.org/node/2721595 will add 'resource'
-   *
-   * @var string
-   */
-  protected $granularity;
-
-  /**
-   * The REST resource configuration.
-   *
-   * @var array
-   */
-  protected $configuration;
-
-  /**
-   * The rest resource plugin manager.
-   *
-   * @var \Drupal\Component\Plugin\PluginManagerInterface
-   */
-  protected $pluginManager;
-
-  /**
-   * {@inheritdoc}
-   */
-  public function __construct(array $values, $entity_type) {
-    parent::__construct($values, $entity_type);
-    // The config entity id looks like the plugin id but uses __ instead of :
-    // because : is not valid for config entities.
-    if (!isset($this->plugin_id) && isset($this->id)) {
-      // Generate plugin_id on first entity creation.
-      $this->plugin_id = str_replace('.', ':', $this->id);
-    }
-  }
-
-  /**
-   * The label callback for this configuration entity.
-   *
-   * @return string The label.
-   */
-  protected function getLabelFromPlugin() {
-    $plugin_definition = $this->getResourcePluginManager()
-      ->getDefinition(['id' => $this->plugin_id]);
-    return $plugin_definition['label'];
-  }
-
-  /**
-   * Returns the resource plugin manager.
-   *
-   * @return \Drupal\Component\Plugin\PluginManagerInterface
-   */
-  protected function getResourcePluginManager() {
-    if (!isset($this->pluginManager)) {
-      $this->pluginManager = \Drupal::service('plugin.manager.rest');
-    }
-    return $this->pluginManager;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getResourcePlugin() {
-    return $this->getPluginCollections()['resource']->get($this->plugin_id);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getMethods() {
-    if ($this->granularity === RestResourceConfigInterface::METHOD_GRANULARITY) {
-      return $this->getMethodsForMethodGranularity();
-    }
-    else {
-      throw new \InvalidArgumentException("A different granularity then 'method' is not supported yet.");
-      // @todo Add resource-level granularity support in https://www.drupal.org/node/2721595.
-    }
-  }
-
-  /**
-   * Retrieves a list of supported HTTP methods for this resource.
-   *
-   * @return string[]
-   *   A list of supported HTTP methods.
-   */
-  protected function getMethodsForMethodGranularity() {
-    $methods = array_keys($this->configuration);
-    return array_map([$this, 'normalizeRestMethod'], $methods);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getAuthenticationProviders($method) {
-    if ($this->granularity === RestResourceConfigInterface::METHOD_GRANULARITY) {
-      return $this->getAuthenticationProvidersForMethodGranularity($method);
-    }
-    else {
-      throw new \InvalidArgumentException("A different granularity then 'method' is not supported yet.");
-      // @todo Add resource-level granularity support in https://www.drupal.org/node/2721595.
-    }
-  }
-
-  /**
-   * Retrieves a list of supported authentication providers.
-   *
-   * @param string $method
-   *   The request method e.g GET or POST.
-   *
-   * @return string[]
-   *   A list of supported authentication provider IDs.
-   */
-  public function getAuthenticationProvidersForMethodGranularity($method) {
-    $method = $this->normalizeRestMethod($method);
-    if (in_array($method, $this->getMethods()) && isset($this->configuration[$method]['supported_auth'])) {
-      return $this->configuration[$method]['supported_auth'];
-    }
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFormats($method) {
-    if ($this->granularity === RestResourceConfigInterface::METHOD_GRANULARITY) {
-      return $this->getFormatsForMethodGranularity($method);
-    }
-    else {
-      throw new \InvalidArgumentException("A different granularity then 'method' is not supported yet.");
-      // @todo Add resource-level granularity support in https://www.drupal.org/node/2721595.
-    }
-  }
-
-  /**
-   * Retrieves a list of supported response formats.
-   *
-   * @param string $method
-   *   The request method e.g GET or POST.
-   *
-   * @return string[]
-   *   A list of supported format IDs.
-   */
-  protected function getFormatsForMethodGranularity($method) {
-    $method = $this->normalizeRestMethod($method);
-    if (in_array($method, $this->getMethods()) && isset($this->configuration[$method]['supported_formats'])) {
-      return $this->configuration[$method]['supported_formats'];
-    }
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getPluginCollections() {
-    return [
-      'resource' => new DefaultSingleLazyPluginCollection($this->getResourcePluginManager(), $this->plugin_id, [])
-    ];
-  }
-
-  /**
-   * (@inheritdoc)
-   */
-  public function calculateDependencies() {
-    parent::calculateDependencies();
-
-    foreach ($this->getRestResourceDependencies()->calculateDependencies($this) as $type => $dependencies) {
-      foreach ($dependencies as $dependency) {
-        $this->addDependency($type, $dependency);
-      }
-    }
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function onDependencyRemoval(array $dependencies) {
-    $parent = parent::onDependencyRemoval($dependencies);
-
-    // If the dependency problems are not marked as fixed at this point they
-    // should be related to the resource plugin and the config entity should
-    // be deleted.
-    $changed = $this->getRestResourceDependencies()->onDependencyRemoval($this, $dependencies);
-    return $parent || $changed;
-  }
-
-  /**
-   * Returns the REST resource dependencies.
-   *
-   * @return \Drupal\rest\Entity\ConfigDependencies
-   */
-  protected function getRestResourceDependencies() {
-    return \Drupal::service('class_resolver')->getInstanceFromDefinition(ConfigDependencies::class);
-  }
-
-  /**
-   * Normalizes the method to upper case and check validity.
-   *
-   * @param string $method
-   *   The request method.
-   *
-   * @return string
-   *   The normalised request method.
-   *
-   * @throws \InvalidArgumentException
-   *   If the method is not supported.
-   */
-  protected function normalizeRestMethod($method) {
-    $valid_methods = ['GET', 'POST', 'PATCH', 'DELETE'];
-    $normalised_method = strtoupper($method);
-    if (!in_array($normalised_method, $valid_methods)) {
-      throw new \InvalidArgumentException('The method is not supported.');
-    }
-    return $normalised_method;
-  }
-
-}
diff --git a/core/modules/rest/src/LinkManager/TypeLinkManager.php b/core/modules/rest/src/LinkManager/TypeLinkManager.php
index bebfb4e..f767d06 100644
--- a/core/modules/rest/src/LinkManager/TypeLinkManager.php
+++ b/core/modules/rest/src/LinkManager/TypeLinkManager.php
@@ -89,12 +89,10 @@ protected function getTypes($context = array()) {
     $cid = 'rest:links:types';
     $cache = $this->cache->get($cid);
     if (!$cache) {
-      $data = $this->writeCache($context);
+      $this->writeCache($context);
+      $cache = $this->cache->get($cid);
     }
-    else {
-      $data = $cache->data;
-    }
-    return $data;
+    return $cache->data;
   }
 
   /**
@@ -102,10 +100,6 @@ protected function getTypes($context = array()) {
    *
    * @param array $context
    *   Context from the normalizer/serializer operation.
-   *
-   * @return array
-   *   An array of typed data ids (entity_type and bundle) keyed by
-   *   corresponding type URI.
    */
   protected function writeCache($context = array()) {
     $data = array();
@@ -131,7 +125,6 @@ protected function writeCache($context = array()) {
     // These URIs only change when entity info changes, so cache it permanently
     // and only clear it when entity_info is cleared.
     $this->cache->set('rest:links:types', $data, Cache::PERMANENT, array('entity_types'));
-    return $data;
   }
 
 }
diff --git a/core/modules/rest/src/ModifiedResourceResponse.php b/core/modules/rest/src/ModifiedResourceResponse.php
deleted file mode 100644
index 8d88ef2..0000000
--- a/core/modules/rest/src/ModifiedResourceResponse.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Drupal\rest;
-
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * A response that does not contain cacheability metadata.
- *
- * Used when resources are modified by a request: responses to unsafe requests
- * (POST/PATCH/DELETE) can never be cached.
- *
- * @see \Drupal\rest\ResourceResponse
- */
-class ModifiedResourceResponse extends Response implements ResourceResponseInterface {
-
-  use ResourceResponseTrait;
-
-  /**
-   * Constructor for ModifiedResourceResponse objects.
-   *
-   * @param mixed $data
-   *   Response data that should be serialized.
-   * @param int $status
-   *   The response status code.
-   * @param array $headers
-   *   An array of response headers.
-   */
-  public function __construct($data = NULL, $status = 200, $headers = []) {
-    $this->responseData = $data;
-    parent::__construct('', $status, $headers);
-  }
-
-}
diff --git a/core/modules/rest/src/Plugin/ResourceBase.php b/core/modules/rest/src/Plugin/ResourceBase.php
index 549ac54..33cb3aa 100644
--- a/core/modules/rest/src/Plugin/ResourceBase.php
+++ b/core/modules/rest/src/Plugin/ResourceBase.php
@@ -194,6 +194,8 @@ protected function getBaseRoute($canonical_path, $method) {
 
     $route = new Route($canonical_path, array(
       '_controller' => 'Drupal\rest\RequestHandler::handle',
+      // Pass the resource plugin ID along as default property.
+      '_plugin' => $this->pluginId,
     ), array(
       '_permission' => "restful $lower_method $this->pluginId",
     ),
diff --git a/core/modules/rest/src/Plugin/rest/resource/EntityResource.php b/core/modules/rest/src/Plugin/rest/resource/EntityResource.php
index 8b96940..6ec5f26 100644
--- a/core/modules/rest/src/Plugin/rest/resource/EntityResource.php
+++ b/core/modules/rest/src/Plugin/rest/resource/EntityResource.php
@@ -2,17 +2,10 @@
 
 namespace Drupal\rest\Plugin\rest\resource;
 
-use Drupal\Component\Plugin\DependentPluginInterface;
-use Drupal\Core\Config\Entity\ConfigEntityType;
-use Drupal\Core\Entity\EntityTypeManagerInterface;
-use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityStorageException;
 use Drupal\rest\Plugin\ResourceBase;
 use Drupal\rest\ResourceResponse;
-use Psr\Log\LoggerInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Drupal\rest\ModifiedResourceResponse;
 use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
 use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
 use Symfony\Component\HttpKernel\Exception\HttpException;
@@ -33,49 +26,7 @@
  *   }
  * )
  */
-class EntityResource extends ResourceBase implements DependentPluginInterface {
-
-  /**
-   * The entity type targeted by this resource.
-   *
-   * @var \Drupal\Core\Entity\EntityTypeInterface
-   */
-  protected $entityType;
-
-  /**
-   * Constructs a Drupal\rest\Plugin\rest\resource\EntityResource object.
-   *
-   * @param array $configuration
-   *   A configuration array containing information about the plugin instance.
-   * @param string $plugin_id
-   *   The plugin_id for the plugin instance.
-   * @param mixed $plugin_definition
-   *   The plugin implementation definition.
-   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
-   *   The entity type manager
-   * @param array $serializer_formats
-   *   The available serialization formats.
-   * @param \Psr\Log\LoggerInterface $logger
-   *   A logger instance.
-   */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, $serializer_formats, LoggerInterface $logger) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition, $serializer_formats, $logger);
-    $this->entityType = $entity_type_manager->getDefinition($plugin_definition['entity_type']);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-      $container->get('entity_type.manager'),
-      $container->getParameter('serializer.formats'),
-      $container->get('logger.factory')->get('rest')
-    );
-  }
+class EntityResource extends ResourceBase {
 
   /**
    * Responds to entity GET requests.
@@ -83,7 +34,7 @@ public static function create(ContainerInterface $container, array $configuratio
    * @param \Drupal\Core\Entity\EntityInterface $entity
    *   The entity object.
    *
-   * @return \Drupal\rest\ModifiedResourceResponse
+   * @return \Drupal\rest\ResourceResponse
    *   The response containing the entity with its accessible fields.
    *
    * @throws \Symfony\Component\HttpKernel\Exception\HttpException
@@ -97,16 +48,13 @@ public function get(EntityInterface $entity) {
     $response = new ResourceResponse($entity, 200);
     $response->addCacheableDependency($entity);
     $response->addCacheableDependency($entity_access);
+    foreach ($entity as $field_name => $field) {
+      /** @var \Drupal\Core\Field\FieldItemListInterface $field */
+      $field_access = $field->access('view', NULL, TRUE);
+      $response->addCacheableDependency($field_access);
 
-    if ($entity instanceof FieldableEntityInterface) {
-      foreach ($entity as $field_name => $field) {
-        /** @var \Drupal\Core\Field\FieldItemListInterface $field */
-        $field_access = $field->access('view', NULL, TRUE);
-        $response->addCacheableDependency($field_access);
-
-        if (!$field_access->isAllowed()) {
-          $entity->set($field_name, NULL);
-        }
+      if (!$field_access->isAllowed()) {
+        $entity->set($field_name, NULL);
       }
     }
 
@@ -160,10 +108,11 @@ public function post(EntityInterface $entity = NULL) {
       $this->logger->notice('Created entity %type with ID %id.', array('%type' => $entity->getEntityTypeId(), '%id' => $entity->id()));
 
       // 201 Created responses return the newly created entity in the response
-      // body. These responses are not cacheable, so we add no cacheability
-      // metadata here.
+      // body.
       $url = $entity->urlInfo('canonical', ['absolute' => TRUE])->toString(TRUE);
-      $response = new ModifiedResourceResponse($entity, 201, ['Location' => $url->getGeneratedUrl()]);
+      $response = new ResourceResponse($entity, 201, ['Location' => $url->getGeneratedUrl()]);
+      // Responses after creating an entity are not cacheable, so we add no
+      // cacheability metadata here.
       return $response;
     }
     catch (EntityStorageException $e) {
@@ -197,24 +146,13 @@ public function patch(EntityInterface $original_entity, EntityInterface $entity
     }
 
     // Overwrite the received properties.
-    $entity_keys = $entity->getEntityType()->getKeys();
+    $langcode_key = $entity->getEntityType()->getKey('langcode');
     foreach ($entity->_restSubmittedFields as $field_name) {
       $field = $entity->get($field_name);
-
-      // Entity key fields need special treatment: together they uniquely
-      // identify the entity. Therefore it does not make sense to modify any of
-      // them. However, rather than throwing an error, we just ignore them as
-      // long as their specified values match their current values.
-      if (in_array($field_name, $entity_keys, TRUE)) {
-        // Unchanged values for entity keys don't need access checking.
-        if ($original_entity->get($field_name)->getValue() === $entity->get($field_name)->getValue()) {
-          continue;
-        }
-        // It is not possible to set the language to NULL as it is automatically
-        // re-initialized. As it must not be empty, skip it if it is.
-        elseif (isset($entity_keys['langcode']) && $field_name === $entity_keys['langcode'] && $field->isEmpty()) {
-          continue;
-        }
+      // It is not possible to set the language to NULL as it is automatically
+      // re-initialized. As it must not be empty, skip it if it is.
+      if ($field_name == $langcode_key && $field->isEmpty()) {
+        continue;
       }
 
       if (!$original_entity->get($field_name)->access('edit')) {
@@ -229,8 +167,8 @@ public function patch(EntityInterface $original_entity, EntityInterface $entity
       $original_entity->save();
       $this->logger->notice('Updated entity %type with ID %id.', array('%type' => $original_entity->getEntityTypeId(), '%id' => $original_entity->id()));
 
-      // Return the updated entity in the response body.
-      return new ModifiedResourceResponse($original_entity, 200);
+      // Update responses have an empty body.
+      return new ResourceResponse(NULL, 204);
     }
     catch (EntityStorageException $e) {
       throw new HttpException(500, 'Internal Server Error', $e);
@@ -257,7 +195,7 @@ public function delete(EntityInterface $entity) {
       $this->logger->notice('Deleted entity %type with ID %id.', array('%type' => $entity->getEntityTypeId(), '%id' => $entity->id()));
 
       // Delete responses have an empty body.
-      return new ModifiedResourceResponse(NULL, 204);
+      return new ResourceResponse(NULL, 204);
     }
     catch (EntityStorageException $e) {
       throw new HttpException(500, 'Internal Server Error', $e);
@@ -274,10 +212,6 @@ public function delete(EntityInterface $entity) {
    *   If validation errors are found.
    */
   protected function validate(EntityInterface $entity) {
-    // @todo Remove when https://www.drupal.org/node/2164373 is committed.
-    if (!$entity instanceof FieldableEntityInterface) {
-      return;
-    }
     $violations = $entity->validate();
 
     // Remove violations of inaccessible fields as they cannot stem from our
@@ -311,37 +245,4 @@ protected function getBaseRoute($canonical_path, $method) {
     return $route;
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function availableMethods() {
-    $methods = parent::availableMethods();
-    if ($this->isConfigEntityResource()) {
-      // Currently only GET is supported for Config Entities.
-      // @todo Remove when supported https://www.drupal.org/node/2300677
-      $unsupported_methods = ['POST', 'PUT', 'DELETE', 'PATCH'];
-      $methods = array_diff($methods, $unsupported_methods);
-    }
-    return $methods;
-  }
-
-  /**
-   * Checks if this resource is for a Config Entity.
-   *
-   * @return bool
-   *   TRUE if the entity is a Config Entity, FALSE otherwise.
-   */
-  protected function isConfigEntityResource() {
-    return $this->entityType instanceof ConfigEntityType;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function calculateDependencies() {
-    if (isset($this->entityType)) {
-      return ['module' => [$this->entityType->getProvider()]];
-    }
-  }
-
 }
diff --git a/core/modules/rest/src/Plugin/views/display/RestExport.php b/core/modules/rest/src/Plugin/views/display/RestExport.php
index cf5e232..fb58513 100644
--- a/core/modules/rest/src/Plugin/views/display/RestExport.php
+++ b/core/modules/rest/src/Plugin/views/display/RestExport.php
@@ -4,7 +4,6 @@
 
 use Drupal\Core\Cache\CacheableMetadata;
 use Drupal\Core\Cache\CacheableResponse;
-use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Render\RenderContext;
 use Drupal\Core\Render\RendererInterface;
 use Drupal\Core\Routing\RouteProviderInterface;
@@ -79,20 +78,6 @@ class RestExport extends PathPluginBase implements ResponseDisplayPluginInterfac
   protected $renderer;
 
   /**
-   * The collector of authentication providers.
-   *
-   * @var \Drupal\Core\Authentication\AuthenticationCollectorInterface
-   */
-  protected $authenticationCollector;
-
-  /**
-   * The authentication providers, keyed by ID.
-   *
-   * @var string[]
-   */
-  protected $authenticationProviders;
-
-  /**
    * Constructs a RestExport object.
    *
    * @param array $configuration
@@ -107,14 +92,11 @@ class RestExport extends PathPluginBase implements ResponseDisplayPluginInterfac
    *   The state key value store.
    * @param \Drupal\Core\Render\RendererInterface $renderer
    *   The renderer.
-   * @param string[] $authentication_providers
-   *   The authentication providers, keyed by ID.
    */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, RouteProviderInterface $route_provider, StateInterface $state, RendererInterface $renderer, array $authentication_providers) {
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, RouteProviderInterface $route_provider, StateInterface $state, RendererInterface $renderer) {
     parent::__construct($configuration, $plugin_id, $plugin_definition, $route_provider, $state);
 
     $this->renderer = $renderer;
-    $this->authenticationProviders = $authentication_providers;
   }
 
   /**
@@ -127,9 +109,7 @@ public static function create(ContainerInterface $container, array $configuratio
       $plugin_definition,
       $container->get('router.route_provider'),
       $container->get('state'),
-      $container->get('renderer'),
-      $container->getParameter('authentication_providers')
-
+      $container->get('renderer')
     );
   }
   /**
@@ -220,24 +200,11 @@ public function getContentType() {
   }
 
   /**
-   * Gets the auth options available.
-   *
-   * @return string[]
-   *   An array to use as value for "#options" in the form element.
-   */
-  public function getAuthOptions() {
-    return array_combine($this->authenticationProviders, $this->authenticationProviders);
-  }
-
-  /**
    * {@inheritdoc}
    */
   protected function defineOptions() {
     $options = parent::defineOptions();
 
-    // Options for REST authentication.
-    $options['auth'] = ['default' => []];
-
     // Set the default style plugin to 'json'.
     $options['style']['contains']['type']['default'] = 'serializer';
     $options['row']['contains']['type']['default'] = 'data_entity';
@@ -258,9 +225,6 @@ protected function defineOptions() {
   public function optionsSummary(&$categories, &$options) {
     parent::optionsSummary($categories, $options);
 
-    // Authentication.
-    $auth = $this->getOption('auth') ? implode(', ', $this->getOption('auth')) : $this->t('No authentication is set');
-
     unset($categories['page'], $categories['exposed']);
     // Hide some settings, as they aren't useful for pure data output.
     unset($options['show_admin_links'], $options['analyze-theme']);
@@ -275,11 +239,6 @@ public function optionsSummary(&$categories, &$options) {
 
     $options['path']['category'] = 'path';
     $options['path']['title'] = $this->t('Path');
-    $options['auth'] = array(
-      'category' => 'path',
-      'title' => $this->t('Authentication'),
-      'value' => views_ui_truncate($auth, 24),
-    );
 
     // Remove css/exposed form settings, as they are not used for the data
     // display.
@@ -291,34 +250,6 @@ public function optionsSummary(&$categories, &$options) {
   /**
    * {@inheritdoc}
    */
-  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
-    parent::buildOptionsForm($form, $form_state);
-    if ($form_state->get('section') === 'auth') {
-      $form['#title'] .= $this->t('The supported authentication methods for this view');
-      $form['auth'] = array(
-        '#type' => 'checkboxes',
-        '#title' => $this->t('Authentication methods'),
-        '#description' => $this->t('These are the supported authentication providers for this view. When this view is requested, the client will be forced to authenticate with one of the selected providers. Make sure you set the appropiate requirements at the <em>Access</em> section since the Authentication System will fallback to the anonymous user if it fails to authenticate. For example: require Access: Role | Authenticated User.'),
-        '#options' => $this->getAuthOptions(),
-        '#default_value' => $this->getOption('auth'),
-      );
-    }
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function submitOptionsForm(&$form, FormStateInterface $form_state) {
-    parent::submitOptionsForm($form, $form_state);
-
-    if ($form_state->get('section') == 'auth') {
-      $this->setOption('auth', array_keys(array_filter($form_state->getValue('auth'))));
-    }
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function collectRoutes(RouteCollection $collection) {
     parent::collectRoutes($collection);
     $view_id = $this->view->storage->id();
@@ -337,13 +268,6 @@ public function collectRoutes(RouteCollection $collection) {
         // anyway.
         $route->setRequirement('_format', implode('|', $formats + ['html']));
       }
-      // Add authentication to the route if it was set. If no authentication was
-      // set, the default authentication will be used, which is cookie based by
-      // default.
-      $auth = $this->getOption('auth');
-      if (!empty($auth)) {
-        $route->setOption('_auth', $auth);
-      }
     }
   }
 
@@ -424,19 +348,4 @@ public function preview() {
     return $this->view->render();
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function calculateDependencies() {
-    $dependencies = parent::calculateDependencies();
-
-    $dependencies += ['module' => []];
-    $modules = array_map(function ($authentication_provider) {
-      return $this->authenticationProviders[$authentication_provider];
-    }, $this->getOption('auth'));
-    $dependencies['module'] = array_merge($dependencies['module'], $modules);
-
-    return $dependencies;
-  }
-
 }
diff --git a/core/modules/rest/src/Plugin/views/style/Serializer.php b/core/modules/rest/src/Plugin/views/style/Serializer.php
index 7e9b433..71bb511 100644
--- a/core/modules/rest/src/Plugin/views/style/Serializer.php
+++ b/core/modules/rest/src/Plugin/views/style/Serializer.php
@@ -48,13 +48,6 @@ class Serializer extends StylePluginBase implements CacheableDependencyInterface
   protected $formats = array();
 
   /**
-   * The serialization format providers, keyed by format.
-   *
-   * @var string[]
-   */
-  protected $formatProviders;
-
-  /**
    * {@inheritdoc}
    */
   public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
@@ -63,21 +56,19 @@ public static function create(ContainerInterface $container, array $configuratio
       $plugin_id,
       $plugin_definition,
       $container->get('serializer'),
-      $container->getParameter('serializer.formats'),
-      $container->getParameter('serializer.format_providers')
+      $container->getParameter('serializer.formats')
     );
   }
 
   /**
    * Constructs a Plugin object.
    */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, SerializerInterface $serializer, array $serializer_formats, array $serializer_format_providers) {
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, SerializerInterface $serializer, array $serializer_formats) {
     parent::__construct($configuration, $plugin_id, $plugin_definition);
 
     $this->definition = $plugin_definition + $configuration;
     $this->serializer = $serializer;
     $this->formats = $serializer_formats;
-    $this->formatProviders = $serializer_format_providers;
   }
 
   /**
@@ -100,7 +91,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#type' => 'checkboxes',
       '#title' => $this->t('Accepted request formats'),
       '#description' => $this->t('Request formats that will be allowed in responses. If none are selected all formats will be allowed.'),
-      '#options' => $this->getFormatOptions(),
+      '#options' => array_combine($this->formats, $this->formats),
       '#default_value' => $this->options['formats'],
     );
   }
@@ -176,30 +167,4 @@ public function getCacheTags() {
     return [];
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function calculateDependencies() {
-    $dependencies = parent::calculateDependencies();
-    $formats = $this->getFormats();
-    $providers = array_intersect_key($this->formatProviders, array_flip($formats));
-    // The plugin always uses services from the serialization module.
-    $providers[] = 'serialization';
-
-    $dependencies += ['module' => []];
-    $dependencies['module'] = array_merge($dependencies['module'], $providers);
-    return $dependencies;
-  }
-
-  /**
-   * Returns an array of format options
-   *
-   * @return string[]
-   *   An array of format options. Both key and value are the same.
-   */
-  protected function getFormatOptions() {
-    $formats = array_keys($this->formatProviders);
-    return array_combine($formats, $formats);
-  }
-
 }
diff --git a/core/modules/rest/src/RequestHandler.php b/core/modules/rest/src/RequestHandler.php
index c1ce0ce..8e0cd74 100644
--- a/core/modules/rest/src/RequestHandler.php
+++ b/core/modules/rest/src/RequestHandler.php
@@ -2,14 +2,10 @@
 
 namespace Drupal\rest;
 
-use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
-use Drupal\Core\Entity\EntityStorageInterface;
-use Drupal\Core\Cache\CacheableResponseInterface;
 use Drupal\Core\Render\RenderContext;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Symfony\Component\DependencyInjection\ContainerAwareInterface;
 use Symfony\Component\DependencyInjection\ContainerAwareTrait;
-use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Exception\HttpException;
@@ -20,35 +16,11 @@
 /**
  * Acts as intermediate request forwarder for resource plugins.
  */
-class RequestHandler implements ContainerAwareInterface, ContainerInjectionInterface {
+class RequestHandler implements ContainerAwareInterface {
 
   use ContainerAwareTrait;
 
   /**
-   * The resource configuration storage.
-   *
-   * @var \Drupal\Core\Entity\EntityStorageInterface
-   */
-  protected $resourceStorage;
-
-  /**
-   * Creates a new RequestHandler instance.
-   *
-   * @param \Drupal\Core\Entity\EntityStorageInterface $entity_storage
-   *   The resource configuration storage.
-   */
-  public function __construct(EntityStorageInterface $entity_storage) {
-    $this->resourceStorage = $entity_storage;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container) {
-    return new static($container->get('entity_type.manager')->getStorage('rest_resource_config'));
-  }
-
-  /**
    * Handles a web API request.
    *
    * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
@@ -60,15 +32,15 @@ public static function create(ContainerInterface $container) {
    *   The response object.
    */
   public function handle(RouteMatchInterface $route_match, Request $request) {
+
+    $plugin = $route_match->getRouteObject()->getDefault('_plugin');
     $method = strtolower($request->getMethod());
 
-    $resource_config_id = $route_match->getRouteObject()->getDefault('_rest_resource_config');
-    /** @var \Drupal\rest\RestResourceConfigInterface $resource_config */
-    $resource_config = $this->resourceStorage->load($resource_config_id);
-    $resource = $resource_config->getResourcePlugin();
+    $resource = $this->container
+      ->get('plugin.manager.rest')
+      ->createInstance($plugin);
 
     // Deserialize incoming data if available.
-    /** @var \Symfony\Component\Serializer\SerializerInterface $serializer */
     $serializer = $this->container->get('serializer');
     $received = $request->getContent();
     $unserialized = NULL;
@@ -79,18 +51,13 @@ public function handle(RouteMatchInterface $route_match, Request $request) {
       // formats are configured allow all and hope that the serializer knows the
       // format. If the serializer cannot handle it an exception will be thrown
       // that bubbles up to the client.
-      $request_method = $request->getMethod();
-      if (in_array($format, $resource_config->getFormats($request_method))) {
+      $config = $this->container->get('config.factory')->get('rest.settings')->get('resources');
+      $method_settings = $config[$plugin][$request->getMethod()];
+      if (empty($method_settings['supported_formats']) || in_array($format, $method_settings['supported_formats'])) {
         $definition = $resource->getPluginDefinition();
+        $class = $definition['serialization_class'];
         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->deserialize($received, $class, $format, array('request_method' => $method));
         }
         catch (UnexpectedValueException $e) {
           $error['error'] = $e->getMessage();
@@ -115,7 +82,10 @@ public function handle(RouteMatchInterface $route_match, Request $request) {
     }
 
     // Invoke the operation on the resource plugin.
-    $format = $this->getResponseFormat($route_match, $request);
+    // All REST routes are restricted to exactly one format, so instead of
+    // parsing it out of the Accept headers again, we can simply retrieve the
+    // format requirement. If there is no format associated, just pick JSON.
+    $format = $route_match->getRouteObject()->getRequirement('_format') ?: 'json';
     try {
       $response = call_user_func_array(array($resource, $method), array_merge($parameters, array($unserialized, $request)));
     }
@@ -128,60 +98,12 @@ public function handle(RouteMatchInterface $route_match, Request $request) {
       return new Response($content, $e->getStatusCode(), $headers);
     }
 
-    return $response instanceof ResourceResponseInterface ?
-      $this->renderResponse($request, $response, $serializer, $format, $resource_config) :
+    return $response instanceof ResourceResponse ?
+      $this->renderResponse($request, $response, $serializer, $format) :
       $response;
   }
 
   /**
-   * Determines the format to respond in.
-   *
-   * Respects the requested format if one is specified. However, it is common to
-   * forget to specify a request format in case of a POST or PATCH. Rather than
-   * simply throwing an error, we apply the robustness principle: when POSTing
-   * or PATCHing using a certain format, you probably expect a response in that
-   * same format.
-   *
-   * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
-   *   The current route match.
-   * @param \Symfony\Component\HttpFoundation\Request $request
-   *   The current request.
-   *
-   * @return string
-   *   The response format.
-   */
-  protected function getResponseFormat(RouteMatchInterface $route_match, Request $request) {
-    $route = $route_match->getRouteObject();
-    $acceptable_request_formats = $route->hasRequirement('_format') ? explode('|', $route->getRequirement('_format')) : [];
-    $acceptable_content_type_formats = $route->hasRequirement('_content_type_format') ? explode('|', $route->getRequirement('_content_type_format')) : [];
-    $acceptable_formats = $request->isMethodSafe() ? $acceptable_request_formats : $acceptable_content_type_formats;
-
-    $requested_format = $request->getRequestFormat();
-    $content_type_format = $request->getContentType();
-
-    // If an acceptable format is requested, then use that. Otherwise, including
-    // and particularly when the client forgot to specify a format, then use
-    // heuristics to select the format that is most likely expected.
-    if (in_array($requested_format, $acceptable_formats)) {
-      return $requested_format;
-    }
-    // If a request body is present, then use the format corresponding to the
-    // request body's Content-Type for the response, if it's an acceptable
-    // format for the request.
-    elseif (!empty($request->getContent()) && in_array($content_type_format, $acceptable_content_type_formats)) {
-      return $content_type_format;
-    }
-    // Otherwise, use the first acceptable format.
-    elseif (!empty($acceptable_formats)) {
-      return $acceptable_formats[0];
-    }
-    // Sometimes, there are no acceptable formats, e.g. DELETE routes.
-    else {
-      return NULL;
-    }
-  }
-
-  /**
    * Generates a CSRF protecting session token.
    *
    * @return \Symfony\Component\HttpFoundation\Response
@@ -202,15 +124,12 @@ public function csrfToken() {
    *
    * @param \Symfony\Component\HttpFoundation\Request $request
    *   The request object.
-   * @param \Drupal\rest\ResourceResponseInterface $response
+   * @param \Drupal\rest\ResourceResponse $response
    *   The response from the REST resource.
    * @param \Symfony\Component\Serializer\SerializerInterface $serializer
    *   The serializer to use.
-   * @param string|null $format
-   *   The response format, or NULL in case the response does not need a format,
-   *   for example for the response to a DELETE request.
-   * @param \Drupal\rest\RestResourceConfigInterface $resource_config
-   *   The resource config.
+   * @param string $format
+   *   The response format.
    *
    * @return \Drupal\rest\ResourceResponse
    *   The altered response.
@@ -218,34 +137,22 @@ public function csrfToken() {
    * @todo Add test coverage for language negotiation contexts in
    *   https://www.drupal.org/node/2135829.
    */
-  protected function renderResponse(Request $request, ResourceResponseInterface $response, SerializerInterface $serializer, $format, RestResourceConfigInterface $resource_config) {
+  protected function renderResponse(Request $request, ResourceResponse $response, SerializerInterface $serializer, $format) {
     $data = $response->getResponseData();
-
-    if ($response instanceof CacheableResponseInterface) {
-      // Add rest config's cache tags.
-      $response->addCacheableDependency($resource_config);
+    $context = new RenderContext();
+    $output = $this->container->get('renderer')
+      ->executeInRenderContext($context, function () use ($serializer, $data, $format) {
+        return $serializer->serialize($data, $format);
+      });
+    $response->setContent($output);
+    if (!$context->isEmpty()) {
+      $response->addCacheableDependency($context->pop());
     }
 
-    // If there is data to send, serialize and set it as the response body.
-    if ($data !== NULL) {
-      if ($response instanceof CacheableResponseInterface) {
-        $context = new RenderContext();
-        $output = $this->container->get('renderer')
-          ->executeInRenderContext($context, function () use ($serializer, $data, $format) {
-            return $serializer->serialize($data, $format);
-          });
-
-        if (!$context->isEmpty()) {
-          $response->addCacheableDependency($context->pop());
-        }
-      }
-      else {
-        $output = $serializer->serialize($data, $format);
-      }
-
-      $response->setContent($output);
-      $response->headers->set('Content-Type', $request->getMimeType($format));
-    }
+    $response->headers->set('Content-Type', $request->getMimeType($format));
+    // Add rest settings config's cache tags.
+    $response->addCacheableDependency($this->container->get('config.factory')
+      ->get('rest.settings'));
 
     return $response;
   }
diff --git a/core/modules/rest/src/ResourceResponse.php b/core/modules/rest/src/ResourceResponse.php
index d4279a4..20a7e78 100644
--- a/core/modules/rest/src/ResourceResponse.php
+++ b/core/modules/rest/src/ResourceResponse.php
@@ -13,13 +13,17 @@
  * our response data. $content implies that the provided data must either be a
  * string or an object with a __toString() method, which is not a requirement
  * for data used here.
- *
- * @see \Drupal\rest\ModifiedResourceResponse
  */
-class ResourceResponse extends Response implements CacheableResponseInterface, ResourceResponseInterface {
+class ResourceResponse extends Response implements CacheableResponseInterface {
 
   use CacheableResponseTrait;
-  use ResourceResponseTrait;
+
+  /**
+   * Response data that should be serialized.
+   *
+   * @var mixed
+   */
+  protected $responseData;
 
   /**
    * Constructor for ResourceResponse objects.
@@ -36,4 +40,14 @@ public function __construct($data = NULL, $status = 200, $headers = array()) {
     parent::__construct('', $status, $headers);
   }
 
+  /**
+   * Returns response data that should be serialized.
+   *
+   * @return mixed
+   *   Response data that should be serialized.
+   */
+  public function getResponseData() {
+    return $this->responseData;
+  }
+
 }
diff --git a/core/modules/rest/src/ResourceResponseInterface.php b/core/modules/rest/src/ResourceResponseInterface.php
deleted file mode 100644
index e52cf51..0000000
--- a/core/modules/rest/src/ResourceResponseInterface.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Drupal\rest;
-
-/**
- * Defines a common interface for resource responses.
- */
-interface ResourceResponseInterface {
-
-  /**
-   * Returns response data that should be serialized.
-   *
-   * @return mixed
-   *   Response data that should be serialized.
-   */
-  public function getResponseData();
-
-}
diff --git a/core/modules/rest/src/ResourceResponseTrait.php b/core/modules/rest/src/ResourceResponseTrait.php
deleted file mode 100644
index d16bc19..0000000
--- a/core/modules/rest/src/ResourceResponseTrait.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace Drupal\rest;
-
-
-trait ResourceResponseTrait {
-
-  /**
-   * Response data that should be serialized.
-   *
-   * @var mixed
-   */
-  protected $responseData;
-
-  /**
-   * Returns response data that should be serialized.
-   *
-   * @return mixed
-   *   Response data that should be serialized.
-   */
-  public function getResponseData() {
-    return $this->responseData;
-  }
-
-}
diff --git a/core/modules/rest/src/RestPermissions.php b/core/modules/rest/src/RestPermissions.php
index 473c192..57e95e4 100644
--- a/core/modules/rest/src/RestPermissions.php
+++ b/core/modules/rest/src/RestPermissions.php
@@ -2,8 +2,8 @@
 
 namespace Drupal\rest;
 
+use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
-use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\rest\Plugin\Type\ResourcePluginManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -20,30 +20,30 @@ class RestPermissions implements ContainerInjectionInterface {
   protected $restPluginManager;
 
   /**
-   * The REST resource config storage.
+   * The config factory.
    *
-   * @var \Drupal\Core\Entity\EntityManagerInterface
+   * @var \Drupal\Core\Config\ConfigFactoryInterface
    */
-  protected $resourceConfigStorage;
+  protected $configFactory;
 
   /**
    * Constructs a new RestPermissions instance.
    *
    * @param \Drupal\rest\Plugin\Type\ResourcePluginManager $rest_plugin_manager
    *   The rest resource plugin manager.
-   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
-   *   The entity type manager.
+   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
+   *   The config factory.
    */
-  public function __construct(ResourcePluginManager $rest_plugin_manager, EntityTypeManagerInterface $entity_type_manager) {
+  public function __construct(ResourcePluginManager $rest_plugin_manager, ConfigFactoryInterface $config_factory) {
     $this->restPluginManager = $rest_plugin_manager;
-    $this->resourceConfigStorage = $entity_type_manager->getStorage('rest_resource_config');
+    $this->configFactory = $config_factory;
   }
 
   /**
    * {@inheritdoc}
    */
   public static function create(ContainerInterface $container) {
-    return new static($container->get('plugin.manager.rest'), $container->get('entity_type.manager'));
+    return new static($container->get('plugin.manager.rest'), $container->get('config.factory'));
   }
 
   /**
@@ -53,11 +53,12 @@ public static function create(ContainerInterface $container) {
    */
   public function permissions() {
     $permissions = [];
-    /** @var \Drupal\rest\RestResourceConfigInterface[] $resource_configs */
-    $resource_configs = $this->resourceConfigStorage->loadMultiple();
-    foreach ($resource_configs as $resource_config) {
-      $plugin = $resource_config->getResourcePlugin();
-      $permissions = array_merge($permissions, $plugin->permissions());
+    $resources = $this->configFactory->get('rest.settings')->get('resources');
+    if ($resources && $enabled = array_intersect_key($this->restPluginManager->getDefinitions(), $resources)) {
+      foreach ($enabled as $id => $resource) {
+        $plugin = $this->restPluginManager->createInstance($id);
+        $permissions = array_merge($permissions, $plugin->permissions());
+      }
     }
     return $permissions;
   }
diff --git a/core/modules/rest/src/RestResourceConfigInterface.php b/core/modules/rest/src/RestResourceConfigInterface.php
deleted file mode 100644
index 7f34bc4..0000000
--- a/core/modules/rest/src/RestResourceConfigInterface.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-namespace Drupal\rest;
-
-use Drupal\Core\Config\Entity\ConfigEntityInterface;
-use Drupal\Core\Entity\EntityWithPluginCollectionInterface;
-
-/**
- * Defines a configuration entity to store enabled REST resources.
- */
-interface RestResourceConfigInterface extends ConfigEntityInterface, EntityWithPluginCollectionInterface {
-
-  /**
-   * Granularity value for per-method configuration.
-   */
-  const METHOD_GRANULARITY = 'method';
-
-  /**
-   * Retrieves the REST resource plugin.
-   *
-   * @return \Drupal\rest\Plugin\ResourceInterface
-   *   The resource plugin
-   */
-  public function getResourcePlugin();
-
-  /**
-   * Retrieves a list of supported HTTP methods.
-   *
-   * @return string[]
-   *   A list of supported HTTP methods.
-   */
-  public function getMethods();
-
-  /**
-   * Retrieves a list of supported authentication providers.
-   *
-   * @param string $method
-   *   The request method e.g GET or POST.
-   *
-   * @return string[]
-   *   A list of supported authentication provider IDs.
-   */
-  public function getAuthenticationProviders($method);
-
-  /**
-   * Retrieves a list of supported response formats.
-   *
-   * @param string $method
-   *   The request method e.g GET or POST.
-   *
-   * @return string[]
-   *   A list of supported format IDs.
-   */
-  public function getFormats($method);
-
-}
diff --git a/core/modules/rest/src/Routing/ResourceRoutes.php b/core/modules/rest/src/Routing/ResourceRoutes.php
index 5d3ae30..e88f18b 100644
--- a/core/modules/rest/src/Routing/ResourceRoutes.php
+++ b/core/modules/rest/src/Routing/ResourceRoutes.php
@@ -2,10 +2,9 @@
 
 namespace Drupal\rest\Routing;
 
-use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Routing\RouteSubscriberBase;
 use Drupal\rest\Plugin\Type\ResourcePluginManager;
-use Drupal\rest\RestResourceConfigInterface;
 use Psr\Log\LoggerInterface;
 use Symfony\Component\Routing\RouteCollection;
 
@@ -22,11 +21,11 @@ class ResourceRoutes extends RouteSubscriberBase {
   protected $manager;
 
   /**
-   * The REST resource config storage.
+   * The Drupal configuration factory.
    *
-   * @var \Drupal\Core\Entity\EntityManagerInterface
+   * @var \Drupal\Core\Config\ConfigFactoryInterface
    */
-  protected $resourceConfigStorage;
+  protected $config;
 
   /**
    * A logger instance.
@@ -40,14 +39,14 @@ class ResourceRoutes extends RouteSubscriberBase {
    *
    * @param \Drupal\rest\Plugin\Type\ResourcePluginManager $manager
    *   The resource plugin manager.
-   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
-   *   The entity type manager
+   * @param \Drupal\Core\Config\ConfigFactoryInterface $config
+   *   The configuration factory holding resource settings.
    * @param \Psr\Log\LoggerInterface $logger
    *   A logger instance.
    */
-  public function __construct(ResourcePluginManager $manager, EntityTypeManagerInterface $entity_type_manager, LoggerInterface $logger) {
+  public function __construct(ResourcePluginManager $manager, ConfigFactoryInterface $config, LoggerInterface $logger) {
     $this->manager = $manager;
-    $this->resourceConfigStorage = $entity_type_manager->getStorage('rest_resource_config');
+    $this->config = $config;
     $this->logger = $logger;
   }
 
@@ -59,68 +58,56 @@ public function __construct(ResourcePluginManager $manager, EntityTypeManagerInt
    * @return array
    */
   protected function alterRoutes(RouteCollection $collection) {
-    // Iterate over all enabled REST resource configs.
-    /** @var \Drupal\rest\RestResourceConfigInterface[] $resource_configs */
-    $resource_configs = $this->resourceConfigStorage->loadMultiple();
-    // Iterate over all enabled resource plugins.
-    foreach ($resource_configs as $resource_config) {
-      $resource_routes = $this->getRoutesForResourceConfig($resource_config);
-      $collection->addCollection($resource_routes);
+    $routes = array();
+
+    // Silently ignore resources that are in the settings but are not defined on
+    // the plugin manager currently. That avoids exceptions when REST module is
+    // enabled before another module that provides the resource plugin specified
+    // in the settings.
+    // @todo Remove in https://www.drupal.org/node/2308745
+    $resources = $this->config->get('rest.settings')->get('resources') ?: array();
+    $enabled_resources = array_intersect_key($resources, $this->manager->getDefinitions());
+    if (count($resources) != count($enabled_resources)) {
+      trigger_error('rest.settings lists resources relying on the following missing plugins: ' . implode(', ', array_keys(array_diff_key($resources, $enabled_resources))));
     }
-  }
-
-  /**
-   * Provides all routes for a given REST resource config.
-   *
-   * This method determines where a resource is reachable, what path
-   * replacements are used, the required HTTP method for the operation etc.
-   *
-   * @param \Drupal\rest\RestResourceConfigInterface $rest_resource_config
-   *   The rest resource config.
-   *
-   * @return \Symfony\Component\Routing\RouteCollection
-   *   The route collection.
-   */
-  protected function getRoutesForResourceConfig(RestResourceConfigInterface $rest_resource_config) {
-    $plugin = $rest_resource_config->getResourcePlugin();
-    $collection = new RouteCollection();
 
-    foreach ($plugin->routes() as $name => $route) {
-      /** @var \Symfony\Component\Routing\Route $route */
-      // @todo: Are multiple methods possible here?
-      $methods = $route->getMethods();
-      // Only expose routes where the method is enabled in the configuration.
-      if ($methods && ($method = $methods[0]) && $supported_formats = $rest_resource_config->getFormats($method)) {
-        $route->setRequirement('_access_rest_csrf', 'TRUE');
-
-        // Check that authentication providers are defined.
-        if (empty($rest_resource_config->getAuthenticationProviders($method))) {
-          $this->logger->error('At least one authentication provider must be defined for resource @id', array(':id' => $rest_resource_config->id()));
-          continue;
-        }
-
-        // Check that formats are defined.
-        if (empty($rest_resource_config->getFormats($method))) {
-          $this->logger->error('At least one format must be defined for resource @id', array(':id' => $rest_resource_config->id()));
-          continue;
-        }
-
-        // If the route has a format requirement, then verify that the
-        // resource has it.
-        $format_requirement = $route->getRequirement('_format');
-        if ($format_requirement && !in_array($format_requirement, $rest_resource_config->getFormats($method))) {
-          continue;
+    // Iterate over all enabled resource plugins.
+    foreach ($enabled_resources as $id => $enabled_methods) {
+      $plugin = $this->manager->createInstance($id);
+      foreach ($plugin->routes() as $name => $route) {
+        // @todo: Are multiple methods possible here?
+        $methods = $route->getMethods();
+        // Only expose routes where the method is enabled in the configuration.
+        if ($methods && ($method = $methods[0]) && $method && isset($enabled_methods[$method])) {
+          $route->setRequirement('_access_rest_csrf', 'TRUE');
+
+          // Check that authentication providers are defined.
+          if (empty($enabled_methods[$method]['supported_auth']) || !is_array($enabled_methods[$method]['supported_auth'])) {
+            $this->logger->error('At least one authentication provider must be defined for resource @id', array(':id' => $id));
+            continue;
+          }
+
+          // Check that formats are defined.
+          if (empty($enabled_methods[$method]['supported_formats']) || !is_array($enabled_methods[$method]['supported_formats'])) {
+            $this->logger->error('At least one format must be defined for resource @id', array(':id' => $id));
+            continue;
+          }
+
+          // If the route has a format requirement, then verify that the
+          // resource has it.
+          $format_requirement = $route->getRequirement('_format');
+          if ($format_requirement && !in_array($format_requirement, $enabled_methods[$method]['supported_formats'])) {
+            continue;
+          }
+
+          // The configuration seems legit at this point, so we set the
+          // authentication provider and add the route.
+          $route->setOption('_auth', $enabled_methods[$method]['supported_auth']);
+          $routes["rest.$name"] = $route;
+          $collection->add("rest.$name", $route);
         }
-
-        // The configuration seems legit at this point, so we set the
-        // authentication provider and add the route.
-        $route->setOption('_auth', $rest_resource_config->getAuthenticationProviders($method));
-        $route->setDefault('_rest_resource_config', $rest_resource_config->id());
-        $collection->add("rest.$name", $route);
       }
-
     }
-    return $collection;
   }
 
 }
diff --git a/core/modules/rest/src/Tests/AuthTest.php b/core/modules/rest/src/Tests/AuthTest.php
index e9fb7d7..08db9ab 100644
--- a/core/modules/rest/src/Tests/AuthTest.php
+++ b/core/modules/rest/src/Tests/AuthTest.php
@@ -16,7 +16,7 @@ class AuthTest extends RESTTestBase {
    *
    * @var array
    */
-  public static $modules = array('basic_auth', 'hal', 'rest', 'entity_test');
+  public static $modules = array('basic_auth', 'hal', 'rest', 'entity_test', 'comment');
 
   /**
    * Tests reading from an authenticated resource.
diff --git a/core/modules/rest/src/Tests/CreateTest.php b/core/modules/rest/src/Tests/CreateTest.php
index 28c8af6..035480b 100644
--- a/core/modules/rest/src/Tests/CreateTest.php
+++ b/core/modules/rest/src/Tests/CreateTest.php
@@ -23,7 +23,7 @@ class CreateTest extends RESTTestBase {
    *
    * @var array
    */
-  public static $modules = array('hal', 'rest', 'entity_test', 'comment', 'node');
+  public static $modules = array('hal', 'rest', 'entity_test', 'comment');
 
   /**
    * The 'serializer' service.
diff --git a/core/modules/rest/src/Tests/DeleteTest.php b/core/modules/rest/src/Tests/DeleteTest.php
index 4cc8016..ccba38e 100644
--- a/core/modules/rest/src/Tests/DeleteTest.php
+++ b/core/modules/rest/src/Tests/DeleteTest.php
@@ -16,7 +16,7 @@ class DeleteTest extends RESTTestBase {
    *
    * @var array
    */
-  public static $modules = array('hal', 'rest', 'entity_test', 'node');
+  public static $modules = array('hal', 'rest', 'entity_test');
 
   /**
    * Tests several valid and invalid delete requests on all entity types.
diff --git a/core/modules/rest/src/Tests/NodeTest.php b/core/modules/rest/src/Tests/NodeTest.php
index dbdeaec..7f0ed81 100644
--- a/core/modules/rest/src/Tests/NodeTest.php
+++ b/core/modules/rest/src/Tests/NodeTest.php
@@ -19,7 +19,7 @@ class NodeTest extends RESTTestBase {
    *
    * @var array
    */
-  public static $modules = array('hal', 'rest', 'comment', 'node');
+  public static $modules = array('hal', 'rest', 'comment');
 
   /**
    * Enables node specific REST API configuration and authentication.
@@ -110,7 +110,7 @@ public function testNodes() {
     );
     $serialized = $this->container->get('serializer')->serialize($data, $this->defaultFormat);
     $this->httpRequest($node->urlInfo(), 'PATCH', $serialized, $this->defaultMimeType);
-    $this->assertResponse(200);
+    $this->assertResponse(204);
 
     // Reload the node from the DB and check if the title was correctly updated.
     $node_storage->resetCache(array($node->id()));
diff --git a/core/modules/rest/src/Tests/PageCacheTest.php b/core/modules/rest/src/Tests/PageCacheTest.php
index 56404a3..1958fdc 100644
--- a/core/modules/rest/src/Tests/PageCacheTest.php
+++ b/core/modules/rest/src/Tests/PageCacheTest.php
@@ -2,9 +2,6 @@
 
 namespace Drupal\rest\Tests;
 
-use Drupal\Core\Url;
-use Drupal\system\Tests\Cache\AssertPageCacheContextsAndTagsTrait;
-
 /**
  * Tests page caching for REST GET requests.
  *
@@ -12,8 +9,6 @@
  */
 class PageCacheTest extends RESTTestBase {
 
-  use AssertPageCacheContextsAndTagsTrait;
-
   /**
    * Modules to install.
    *
@@ -22,117 +17,44 @@ class PageCacheTest extends RESTTestBase {
   public static $modules = array('hal', 'rest', 'entity_test');
 
   /**
-   * The 'serializer' service.
-   *
-   * @var \Symfony\Component\Serializer\Serializer
-   */
-  protected $serializer;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    // Get the 'serializer' service.
-    $this->serializer = $this->container->get('serializer');
-  }
-
-  /**
    * Tests that configuration changes also clear the page cache.
    */
   public function testConfigChangePageCache() {
+    $this->enableService('entity:entity_test', 'GET');
     // Allow anonymous users to issue GET requests.
-    user_role_grant_permissions('anonymous', ['view test entity', 'restful get entity:entity_test']);
-
-    $this->enableService('entity:entity_test', 'POST');
-    $permissions = [
-      'administer entity_test content',
-      'restful post entity:entity_test',
-      'restful get entity:entity_test',
-      'restful patch entity:entity_test',
-      'restful delete entity:entity_test',
-    ];
-    $account = $this->drupalCreateUser($permissions);
+    $permissions = $this->entityPermissions('entity_test', 'view');
+    $permissions[] = 'restful get entity:entity_test';
+    user_role_grant_permissions('anonymous', $permissions);
 
-    // Create an entity and test that the response from a post request is not
-    // cacheable.
+    // Create an entity programmatically.
     $entity = $this->entityCreate('entity_test');
     $entity->set('field_test_text', 'custom cache tag value');
-    $serialized = $this->serializer->serialize($entity, $this->defaultFormat);
-    // Log in for creating the entity.
-    $this->drupalLogin($account);
-    $this->httpRequest('entity/entity_test', 'POST', $serialized, $this->defaultMimeType);
-    $this->assertResponse(201);
-
-    if ($this->getCacheHeaderValues('x-drupal-cache')) {
-      $this->fail('Post request is cached.');
-    }
-    $this->drupalLogout();
-
-    $url = Url::fromUri('internal:/entity_test/1?_format=' . $this->defaultFormat);
-
+    $entity->save();
     // Read it over the REST API.
-    $this->enableService('entity:entity_test', 'GET');
-    $this->httpRequest($url, 'GET', NULL, $this->defaultMimeType);
+    $this->httpRequest($entity->urlInfo()->setRouteParameter('_format', $this->defaultFormat), 'GET', NULL, $this->defaultMimeType);
     $this->assertResponse(200, 'HTTP response code is correct.');
     $this->assertHeader('x-drupal-cache', 'MISS');
-    $this->assertCacheTag('config:rest.resource.entity.entity_test');
+    $this->assertCacheTag('config:rest.settings');
     $this->assertCacheTag('entity_test:1');
     $this->assertCacheTag('entity_test_access:field_test_text');
 
     // Read it again, should be page-cached now.
-    $this->httpRequest($url, 'GET', NULL, $this->defaultMimeType);
+    $this->httpRequest($entity->urlInfo()->setRouteParameter('_format', $this->defaultFormat), 'GET', NULL, $this->defaultMimeType);
     $this->assertResponse(200, 'HTTP response code is correct.');
     $this->assertHeader('x-drupal-cache', 'HIT');
-    $this->assertCacheTag('config:rest.resource.entity.entity_test');
+    $this->assertCacheTag('config:rest.settings');
     $this->assertCacheTag('entity_test:1');
     $this->assertCacheTag('entity_test_access:field_test_text');
 
-    // Trigger a resource config save which should clear the page cache, so we
-    // should get a cache miss now for the same request.
-    $this->resourceConfigStorage->load('entity.entity_test')->save();
-    $this->httpRequest($url, 'GET', NULL, $this->defaultMimeType);
+    // Trigger a config save which should clear the page cache, so we should get
+    // a cache miss now for the same request.
+    $this->config('rest.settings')->save();
+    $this->httpRequest($entity->urlInfo()->setRouteParameter('_format', $this->defaultFormat), 'GET', NULL, $this->defaultMimeType);
     $this->assertResponse(200, 'HTTP response code is correct.');
     $this->assertHeader('x-drupal-cache', 'MISS');
-    $this->assertCacheTag('config:rest.resource.entity.entity_test');
+    $this->assertCacheTag('config:rest.settings');
     $this->assertCacheTag('entity_test:1');
     $this->assertCacheTag('entity_test_access:field_test_text');
-
-    // Log in for deleting / updating entity.
-    $this->drupalLogin($account);
-
-    // Test that updating an entity is not cacheable.
-    $this->enableService('entity:entity_test', 'PATCH');
-
-    // Create a second stub entity for overwriting a field.
-    $patch_values['field_test_text'] = [0 => [
-      'value' => 'patched value',
-      'format' => 'plain_text',
-    ]];
-    $patch_entity = $this->container->get('entity_type.manager')
-      ->getStorage('entity_test')
-      ->create($patch_values);
-    // We don't want to overwrite the UUID.
-    $patch_entity->set('uuid', NULL);
-    $serialized = $this->container->get('serializer')
-      ->serialize($patch_entity, $this->defaultFormat);
-
-    // Update the entity over the REST API.
-    $this->httpRequest($url, 'PATCH', $serialized, $this->defaultMimeType);
-    $this->assertResponse(200);
-
-    if ($this->getCacheHeaderValues('x-drupal-cache')) {
-      $this->fail('Patch request is cached.');
-    }
-
-    // Test that the response from a delete request is not cacheable.
-    $this->enableService('entity:entity_test', 'DELETE');
-    $this->httpRequest($url, 'DELETE');
-    $this->assertResponse(204);
-
-    if ($this->getCacheHeaderValues('x-drupal-cache')) {
-      $this->fail('Patch request is cached.');
-    }
   }
 
 }
diff --git a/core/modules/rest/src/Tests/RESTTestBase.php b/core/modules/rest/src/Tests/RESTTestBase.php
index 4779b6b..71b1a08 100644
--- a/core/modules/rest/src/Tests/RESTTestBase.php
+++ b/core/modules/rest/src/Tests/RESTTestBase.php
@@ -2,9 +2,7 @@
 
 namespace Drupal\rest\Tests;
 
-use Drupal\Core\Config\Entity\ConfigEntityType;
 use Drupal\node\NodeInterface;
-use Drupal\rest\RestResourceConfigInterface;
 use Drupal\simpletest\WebTestBase;
 
 /**
@@ -13,13 +11,6 @@
 abstract class RESTTestBase extends WebTestBase {
 
   /**
-   * The REST resource config storage.
-   *
-   * @var \Drupal\Core\Entity\EntityStorageInterface
-   */
-  protected $resourceConfigStorage;
-
-  /**
    * The default serialization format to use for testing REST operations.
    *
    * @var string
@@ -60,18 +51,15 @@
    *
    * @var array
    */
-  public static $modules = array('rest', 'entity_test');
+  public static $modules = array('rest', 'entity_test', 'node');
 
   protected function setUp() {
     parent::setUp();
     $this->defaultFormat = 'hal_json';
     $this->defaultMimeType = 'application/hal+json';
     $this->defaultAuth = array('cookie');
-    $this->resourceConfigStorage = $this->container->get('entity_type.manager')->getStorage('rest_resource_config');
     // Create a test content type for node testing.
-    if (in_array('node', static::$modules)) {
-      $this->drupalCreateContentType(array('name' => 'resttest', 'type' => 'resttest'));
-    }
+    $this->drupalCreateContentType(array('name' => 'resttest', 'type' => 'resttest'));
   }
 
   /**
@@ -212,14 +200,14 @@ protected function entityCreate($entity_type) {
    * Required properties differ from entity type to entity type, so we keep a
    * minimum mapping here.
    *
-   * @param string $entity_type_id
-   *   The ID of the type of entity that should be created.
+   * @param string $entity_type
+   *   The type of the entity that should be created.
    *
    * @return array
    *   An array of values keyed by property name.
    */
-  protected function entityValues($entity_type_id) {
-    switch ($entity_type_id) {
+  protected function entityValues($entity_type) {
+    switch ($entity_type) {
       case 'entity_test':
         return array(
           'name' => $this->randomMachineName(),
@@ -229,11 +217,6 @@ protected function entityValues($entity_type_id) {
             'format' => 'plain_text',
           )),
         );
-      case 'config_test':
-        return [
-          'id' => $this->randomMachineName(),
-          'label' => 'Test label',
-        ];
       case 'node':
         return array('title' => $this->randomString(), 'type' => 'resttest');
       case 'node_type':
@@ -253,15 +236,8 @@ protected function entityValues($entity_type_id) {
           'entity_id' => 'invalid',
           'field_name' => 'comment',
         ];
-      case 'taxonomy_vocabulary':
-        return [
-          'vid' => 'tags',
-          'name' => $this->randomMachineName(),
-        ];
+
       default:
-        if ($this->isConfigEntity($entity_type_id)) {
-          return $this->configEntityValues($entity_type_id);
-        }
         return array();
     }
   }
@@ -274,54 +250,29 @@ protected function entityValues($entity_type_id) {
    *   resource types.
    * @param string $method
    *   The HTTP method to enable, e.g. GET, POST etc.
-   * @param string|array $format
-   *   (Optional) The serialization format, e.g. hal_json, or a list of formats.
+   * @param string $format
+   *   (Optional) The serialization format, e.g. hal_json.
    * @param array $auth
    *   (Optional) The list of valid authentication methods.
    */
-  protected function enableService($resource_type, $method = 'GET', $format = NULL, array $auth = []) {
-    if ($resource_type) {
-      // Enable REST API for this entity type.
-      $resource_config_id = str_replace(':', '.', $resource_type);
-      // get entity by id
-      /** @var \Drupal\rest\RestResourceConfigInterface $resource_config */
-      $resource_config = $this->resourceConfigStorage->load($resource_config_id);
-      if (!$resource_config) {
-        $resource_config = $this->resourceConfigStorage->create([
-          'id' => $resource_config_id,
-          'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
-          'configuration' => []
-        ]);
-      }
-      $configuration = $resource_config->get('configuration');
+  protected function enableService($resource_type, $method = 'GET', $format = NULL, $auth = NULL) {
+    // Enable REST API for this entity type.
+    $config = $this->config('rest.settings');
+    $settings = array();
 
-      if (is_array($format)) {
-        for ($i = 0; $i < count($format); $i++) {
-          $configuration[$method]['supported_formats'][] = $format[$i];
-        }
-      }
-      else {
-        if ($format == NULL) {
-          $format = $this->defaultFormat;
-        }
-        $configuration[$method]['supported_formats'][] = $format;
+    if ($resource_type) {
+      if ($format == NULL) {
+        $format = $this->defaultFormat;
       }
+      $settings[$resource_type][$method]['supported_formats'][] = $format;
 
-      if (!is_array($auth) || empty($auth)) {
+      if ($auth == NULL) {
         $auth = $this->defaultAuth;
       }
-      foreach ($auth as $auth_provider) {
-        $configuration[$method]['supported_auth'][] = $auth_provider;
-      }
-
-      $resource_config->set('configuration', $configuration);
-      $resource_config->save();
-    }
-    else {
-      foreach ($this->resourceConfigStorage->loadMultiple() as $resource_config) {
-        $resource_config->delete();
-      }
+      $settings[$resource_type][$method]['supported_auth'] = $auth;
     }
+    $config->set('resources', $settings);
+    $config->save();
     $this->rebuildCache();
   }
 
@@ -355,7 +306,7 @@ protected function curlExec($curl_options, $redirect = FALSE) {
   /**
    * Provides the necessary user permissions for entity operations.
    *
-   * @param string $entity_type_id
+   * @param string $entity_type
    *   The entity type.
    * @param string $operation
    *   The operation, one of 'view', 'create', 'update' or 'delete'.
@@ -363,8 +314,8 @@ protected function curlExec($curl_options, $redirect = FALSE) {
    * @return array
    *   The set of user permission strings.
    */
-  protected function entityPermissions($entity_type_id, $operation) {
-    switch ($entity_type_id) {
+  protected function entityPermissions($entity_type, $operation) {
+    switch ($entity_type) {
       case 'entity_test':
         switch ($operation) {
           case 'view':
@@ -409,17 +360,9 @@ protected function entityPermissions($entity_type_id, $operation) {
 
           default:
             return ['administer users'];
-        }
 
-      default:
-        if ($this->isConfigEntity($entity_type_id)) {
-          $entity_type = \Drupal::entityTypeManager()->getDefinition($entity_type_id);
-          if ($admin_permission = $entity_type->getAdminPermission()) {
-            return [$admin_permission];
-          }
         }
     }
-    return [];
   }
 
   /**
@@ -483,49 +426,4 @@ protected function assertResponseBody($expected, $message = '', $group = 'REST R
     return $this->assertIdentical($expected, $this->responseBody, $message ? $message : strtr('Response body @expected (expected) is equal to @response (actual).', array('@expected' => var_export($expected, TRUE), '@response' => var_export($this->responseBody, TRUE))), $group);
   }
 
-  /**
-   * Checks if an entity type id is for a Config Entity.
-   *
-   * @param string $entity_type_id
-   *   The entity type ID to check.
-   *
-   * @return bool
-   *   TRUE if the entity is a Config Entity, FALSE otherwise.
-   */
-  protected function isConfigEntity($entity_type_id) {
-    return \Drupal::entityTypeManager()->getDefinition($entity_type_id) instanceof ConfigEntityType;
-  }
-
-  /**
-   * Provides an array of suitable property values for a config entity type.
-   *
-   * Config entities have some common keys that need to be created. Required
-   * properties differ among config entity types, so we keep a minimum mapping
-   * here.
-   *
-   * @param string $entity_type_id
-   *   The ID of the type of entity that should be created.
-   *
-   * @return array
-   *   An array of values keyed by property name.
-   */
-  protected function configEntityValues($entity_type_id) {
-    $entity_type = \Drupal::entityTypeManager()->getDefinition($entity_type_id);
-    $keys = $entity_type->getKeys();
-    $values = [];
-    // Fill out known key values that are shared across entity types.
-    foreach ($keys as $key) {
-      if ($key === 'id' || $key === 'label') {
-        $values[$key] = $this->randomMachineName();
-      }
-    }
-    // Add extra values for particular entity types.
-    switch ($entity_type_id) {
-      case 'block':
-        $values['plugin'] = 'system_powered_by_block';
-        break;
-    }
-    return $values;
-  }
-
 }
diff --git a/core/modules/rest/src/Tests/ReadTest.php b/core/modules/rest/src/Tests/ReadTest.php
index 5baaf2d..31b5db8 100644
--- a/core/modules/rest/src/Tests/ReadTest.php
+++ b/core/modules/rest/src/Tests/ReadTest.php
@@ -3,8 +3,6 @@
 namespace Drupal\rest\Tests;
 
 use Drupal\Component\Serialization\Json;
-use Drupal\Core\Config\Entity\ConfigEntityInterface;
-use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Url;
 
 /**
@@ -19,15 +17,7 @@ class ReadTest extends RESTTestBase {
    *
    * @var array
    */
-  public static $modules = [
-    'hal',
-    'rest',
-    'node',
-    'entity_test',
-    'config_test',
-    'taxonomy',
-    'block',
-  ];
+  public static $modules = array('hal', 'rest', 'entity_test');
 
   /**
    * Tests several valid and invalid read requests on all entity types.
@@ -35,14 +25,7 @@ class ReadTest extends RESTTestBase {
   public function testRead() {
     // @todo Expand this at least to users.
     // Define the entity types we want to test.
-    $entity_types = [
-      'entity_test',
-      'node',
-      'config_test',
-      'taxonomy_vocabulary',
-      'block',
-      'user_role',
-    ];
+    $entity_types = array('entity_test', 'node');
     foreach ($entity_types as $entity_type) {
       $this->enableService('entity:' . $entity_type, 'GET');
       // Create a user account that has the required permissions to read
@@ -56,39 +39,23 @@ public function testRead() {
       $entity = $this->entityCreate($entity_type);
       $entity->save();
       // Read it over the REST API.
-      $response = $this->httpRequest($this->getReadUrl($entity), 'GET');
+      $response = $this->httpRequest($entity->urlInfo()->setRouteParameter('_format', $this->defaultFormat), 'GET');
       $this->assertResponse('200', 'HTTP response code is correct.');
       $this->assertHeader('content-type', $this->defaultMimeType);
       $data = Json::decode($response);
       // Only assert one example property here, other properties should be
       // checked in serialization tests.
-      if ($entity instanceof ConfigEntityInterface) {
-        $this->assertEqual($data['uuid'], $entity->uuid(), 'Entity UUID is correct');
-      }
-      else {
-        $this->assertEqual($data['uuid'][0]['value'], $entity->uuid(), 'Entity UUID is correct');
-      }
+      $this->assertEqual($data['uuid'][0]['value'], $entity->uuid(), 'Entity UUID is correct');
 
       // Try to read the entity with an unsupported mime format.
-      $this->httpRequest($this->getReadUrl($entity, 'wrongformat'), 'GET');
+      $response = $this->httpRequest($entity->urlInfo()->setRouteParameter('_format', 'wrongformat'), 'GET');
       $this->assertResponse(406);
       $this->assertHeader('Content-type', 'application/json');
 
       // Try to read an entity that does not exist.
-      $response = $this->httpRequest($this->getReadUrl($entity, $this->defaultFormat, 9999), 'GET');
+      $response = $this->httpRequest(Url::fromUri('base://' . $entity_type . '/9999', ['query' => ['_format' => $this->defaultFormat]]), 'GET');
       $this->assertResponse(404);
-      switch ($entity_type) {
-        case 'node':
-          $path = '/node/{node}';
-          break;
-
-        case 'entity_test':
-          $path = '/entity_test/{entity_test}';
-          break;
-
-        default:
-          $path = "/entity/$entity_type/{" . $entity_type . '}';
-      }
+      $path = $entity_type == 'node' ? '/node/{node}' : '/entity_test/{entity_test}';
       $expected_message = Json::encode(['message' => 'The "' . $entity_type . '" parameter was not converted for the path "' . $path . '" (route name: "rest.entity.' . $entity_type . '.GET.hal_json")']);
       $this->assertIdentical($expected_message, $response, 'Response message is correct.');
 
@@ -98,7 +65,7 @@ public function testRead() {
       if ($entity_type == 'entity_test') {
         $entity->field_test_text->value = 'no access value';
         $entity->save();
-        $response = $this->httpRequest($this->getReadUrl($entity), 'GET');
+        $response = $this->httpRequest($entity->urlInfo()->setRouteParameter('_format', $this->defaultFormat), 'GET');
         $this->assertResponse(200);
         $this->assertHeader('content-type', $this->defaultMimeType);
         $data = Json::decode($response);
@@ -107,15 +74,14 @@ public function testRead() {
 
       // Try to read an entity without proper permissions.
       $this->drupalLogout();
-      $response = $this->httpRequest($this->getReadUrl($entity), 'GET');
+      $response = $this->httpRequest($entity->urlInfo()->setRouteParameter('_format', $this->defaultFormat), 'GET');
       $this->assertResponse(403);
       $this->assertIdentical('{"message":""}', $response);
     }
-    // Try to read a resource, the user entity, which is not REST API enabled.
+    // Try to read a resource which is not REST API enabled.
     $account = $this->drupalCreateUser();
     $this->drupalLogin($account);
-    $response = $this->httpRequest($this->getReadUrl($account), 'GET');
-
+    $response = $this->httpRequest($account->urlInfo()->setRouteParameter('_format', $this->defaultFormat), 'GET');
     // \Drupal\Core\Routing\RequestFormatRouteFilter considers the canonical,
     // non-REST route a match, but a lower quality one: no format restrictions
     // means there's always a match and hence when there is no matching REST
@@ -145,50 +111,8 @@ public function testResourceStructure() {
     $entity->save();
 
     // Read it over the REST API.
-    $this->httpRequest($this->getReadUrl($entity, 'json'), 'GET');
+    $response = $this->httpRequest($entity->urlInfo()->setRouteParameter('_format', 'json'), 'GET');
     $this->assertResponse('200', 'HTTP response code is correct.');
   }
 
-  /**
-   * Gets the read URL object for the entity.
-   *
-   * @param \Drupal\Core\Entity\EntityInterface $entity
-   *   The entity to get the URL for.
-   * @param string $format
-   *   The format to request the entity in.
-   * @param string $entity_id
-   *   The entity ID to use in the URL, defaults to the entity's ID if know
-   *   given.
-   *
-   * @return \Drupal\Core\Url
-   *   The Url object.
-   */
-  protected function getReadUrl(EntityInterface $entity, $format = NULL, $entity_id = NULL) {
-    if (!$format) {
-      $format = $this->defaultFormat;
-    }
-    if (!$entity_id) {
-      $entity_id = $entity->id();
-    }
-    $entity_type = $entity->getEntityTypeId();
-    if ($entity->hasLinkTemplate('canonical')) {
-      $url = $entity->toUrl('canonical');
-    }
-    else {
-      $route_name = 'rest.entity.' . $entity_type . ".GET.";
-      // If testing unsupported format don't use the format to construct route
-      // name. This would give a RouteNotFoundException.
-      if ($format == 'wrongformat') {
-        $route_name .= $this->defaultFormat;
-      }
-      else {
-        $route_name .= $format;
-      }
-      $url = Url::fromRoute($route_name);
-    }
-    $url->setRouteParameter($entity_type, $entity_id);
-    $url->setRouteParameter('_format', $format);
-    return $url;
-  }
-
 }
diff --git a/core/modules/rest/src/Tests/ResourceTest.php b/core/modules/rest/src/Tests/ResourceTest.php
index 72bed0f..df99cc6 100644
--- a/core/modules/rest/src/Tests/ResourceTest.php
+++ b/core/modules/rest/src/Tests/ResourceTest.php
@@ -2,10 +2,9 @@
 
 namespace Drupal\rest\Tests;
 
+use Drupal\Component\Plugin\Exception\PluginNotFoundException;
 use Drupal\Core\Session\AccountInterface;
-use Drupal\rest\RestResourceConfigInterface;
 use Drupal\user\Entity\Role;
-use Drupal\user\RoleInterface;
 
 /**
  * Tests the structure of a REST resource.
@@ -19,7 +18,7 @@ class ResourceTest extends RESTTestBase {
    *
    * @var array
    */
-  public static $modules = array('hal', 'rest', 'entity_test', 'rest_test');
+  public static $modules = array('hal', 'rest', 'entity_test');
 
   /**
    * The entity.
@@ -33,7 +32,9 @@ class ResourceTest extends RESTTestBase {
    */
   protected function setUp() {
     parent::setUp();
-    // Create an entity programmatic.
+    $this->config = $this->config('rest.settings');
+
+    // Create an entity programmatically.
     $this->entity = $this->entityCreate('entity_test');
     $this->entity->save();
 
@@ -46,17 +47,20 @@ protected function setUp() {
    * Tests that a resource without formats cannot be enabled.
    */
   public function testFormats() {
-    $this->resourceConfigStorage->create([
-      'id' => 'entity.entity_test',
-      'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
-      'configuration' => [
-        'GET' => [
-          'supported_auth' => [
+    $settings = array(
+      'entity:entity_test' => array(
+        'GET' => array(
+          'supported_auth' => array(
             'basic_auth',
-          ],
-        ],
-      ],
-    ])->save();
+          ),
+        ),
+      ),
+    );
+
+    // Attempt to enable the resource.
+    $this->config->set('resources', $settings);
+    $this->config->save();
+    $this->rebuildCache();
 
     // Verify that accessing the resource returns 406.
     $response = $this->httpRequest($this->entity->urlInfo()->setRouteParameter('_format', $this->defaultFormat), 'GET');
@@ -73,17 +77,20 @@ public function testFormats() {
    * Tests that a resource without authentication cannot be enabled.
    */
   public function testAuthentication() {
-    $this->resourceConfigStorage->create([
-      'id' => 'entity.entity_test',
-      'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
-      'configuration' => [
-        'GET' => [
-          'supported_formats' => [
+    $settings = array(
+      'entity:entity_test' => array(
+        'GET' => array(
+          'supported_formats' => array(
             'hal_json',
-          ],
-        ],
-      ],
-    ])->save();
+          ),
+        ),
+      ),
+    );
+
+    // Attempt to enable the resource.
+    $this->config->set('resources', $settings);
+    $this->config->save();
+    $this->rebuildCache();
 
     // Verify that accessing the resource returns 401.
     $response = $this->httpRequest($this->entity->urlInfo()->setRouteParameter('_format', $this->defaultFormat), 'GET');
@@ -97,22 +104,6 @@ public function testAuthentication() {
   }
 
   /**
-   * Tests that serialization_class is optional.
-   */
-  public function testSerializationClassIsOptional() {
-    $this->enableService('serialization_test', 'POST', 'json');
-
-    Role::load(RoleInterface::ANONYMOUS_ID)
-      ->grantPermission('restful post serialization_test')
-      ->save();
-
-    $serialized = $this->container->get('serializer')->serialize(['foo', 'bar'], 'json');
-    $this->httpRequest('serialization_test', 'POST', $serialized, 'application/json');
-    $this->assertResponse(200);
-    $this->assertResponseBody('["foo","bar"]');
-  }
-
-  /**
    * Tests that resource URI paths are formatted properly.
    */
   public function testUriPaths() {
@@ -127,4 +118,30 @@ public function testUriPaths() {
     }
   }
 
+  /**
+   * Tests that a resource with a missing plugin does not cause an exception.
+   */
+  public function testMissingPlugin() {
+    $settings = array(
+      'entity:nonexisting' => array(
+        'GET' => array(
+          'supported_formats' => array(
+            'hal_json',
+          ),
+        ),
+      ),
+    );
+
+    try {
+      // Attempt to enable the resource.
+      $this->config->set('resources', $settings);
+      $this->config->save();
+      $this->rebuildCache();
+      $this->pass('rest.settings referencing a missing REST resource plugin does not cause an exception.');
+    }
+    catch (PluginNotFoundException $e) {
+      $this->fail('rest.settings referencing a missing REST resource plugin caused an exception.');
+    }
+  }
+
 }
diff --git a/core/modules/rest/src/Tests/Update/RestConfigurationEntitiesUpdateTest.php b/core/modules/rest/src/Tests/Update/RestConfigurationEntitiesUpdateTest.php
deleted file mode 100644
index 9100f16..0000000
--- a/core/modules/rest/src/Tests/Update/RestConfigurationEntitiesUpdateTest.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace Drupal\rest\Tests\Update;
-
-use Drupal\rest\RestResourceConfigInterface;
-use Drupal\system\Tests\Update\UpdatePathTestBase;
-
-/**
- * Tests that rest.settings is converted to rest_resource_config entities.
- *
- * @see https://www.drupal.org/node/2308745
- *
- * @group rest
- */
-class RestConfigurationEntitiesUpdateTest extends UpdatePathTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = ['rest', 'serialization'];
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz',
-      __DIR__ . '/../../../../rest/tests/fixtures/update/drupal-8.rest-rest_update_8201.php',
-    ];
-  }
-
-  /**
-   * Tests rest_update_8201().
-   */
-  public function testResourcesConvertedToConfigEntities() {
-    /** @var \Drupal\Core\Entity\EntityStorageInterface $resource_config_storage */
-    $resource_config_storage = $this->container->get('entity_type.manager')->getStorage('rest_resource_config');
-
-    // Make sure we have the expected values before the update.
-    $rest_settings = $this->config('rest.settings');
-    $this->assertTrue(array_key_exists('resources', $rest_settings->getRawData()));
-    $this->assertTrue(array_key_exists('entity:node', $rest_settings->getRawData()['resources']));
-    $resource_config_entities = $resource_config_storage->loadMultiple();
-    $this->assertIdentical([], array_keys($resource_config_entities));
-
-    // Read the existing 'entity:node' resource configuration so we can verify
-    // it after the update.
-    $node_configuration = $rest_settings->getRawData()['resources']['entity:node'];
-
-    $this->runUpdates();
-
-    // Make sure we have the expected values after the update.
-    $rest_settings = $this->config('rest.settings');
-    $this->assertFalse(array_key_exists('resources', $rest_settings->getRawData()));
-    $resource_config_entities = $resource_config_storage->loadMultiple();
-    $this->assertIdentical(['entity.node'], array_keys($resource_config_entities));
-    $node_resource_config_entity = $resource_config_entities['entity.node'];
-    $this->assertIdentical(RestResourceConfigInterface::METHOD_GRANULARITY, $node_resource_config_entity->get('granularity'));
-    $this->assertIdentical($node_configuration, $node_resource_config_entity->get('configuration'));
-    $this->assertIdentical(['module' => ['basic_auth', 'node', 'serialization']], $node_resource_config_entity->getDependencies());
-  }
-
-}
diff --git a/core/modules/rest/src/Tests/Update/RestExportAuthUpdateTest.php b/core/modules/rest/src/Tests/Update/RestExportAuthUpdateTest.php
deleted file mode 100644
index 92cc917..0000000
--- a/core/modules/rest/src/Tests/Update/RestExportAuthUpdateTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Drupal\rest\Tests\Update;
-
-use Drupal\system\Tests\Update\UpdatePathTestBase;
-
-/**
- * Ensures that update hook is run properly for REST Export config.
- *
- * @group Update
- */
-class RestExportAuthUpdateTest extends UpdatePathTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setDatabaseDumpFiles() {
-    $this->databaseDumpFiles = [
-      __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz',
-      __DIR__ . '/../../../tests/fixtures/update/rest-export-with-authentication.php',
-    ];
-  }
-
-  /**
-   * Ensures that update hook is run for rest module.
-   */
-  public function testUpdate() {
-    $this->runUpdates();
-
-    // Get particular view.
-    $view = \Drupal::entityTypeManager()->getStorage('view')->load('rest_export_with_authorization');
-    $displays = $view->get('display');
-    $this->assertIdentical($displays['rest_export_1']['display_options']['auth']['basic_auth'], 'basic_auth', 'Basic authentication is set as authentication method.');
-  }
-
-}
diff --git a/core/modules/rest/src/Tests/UpdateTest.php b/core/modules/rest/src/Tests/UpdateTest.php
index d503386..e90da82 100644
--- a/core/modules/rest/src/Tests/UpdateTest.php
+++ b/core/modules/rest/src/Tests/UpdateTest.php
@@ -2,12 +2,7 @@
 
 namespace Drupal\rest\Tests;
 
-use Drupal\comment\Entity\Comment;
-use Drupal\comment\Tests\CommentTestTrait;
 use Drupal\Component\Serialization\Json;
-use Drupal\Core\Entity\EntityInterface;
-use Drupal\Core\Session\AccountInterface;
-use Drupal\entity_test\Entity\EntityTest;
 
 /**
  * Tests the update of resources.
@@ -16,22 +11,12 @@
  */
 class UpdateTest extends RESTTestBase {
 
-  use CommentTestTrait;
-
   /**
    * Modules to install.
    *
    * @var array
    */
-  public static $modules = ['hal', 'rest', 'entity_test', 'node', 'comment'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    $this->addDefaultCommentField('entity_test', 'entity_test');
-  }
+  public static $modules = array('hal', 'rest', 'entity_test');
 
   /**
    * Tests several valid and invalid partial update requests on test entities.
@@ -68,20 +53,8 @@ public function testPatchUpdate() {
     $serialized = $serializer->serialize($patch_entity, $this->defaultFormat, $context);
 
     // Update the entity over the REST API.
-    $response = $this->httpRequest($entity->urlInfo(), 'PATCH', $serialized, $this->defaultMimeType);
-    $this->assertResponse(200);
-
-    // Make sure that the response includes an entity in the body, check the
-    // updated field as an example.
-    $request = Json::decode($serialized);
-    $response = Json::decode($response);
-    $this->assertEqual($request['field_test_text'][0]['value'], $response['field_test_text'][0]['value']);
-    unset($request['_links']);
-    unset($response['_links']);
-    unset($response['id']);
-    unset($response['uuid']);
-    unset($response['name']);
-    $this->assertEqual($request, $response);
+    $this->httpRequest($entity->urlInfo(), 'PATCH', $serialized, $this->defaultMimeType);
+    $this->assertResponse(204);
 
     // Re-load updated entity from the database.
     $entity = entity_load($entity_type, $entity->id(), TRUE);
@@ -93,7 +66,7 @@ public function testPatchUpdate() {
     unset($normalized['field_test_text']);
     $serialized = $serializer->encode($normalized, $this->defaultFormat);
     $this->httpRequest($entity->urlInfo(), 'PATCH', $serialized, $this->defaultMimeType);
-    $this->assertResponse(200);
+    $this->assertResponse(204);
 
     $entity = entity_load($entity_type, $entity->id(), TRUE);
     $this->assertNotNull($entity->field_test_text->value . 'Test field has not been deleted.');
@@ -104,7 +77,7 @@ public function testPatchUpdate() {
 
     // Update the entity over the REST API.
     $this->httpRequest($entity->urlInfo(), 'PATCH', $serialized, $this->defaultMimeType);
-    $this->assertResponse(200);
+    $this->assertResponse(204);
 
     // Re-load updated entity from the database.
     $entity = entity_load($entity_type, $entity->id(), TRUE);
@@ -226,7 +199,7 @@ public function testUpdateUser() {
     $normalized['pass'][0]['existing'] = $account->pass_raw;
     $serialized = $serializer->serialize($normalized, $this->defaultFormat, $context);
     $this->httpRequest($account->urlInfo(), 'PATCH', $serialized, $this->defaultMimeType);
-    $this->assertResponse(200);
+    $this->assertResponse(204);
 
     // Try to change the password without providing the current password.
     $new_password = $this->randomString();
@@ -242,133 +215,12 @@ public function testUpdateUser() {
     $normalized['pass'][0]['existing'] = $account->pass_raw;
     $serialized = $serializer->serialize($normalized, $this->defaultFormat, $context);
     $this->httpRequest($account->urlInfo(), 'PATCH', $serialized, $this->defaultMimeType);
-    $this->assertResponse(200);
+    $this->assertResponse(204);
 
     // Verify that we can log in with the new password.
     $account->pass_raw = $new_password;
     $this->drupalLogin($account);
-  }
 
-  /**
-   * Test patching a comment using both HAL+JSON and JSON.
-   */
-  public function testUpdateComment() {
-    $entity_type = 'comment';
-    // Enables the REST service for 'comment' entity type.
-    $this->enableService('entity:' . $entity_type, 'PATCH', ['hal_json', 'json']);
-    $permissions = $this->entityPermissions($entity_type, 'update');
-    $permissions[] = 'restful patch entity:' . $entity_type;
-    $account = $this->drupalCreateUser($permissions);
-    $account->set('mail', 'old-email@example.com');
-    $this->drupalLogin($account);
-
-    // Create & save an entity to comment on, plus a comment.
-    $entity_test = EntityTest::create();
-    $entity_test->save();
-    $entity_values = $this->entityValues($entity_type);
-    $entity_values['entity_id'] = $entity_test->id();
-    $entity_values['uid'] = $account->id();
-    $comment = Comment::create($entity_values);
-    $comment->save();
-
-    $this->pass('Test case 1: PATCH comment using HAL+JSON.');
-    $comment->setSubject('Initial subject')->save();
-    $read_only_fields = [
-      'name',
-      'created',
-      'changed',
-      'status',
-      'thread',
-      'entity_type',
-      'field_name',
-      'entity_id',
-      'uid',
-    ];
-    $this->assertNotEqual('Updated subject', $comment->getSubject());
-    $comment->setSubject('Updated subject');
-    $this->patchEntity($comment, $read_only_fields, $account, 'hal_json', 'application/hal+json');
-    $comment = Comment::load($comment->id());
-    $this->assertEqual('Updated subject', $comment->getSubject());
-
-    $this->pass('Test case 1: PATCH comment using JSON.');
-    $comment->setSubject('Initial subject')->save();
-    $read_only_fields = [
-      'pid', // Extra compared to HAL+JSON.
-      'entity_id',
-      'uid',
-      'name',
-      'homepage', // Extra compared to HAL+JSON.
-      'created',
-      'changed',
-      'status',
-      'thread',
-      'entity_type',
-      'field_name',
-    ];
-    $this->assertNotEqual('Updated subject', $comment->getSubject());
-    $comment->setSubject('Updated subject');
-    $this->patchEntity($comment, $read_only_fields, $account, 'json', 'application/json');
-    $comment = Comment::load($comment->id());
-    $this->assertEqual('Updated subject', $comment->getSubject());
-  }
-
-  /**
-   * Patches an existing entity using the passed in (modified) entity.
-   *
-   * @param \Drupal\Core\Entity\EntityInterface $entity
-   *   The updated entity to send.
-   * @param string[] $read_only_fields
-   *   Names of the fields that are read-only, in validation order.
-   * @param \Drupal\Core\Session\AccountInterface $account
-   *   The account to use for serialization.
-   * @param string $format
-   *   A serialization format.
-   * @param string $mime_type
-   *   The MIME type corresponding to the specified serialization format.
-   */
-  protected function patchEntity(EntityInterface $entity, array $read_only_fields, AccountInterface $account, $format, $mime_type) {
-    $serializer = $this->container->get('serializer');
-
-    $url = $entity->toUrl();
-    $context = ['account' => $account];
-    // Certain fields are always read-only, others this user simply is not
-    // allowed to modify. For all of them, ensure they are not serialized, else
-    // we'll get a 403 plus an error message.
-    for ($i = 0; $i < count($read_only_fields); $i++) {
-      $field = $read_only_fields[$i];
-
-      $normalized = $serializer->normalize($entity, $format, $context);
-      if ($format !== 'hal_json') {
-        // The default normalizer always keeps fields, even if they are unset
-        // here because they should be omitted during a PATCH request. Therefore
-        // manually strip them
-        // @see \Drupal\Core\Entity\ContentEntityBase::__unset()
-        // @see \Drupal\serialization\Normalizer\EntityNormalizer::normalize()
-        // @see \Drupal\hal\Normalizer\ContentEntityNormalizer::normalize()
-        $read_only_fields_so_far = array_slice($read_only_fields, 0, $i);
-        $normalized = array_diff_key($normalized, array_flip($read_only_fields_so_far));
-      }
-      $serialized = $serializer->serialize($normalized, $format, $context);
-
-      $this->httpRequest($url, 'PATCH', $serialized, $mime_type);
-      $this->assertResponse(403);
-      $this->assertResponseBody('{"error":"Access denied on updating field \'' . $field . '\'."}');
-
-      if ($format === 'hal_json') {
-        // We've just tried with this read-only field, now unset it.
-        $entity->set($field, NULL);
-      }
-    }
-
-    // Finally, with all read-only fields unset, the request should succeed.
-    $normalized = $serializer->normalize($entity, $format, $context);
-    if ($format !== 'hal_json') {
-      $normalized = array_diff_key($normalized, array_combine($read_only_fields, $read_only_fields));
-    }
-    $serialized = $serializer->serialize($normalized, $format, $context);
-
-    $this->httpRequest($url, 'PATCH', $serialized, $mime_type);
-    $this->assertResponse(200);
   }
 
 }
diff --git a/core/modules/rest/src/Tests/Views/StyleSerializerTest.php b/core/modules/rest/src/Tests/Views/StyleSerializerTest.php
index 50e0e74..a884342 100644
--- a/core/modules/rest/src/Tests/Views/StyleSerializerTest.php
+++ b/core/modules/rest/src/Tests/Views/StyleSerializerTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\rest\Tests\Views;
 
 use Drupal\Core\Cache\Cache;
-use Drupal\Core\EventSubscriber\MainContentViewSubscriber;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\entity_test\Entity\EntityTest;
 use Drupal\field\Entity\FieldConfig;
@@ -40,7 +39,7 @@ class StyleSerializerTest extends PluginTestBase {
    *
    * @var array
    */
-  public static $modules = array('views_ui', 'entity_test', 'hal', 'rest_test_views', 'node', 'text', 'field', 'language', 'basic_auth');
+  public static $modules = array('views_ui', 'entity_test', 'hal', 'rest_test_views', 'node', 'text', 'field', 'language');
 
   /**
    * Views used by this test.
@@ -70,39 +69,6 @@ protected function setUp() {
   }
 
   /**
-   * Checks that the auth options restricts access to a REST views display.
-   */
-  public function testRestViewsAuthentication() {
-    // Assume the view is hidden behind a permission.
-    $this->drupalGetWithFormat('test/serialize/auth_with_perm', 'json');
-    $this->assertResponse(401);
-
-    // Not even logging in would make it possible to see the view, because then
-    // we are denied based on authentication method (cookie).
-    $this->drupalLogin($this->adminUser);
-    $this->drupalGetWithFormat('test/serialize/auth_with_perm', 'json');
-    $this->assertResponse(403);
-    $this->drupalLogout();
-
-    // But if we use the basic auth authentication strategy, we should be able
-    // to see the page.
-    $url = $this->buildUrl('test/serialize/auth_with_perm');
-    $response = \Drupal::httpClient()->get($url, [
-      'auth' => [$this->adminUser->getUsername(), $this->adminUser->pass_raw],
-    ]);
-
-    // Ensure that any changes to variables in the other thread are picked up.
-    $this->refreshVariables();
-
-    $headers = $response->getHeaders();
-    $this->verbose('GET request to: ' . $url .
-      '<hr />Code: ' . curl_getinfo($this->curlHandle, CURLINFO_HTTP_CODE) .
-      '<hr />Response headers: ' . nl2br(print_r($headers, TRUE)) .
-      '<hr />Response body: ' . (string) $response->getBody());
-    $this->assertResponse(200);
-  }
-
-  /**
    * Checks the behavior of the Serializer callback paths and row plugins.
    */
   public function testSerializerResponses() {
@@ -217,22 +183,6 @@ public function testSerializerResponses() {
   }
 
   /**
-   * Verifies site maintenance mode functionality.
-   */
-  protected function testSiteMaintenance() {
-    $view = Views::getView('test_serializer_display_field');
-    $view->initDisplay();
-    $this->executeView($view);
-
-    // Set the site to maintenance mode.
-    $this->container->get('state')->set('system.maintenance_mode', TRUE);
-
-    $this->drupalGetWithFormat('test/serialize/entity', 'json');
-    // Verify that the endpoint is unavailable for anonymous users.
-    $this->assertResponse(503);
-  }
-
-  /**
    * Sets up a request on the request stack with a specified format.
    *
    * @param string $format
@@ -550,7 +500,8 @@ public function testFieldRawOutput() {
   public function testLivePreview() {
     // We set up a request so it looks like an request in the live preview.
     $request = new Request();
-    $request->query->add([MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']);
+    $request->setFormat('drupal_ajax', 'application/vnd.drupal-ajax');
+    $request->headers->set('Accept', 'application/vnd.drupal-ajax');
       /** @var \Symfony\Component\HttpFoundation\RequestStack $request_stack */
     $request_stack = \Drupal::service('request_stack');
     $request_stack->push($request);
diff --git a/core/modules/rest/tests/fixtures/update/drupal-8.rest-rest_update_8201.php b/core/modules/rest/tests/fixtures/update/drupal-8.rest-rest_update_8201.php
deleted file mode 100644
index 72a143b..0000000
--- a/core/modules/rest/tests/fixtures/update/drupal-8.rest-rest_update_8201.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains database additions to drupal-8.bare.standard.php.gz for testing the
- * upgrade path of rest_update_8201().
- */
-
-use Drupal\Core\Database\Database;
-
-$connection = Database::getConnection();
-
-// Set the schema version.
-$connection->insert('key_value')
-  ->fields([
-    'collection' => 'system.schema',
-    'name' => 'rest',
-    'value' => 'i:8000;',
-  ])
-  ->fields([
-    'collection' => 'system.schema',
-    'name' => 'serialization',
-    'value' => 'i:8000;',
-  ])
-  ->fields([
-    'collection' => 'system.schema',
-    'name' => 'basic_auth',
-    'value' => 'i:8000;',
-  ])
-  ->execute();
-
-// Update core.extension.
-$extensions = $connection->select('config')
-  ->fields('config', ['data'])
-  ->condition('collection', '')
-  ->condition('name', 'core.extension')
-  ->execute()
-  ->fetchField();
-$extensions = unserialize($extensions);
-$extensions['module']['basic_auth'] = 8000;
-$extensions['module']['rest'] = 8000;
-$extensions['module']['serialization'] = 8000;
-$connection->update('config')
-  ->fields([
-    'data' => serialize($extensions),
-  ])
-  ->condition('collection', '')
-  ->condition('name', 'core.extension')
-  ->execute();
-
-// Install the rest configuration.
-$config = [
-  'resources' => [
-    'entity:node' => [
-      'GET' => [
-        'supported_formats' => ['json'],
-        'supported_auth' => ['basic_auth'],
-      ],
-    ],
-  ],
-  'link_domain' => '~',
-];
-$data = $connection->insert('config')
-  ->fields([
-    'name' => 'rest.settings',
-    'data' => serialize($config),
-    'collection' => ''
-  ])
-  ->execute();
diff --git a/core/modules/rest/tests/fixtures/update/rest-export-with-authentication.php b/core/modules/rest/tests/fixtures/update/rest-export-with-authentication.php
deleted file mode 100644
index c21e063..0000000
--- a/core/modules/rest/tests/fixtures/update/rest-export-with-authentication.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/**
- * @file
- * Test fixture for \Drupal\rest\Tests\Update\RestExportAuthUpdateTest.
- */
-
-use Drupal\Component\Serialization\Yaml;
-use Drupal\Core\Database\Database;
-
-$connection = Database::getConnection();
-$config = $connection;
-
-// Set the schema version.
-$connection->insert('key_value')
-  ->fields([
-    'collection' => 'system.schema',
-    'name' => 'rest',
-    'value' => 'i:8000;',
-  ])
-  ->fields([
-    'collection' => 'system.schema',
-    'name' => 'serialization',
-    'value' => 'i:8000;',
-  ])
-  ->fields([
-    'collection' => 'system.schema',
-    'name' => 'basic_auth',
-    'value' => 'i:8000;',
-  ])
-  ->execute();
-
-// Update core.extension.
-$extensions = $connection->select('config')
-  ->fields('config', ['data'])
-  ->condition('collection', '')
-  ->condition('name', 'core.extension')
-  ->execute()
-  ->fetchField();
-$extensions = unserialize($extensions);
-$extensions['module']['rest'] = 0;
-$extensions['module']['serialization'] = 0;
-$extensions['module']['basic_auth'] = 0;
-$connection->update('config')
-  ->fields([
-    'data' => serialize($extensions),
-  ])
-  ->condition('collection', '')
-  ->condition('name', 'core.extension')
-  ->execute();
-
-$config = [
-  'link_domain' => '~',
-];
-$data = $connection->insert('config')
-  ->fields([
-    'name' => 'rest.settings',
-    'data' => serialize($config),
-    'collection' => '',
-  ])
-  ->execute();
-
-$connection->insert('config')
-  ->fields([
-    'name' => 'views.view.rest_export_with_authorization',
-  ])
-  ->execute();
-
-$connection->merge('config')
-  ->condition('name', 'views.view.rest_export_with_authorization')
-  ->condition('collection', '')
-  ->fields([
-    'data' => serialize(Yaml::decode(file_get_contents('core/modules/views/tests/modules/views_test_config/test_views/views.view.rest_export_with_authorization.yml'))),
-  ])
-  ->execute();
diff --git a/core/modules/rest/tests/modules/rest_test/rest_test.info.yml b/core/modules/rest/tests/modules/rest_test/rest_test.info.yml
index e10b226..b5f4966 100644
--- a/core/modules/rest/tests/modules/rest_test/rest_test.info.yml
+++ b/core/modules/rest/tests/modules/rest_test/rest_test.info.yml
@@ -1,6 +1,6 @@
 name: 'REST test'
 type: module
-description: 'Provides test hooks and resources for REST module.'
+description: 'Provides test hooks for REST module.'
 package: Testing
 version: VERSION
 core: 8.x
diff --git a/core/modules/rest/tests/modules/rest_test/src/Plugin/rest/resource/NoSerializationClassTestResource.php b/core/modules/rest/tests/modules/rest_test/src/Plugin/rest/resource/NoSerializationClassTestResource.php
deleted file mode 100644
index 3e83a4c..0000000
--- a/core/modules/rest/tests/modules/rest_test/src/Plugin/rest/resource/NoSerializationClassTestResource.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace Drupal\rest_test\Plugin\rest\resource;
-
-use Drupal\rest\Plugin\ResourceBase;
-use Drupal\rest\ResourceResponse;
-
-/**
- * Class used to test that serialization_class is optional.
- *
- * @RestResource(
- *   id = "serialization_test",
- *   label = @Translation("Optional serialization_class"),
- *   serialization_class = "",
- *   uri_paths = {}
- * )
- */
-class NoSerializationClassTestResource extends ResourceBase {
-
-  /**
-   * Responds to a POST request.
-   *
-   * @param array $data
-   *   An array with the payload.
-   *
-   * @return \Drupal\rest\ResourceResponse
-   */
-  public function post(array $data = []) {
-    return new ResourceResponse($data);
-  }
-
-}
diff --git a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml
index 4a09bbd..34133a5 100644
--- a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml
+++ b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml
@@ -27,7 +27,7 @@ display:
       access:
         type: perm
         options:
-          perm: 'administer views'
+          perm: 'access content'
       cache:
         type: tag
       query:
@@ -149,24 +149,3 @@ display:
         type: serializer
       row:
         type: data_field
-
-  rest_export_2:
-    display_plugin: rest_export
-    id: rest_export_2
-    display_title: 'REST export 2'
-    position: 2
-    display_options:
-      display_extenders: {  }
-      auth:
-        basic_auth: basic_auth
-      path: test/serialize/auth_with_perm
-    cache_metadata:
-      max-age: -1
-      contexts:
-        - 'languages:language_content'
-        - 'languages:language_interface'
-        - request_format
-        - 'user.node_grants:view'
-        - user.permissions
-      tags:
-        - 'config:field.storage.node.body'
diff --git a/core/modules/rest/tests/src/Kernel/Entity/ConfigDependenciesTest.php b/core/modules/rest/tests/src/Kernel/Entity/ConfigDependenciesTest.php
deleted file mode 100644
index b9a9062..0000000
--- a/core/modules/rest/tests/src/Kernel/Entity/ConfigDependenciesTest.php
+++ /dev/null
@@ -1,192 +0,0 @@
-<?php
-
-namespace Drupal\Tests\rest\Kernel\Entity;
-
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\rest\Entity\ConfigDependencies;
-use Drupal\rest\Entity\RestResourceConfig;
-use Drupal\rest\RestResourceConfigInterface;
-
-/**
- * @coversDefaultClass \Drupal\rest\Entity\ConfigDependencies
- *
- * @group rest
- */
-class ConfigDependenciesTest extends KernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['rest', 'entity_test', 'serialization'];
-
-  /**
-   * @covers ::calculateDependencies
-   * @covers ::calculateDependenciesForMethodGranularity
-   */
-  public function testCalculateDependencies() {
-    $config_dependencies = new ConfigDependencies(['hal_json' => 'hal', 'json' => 'serialization'], ['basic_auth' => 'basic_auth']);
-
-    $rest_config = RestResourceConfig::create([
-      'plugin_id' => 'entity:entity_test',
-      'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
-      'configuration' => [
-        'GET' => [
-          'supported_auth' => ['cookie'],
-          'supported_formats' => ['json'],
-        ],
-        'POST' => [
-          'supported_auth' => ['basic_auth'],
-          'supported_formats' => ['hal_json'],
-        ],
-      ],
-    ]);
-
-    $result = $config_dependencies->calculateDependencies($rest_config);
-    $this->assertEquals(['module' => [
-      'serialization', 'basic_auth', 'hal',
-    ]], $result);
-  }
-
-  /**
-   * @covers ::onDependencyRemoval
-   * @covers ::calculateDependenciesForMethodGranularity
-   */
-  public function testOnDependencyRemovalRemoveUnrelatedDependency() {
-    $config_dependencies = new ConfigDependencies(['hal_json' => 'hal', 'json' => 'serialization'], ['basic_auth' => 'basic_auth']);
-
-    $rest_config = RestResourceConfig::create([
-      'plugin_id' => 'entity:entity_test',
-      'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
-      'configuration' => [
-        'GET' => [
-          'supported_auth' => ['cookie'],
-          'supported_formats' => ['json'],
-        ],
-        'POST' => [
-          'supported_auth' => ['basic_auth'],
-          'supported_formats' => ['hal_json'],
-        ],
-      ],
-    ]);
-
-    $this->assertFalse($config_dependencies->onDependencyRemoval($rest_config, ['module' => ['node']]));
-    $this->assertEquals([
-      'GET' => [
-        'supported_auth' => ['cookie'],
-        'supported_formats' => ['json'],
-      ],
-      'POST' => [
-        'supported_auth' => ['basic_auth'],
-        'supported_formats' => ['hal_json'],
-      ],
-    ], $rest_config->get('configuration'));
-  }
-
-  /**
-   * @covers ::onDependencyRemoval
-   * @covers ::calculateDependenciesForMethodGranularity
-   */
-  public function testOnDependencyRemovalRemoveFormat() {
-    $config_dependencies = new ConfigDependencies(['hal_json' => 'hal', 'json' => 'serialization'], ['basic_auth' => 'basic_auth']);
-
-    $rest_config = RestResourceConfig::create([
-      'plugin_id' => 'entity:entity_test',
-      'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
-      'configuration' => [
-        'GET' => [
-          'supported_auth' => ['cookie'],
-          'supported_formats' => ['json'],
-        ],
-        'POST' => [
-          'supported_auth' => ['basic_auth'],
-          'supported_formats' => ['hal_json'],
-        ],
-      ],
-    ]);
-
-    $this->assertTrue($config_dependencies->onDependencyRemoval($rest_config, ['module' => ['hal']]));
-    $this->assertEquals(['json'], $rest_config->getFormats('GET'));
-    $this->assertEquals([], $rest_config->getFormats('POST'));
-    $this->assertEquals([
-      'GET' => [
-        'supported_auth' => ['cookie'],
-        'supported_formats' => ['json'],
-      ],
-      'POST' => [
-        'supported_auth' => ['basic_auth'],
-      ],
-    ], $rest_config->get('configuration'));
-  }
-
-  /**
-   * @covers ::onDependencyRemoval
-   * @covers ::calculateDependenciesForMethodGranularity
-   */
-  public function testOnDependencyRemovalRemoveAuth() {
-    $config_dependencies = new ConfigDependencies(['hal_json' => 'hal', 'json' => 'serialization'], ['basic_auth' => 'basic_auth']);
-
-    $rest_config = RestResourceConfig::create([
-      'plugin_id' => 'entity:entity_test',
-      'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
-      'configuration' => [
-        'GET' => [
-          'supported_auth' => ['cookie'],
-          'supported_formats' => ['json'],
-        ],
-        'POST' => [
-          'supported_auth' => ['basic_auth'],
-          'supported_formats' => ['hal_json'],
-        ],
-      ],
-    ]);
-
-    $this->assertTrue($config_dependencies->onDependencyRemoval($rest_config, ['module' => ['basic_auth']]));
-    $this->assertEquals(['cookie'], $rest_config->getAuthenticationProviders('GET'));
-    $this->assertEquals([], $rest_config->getAuthenticationProviders('POST'));
-    $this->assertEquals([
-      'GET' => [
-        'supported_auth' => ['cookie'],
-        'supported_formats' => ['json'],
-      ],
-      'POST' => [
-        'supported_formats' => ['hal_json'],
-      ],
-    ], $rest_config->get('configuration'));
-  }
-
-  /**
-   * @covers ::onDependencyRemoval
-   * @covers ::calculateDependenciesForMethodGranularity
-   */
-  public function testOnDependencyRemovalRemoveAuthAndFormats() {
-    $config_dependencies = new ConfigDependencies(['hal_json' => 'hal', 'json' => 'serialization'], ['basic_auth' => 'basic_auth']);
-
-    $rest_config = RestResourceConfig::create([
-      'plugin_id' => 'entity:entity_test',
-      'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
-      'configuration' => [
-        'GET' => [
-          'supported_auth' => ['cookie'],
-          'supported_formats' => ['json'],
-        ],
-        'POST' => [
-          'supported_auth' => ['basic_auth'],
-          'supported_formats' => ['hal_json'],
-        ],
-      ],
-    ]);
-
-    $this->assertTrue($config_dependencies->onDependencyRemoval($rest_config, ['module' => ['basic_auth', 'hal']]));
-    $this->assertEquals(['json'], $rest_config->getFormats('GET'));
-    $this->assertEquals(['cookie'], $rest_config->getAuthenticationProviders('GET'));
-    $this->assertEquals([], $rest_config->getFormats('POST'));
-    $this->assertEquals([], $rest_config->getAuthenticationProviders('POST'));
-    $this->assertEquals([
-      'GET' => [
-        'supported_auth' => ['cookie'],
-        'supported_formats' => ['json'],
-      ],
-    ], $rest_config->get('configuration'));
-  }
-
-}
diff --git a/core/modules/rest/tests/src/Kernel/Entity/RestResourceConfigTest.php b/core/modules/rest/tests/src/Kernel/Entity/RestResourceConfigTest.php
deleted file mode 100644
index 89e9b1d..0000000
--- a/core/modules/rest/tests/src/Kernel/Entity/RestResourceConfigTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-namespace Drupal\Tests\rest\Kernel\Entity;
-
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\rest\Entity\RestResourceConfig;
-use Drupal\rest\RestResourceConfigInterface;
-
-/**
- * @coversDefaultClass \Drupal\rest\Entity\RestResourceConfig
- *
- * @group rest
- */
-class RestResourceConfigTest extends KernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['rest', 'entity_test', 'serialization', 'basic_auth', 'user', 'hal'];
-
-  /**
-   * @covers ::calculateDependencies
-   */
-  public function testCalculateDependencies() {
-    $rest_config = RestResourceConfig::create([
-      'plugin_id' => 'entity:entity_test',
-      'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
-      'configuration' => [
-        'GET' => [
-          'supported_auth' => ['cookie'],
-          'supported_formats' => ['json'],
-        ],
-        'POST' => [
-          'supported_auth' => ['basic_auth'],
-          'supported_formats' => ['hal_json'],
-        ],
-      ],
-    ]);
-
-    $rest_config->calculateDependencies();
-    $this->assertEquals(['module' => ['basic_auth', 'entity_test', 'hal', 'serialization', 'user']], $rest_config->getDependencies());
-  }
-
-}
diff --git a/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php b/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php
index 17e5aba..36a482c 100644
--- a/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php
+++ b/core/modules/rest/tests/src/Kernel/RequestHandlerTest.php
@@ -1,17 +1,18 @@
 <?php
 
+/**
+ * @file
+ * Contains \Drupal\Tests\rest\Kernel\RequestHandlerTest.
+ */
+
 namespace Drupal\Tests\rest\Kernel;
 
-use Drupal\Component\Serialization\Json;
-use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Routing\RouteMatch;
 use Drupal\KernelTests\KernelTestBase;
 use Drupal\rest\Plugin\ResourceBase;
+use Drupal\rest\Plugin\Type\ResourcePluginManager;
 use Drupal\rest\RequestHandler;
 use Drupal\rest\ResourceResponse;
-use Drupal\rest\RestResourceConfigInterface;
-use Prophecy\Argument;
-use Prophecy\Prophecy\MethodProphecy;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Routing\Route;
 
@@ -31,19 +32,11 @@ class RequestHandlerTest extends KernelTestBase {
   public static $modules = ['serialization', 'rest'];
 
   /**
-   * The entity storage.
-   *
-   * @var \Prophecy\Prophecy\ObjectProphecy
-   */
-  protected $entityStorage;
-
-  /**
    * {@inheritdoc}
    */
   public function setUp() {
     parent::setUp();
-    $this->entityStorage = $this->prophesize(EntityStorageInterface::class);
-    $this->requestHandler = new RequestHandler($this->entityStorage->reveal());
+    $this->requestHandler = new RequestHandler();
     $this->requestHandler->setContainer($this->container);
   }
 
@@ -54,19 +47,17 @@ public function setUp() {
    */
   public function testBaseHandler() {
     $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', ['_plugin' => 'restplugin', '_format' => 'json']));
 
     $resource = $this->prophesize(StubRequestHandlerResourcePlugin::class);
     $resource->get(NULL, $request)
       ->shouldBeCalled();
 
-    // Setup the configuration.
-    $config = $this->prophesize(RestResourceConfigInterface::class);
-    $config->getResourcePlugin()->willReturn($resource->reveal());
-    $config->getCacheContexts()->willReturn([]);
-    $config->getCacheTags()->willReturn([]);
-    $config->getCacheMaxAge()->willReturn(12);
-    $this->entityStorage->load('restplugin')->willReturn($config->reveal());
+    // Setup stub plugin manager that will return our plugin.
+    $stub = $this->prophesize(ResourcePluginManager::class);
+    $stub->createInstance('restplugin')
+      ->willReturn($resource->reveal());
+    $this->container->set('plugin.manager.rest', $stub->reveal());
 
     // Response returns NULL this time because response from plugin is not
     // a ResourceResponse so it is passed through directly.
@@ -81,7 +72,6 @@ public function testBaseHandler() {
     $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']));
     $request->setMethod('PATCH');
     $response = new ResourceResponse([]);
     $resource->patch(NULL, $request)
@@ -97,32 +87,29 @@ public function testBaseHandler() {
    * @dataProvider providerTestSerialization
    * @covers ::handle
    */
-  public function testSerialization($data, $expected_response = FALSE) {
+  public function testSerialization($data) {
     $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', ['_plugin' => 'restplugin', '_format' => 'json']));
 
     $resource = $this->prophesize(StubRequestHandlerResourcePlugin::class);
 
-    // Mock the configuration.
-    $config = $this->prophesize(RestResourceConfigInterface::class);
-    $config->getResourcePlugin()->willReturn($resource->reveal());
-    $config->getCacheContexts()->willReturn([]);
-    $config->getCacheTags()->willReturn([]);
-    $config->getCacheMaxAge()->willReturn(12);
-    $this->entityStorage->load('restplugin')->willReturn($config->reveal());
+    // Setup stub plugin manager that will return our plugin.
+    $stub = $this->prophesize(ResourcePluginManager::class);
+    $stub->createInstance('restplugin')
+      ->willReturn($resource->reveal());
+    $this->container->set('plugin.manager.rest', $stub->reveal());
 
     $response = new ResourceResponse($data);
     $resource->get(NULL, $request)
       ->willReturn($response);
     $handler_response = $this->requestHandler->handle($route_match, $request);
     // Content is a serialized version of the data we provided.
-    $this->assertEquals($expected_response !== FALSE ? $expected_response : json_encode($data), $handler_response->getContent());
+    $this->assertEquals(json_encode($data), $handler_response->getContent());
   }
 
   public function providerTestSerialization() {
     return [
-      // The default data for \Drupal\rest\ResourceResponse.
-      [NULL, ''],
+      [NULL],
       [''],
       ['string'],
       ['Complex \ string $%^&@ with unicode ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΣὨ'],
@@ -137,203 +124,6 @@ public function providerTestSerialization() {
     ];
   }
 
-  /**
-   * @covers ::getResponseFormat
-   *
-   * Note this does *not* need to test formats being requested that are not
-   * accepted by the server, because the routing system would have already
-   * prevented those from reaching RequestHandler.
-   *
-   * @param string[] $methods
-   *   The HTTP methods to test.
-   * @param string[] $supported_formats
-   *   The supported formats for the REST route to be tested.
-   * @param string|FALSE $request_format
-   *   The value for the ?_format URL query argument, if any.
-   * @param string[] $request_headers
-   *   The request headers to send, if any.
-   * @param string|NULL $request_body
-   *   The request body to send, if any.
-   * @param string|NULL $expected_response_content_type
-   *   The expected MIME type of the response, if any.
-   * @param string $expected_response_content
-   *   The expected content of the response.
-   *
-   * @dataProvider providerTestResponseFormat
-   */
-  public function testResponseFormat($methods, array $supported_formats, $request_format, array $request_headers, $request_body, $expected_response_content_type, $expected_response_content) {
-    $rest_config_name = $this->randomMachineName();
-
-    $parameters = [];
-    if ($request_format !== FALSE) {
-      $parameters['_format'] = $request_format;
-    }
-
-    foreach ($request_headers as $key => $value) {
-      unset($request_headers[$key]);
-      $key = strtoupper(str_replace('-', '_', $key));
-      $request_headers[$key] = $value;
-    }
-
-    foreach ($methods as $method) {
-      $request = Request::create('/rest/test', $method, $parameters, [], [], $request_headers, $request_body);
-      $route_requirement_key_format = $request->isMethodSafe() ? '_format' : '_content_type_format';
-      $route_match = new RouteMatch('test', new Route('/rest/test', ['_rest_resource_config' => $rest_config_name], [$route_requirement_key_format => implode('|', $supported_formats)]));
-
-      $resource = $this->prophesize(StubRequestHandlerResourcePlugin::class);
-
-      // Mock the configuration.
-      $config = $this->prophesize(RestResourceConfigInterface::class);
-      $config->getFormats($method)->willReturn($supported_formats);
-      $config->getResourcePlugin()->willReturn($resource->reveal());
-      $config->getCacheContexts()->willReturn([]);
-      $config->getCacheTags()->willReturn([]);
-      $config->getCacheMaxAge()->willReturn(12);
-      $this->entityStorage->load($rest_config_name)->willReturn($config->reveal());
-
-      // Mock the resource plugin.
-      $response = new ResourceResponse($method !== 'DELETE' ? ['REST' => 'Drupal'] : NULL);
-      $resource->getPluginDefinition()->willReturn([]);
-      $method_prophecy = new MethodProphecy($resource, strtolower($method), [Argument::any(), $request]);
-      $method_prophecy->willReturn($response);
-      $resource->addMethodProphecy($method_prophecy);
-
-      // Test the request handler.
-      $handler_response = $this->requestHandler->handle($route_match, $request);
-      $this->assertSame($expected_response_content_type, $handler_response->headers->get('Content-Type'));
-      $this->assertEquals($expected_response_content, $handler_response->getContent());
-    }
-  }
-
-  /**
-   * @return array
-   *   0. methods to test
-   *   1. supported formats for route requirements
-   *   2. request format
-   *   3. request headers
-   *   4. request body
-   *   5. expected response content type
-   *   6. expected response body
-   */
-  public function providerTestResponseFormat() {
-    $json_encoded = Json::encode(['REST' => 'Drupal']);
-    $xml_encoded = "<?xml version=\"1.0\"?>\n<response><REST>Drupal</REST></response>\n";
-
-    $safe_method_test_cases = [
-      'safe methods: client requested format (JSON)' => [
-        // @todo add 'HEAD' in https://www.drupal.org/node/2752325
-        ['GET'],
-        ['xml', 'json'],
-        'json',
-        [],
-        NULL,
-        'application/json',
-        $json_encoded,
-      ],
-      'safe methods: client requested format (XML)' => [
-        // @todo add 'HEAD' in https://www.drupal.org/node/2752325
-        ['GET'],
-        ['xml', 'json'],
-        'xml',
-        [],
-        NULL,
-        'text/xml',
-        $xml_encoded,
-      ],
-      'safe methods: client requested no format: response should use the first configured format (JSON)' => [
-        // @todo add 'HEAD' in https://www.drupal.org/node/2752325
-        ['GET'],
-        ['json', 'xml'],
-        FALSE,
-        [],
-        NULL,
-        'application/json',
-        $json_encoded,
-      ],
-      'safe methods: client requested no format: response should use the first configured format (XML)' => [
-        // @todo add 'HEAD' in https://www.drupal.org/node/2752325
-        ['GET'],
-        ['xml', 'json'],
-        FALSE,
-        [],
-        NULL,
-        'text/xml',
-        $xml_encoded,
-      ],
-    ];
-
-    $unsafe_method_bodied_test_cases = [
-      'unsafe methods with response (POST, PATCH): client requested no format, response should use request body format (JSON)' => [
-        ['POST', 'PATCH'],
-        ['xml', 'json'],
-        FALSE,
-        ['Content-Type' => 'application/json'],
-        $json_encoded,
-        'application/json',
-        $json_encoded,
-      ],
-      'unsafe methods with response (POST, PATCH): client requested no format, response should use request body format (XML)' => [
-        ['POST', 'PATCH'],
-        ['xml', 'json'],
-        FALSE,
-        ['Content-Type' => 'text/xml'],
-        $xml_encoded,
-        'text/xml',
-        $xml_encoded,
-      ],
-      'unsafe methods with response (POST, PATCH): client requested format other than request body format (JSON): response format should use requested format (XML)' => [
-        ['POST', 'PATCH'],
-        ['xml', 'json'],
-        'xml',
-        ['Content-Type' => 'application/json'],
-        $json_encoded,
-        'text/xml',
-        $xml_encoded,
-      ],
-      'unsafe methods with response (POST, PATCH): client requested format other than request body format (XML), but is allowed for the request body (JSON)' => [
-        ['POST', 'PATCH'],
-        ['xml', 'json'],
-        'json',
-        ['Content-Type' => 'text/xml'],
-        $xml_encoded,
-        'application/json',
-        $json_encoded,
-      ],
-    ];
-
-    $unsafe_method_bodyless_test_cases = [
-      'unsafe methods with response bodies (DELETE): client requested no format, response should have no format' => [
-        ['DELETE'],
-        ['xml', 'json'],
-        FALSE,
-        ['Content-Type' => 'application/json'],
-        $json_encoded,
-        NULL,
-        '',
-      ],
-      'unsafe methods with response bodies (DELETE): client requested format (XML), response should have no format' => [
-        ['DELETE'],
-        ['xml', 'json'],
-        'xml',
-        ['Content-Type' => 'application/json'],
-        $json_encoded,
-        NULL,
-        '',
-      ],
-      'unsafe methods with response bodies (DELETE): client requested format (JSON), response should have no format' => [
-        ['DELETE'],
-        ['xml', 'json'],
-        'json',
-        ['Content-Type' => 'application/json'],
-        $json_encoded,
-        NULL,
-        '',
-      ],
-    ];
-
-    return $safe_method_test_cases + $unsafe_method_bodied_test_cases + $unsafe_method_bodyless_test_cases;
-  }
-
 }
 
 /**
@@ -342,8 +132,6 @@ public function providerTestResponseFormat() {
 class StubRequestHandlerResourcePlugin extends ResourceBase {
 
   function get() {}
-  function post() {}
   function patch() {}
-  function delete() {}
 
 }
diff --git a/core/modules/rest/tests/src/Kernel/RestLinkManagerTest.php b/core/modules/rest/tests/src/Kernel/RestLinkManagerTest.php
index ab558e5..fc7c41d 100644
--- a/core/modules/rest/tests/src/Kernel/RestLinkManagerTest.php
+++ b/core/modules/rest/tests/src/Kernel/RestLinkManagerTest.php
@@ -14,7 +14,7 @@ class RestLinkManagerTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['serialization', 'rest', 'rest_test', 'system'];
+  public static $modules = ['rest', 'rest_test', 'system'];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/rest/tests/src/Kernel/Views/StyleSerializerKernelTest.php b/core/modules/rest/tests/src/Kernel/Views/StyleSerializerKernelTest.php
deleted file mode 100644
index 829d08b..0000000
--- a/core/modules/rest/tests/src/Kernel/Views/StyleSerializerKernelTest.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace Drupal\Tests\rest\Kernel\Views;
-
-use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
-use Drupal\views\Entity\View;
-use Drupal\views\Tests\ViewTestData;
-
-/**
- * @coversDefaultClass \Drupal\rest\Plugin\views\style\Serializer
- * @group views
- */
-class StyleSerializerKernelTest extends ViewsKernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $testViews = ['test_serializer_display_entity'];
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['rest_test_views', 'serialization', 'rest'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp($import_test_views = TRUE) {
-    parent::setUp($import_test_views);
-
-    ViewTestData::createTestViews(get_class($this), ['rest_test_views']);
-  }
-
-  /**
-   * @covers ::calculateDependencies
-   */
-  public function testCalculateDepenencies() {
-    /** @var \Drupal\views\Entity\View $view */
-    $view = View::load('test_serializer_display_entity');
-    $display = &$view->getDisplay('rest_export_1');
-
-    $display['display_options']['defaults']['style'] = FALSE;
-    $display['display_options']['style']['type'] = 'serializer';
-    $display['display_options']['style']['options']['formats'] = ['json', 'xml'];
-    $view->save();
-
-    $view->calculateDependencies();
-    $this->assertEquals(['module' => ['rest', 'serialization', 'user']], $view->getDependencies());
-
-    \Drupal::service('module_installer')->install(['hal']);
-
-    $view = View::load('test_serializer_display_entity');
-    $display = &$view->getDisplay('rest_export_1');
-    $display['display_options']['style']['options']['formats'] = ['json', 'xml', 'hal_json'];
-    $view->save();
-
-    $view->calculateDependencies();
-    $this->assertEquals(['module' => ['hal', 'rest', 'serialization', 'user']], $view->getDependencies());
-  }
-
-}
diff --git a/core/modules/rest/tests/src/Unit/CollectRoutesTest.php b/core/modules/rest/tests/src/Unit/CollectRoutesTest.php
index c55ea3b..53ebbd5 100644
--- a/core/modules/rest/tests/src/Unit/CollectRoutesTest.php
+++ b/core/modules/rest/tests/src/Unit/CollectRoutesTest.php
@@ -67,8 +67,6 @@ protected function setUp() {
       ->getMock();
     $container->set('router.route_provider', $route_provider);
 
-    $container->setParameter('authentication_providers', ['basic_auth' => 'basic_auth']);
-
     $state = $this->getMock('\Drupal\Core\State\StateInterface');
     $container->set('state', $state);
 
@@ -78,12 +76,6 @@ protected function setUp() {
     $container->set('plugin.manager.views.style', $style_manager);
     $container->set('renderer', $this->getMock('Drupal\Core\Render\RendererInterface'));
 
-    $authentication_collector = $this->getMock('\Drupal\Core\Authentication\AuthenticationCollectorInterface');
-    $container->set('authentication_collector', $authentication_collector);
-    $authentication_collector->expects($this->any())
-      ->method('getSortedProviders')
-      ->will($this->returnValue(['basic_auth' => 'data', 'cookie' => 'data']));
-
     \Drupal::setContainer($container);
 
     $this->restExport = RestExport::create($container, array(), "test_routes", array());
@@ -95,9 +87,6 @@ protected function setUp() {
     // Set the style option.
     $this->restExport->setOption('style', array('type' => 'serializer'));
 
-    // Set the auth option.
-    $this->restExport->setOption('auth', ['basic_auth']);
-
     $display_manager->expects($this->once())
       ->method('getDefinition')
       ->will($this->returnValue(array('id' => 'test', 'provider' => 'test')));
@@ -143,11 +132,6 @@ public function testRoutesRequirements() {
 
     $this->assertEquals(count($requirements_1), 0, 'First route has no requirement.');
     $this->assertEquals(count($requirements_2), 2, 'Views route with rest export had the format and method requirements added.');
-
-    // Check auth options.
-    $auth = $this->routes->get('view.test_view.page_1')->getOption('_auth');
-    $this->assertEquals(count($auth), 1, 'View route with rest export has an auth option added');
-    $this->assertEquals($auth[0], 'basic_auth', 'View route with rest export has the correct auth option added');
   }
 
 }
diff --git a/core/modules/rest/tests/src/Unit/Plugin/views/style/SerializerTest.php b/core/modules/rest/tests/src/Unit/Plugin/views/style/SerializerTest.php
index f9753b7..16f1033 100644
--- a/core/modules/rest/tests/src/Unit/Plugin/views/style/SerializerTest.php
+++ b/core/modules/rest/tests/src/Unit/Plugin/views/style/SerializerTest.php
@@ -68,7 +68,7 @@ public function testSerializerReceivesOptions() {
       ->willReturn()
       ->shouldBeCalled();
 
-    $view_serializer_style = new Serializer([], 'dummy_serializer', [], $mock_serializer->reveal(), ['json', 'xml'], ['json' => 'serialization', 'xml' => 'serialization']);
+    $view_serializer_style = new Serializer([], 'dummy_serializer', [], $mock_serializer->reveal(), ['json', 'xml']);
     $view_serializer_style->options = ['formats' => ['xml', 'json']];
     $view_serializer_style->view = $this->view;
     $view_serializer_style->displayHandler = $this->displayHandler;
diff --git a/core/modules/search/src/Controller/SearchController.php b/core/modules/search/src/Controller/SearchController.php
index 3460c32..06bab2d 100644
--- a/core/modules/search/src/Controller/SearchController.php
+++ b/core/modules/search/src/Controller/SearchController.php
@@ -79,7 +79,7 @@ public function view(Request $request, SearchPageInterface $entity) {
     // and we don't want to build the results based on last time's request.
     $build['#cache']['contexts'][] = 'url.query_args:keys';
     if ($request->query->has('keys')) {
-      $keys = trim($request->query->get('keys'));
+      $keys = trim($request->get('keys'));
       $plugin->setSearch($keys, $request->query->all(), $request->attributes->all());
     }
 
diff --git a/core/modules/search/src/Form/SearchPageAddForm.php b/core/modules/search/src/Form/SearchPageAddForm.php
index a97f1fa..7202502 100644
--- a/core/modules/search/src/Form/SearchPageAddForm.php
+++ b/core/modules/search/src/Form/SearchPageAddForm.php
@@ -24,7 +24,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $search_p
    */
   protected function actions(array $form, FormStateInterface $form_state) {
     $actions = parent::actions($form, $form_state);
-    $actions['submit']['#value'] = $this->t('Save');
+    $actions['submit']['#value'] = $this->t('Add search page');
     return $actions;
   }
 
diff --git a/core/modules/search/src/SearchPageInterface.php b/core/modules/search/src/SearchPageInterface.php
index 67d57c3..b3ed0b1 100644
--- a/core/modules/search/src/SearchPageInterface.php
+++ b/core/modules/search/src/SearchPageInterface.php
@@ -45,7 +45,7 @@ public function isIndexable();
    * Returns the path for the search.
    *
    * @return string
-   *   The part of the path for this search page that comes after 'search'.
+   *  The part of the path for this search page that comes after 'search'.
    */
   public function getPath();
 
diff --git a/core/modules/search/src/SearchPageListBuilder.php b/core/modules/search/src/SearchPageListBuilder.php
index c76a999..afbf54c 100644
--- a/core/modules/search/src/SearchPageListBuilder.php
+++ b/core/modules/search/src/SearchPageListBuilder.php
@@ -269,7 +269,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     );
     $form['search_pages']['add_page']['add_search_submit'] = array(
       '#type' => 'submit',
-      '#value' => $this->t('Add search page'),
+      '#value' => $this->t('Add new page'),
       '#validate' => array('::validateAddSearchPage'),
       '#submit' => array('::submitAddSearchPage'),
       '#limit_validation_errors' => array(array('search_type')),
diff --git a/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php b/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php
index 9ca87d6..7279ade 100644
--- a/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php
+++ b/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\search\Tests;
 
 use Drupal\Core\Url;
-use Drupal\search\Entity\SearchPage;
 
 /**
  * Verify the search config settings form.
@@ -146,7 +145,7 @@ function testSearchModuleDisabling() {
     );
     $plugins = array_keys($plugin_info);
     /** @var $entities \Drupal\search\SearchPageInterface[] */
-    $entities = SearchPage::loadMultiple();
+    $entities = entity_load_multiple('search_page');
     // Disable all of the search pages.
     foreach ($entities as $entity) {
       $entity->disable()->save();
@@ -237,26 +236,26 @@ public function testMultipleSearchPages() {
     // Add a search page.
     $edit = array();
     $edit['search_type'] = 'search_extra_type_search';
-    $this->drupalPostForm(NULL, $edit, t('Add search page'));
+    $this->drupalPostForm(NULL, $edit, t('Add new page'));
     $this->assertTitle('Add new search page | Drupal');
 
     $first = array();
     $first['label'] = $this->randomString();
     $first_id = $first['id'] = strtolower($this->randomMachineName(8));
     $first['path'] = strtolower($this->randomMachineName(8));
-    $this->drupalPostForm(NULL, $first, t('Save'));
+    $this->drupalPostForm(NULL, $first, t('Add search page'));
     $this->assertDefaultSearch($first_id, 'The default page matches the only search page.');
     $this->assertRaw(t('The %label search page has been added.', array('%label' => $first['label'])));
 
     // Attempt to add a search page with an existing path.
     $edit = array();
     $edit['search_type'] = 'search_extra_type_search';
-    $this->drupalPostForm(NULL, $edit, t('Add search page'));
+    $this->drupalPostForm(NULL, $edit, t('Add new page'));
     $edit = array();
     $edit['label'] = $this->randomString();
     $edit['id'] = strtolower($this->randomMachineName(8));
     $edit['path'] = $first['path'];
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->drupalPostForm(NULL, $edit, t('Add search page'));
     $this->assertText(t('The search page path must be unique.'));
 
     // Add a second search page.
@@ -264,7 +263,7 @@ public function testMultipleSearchPages() {
     $second['label'] = $this->randomString();
     $second_id = $second['id'] = strtolower($this->randomMachineName(8));
     $second['path'] = strtolower($this->randomMachineName(8));
-    $this->drupalPostForm(NULL, $second, t('Save'));
+    $this->drupalPostForm(NULL, $second, t('Add search page'));
     $this->assertDefaultSearch($first_id, 'The default page matches the only search page.');
 
     // Ensure both search pages have their tabs displayed.
diff --git a/core/modules/search/src/Tests/SearchRankingTest.php b/core/modules/search/src/Tests/SearchRankingTest.php
index 2045233..78e3e24 100644
--- a/core/modules/search/src/Tests/SearchRankingTest.php
+++ b/core/modules/search/src/Tests/SearchRankingTest.php
@@ -6,7 +6,6 @@
 use Drupal\comment\Tests\CommentTestTrait;
 use Drupal\Core\Url;
 use Drupal\filter\Entity\FilterFormat;
-use Drupal\search\Entity\SearchPage;
 
 /**
  * Indexes content and tests ranking factors.
@@ -35,7 +34,7 @@ protected function setUp() {
     parent::setUp();
 
     // Create a plugin instance.
-    $this->nodeSearch = SearchPage::load('node_search');
+    $this->nodeSearch = entity_load('search_page', 'node_search');
 
     // Log in with sufficient privileges.
     $this->drupalLogin($this->drupalCreateUser(array('post comments', 'skip comment approval', 'create page content', 'administer search')));
@@ -127,7 +126,7 @@ public function testRankings() {
       $this->assertTrue($this->xpath('//select[@id="edit-rankings-' . $node_rank . '-value"]//option[@value="10"]'), 'Select list to prioritize ' . $node_rank . ' for node ranks is visible and set to 10.');
 
       // Reload the plugin to get the up-to-date values.
-      $this->nodeSearch = SearchPage::load('node_search');
+      $this->nodeSearch = entity_load('search_page', 'node_search');
       // Do the search and assert the results.
       $this->nodeSearch->getPlugin()->setSearch('rocks', array(), array());
       $set = $this->nodeSearch->getPlugin()->execute();
diff --git a/core/modules/serialization/src/EventSubscriber/DefaultExceptionSubscriber.php b/core/modules/serialization/src/EventSubscriber/DefaultExceptionSubscriber.php
deleted file mode 100644
index 753d3c1..0000000
--- a/core/modules/serialization/src/EventSubscriber/DefaultExceptionSubscriber.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-
-namespace Drupal\serialization\EventSubscriber;
-
-use Drupal\Core\EventSubscriber\HttpExceptionSubscriberBase;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
-use Symfony\Component\Serializer\SerializerInterface;
-
-/**
- * Handles default error responses in serialization formats.
- */
-class DefaultExceptionSubscriber extends HttpExceptionSubscriberBase {
-
-  /**
-   * The serializer.
-   *
-   * @var \Symfony\Component\Serializer\Serializer
-   */
-  protected $serializer;
-
-  /**
-   * The available serialization formats.
-   *
-   * @var array
-   */
-  protected $serializerFormats = [];
-
-  /**
-   * DefaultExceptionSubscriber constructor.
-   *
-   * @param \Symfony\Component\Serializer\SerializerInterface $serializer
-   *   The serializer service.
-   * @param array $serializer_formats
-   *   The available serialization formats.
-   */
-  public function __construct(SerializerInterface $serializer, array $serializer_formats) {
-    $this->serializer = $serializer;
-    $this->serializerFormats = $serializer_formats;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getHandledFormats() {
-    return $this->serializerFormats;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static function getPriority() {
-    // This will fire after the most common HTML handler, since HTML requests
-    // are still more common than HTTP requests.
-    return -75;
-  }
-
-  /**
-   * Handles a 400 error for HTTP.
-   *
-   * @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event
-   *   The event to process.
-   */
-  public function on400(GetResponseForExceptionEvent $event) {
-    $this->setEventResponse($event, Response::HTTP_BAD_REQUEST);
-  }
-
-  /**
-   * Handles a 403 error for HTTP.
-   *
-   * @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event
-   *   The event to process.
-   */
-  public function on403(GetResponseForExceptionEvent $event) {
-    $this->setEventResponse($event, Response::HTTP_FORBIDDEN);
-  }
-
-  /**
-   * Handles a 404 error for HTTP.
-   *
-   * @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event
-   *   The event to process.
-   */
-  public function on404(GetResponseForExceptionEvent $event) {
-    $this->setEventResponse($event, Response::HTTP_NOT_FOUND);
-  }
-
-  /**
-   * Handles a 405 error for HTTP.
-   *
-   * @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event
-   *   The event to process.
-   */
-  public function on405(GetResponseForExceptionEvent $event) {
-    $this->setEventResponse($event, Response::HTTP_METHOD_NOT_ALLOWED);
-  }
-
-  /**
-   * Handles a 406 error for HTTP.
-   *
-   * @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event
-   *   The event to process.
-   */
-  public function on406(GetResponseForExceptionEvent $event) {
-    $this->setEventResponse($event, Response::HTTP_NOT_ACCEPTABLE);
-  }
-
-  /**
-   * Handles a 422 error for HTTP.
-   *
-   * @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event
-   *   The event to process.
-   */
-  public function on422(GetResponseForExceptionEvent $event) {
-    $this->setEventResponse($event, Response::HTTP_UNPROCESSABLE_ENTITY);
-  }
-
-  /**
-   * Sets the Response for the exception event.
-   *
-   * @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event
-   *   The current exception event.
-   * @param int $status
-   *   The HTTP status code to set for the response.
-   */
-  protected function setEventResponse(GetResponseForExceptionEvent $event, $status) {
-    $format = $event->getRequest()->getRequestFormat();
-    $content = ['message' => $event->getException()->getMessage()];
-    $encoded_content = $this->serializer->serialize($content, $format);
-    $response = new Response($encoded_content, $status);
-    $event->setResponse($response);
-  }
-
-}
diff --git a/core/modules/serialization/src/RegisterSerializationClassesCompilerPass.php b/core/modules/serialization/src/RegisterSerializationClassesCompilerPass.php
index f4611f3..e1f73d7 100644
--- a/core/modules/serialization/src/RegisterSerializationClassesCompilerPass.php
+++ b/core/modules/serialization/src/RegisterSerializationClassesCompilerPass.php
@@ -40,17 +40,10 @@ public function process(ContainerBuilder $container) {
 
     // Find all serialization formats known.
     $formats = array();
-    $format_providers = [];
-    foreach ($container->findTaggedServiceIds('encoder') as $service_id => $attributes) {
-      $format = $attributes[0]['format'];
-      $formats[] = $format;
-
-      if ($provider_tag = $container->getDefinition($service_id)->getTag('_provider')) {
-        $format_providers[$format] = $provider_tag[0]['provider'];
-      }
+    foreach ($container->findTaggedServiceIds('encoder') as $attributes) {
+      $formats[] = $attributes[0]['format'];
     }
     $container->setParameter('serializer.formats', $formats);
-    $container->setParameter('serializer.format_providers', $format_providers);
   }
 
   /**
diff --git a/core/modules/serialization/src/Tests/RegisterSerializationClassesCompilerPassTest.php b/core/modules/serialization/src/Tests/RegisterSerializationClassesCompilerPassTest.php
deleted file mode 100644
index 6406bbb..0000000
--- a/core/modules/serialization/src/Tests/RegisterSerializationClassesCompilerPassTest.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-namespace Drupal\serialization\Tests;
-
-use Drupal\Core\DependencyInjection\ContainerBuilder;
-use Drupal\serialization\RegisterSerializationClassesCompilerPass;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\Serializer\Serializer;
-
-/**
- * @coversDefaultClass \Drupal\serialization\RegisterSerializationClassesCompilerPass
- * @group serialization
- */
-class RegisterSerializationClassesCompilerPassTest extends \PHPUnit_Framework_TestCase {
-
-  /**
-   * @covers ::process
-   */
-  public function testEncoders() {
-    $container = new ContainerBuilder();
-    $container->setDefinition('serializer', new Definition(Serializer::class, [[], []]));
-
-    $definition = new Definition('TestClass');
-    $definition->addTag('encoder', ['format' => 'xml']);
-    $definition->addTag('_provider', ['provider' => 'test_provider_a']);
-    $container->setDefinition('encoder_1', $definition);
-
-    $definition = new Definition('TestClass');
-    $definition->addTag('encoder', ['format' => 'json']);
-    $definition->addTag('_provider', ['provider' => 'test_provider_a']);
-    $container->setDefinition('encoder_2', $definition);
-
-    $definition = new Definition('TestClass');
-    $definition->addTag('encoder', ['format' => 'hal_json']);
-    $definition->addTag('_provider', ['provider' => 'test_provider_b']);
-    $container->setDefinition('encoder_3', $definition);
-
-    $compiler_pass = new RegisterSerializationClassesCompilerPass();
-    $compiler_pass->process($container);
-
-    $this->assertEquals(['xml', 'json', 'hal_json'], $container->getParameter('serializer.formats'));
-    $this->assertEquals(['xml' => 'test_provider_a', 'json' => 'test_provider_a', 'hal_json' => 'test_provider_b'], $container->getParameter('serializer.format_providers'));
-  }
-
-}
diff --git a/core/modules/serialization/tests/src/Unit/Normalizer/ListNormalizerTest.php b/core/modules/serialization/tests/src/Unit/Normalizer/ListNormalizerTest.php
index 170fd3e..97a0711 100644
--- a/core/modules/serialization/tests/src/Unit/Normalizer/ListNormalizerTest.php
+++ b/core/modules/serialization/tests/src/Unit/Normalizer/ListNormalizerTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\Tests\serialization\Unit\Normalizer;
 
 use Drupal\Core\TypedData\DataDefinition;
-use Drupal\Core\TypedData\TypedDataManagerInterface;
 use Drupal\Tests\UnitTestCase;
 use Drupal\serialization\Normalizer\ListNormalizer;
 use Drupal\Core\TypedData\Plugin\DataType\ItemList;
@@ -38,7 +37,10 @@ class ListNormalizerTest extends UnitTestCase {
   protected function setUp() {
     // Mock the TypedDataManager to return a TypedDataInterface mock.
     $typed_data = $this->getMock('Drupal\Core\TypedData\TypedDataInterface');
-    $typed_data_manager = $this->getMock(TypedDataManagerInterface::class);
+    $typed_data_manager = $this->getMockBuilder('Drupal\Core\TypedData\TypedDataManager')
+      ->disableOriginalConstructor()
+      ->setMethods(array('getPropertyInstance'))
+      ->getMock();
     $typed_data_manager->expects($this->any())
       ->method('getPropertyInstance')
       ->will($this->returnValue($typed_data));
diff --git a/core/modules/shortcut/src/Form/SetCustomize.php b/core/modules/shortcut/src/Form/SetCustomize.php
index 89e5123..443ff0a 100644
--- a/core/modules/shortcut/src/Form/SetCustomize.php
+++ b/core/modules/shortcut/src/Form/SetCustomize.php
@@ -88,7 +88,7 @@ protected function actions(array $form, FormStateInterface $form_state) {
     return array(
       'submit' => array(
         '#type' => 'submit',
-        '#value' => t('Save'),
+        '#value' => t('Save changes'),
         '#access' => (bool) Element::getVisibleChildren($form['shortcuts']['links']),
         '#submit' => array('::submitForm', '::save'),
       ),
diff --git a/core/modules/shortcut/src/Plugin/migrate/source/d7/Shortcut.php b/core/modules/shortcut/src/Plugin/migrate/source/d7/Shortcut.php
index c964e5c..033faa0 100644
--- a/core/modules/shortcut/src/Plugin/migrate/source/d7/Shortcut.php
+++ b/core/modules/shortcut/src/Plugin/migrate/source/d7/Shortcut.php
@@ -22,7 +22,7 @@ public function query() {
       ->fields('ml', array('mlid', 'menu_name', 'link_path', 'link_title', 'weight'))
       ->condition('hidden', '0')
       ->condition('menu_name', 'shortcut-set-%', 'LIKE')
-      ->orderBy('ml.mlid');
+      ->orderBy('mlid');
   }
 
   /**
diff --git a/core/modules/shortcut/src/ShortcutForm.php b/core/modules/shortcut/src/ShortcutForm.php
index b87db1b..8161a02 100644
--- a/core/modules/shortcut/src/ShortcutForm.php
+++ b/core/modules/shortcut/src/ShortcutForm.php
@@ -23,22 +23,12 @@ class ShortcutForm extends ContentEntityForm {
   public function save(array $form, FormStateInterface $form_state) {
     $entity = $this->entity;
     $status = $entity->save();
-    $url = $entity->getUrl();
-    // There's an edge case where a user can have permission to
-    // 'link to any content', but has no right to access the linked page. So we
-    // check the access before showing the link.
-    if ($url->access()) {
-      $view_link = \Drupal::l($entity->getTitle(), $url);
-    }
-    else {
-      $view_link = $entity->getTitle();
-    }
 
     if ($status == SAVED_UPDATED) {
-      $message = $this->t('The shortcut %link has been updated.', array('%link' => $view_link));
+      $message = $this->t('The shortcut %link has been updated.', array('%link' => $entity->getTitle()));
     }
     else {
-      $message = $this->t('Added a shortcut for %title.', array('%title' => $view_link));
+      $message = $this->t('Added a shortcut for %title.', array('%title' => $entity->getTitle()));
     }
     drupal_set_message($message);
 
diff --git a/core/modules/shortcut/src/Tests/ShortcutLinksTest.php b/core/modules/shortcut/src/Tests/ShortcutLinksTest.php
index c6efe41..3922d1f 100644
--- a/core/modules/shortcut/src/Tests/ShortcutLinksTest.php
+++ b/core/modules/shortcut/src/Tests/ShortcutLinksTest.php
@@ -6,7 +6,6 @@
 use Drupal\Core\Url;
 use Drupal\shortcut\Entity\Shortcut;
 use Drupal\shortcut\Entity\ShortcutSet;
-use Drupal\views\Entity\View;
 
 /**
  * Create, view, edit, delete, and change shortcut links.
@@ -234,7 +233,7 @@ public function testShortcutLinkChangeRoute() {
     $this->drupalGet('admin/content');
     $this->assertResponse(200);
     // Disable the view.
-    View::load('content')->disable()->save();
+    entity_load('view', 'content')->disable()->save();
     /** @var \Drupal\Core\Routing\RouteBuilderInterface $router_builder */
     $router_builder = \Drupal::service('router.builder');
     $router_builder->rebuildIfNeeded();
diff --git a/core/modules/shortcut/src/Tests/ShortcutSetsTest.php b/core/modules/shortcut/src/Tests/ShortcutSetsTest.php
index 3a04757..0744053 100644
--- a/core/modules/shortcut/src/Tests/ShortcutSetsTest.php
+++ b/core/modules/shortcut/src/Tests/ShortcutSetsTest.php
@@ -88,7 +88,7 @@ function testShortcutSetEdit() {
       $weight--;
     }
 
-    $this->drupalPostForm(NULL, $edit, t('Save'));
+    $this->drupalPostForm(NULL, $edit, t('Save changes'));
     $this->assertRaw(t('The shortcut set has been updated.'));
 
     \Drupal::entityManager()->getStorage('shortcut')->resetCache();
diff --git a/core/modules/simpletest/simpletest.module b/core/modules/simpletest/simpletest.module
index 751a729..d8b653e 100644
--- a/core/modules/simpletest/simpletest.module
+++ b/core/modules/simpletest/simpletest.module
@@ -122,23 +122,23 @@ function _simpletest_format_summary_line($summary) {
  *   The test ID.
  */
 function simpletest_run_tests($test_list) {
-  // We used to separate PHPUnit and Simpletest tests for a performance
-  // optimization. In order to support backwards compatibility check if these
-  // keys are set and create a single test list.
-  // @todo https://www.drupal.org/node/2748967 Remove BC support in Drupal 9.
-  if (isset($test_list['simpletest'])) {
-    $test_list = array_merge($test_list, $test_list['simpletest']);
-    unset($test_list['simpletest']);
-  }
-  if (isset($test_list['phpunit'])) {
-    $test_list = array_merge($test_list, $test_list['phpunit']);
-    unset($test_list['phpunit']);
-  }
-
   $test_id = db_insert('simpletest_test_id')
     ->useDefaults(array('test_id'))
     ->execute();
 
+  if (!empty($test_list['phpunit'])) {
+    $phpunit_results = simpletest_run_phpunit_tests($test_id, $test_list['phpunit']);
+    simpletest_process_phpunit_results($phpunit_results);
+  }
+
+  // Early return if there are no further tests to run.
+  if (empty($test_list['simpletest'])) {
+    return $test_id;
+  }
+
+  // Continue with SimpleTests only.
+  $test_list = $test_list['simpletest'];
+
   // Clear out the previous verbose files.
   file_unmanaged_delete_recursive('public://simpletest/verbose');
 
@@ -190,7 +190,7 @@ function simpletest_run_phpunit_tests($test_id, array $unescaped_test_classnames
     // Something broke during the execution of phpunit.
     // Return an error record of all failed classes.
     $rows[] = [
-      'test_id' => $test_id,
+      'test_id' => '1',
       'test_class' => implode(",", $unescaped_test_classnames),
       'status' => 'fail',
       'message' => 'PHPunit Test failed to complete',
@@ -224,48 +224,6 @@ function simpletest_process_phpunit_results($phpunit_results) {
 }
 
 /**
- * Maps phpunit results to a data structure for batch messages and run-tests.sh.
- *
- * @param array $results
- *   The output from simpletest_run_phpunit_tests().
- *
- * @return array
- *   The test result summary. A row per test class.
- */
-function simpletest_summarize_phpunit_result($results) {
-  $summaries = [];
-  foreach ($results as $result) {
-    if (!isset($summaries[$result['test_class']])) {
-      $summaries[$result['test_class']] = array(
-        '#pass' => 0,
-        '#fail' => 0,
-        '#exception' => 0,
-        '#debug' => 0,
-      );
-    }
-
-    switch ($result['status']) {
-      case 'pass':
-        $summaries[$result['test_class']]['#pass']++;
-        break;
-
-      case 'fail':
-        $summaries[$result['test_class']]['#fail']++;
-        break;
-
-      case 'exception':
-        $summaries[$result['test_class']]['#exception']++;
-        break;
-
-      case 'debug':
-        $summaries[$result['test_class']]['#debug']++;
-        break;
-    }
-  }
-  return $summaries;
-}
-
-/**
  * Returns the path to use for PHPUnit's --log-junit option.
  *
  * @param $test_id
@@ -301,21 +259,12 @@ function simpletest_phpunit_configuration_filepath() {
  *   this variable.
  *
  * @return string
- *   The results as returned by exec().
+ *  The results as returned by exec().
  */
 function simpletest_phpunit_run_command(array $unescaped_test_classnames, $phpunit_file, &$status = NULL) {
-  global $base_url;
   // Setup an environment variable containing the database connection so that
   // functional tests can connect to the database.
   putenv('SIMPLETEST_DB=' . Database::getConnectionInfoAsUrl());
-
-  // Setup an environment variable containing the base URL, if it is available.
-  // This allows functional tests to browse the site under test. When running
-  // tests via CLI, core/phpunit.xml.dist or core/scripts/run-tests.sh can set
-  // this variable.
-  if ($base_url) {
-    putenv('SIMPLETEST_BASE_URL=' . $base_url);
-  }
   $phpunit_bin = simpletest_phpunit_command();
 
   $command = array(
@@ -353,9 +302,6 @@ function simpletest_phpunit_run_command(array $unescaped_test_classnames, $phpun
 
   chdir($old_cwd);
   putenv('SIMPLETEST_DB=');
-  if ($base_url) {
-    putenv('SIMPLETEST_BASE_URL=');
-  }
   return $ret;
 }
 
@@ -406,21 +352,15 @@ function _simpletest_batch_operation($test_list_init, $test_id, &$context) {
 
   // Perform the next test.
   $test_class = array_shift($test_list);
-  if (is_subclass_of($test_class, \PHPUnit_Framework_TestCase::class)) {
-    $phpunit_results = simpletest_run_phpunit_tests($test_id, [$test_class]);
-    simpletest_process_phpunit_results($phpunit_results);
-    $test_results[$test_class] = simpletest_summarize_phpunit_result($phpunit_results)[$test_class];
-  }
-  else {
-    $test = new $test_class($test_id);
-    $test->run();
-    \Drupal::moduleHandler()->invokeAll('test_finished', array($test->results));
-    $test_results[$test_class] = $test->results;
-  }
+  $test = new $test_class($test_id);
+  $test->run();
   $size = count($test_list);
   $info = TestDiscovery::getTestInfo($test_class);
 
+  \Drupal::moduleHandler()->invokeAll('test_finished', array($test->results));
+
   // Gather results and compose the report.
+  $test_results[$test_class] = $test->results;
   foreach ($test_results[$test_class] as $key => $value) {
     $test_results[$key] += $value;
   }
diff --git a/core/modules/simpletest/src/AssertContentTrait.php b/core/modules/simpletest/src/AssertContentTrait.php
index e428e71..e8da02c 100644
--- a/core/modules/simpletest/src/AssertContentTrait.php
+++ b/core/modules/simpletest/src/AssertContentTrait.php
@@ -1242,24 +1242,6 @@ protected function assertOption($id, $option, $message = '', $group = 'Browser')
   }
 
   /**
-   * Asserts that a select option with the visible text exists.
-   *
-   * @param string $id
-   *   The ID of the select field to assert.
-   * @param string $text
-   *   The text for the option tag to assert.
-   * @param string $message
-   *   (optional) A message to display with the assertion.
-   *
-   * @return bool
-   *   TRUE on pass, FALSE on fail.
-   */
-  protected function assertOptionByText($id, $text, $message = '') {
-    $options = $this->xpath('//select[@id=:id]//option[normalize-space(text())=:text]', [':id' => $id, ':text' => $text]);
-    return $this->assertTrue(isset($options[0]), $message ?: 'Option with text label ' . $text . ' for select field ' . $id . ' exits.');
-  }
-
-  /**
    * Asserts that a select option in the current page exists.
    *
    * @param string $drupal_selector
diff --git a/core/modules/simpletest/src/BrowserTestBase.php b/core/modules/simpletest/src/BrowserTestBase.php
index d4b73ef..f17a043 100644
--- a/core/modules/simpletest/src/BrowserTestBase.php
+++ b/core/modules/simpletest/src/BrowserTestBase.php
@@ -9,7 +9,7 @@
  *
  * Tests extending BrowserTestBase must exist in the
  * Drupal\Tests\yourmodule\Functional namespace and live in the
- * modules/yourmodule/tests/src/Functional directory.
+ * modules/yourmodule/Tests/Functional directory.
  *
  * @ingroup testing
  *
diff --git a/core/modules/simpletest/src/ContentTypeCreationTrait.php b/core/modules/simpletest/src/ContentTypeCreationTrait.php
index 54712df..9b5954b 100644
--- a/core/modules/simpletest/src/ContentTypeCreationTrait.php
+++ b/core/modules/simpletest/src/ContentTypeCreationTrait.php
@@ -39,6 +39,7 @@ protected function createContentType(array $values = array()) {
     $type = NodeType::create($values);
     $status = $type->save();
     node_add_body_field($type);
+    \Drupal::service('router.builder')->rebuild();
 
     if ($this instanceof \PHPUnit_Framework_TestCase) {
       $this->assertSame($status, SAVED_NEW, (new FormattableMarkup('Created content type %type.', array('%type' => $type->id())))->__toString());
diff --git a/core/modules/simpletest/src/Form/SimpletestResultsForm.php b/core/modules/simpletest/src/Form/SimpletestResultsForm.php
index c22c0a7..d2a84d6 100644
--- a/core/modules/simpletest/src/Form/SimpletestResultsForm.php
+++ b/core/modules/simpletest/src/Form/SimpletestResultsForm.php
@@ -214,7 +214,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
    *   The test_id to retrieve results of.
    *
    * @return array
-   *   Array of results grouped by test_class.
+   *  Array of results grouped by test_class.
    */
   protected function getResults($test_id) {
     return $this->database->select('simpletest')
diff --git a/core/modules/simpletest/src/Form/SimpletestTestForm.php b/core/modules/simpletest/src/Form/SimpletestTestForm.php
index 8ad5fe2..1c58efe 100644
--- a/core/modules/simpletest/src/Form/SimpletestTestForm.php
+++ b/core/modules/simpletest/src/Form/SimpletestTestForm.php
@@ -199,6 +199,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
    * {@inheritdoc}
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
+    global $base_url;
     // Test discovery does not run upon form submission.
     simpletest_classloader_register();
 
@@ -216,8 +217,20 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
       $form_state->setValue('tests', $user_input['tests']);
     }
 
-    $tests_list = array_filter($form_state->getValue('tests'));
+    $tests_list = array();
+    foreach ($form_state->getValue('tests') as $class_name => $value) {
+      if ($value === $class_name) {
+        if (is_subclass_of($class_name, 'PHPUnit_Framework_TestCase')) {
+          $test_type = 'phpunit';
+        }
+        else {
+          $test_type = 'simpletest';
+        }
+        $tests_list[$test_type][] = $class_name;
+      }
+    }
     if (!empty($tests_list)) {
+      putenv('SIMPLETEST_BASE_URL=' . $base_url);
       $test_id = simpletest_run_tests($tests_list, 'drupal');
       $form_state->setRedirect(
         'simpletest.result_form',
diff --git a/core/modules/simpletest/src/KernelTestBase.php b/core/modules/simpletest/src/KernelTestBase.php
index 96c5cf6..8f97401 100644
--- a/core/modules/simpletest/src/KernelTestBase.php
+++ b/core/modules/simpletest/src/KernelTestBase.php
@@ -497,7 +497,7 @@ protected function installEntitySchema($entity_type_id) {
    * To install test modules outside of the testing environment, add
    * @code
    * $settings['extension_discovery_scan_tests'] = TRUE;
-   * @endcode
+   * @encode
    * to your settings.php.
    *
    * @param array $modules
diff --git a/core/modules/simpletest/src/TestBase.php b/core/modules/simpletest/src/TestBase.php
index 6fa40a3..6bb84fd 100644
--- a/core/modules/simpletest/src/TestBase.php
+++ b/core/modules/simpletest/src/TestBase.php
@@ -20,7 +20,8 @@
 /**
  * Base class for Drupal tests.
  *
- * Do not extend this class directly; use \Drupal\simpletest\WebTestBase.
+ * Do not extend this class directly; use either
+ * \Drupal\simpletest\WebTestBase or \Drupal\simpletest\KernelTestBase.
  */
 abstract class TestBase {
 
diff --git a/core/modules/simpletest/src/Tests/SimpleTestBrowserTest.php b/core/modules/simpletest/src/Tests/SimpleTestBrowserTest.php
index 5d1854b..89ed6d2 100644
--- a/core/modules/simpletest/src/Tests/SimpleTestBrowserTest.php
+++ b/core/modules/simpletest/src/Tests/SimpleTestBrowserTest.php
@@ -127,7 +127,7 @@ public function testTestingThroughUI() {
 
     $tests = array(
       // A KernelTestBase test.
-      'Drupal\KernelTests\KernelTestBaseTest',
+      'Drupal\system\Tests\DrupalKernel\DrupalKernelTest',
       // A PHPUnit unit test.
       'Drupal\Tests\action\Unit\Menu\ActionLocalTasksTest',
       // A PHPUnit functional test.
diff --git a/core/modules/simpletest/src/Tests/SimpleTestInstallBatchTest.php b/core/modules/simpletest/src/Tests/SimpleTestInstallBatchTest.php
index 72cb74c..eef9760 100644
--- a/core/modules/simpletest/src/Tests/SimpleTestInstallBatchTest.php
+++ b/core/modules/simpletest/src/Tests/SimpleTestInstallBatchTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\simpletest\Tests;
 
-use Drupal\entity_test\Entity\EntityTest;
 use Drupal\simpletest\WebTestBase;
 
 /**
@@ -26,9 +25,9 @@ class SimpleTestInstallBatchTest extends WebTestBase {
    * Tests loading entities created in a batch in simpletest_test_install().
    */
   public function testLoadingEntitiesCreatedInBatch() {
-    $entity1 = EntityTest::load(1);
+    $entity1 = entity_load('entity_test', 1);
     $this->assertNotNull($entity1, 'Successfully loaded entity 1.');
-    $entity2 = EntityTest::load(2);
+    $entity2 = entity_load('entity_test', 2);
     $this->assertNotNull($entity2, 'Successfully loaded entity 2.');
   }
 
diff --git a/core/modules/simpletest/src/UserCreationTrait.php b/core/modules/simpletest/src/UserCreationTrait.php
index f6665b4..de6d283 100644
--- a/core/modules/simpletest/src/UserCreationTrait.php
+++ b/core/modules/simpletest/src/UserCreationTrait.php
@@ -77,8 +77,6 @@ protected function createUser(array $permissions = array(), $name = NULL, $admin
 
     // Add the raw password so that we can log in as this user.
     $account->pass_raw = $edit['pass'];
-    // Support BrowserTestBase as well.
-    $account->passRaw = $account->pass_raw;
     return $account;
   }
 
diff --git a/core/modules/simpletest/src/WebTestBase.php b/core/modules/simpletest/src/WebTestBase.php
index 04d1927..eb1ad73 100644
--- a/core/modules/simpletest/src/WebTestBase.php
+++ b/core/modules/simpletest/src/WebTestBase.php
@@ -876,7 +876,7 @@ protected function initKernel(Request $request) {
    * To install test modules outside of the testing environment, add
    * @code
    * $settings['extension_discovery_scan_tests'] = TRUE;
-   * @endcode
+   * @encode
    * to your settings.php.
    *
    * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
@@ -2680,7 +2680,7 @@ protected function prepareRequestForGenerator($clean_urls = TRUE, $override_serv
    *   Options to be passed to Url::fromUri().
    *
    * @return string
-   *   An absolute URL string.
+   *   An absolute URL stsring.
    */
   protected function buildUrl($path, array $options = array()) {
     if ($path instanceof Url) {
diff --git a/core/modules/simpletest/tests/src/Functional/BrowserTestBaseTest.php b/core/modules/simpletest/tests/src/Functional/BrowserTestBaseTest.php
index 4d1906e..d321a4b 100644
--- a/core/modules/simpletest/tests/src/Functional/BrowserTestBaseTest.php
+++ b/core/modules/simpletest/tests/src/Functional/BrowserTestBaseTest.php
@@ -33,13 +33,6 @@ public function testGoTo() {
     // Test page contains some text.
     $this->assertSession()->pageTextContains('Test page text.');
 
-    // Response includes cache tags that we can assert.
-    $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Tags', 'rendered');
-
-    // Test that we can read the JS settings.
-    $js_settings = $this->getDrupalSettings();
-    $this->assertSame('azAZ09();.,\\\/-_{}', $js_settings['test-setting']);
-
     // Test drupalGet with a url object.
     $url = Url::fromRoute('test_page_test.render_title');
     $this->drupalGet($url);
diff --git a/core/modules/simpletest/tests/src/Unit/TestBaseTest.php b/core/modules/simpletest/tests/src/Unit/TestBaseTest.php
index 3baa1d7..877d6e5 100644
--- a/core/modules/simpletest/tests/src/Unit/TestBaseTest.php
+++ b/core/modules/simpletest/tests/src/Unit/TestBaseTest.php
@@ -5,7 +5,6 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * @requires extension curl
  * @coversDefaultClass \Drupal\simpletest\TestBase
  * @group simpletest
  */
diff --git a/core/modules/simpletest/tests/src/Unit/WebTestBaseTest.php b/core/modules/simpletest/tests/src/Unit/WebTestBaseTest.php
index 1c087a6..619ee74 100644
--- a/core/modules/simpletest/tests/src/Unit/WebTestBaseTest.php
+++ b/core/modules/simpletest/tests/src/Unit/WebTestBaseTest.php
@@ -5,7 +5,6 @@
 use Drupal\Tests\UnitTestCase;
 
 /**
- * @requires extension curl
  * @coversDefaultClass \Drupal\simpletest\WebTestBase
  * @group simpletest
  */
diff --git a/core/modules/statistics/config/schema/statistics.views.schema.yml b/core/modules/statistics/config/schema/statistics.views.schema.yml
deleted file mode 100644
index 31a3325..0000000
--- a/core/modules/statistics/config/schema/statistics.views.schema.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-# Schema for the views plugins of the Statistics module.
-
-views.field.statistics_numeric:
-  type: views.field.numeric
-  label: 'Numeric values from the statistics module'
-
-views.field.node_counter_timestamp:
-  type: views.field.date
-  label: 'The most recent time the node has been viewed'
diff --git a/core/modules/statistics/src/Plugin/views/field/NodeCounterTimestamp.php b/core/modules/statistics/src/Plugin/views/field/NodeCounterTimestamp.php
deleted file mode 100644
index fb0eb30..0000000
--- a/core/modules/statistics/src/Plugin/views/field/NodeCounterTimestamp.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace Drupal\statistics\Plugin\views\field;
-
-use Drupal\views\Plugin\views\field\Date;
-use Drupal\Core\Session\AccountInterface;
-
-/**
- * Field handler to display the most recent time the node has been viewed.
- *
- * @ingroup views_field_handlers
- *
- * @ViewsField("node_counter_timestamp")
- */
-class NodeCounterTimestamp extends Date {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function access(AccountInterface $account) {
-    return $account->hasPermission('view post access counter');
-  }
-
-}
diff --git a/core/modules/statistics/src/Plugin/views/field/StatisticsNumeric.php b/core/modules/statistics/src/Plugin/views/field/StatisticsNumeric.php
deleted file mode 100644
index a425b31..0000000
--- a/core/modules/statistics/src/Plugin/views/field/StatisticsNumeric.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace Drupal\statistics\Plugin\views\field;
-
-use Drupal\views\Plugin\views\field\NumericField;
-use Drupal\Core\Session\AccountInterface;
-
-/**
- * Field handler to display numeric values from the statistics module.
- *
- * @ingroup views_field_handlers
- *
- * @ViewsField("statistics_numeric")
- */
-class StatisticsNumeric extends NumericField {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function access(AccountInterface $account) {
-    return $account->hasPermission('view post access counter');
-  }
-
-}
diff --git a/core/modules/statistics/src/Tests/Views/IntegrationTest.php b/core/modules/statistics/src/Tests/Views/IntegrationTest.php
index 07380c8..4882fd2 100644
--- a/core/modules/statistics/src/Tests/Views/IntegrationTest.php
+++ b/core/modules/statistics/src/Tests/Views/IntegrationTest.php
@@ -47,11 +47,8 @@ protected function setUp() {
 
     ViewTestData::createTestViews(get_class($this), array('statistics_test_views'));
 
-    // Create a new user for viewing nodes and statistics.
-    $this->webUser = $this->drupalCreateUser(array('access content', 'view post access counter'));
-
-    // Create a new user for viewing nodes only.
-    $this->deniedUser = $this->drupalCreateUser(array('access content'));
+    // Create a new user for viewing nodes.
+    $this->webUser = $this->drupalCreateUser(array('access content'));
 
     $this->drupalCreateContentType(array('type' => 'page'));
     $this->node = $this->drupalCreateNode(array('type' => 'page'));
@@ -62,14 +59,13 @@ protected function setUp() {
       ->set('count_content_views', 1)
       ->save();
 
+    $this->drupalLogin($this->webUser);
   }
 
   /**
    * Tests the integration of the {node_counter} table in views.
    */
   public function testNodeCounterIntegration() {
-    $this->drupalLogin($this->webUser);
-
     $this->drupalGet('node/' . $this->node->id());
     // Manually calling statistics.php, simulating ajax behavior.
     // @see \Drupal\statistics\Tests\StatisticsLoggingTest::testLogging().
@@ -88,17 +84,6 @@ public function testNodeCounterIntegration() {
       $xpath = "//div[contains(@class, views-field-$field)]/span[@class = 'field-content']";
       $this->assertFieldByXpath($xpath, $value, "The $field output matches the expected.");
     }
-
-    $this->drupalLogout();
-    $this->drupalLogin($this->deniedUser);
-    $this->drupalGet('test_statistics_integration');
-    $this->assertResponse(200);
-
-    foreach ($expected as $field => $value) {
-      $xpath = "//div[contains(@class, views-field-$field)]/span[@class = 'field-content']";
-      $this->assertNoFieldByXpath($xpath, $value, "The $field output is not displayed.");
-    }
-
   }
 
 }
diff --git a/core/modules/statistics/statistics.views.inc b/core/modules/statistics/statistics.views.inc
index e851251..c3fdaa1 100644
--- a/core/modules/statistics/statistics.views.inc
+++ b/core/modules/statistics/statistics.views.inc
@@ -22,7 +22,7 @@ function statistics_views_data() {
     'title' => t('Total views'),
     'help' => t('The total number of times the node has been viewed.'),
     'field' => array(
-      'id' => 'statistics_numeric',
+      'id' => 'numeric',
       'click sortable' => TRUE,
      ),
     'filter' => array(
@@ -40,7 +40,7 @@ function statistics_views_data() {
     'title' => t('Views today'),
     'help' => t('The total number of times the node has been viewed today.'),
     'field' => array(
-      'id' => 'statistics_numeric',
+      'id' => 'numeric',
       'click sortable' => TRUE,
      ),
     'filter' => array(
@@ -58,7 +58,7 @@ function statistics_views_data() {
     'title' => t('Most recent view'),
     'help' => t('The most recent time the node has been viewed.'),
     'field' => array(
-      'id' => 'node_counter_timestamp',
+      'id' => 'date',
       'click sortable' => TRUE,
     ),
     'filter' => array(
diff --git a/core/modules/system/config/install/system.site.yml b/core/modules/system/config/install/system.site.yml
index b5a932b..d1ab8de 100644
--- a/core/modules/system/config/install/system.site.yml
+++ b/core/modules/system/config/install/system.site.yml
@@ -1,5 +1,5 @@
 uuid: ''
-name: 'Drupal'
+name: ''
 mail: ''
 slogan: ''
 page:
diff --git a/core/modules/system/css/components/container-inline.module.css b/core/modules/system/css/components/container-inline.module.css
index ba99a36..b68da65 100644
--- a/core/modules/system/css/components/container-inline.module.css
+++ b/core/modules/system/css/components/container-inline.module.css
@@ -5,7 +5,7 @@
 
 .container-inline div,
 .container-inline label {
-  display: inline-block;
+  display: inline;
 }
 /* Details contents always need to be rendered as block. */
 .container-inline .details-wrapper {
diff --git a/core/modules/system/src/Controller/AdminController.php b/core/modules/system/src/Controller/AdminController.php
index 57c13f6..d3186d0 100644
--- a/core/modules/system/src/Controller/AdminController.php
+++ b/core/modules/system/src/Controller/AdminController.php
@@ -13,7 +13,7 @@ class AdminController extends ControllerBase {
    * Prints a listing of admin tasks, organized by module.
    *
    * @return array
-   *   A render array containing the listing.
+   *  A render array containing the listing.
    */
   public function index() {
     $module_info = system_get_info('module');
diff --git a/core/modules/system/src/Controller/ThemeController.php b/core/modules/system/src/Controller/ThemeController.php
index e135356..741dc17 100644
--- a/core/modules/system/src/Controller/ThemeController.php
+++ b/core/modules/system/src/Controller/ThemeController.php
@@ -60,7 +60,7 @@ public static function create(ContainerInterface $container) {
    *   the token is invalid.
    */
   public function uninstall(Request $request) {
-    $theme = $request->query->get('theme');
+    $theme = $request->get('theme');
     $config = $this->config('system.theme');
 
     if (isset($theme)) {
@@ -102,7 +102,7 @@ public function uninstall(Request $request) {
    *   the token is invalid.
    */
   public function install(Request $request) {
-    $theme = $request->query->get('theme');
+    $theme = $request->get('theme');
 
     if (isset($theme)) {
       try {
diff --git a/core/modules/system/src/Form/ThemeSettingsForm.php b/core/modules/system/src/Form/ThemeSettingsForm.php
index 068eb0a..c65da98 100644
--- a/core/modules/system/src/Form/ThemeSettingsForm.php
+++ b/core/modules/system/src/Form/ThemeSettingsForm.php
@@ -379,16 +379,6 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
         }
       }
 
-      // When intending to use the default logo, unset the logo_path.
-      if ($form_state->getValue('default_logo')) {
-        $form_state->unsetValue('logo_path');
-      }
-
-      // When intending to use the default favicon, unset the favicon_path.
-      if ($form_state->getValue('default_favicon')) {
-        $form_state->unsetValue('favicon_path');
-      }
-
       // If the user provided a path for a logo or favicon file, make sure a file
       // exists at that path.
       if ($form_state->getValue('logo_path')) {
diff --git a/core/modules/system/src/Plugin/ImageToolkit/GDToolkit.php b/core/modules/system/src/Plugin/ImageToolkit/GDToolkit.php
index 7b195cc..bbc34c1 100644
--- a/core/modules/system/src/Plugin/ImageToolkit/GDToolkit.php
+++ b/core/modules/system/src/Plugin/ImageToolkit/GDToolkit.php
@@ -393,15 +393,7 @@ public static function isAvailable() {
   public static function getSupportedExtensions() {
     $extensions = array();
     foreach (static::supportedTypes() as $image_type) {
-      // @todo Automatically fetch possible extensions for each mime type.
-      // @see https://www.drupal.org/node/2311679
-      $extension = Unicode::strtolower(image_type_to_extension($image_type, FALSE));
-      $extensions[] = $extension;
-      // Add some known similar extensions.
-      if ($extension === 'jpeg') {
-        $extensions[] = 'jpg';
-        $extensions[] = 'jpe';
-      }
+      $extensions[] = Unicode::strtolower(image_type_to_extension($image_type, FALSE));
     }
     return $extensions;
   }
@@ -421,9 +413,6 @@ public static function getSupportedExtensions() {
    * @see image_type_to_extension()
    */
   public function extensionToImageType($extension) {
-    if (in_array($extension, ['jpe', 'jpg'])) {
-      $extension = 'jpeg';
-    }
     foreach ($this->supportedTypes() as $type) {
       if (image_type_to_extension($type, FALSE) === $extension) {
         return $type;
diff --git a/core/modules/system/src/Plugin/views/field/BulkForm.php b/core/modules/system/src/Plugin/views/field/BulkForm.php
index f0f83a4..5160a7a 100644
--- a/core/modules/system/src/Plugin/views/field/BulkForm.php
+++ b/core/modules/system/src/Plugin/views/field/BulkForm.php
@@ -162,7 +162,7 @@ protected function getView() {
    */
   protected function defineOptions() {
     $options = parent::defineOptions();
-    $options['action_title'] = array('default' => $this->t('Action'));
+    $options['action_title'] = array('default' => $this->t('With selection'));
     $options['include_exclude'] = array(
       'default' => 'exclude',
     );
@@ -271,7 +271,7 @@ public function viewsForm(&$form, FormStateInterface $form_state) {
       }
 
       // Replace the form submit button label.
-      $form['actions']['submit']['#value'] = $this->t('Apply to selected items');
+      $form['actions']['submit']['#value'] = $this->t('Apply');
 
       // Ensure a consistent container for filters/operations in the view header.
       $form['header'] = array(
@@ -394,7 +394,7 @@ public function viewsFormSubmit(&$form, FormStateInterface $form_state) {
    * Returns the message to be displayed when there are no selected items.
    *
    * @return string
-   *   Message displayed when no items are selected.
+   *  Message displayed when no items are selected.
    */
   protected function emptySelectedMessage() {
     return $this->t('No items selected.');
diff --git a/core/modules/system/tests/src/Kernel/Action/ActionTest.php b/core/modules/system/src/Tests/Action/ActionUnitTest.php
similarity index 96%
rename from core/modules/system/tests/src/Kernel/Action/ActionTest.php
rename to core/modules/system/src/Tests/Action/ActionUnitTest.php
index 4ca24fb..92869e0 100644
--- a/core/modules/system/tests/src/Kernel/Action/ActionTest.php
+++ b/core/modules/system/src/Tests/Action/ActionUnitTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\Tests\system\Kernel\Action;
+namespace Drupal\system\Tests\Action;
 
+use Drupal\simpletest\KernelTestBase;
 use Drupal\Core\Action\ActionInterface;
-use Drupal\KernelTests\KernelTestBase;
 use Drupal\system\Entity\Action;
 use Drupal\user\RoleInterface;
 
@@ -12,7 +12,7 @@
  *
  * @group Action
  */
-class ActionTest extends KernelTestBase {
+class ActionUnitTest extends KernelTestBase {
 
   /**
    * {@inheritdoc}
diff --git a/core/tests/Drupal/KernelTests/Core/Asset/LibraryDiscoveryIntegrationTest.php b/core/modules/system/src/Tests/Asset/LibraryDiscoveryIntegrationTest.php
similarity index 99%
rename from core/tests/Drupal/KernelTests/Core/Asset/LibraryDiscoveryIntegrationTest.php
rename to core/modules/system/src/Tests/Asset/LibraryDiscoveryIntegrationTest.php
index a77adfc..d021f28 100644
--- a/core/tests/Drupal/KernelTests/Core/Asset/LibraryDiscoveryIntegrationTest.php
+++ b/core/modules/system/src/Tests/Asset/LibraryDiscoveryIntegrationTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Asset;
+namespace Drupal\system\Tests\Asset;
 
 use Drupal\Core\Asset\Exception\InvalidLibrariesExtendSpecificationException;
 use Drupal\Core\Asset\Exception\InvalidLibrariesOverrideSpecificationException;
diff --git a/core/tests/Drupal/KernelTests/Core/Asset/ResolvedLibraryDefinitionsFilesMatchTest.php b/core/modules/system/src/Tests/Asset/ResolvedLibraryDefinitionsFilesMatchTest.php
similarity index 95%
rename from core/tests/Drupal/KernelTests/Core/Asset/ResolvedLibraryDefinitionsFilesMatchTest.php
rename to core/modules/system/src/Tests/Asset/ResolvedLibraryDefinitionsFilesMatchTest.php
index c3d3e30..aab2ce2 100644
--- a/core/tests/Drupal/KernelTests/Core/Asset/ResolvedLibraryDefinitionsFilesMatchTest.php
+++ b/core/modules/system/src/Tests/Asset/ResolvedLibraryDefinitionsFilesMatchTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Asset;
+namespace Drupal\system\Tests\Asset;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests that the asset files for all core libraries exist.
@@ -86,14 +86,14 @@ class ResolvedLibraryDefinitionsFilesMatchTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['system'];
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
+    $this->themeHandler = $this->container->get('theme_handler');
+    $this->themeInitialization = $this->container->get('theme.initialization');
+    $this->themeManager = $this->container->get('theme.manager');
+    $this->libraryDiscovery = $this->container->get('library.discovery');
+
     // Install all core themes.
     sort($this->allThemes);
     $this->container->get('theme_installer')->install($this->allThemes);
@@ -109,14 +109,8 @@ protected function setUp() {
       return TRUE;
     });
     $this->allModules = array_keys($all_modules);
-    $this->allModules[] = 'system';
     sort($this->allModules);
-    $this->container->get('module_installer')->install($this->allModules);
-
-    $this->themeHandler = $this->container->get('theme_handler');
-    $this->themeInitialization = $this->container->get('theme.initialization');
-    $this->themeManager = $this->container->get('theme.manager');
-    $this->libraryDiscovery = $this->container->get('library.discovery');
+    $this->enableModules($this->allModules);
   }
 
   /**
diff --git a/core/modules/system/tests/src/Kernel/Block/SystemMenuBlockTest.php b/core/modules/system/src/Tests/Block/SystemMenuBlockTest.php
similarity index 99%
rename from core/modules/system/tests/src/Kernel/Block/SystemMenuBlockTest.php
rename to core/modules/system/src/Tests/Block/SystemMenuBlockTest.php
index ca1c5af..8021fc8 100644
--- a/core/modules/system/tests/src/Kernel/Block/SystemMenuBlockTest.php
+++ b/core/modules/system/src/Tests/Block/SystemMenuBlockTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\Tests\system\Kernel\Block;
+namespace Drupal\system\Tests\Block;
 
-use Drupal\KernelTests\KernelTestBase;
 use Drupal\system\Entity\Menu;
 use Drupal\block\Entity\Block;
 use Drupal\Core\Render\Element;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\system\Tests\Routing\MockRouteProvider;
 use Drupal\Tests\Core\Menu\MenuLinkMock;
 use Drupal\user\Entity\User;
diff --git a/core/tests/Drupal/KernelTests/Core/Bootstrap/GetFilenameTest.php b/core/modules/system/src/Tests/Bootstrap/GetFilenameUnitTest.php
similarity index 91%
rename from core/tests/Drupal/KernelTests/Core/Bootstrap/GetFilenameTest.php
rename to core/modules/system/src/Tests/Bootstrap/GetFilenameUnitTest.php
index 6cdc4b3..50bbc6b 100644
--- a/core/tests/Drupal/KernelTests/Core/Bootstrap/GetFilenameTest.php
+++ b/core/modules/system/src/Tests/Bootstrap/GetFilenameUnitTest.php
@@ -1,20 +1,15 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Bootstrap;
+namespace Drupal\system\Tests\Bootstrap;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests that drupal_get_filename() works correctly.
  *
  * @group Bootstrap
  */
-class GetFilenameTest extends KernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['system'];
+class GetFilenameUnitTest extends KernelTestBase {
 
   /**
    * Tests that drupal_get_filename() works when the file is not in database.
diff --git a/core/tests/Drupal/KernelTests/Core/Bootstrap/ResettableStaticTest.php b/core/modules/system/src/Tests/Bootstrap/ResettableStaticUnitTest.php
similarity index 90%
rename from core/tests/Drupal/KernelTests/Core/Bootstrap/ResettableStaticTest.php
rename to core/modules/system/src/Tests/Bootstrap/ResettableStaticUnitTest.php
index 7b90ec1..b15c877 100644
--- a/core/tests/Drupal/KernelTests/Core/Bootstrap/ResettableStaticTest.php
+++ b/core/modules/system/src/Tests/Bootstrap/ResettableStaticUnitTest.php
@@ -1,15 +1,15 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Bootstrap;
+namespace Drupal\system\Tests\Bootstrap;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests that drupal_static() and drupal_static_reset() work.
  *
  * @group Bootstrap
  */
-class ResettableStaticTest extends KernelTestBase {
+class ResettableStaticUnitTest extends KernelTestBase {
 
   /**
    * Tests drupal_static() function.
diff --git a/core/tests/Drupal/KernelTests/Core/Cache/ApcuBackendTest.php b/core/modules/system/src/Tests/Cache/ApcuBackendUnitTest.php
similarity index 96%
rename from core/tests/Drupal/KernelTests/Core/Cache/ApcuBackendTest.php
rename to core/modules/system/src/Tests/Cache/ApcuBackendUnitTest.php
index 0161d2c..3305057 100644
--- a/core/tests/Drupal/KernelTests/Core/Cache/ApcuBackendTest.php
+++ b/core/modules/system/src/Tests/Cache/ApcuBackendUnitTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Cache;
+namespace Drupal\system\Tests\Cache;
 
 use Drupal\Core\Cache\Apcu4Backend;
 use Drupal\Core\Cache\ApcuBackend;
@@ -9,9 +9,9 @@
  * Tests the APCu cache backend.
  *
  * @group Cache
- * @requires extension apcu
+ * @requires extension apc
  */
-class ApcuBackendTest extends GenericCacheBackendUnitTestBase {
+class ApcuBackendUnitTest extends GenericCacheBackendUnitTestBase {
 
   /**
    * Get a list of failed requirements.
diff --git a/core/tests/Drupal/KernelTests/Core/Cache/BackendChainTest.php b/core/modules/system/src/Tests/Cache/BackendChainUnitTest.php
similarity index 84%
rename from core/tests/Drupal/KernelTests/Core/Cache/BackendChainTest.php
rename to core/modules/system/src/Tests/Cache/BackendChainUnitTest.php
index 0282180..7e6c4ee 100644
--- a/core/tests/Drupal/KernelTests/Core/Cache/BackendChainTest.php
+++ b/core/modules/system/src/Tests/Cache/BackendChainUnitTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Cache;
+namespace Drupal\system\Tests\Cache;
 
 use Drupal\Core\Cache\BackendChain;
 use Drupal\Core\Cache\MemoryBackend;
@@ -10,7 +10,7 @@
  *
  * @group Cache
  */
-class BackendChainTest extends GenericCacheBackendUnitTestBase {
+class BackendChainUnitTest extends GenericCacheBackendUnitTestBase {
 
   protected function createCacheBackend($bin) {
     $chain = new BackendChain($bin);
diff --git a/core/tests/Drupal/KernelTests/Core/Cache/CacheContextOptimizationTest.php b/core/modules/system/src/Tests/Cache/CacheContextOptimizationTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Cache/CacheContextOptimizationTest.php
rename to core/modules/system/src/Tests/Cache/CacheContextOptimizationTest.php
index 0ae0230..698e03d 100644
--- a/core/tests/Drupal/KernelTests/Core/Cache/CacheContextOptimizationTest.php
+++ b/core/modules/system/src/Tests/Cache/CacheContextOptimizationTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Cache;
+namespace Drupal\system\Tests\Cache;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\simpletest\UserCreationTrait;
 use Drupal\user\Entity\Role;
 
diff --git a/core/tests/Drupal/KernelTests/Core/Cache/ChainedFastBackendTest.php b/core/modules/system/src/Tests/Cache/ChainedFastBackendUnitTest.php
similarity index 89%
rename from core/tests/Drupal/KernelTests/Core/Cache/ChainedFastBackendTest.php
rename to core/modules/system/src/Tests/Cache/ChainedFastBackendUnitTest.php
index 3021b04..f2ddcf2 100644
--- a/core/tests/Drupal/KernelTests/Core/Cache/ChainedFastBackendTest.php
+++ b/core/modules/system/src/Tests/Cache/ChainedFastBackendUnitTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Cache;
+namespace Drupal\system\Tests\Cache;
 
 use Drupal\Core\Cache\ChainedFastBackend;
 use Drupal\Core\Cache\DatabaseBackend;
@@ -11,7 +11,7 @@
  *
  * @group Cache
  */
-class ChainedFastBackendTest extends GenericCacheBackendUnitTestBase {
+class ChainedFastBackendUnitTest extends GenericCacheBackendUnitTestBase {
 
   /**
    * Creates a new instance of ChainedFastBackend.
diff --git a/core/tests/Drupal/KernelTests/Core/Cache/DatabaseBackendTagTest.php b/core/modules/system/src/Tests/Cache/DatabaseBackendTagTest.php
similarity index 91%
rename from core/tests/Drupal/KernelTests/Core/Cache/DatabaseBackendTagTest.php
rename to core/modules/system/src/Tests/Cache/DatabaseBackendTagTest.php
index 484ee9c..1be8df1 100644
--- a/core/tests/Drupal/KernelTests/Core/Cache/DatabaseBackendTagTest.php
+++ b/core/modules/system/src/Tests/Cache/DatabaseBackendTagTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Cache;
+namespace Drupal\system\Tests\Cache;
 
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Component\DependencyInjection\Reference;
 
 /**
@@ -24,8 +24,8 @@ class DatabaseBackendTagTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public function register(ContainerBuilder $container) {
-    parent::register($container);
+  public function containerBuild(ContainerBuilder $container) {
+    parent::containerBuild($container);
     // Change container to database cache backends.
     $container
       ->register('cache_factory', 'Drupal\Core\Cache\CacheFactory')
diff --git a/core/tests/Drupal/KernelTests/Core/Cache/DatabaseBackendTest.php b/core/modules/system/src/Tests/Cache/DatabaseBackendUnitTest.php
similarity index 92%
rename from core/tests/Drupal/KernelTests/Core/Cache/DatabaseBackendTest.php
rename to core/modules/system/src/Tests/Cache/DatabaseBackendUnitTest.php
index fd1c942..13630b5 100644
--- a/core/tests/Drupal/KernelTests/Core/Cache/DatabaseBackendTest.php
+++ b/core/modules/system/src/Tests/Cache/DatabaseBackendUnitTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Cache;
+namespace Drupal\system\Tests\Cache;
 
 use Drupal\Core\Cache\DatabaseBackend;
 
@@ -9,7 +9,7 @@
  *
  * @group Cache
  */
-class DatabaseBackendTest extends GenericCacheBackendUnitTestBase {
+class DatabaseBackendUnitTest extends GenericCacheBackendUnitTestBase {
 
   /**
    * Modules to enable.
diff --git a/core/modules/system/src/Tests/Cache/GenericCacheBackendUnitTestBase.php b/core/modules/system/src/Tests/Cache/GenericCacheBackendUnitTestBase.php
index 6c3d98f..ebceb89 100644
--- a/core/modules/system/src/Tests/Cache/GenericCacheBackendUnitTestBase.php
+++ b/core/modules/system/src/Tests/Cache/GenericCacheBackendUnitTestBase.php
@@ -15,9 +15,6 @@
  *
  * @see DatabaseBackendUnitTestCase
  *   For a full working implementation.
- *
- * @deprecated as of Drupal 8.2.x, will be removed before Drupal 9.0.0. Use
- *    \Drupal\KernelTests\Core\Cache\GenericCacheBackendUnitTestBase instead.
  */
 abstract class GenericCacheBackendUnitTestBase extends KernelTestBase {
 
diff --git a/core/tests/Drupal/KernelTests/Core/Cache/MemoryBackendTest.php b/core/modules/system/src/Tests/Cache/MemoryBackendUnitTest.php
similarity index 80%
rename from core/tests/Drupal/KernelTests/Core/Cache/MemoryBackendTest.php
rename to core/modules/system/src/Tests/Cache/MemoryBackendUnitTest.php
index c1fb9f7..6a37b81 100644
--- a/core/tests/Drupal/KernelTests/Core/Cache/MemoryBackendTest.php
+++ b/core/modules/system/src/Tests/Cache/MemoryBackendUnitTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Cache;
+namespace Drupal\system\Tests\Cache;
 
 use Drupal\Core\Cache\MemoryBackend;
 
@@ -9,7 +9,7 @@
  *
  * @group Cache
  */
-class MemoryBackendTest extends GenericCacheBackendUnitTestBase {
+class MemoryBackendUnitTest extends GenericCacheBackendUnitTestBase {
 
   /**
    * Creates a new instance of MemoryBackend.
diff --git a/core/tests/Drupal/KernelTests/Core/Cache/PhpBackendTest.php b/core/modules/system/src/Tests/Cache/PhpBackendUnitTest.php
similarity index 80%
rename from core/tests/Drupal/KernelTests/Core/Cache/PhpBackendTest.php
rename to core/modules/system/src/Tests/Cache/PhpBackendUnitTest.php
index 486d2d4..bcd5eef 100644
--- a/core/tests/Drupal/KernelTests/Core/Cache/PhpBackendTest.php
+++ b/core/modules/system/src/Tests/Cache/PhpBackendUnitTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Cache;
+namespace Drupal\system\Tests\Cache;
 
 use Drupal\Core\Cache\PhpBackend;
 
@@ -9,7 +9,7 @@
  *
  * @group Cache
  */
-class PhpBackendTest extends GenericCacheBackendUnitTestBase {
+class PhpBackendUnitTest extends GenericCacheBackendUnitTestBase {
 
   /**
    * Creates a new instance of MemoryBackend.
diff --git a/core/tests/Drupal/KernelTests/Core/Asset/AttachedAssetsTest.php b/core/modules/system/src/Tests/Common/AttachedAssetsTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Asset/AttachedAssetsTest.php
rename to core/modules/system/src/Tests/Common/AttachedAssetsTest.php
index 72e7b6f..8074669 100644
--- a/core/tests/Drupal/KernelTests/Core/Asset/AttachedAssetsTest.php
+++ b/core/modules/system/src/Tests/Common/AttachedAssetsTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Asset;
+namespace Drupal\system\Tests\Common;
 
 use Drupal\Component\Serialization\Json;
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Asset\AttachedAssets;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests #attached assets: attached asset libraries and JavaScript settings.
@@ -195,16 +195,13 @@ function testSettings() {
 
     $js = $this->assetResolver->getJsAssets($assets, FALSE)[1];
     $js_render_array = \Drupal::service('asset.js.collection_renderer')->render($js);
-    // Cast to string since this returns a \Drupal\Core\Render\Markup object.
-    $rendered_js = (string) $this->renderer->renderPlain($js_render_array);
+    $rendered_js = $this->renderer->renderPlain($js_render_array);
 
     // Parse the generated drupalSettings <script> back to a PHP representation.
     $startToken = '{';
     $endToken = '}';
     $start = strpos($rendered_js, $startToken);
     $end = strrpos($rendered_js, $endToken);
-    // Convert to a string, as $renderer_js is a \Drupal\Core\Render\Markup
-    // object.
     $json  = Unicode::substr($rendered_js, $start, $end - $start + 1);
     $parsed_settings = Json::decode($json);
 
diff --git a/core/modules/system/src/Tests/Common/PageRenderTest.php b/core/modules/system/src/Tests/Common/PageRenderTest.php
index f07ece6..8906982 100644
--- a/core/modules/system/src/Tests/Common/PageRenderTest.php
+++ b/core/modules/system/src/Tests/Common/PageRenderTest.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\system\Tests\Common;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Test page rendering hooks.
diff --git a/core/tests/Drupal/KernelTests/Core/Render/Element/RenderElementTypesTest.php b/core/modules/system/src/Tests/Common/RenderElementTypesTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Render/Element/RenderElementTypesTest.php
rename to core/modules/system/src/Tests/Common/RenderElementTypesTest.php
index 3e11695..e60bb52 100644
--- a/core/tests/Drupal/KernelTests/Core/Render/Element/RenderElementTypesTest.php
+++ b/core/modules/system/src/Tests/Common/RenderElementTypesTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Render\Element;
+namespace Drupal\system\Tests\Common;
 
 use Drupal\Component\Utility\Html;
 use Drupal\Core\Url;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests the markup of core render element types passed to drupal_render().
diff --git a/core/tests/Drupal/KernelTests/Core/Render/RenderTest.php b/core/modules/system/src/Tests/Common/RenderTest.php
similarity index 95%
rename from core/tests/Drupal/KernelTests/Core/Render/RenderTest.php
rename to core/modules/system/src/Tests/Common/RenderTest.php
index 8860c19..1eee23e 100644
--- a/core/tests/Drupal/KernelTests/Core/Render/RenderTest.php
+++ b/core/modules/system/src/Tests/Common/RenderTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Render;
+namespace Drupal\system\Tests\Common;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Performs functional tests on drupal_render().
diff --git a/core/tests/Drupal/KernelTests/Core/Common/SizeTest.php b/core/modules/system/src/Tests/Common/SizeUnitTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/Common/SizeTest.php
rename to core/modules/system/src/Tests/Common/SizeUnitTest.php
index 2bcee75..39c06bb 100644
--- a/core/tests/Drupal/KernelTests/Core/Common/SizeTest.php
+++ b/core/modules/system/src/Tests/Common/SizeUnitTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Common;
+namespace Drupal\system\Tests\Common;
 
 use Drupal\Component\Utility\Bytes;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Parse a predefined amount of bytes and compare the output with the expected
@@ -11,7 +11,7 @@
  *
  * @group Common
  */
-class SizeTest extends KernelTestBase {
+class SizeUnitTest extends KernelTestBase {
   protected $exactTestCases;
   protected $roundedTestCases;
 
diff --git a/core/modules/system/src/Tests/Common/SystemListingTest.php b/core/modules/system/src/Tests/Common/SystemListingTest.php
index 9d4e2fc..e2d5c6f 100644
--- a/core/modules/system/src/Tests/Common/SystemListingTest.php
+++ b/core/modules/system/src/Tests/Common/SystemListingTest.php
@@ -3,7 +3,7 @@
 namespace Drupal\system\Tests\Common;
 
 use Drupal\Core\Extension\ExtensionDiscovery;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests scanning system directories in drupal_system_listing().
@@ -51,26 +51,4 @@ function testDirectoryPrecedence() {
     }
   }
 
-  /**
-   * Tests that directories matching file_scan_ignore_directories are ignored
-   */
-  public function testFileScanIgnoreDirectory() {
-    $listing = new ExtensionDiscovery(\Drupal::root(), FALSE);
-    $listing->setProfileDirectories(array('core/profiles/testing'));
-    $files = $listing->scan('module');
-    $this->assertArrayHasKey('drupal_system_listing_compatible_test', $files);
-
-    // Reset the static to force a rescan of the directories.
-    $reflected_class = new \ReflectionClass(ExtensionDiscovery::class);
-    $reflected_property = $reflected_class->getProperty('files');
-    $reflected_property->setAccessible(TRUE);
-    $reflected_property->setValue($reflected_class, []);
-
-    $this->setSetting('file_scan_ignore_directories', ['drupal_system_listing_compatible_test']);
-    $listing = new ExtensionDiscovery(\Drupal::root(), FALSE);
-    $listing->setProfileDirectories(array('core/profiles/testing'));
-    $files = $listing->scan('module');
-    $this->assertArrayNotHasKey('drupal_system_listing_compatible_test', $files);
-  }
-
 }
diff --git a/core/tests/Drupal/KernelTests/Core/Render/Element/TableSortExtenderTest.php b/core/modules/system/src/Tests/Common/TableSortExtenderUnitTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Render/Element/TableSortExtenderTest.php
rename to core/modules/system/src/Tests/Common/TableSortExtenderUnitTest.php
index a77d52e..9b456a9 100644
--- a/core/tests/Drupal/KernelTests/Core/Render/Element/TableSortExtenderTest.php
+++ b/core/modules/system/src/Tests/Common/TableSortExtenderUnitTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Render\Element;
+namespace Drupal\system\Tests\Common;
 
 use Drupal\Component\Utility\Html;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Component\HttpFoundation\Request;
 
 /**
@@ -11,7 +11,7 @@
  *
  * @group Common
  */
-class TableSortExtenderTest extends KernelTestBase {
+class TableSortExtenderUnitTest extends KernelTestBase {
 
   /**
    * Tests tablesort_init().
diff --git a/core/tests/Drupal/KernelTests/Core/Common/XssUnitTest.php b/core/modules/system/src/Tests/Common/XssUnitTest.php
similarity index 96%
rename from core/tests/Drupal/KernelTests/Core/Common/XssUnitTest.php
rename to core/modules/system/src/Tests/Common/XssUnitTest.php
index 7c68ed4..1797737 100644
--- a/core/tests/Drupal/KernelTests/Core/Common/XssUnitTest.php
+++ b/core/modules/system/src/Tests/Common/XssUnitTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Common;
+namespace Drupal\system\Tests\Common;
 
 use Drupal\Component\Utility\UrlHelper;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Confirm that \Drupal\Component\Utility\Xss::filter() and check_url() work
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/Condition/CurrentThemeConditionTest.php b/core/modules/system/src/Tests/Condition/CurrentThemeConditionTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/Plugin/Condition/CurrentThemeConditionTest.php
rename to core/modules/system/src/Tests/Condition/CurrentThemeConditionTest.php
index d9a7cb3..3d3eece 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/Condition/CurrentThemeConditionTest.php
+++ b/core/modules/system/src/Tests/Condition/CurrentThemeConditionTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin\Condition;
+namespace Drupal\system\Tests\Condition;
 
 use Drupal\Component\Utility\SafeMarkup;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests the CurrentThemeCondition plugin.
diff --git a/core/tests/Drupal/KernelTests/Core/DrupalKernel/DrupalKernelSiteTest.php b/core/modules/system/src/Tests/DrupalKernel/DrupalKernelSiteTest.php
similarity index 90%
rename from core/tests/Drupal/KernelTests/Core/DrupalKernel/DrupalKernelSiteTest.php
rename to core/modules/system/src/Tests/DrupalKernel/DrupalKernelSiteTest.php
index deea2a9..51687db 100644
--- a/core/tests/Drupal/KernelTests/Core/DrupalKernel/DrupalKernelSiteTest.php
+++ b/core/modules/system/src/Tests/DrupalKernel/DrupalKernelSiteTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\DrupalKernel;
+namespace Drupal\system\Tests\DrupalKernel;
 
 use Drupal\Core\Site\Settings;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests site-specific service overrides.
@@ -18,7 +18,7 @@ class DrupalKernelSiteTest extends KernelTestBase {
   public function testServicesYml() {
     $container_yamls = Settings::get('container_yamls');
     $container_yamls[] = $this->siteDirectory . '/services.yml';
-    $this->setSetting('container_yamls', $container_yamls);
+    $this->settingsSet('container_yamls', $container_yamls);
     $this->assertFalse($this->container->has('site.service.yml'));
     // A service provider class always has precedence over services.yml files.
     // KernelTestBase::buildContainer() swaps out many services with in-memory
diff --git a/core/tests/Drupal/KernelTests/Core/DrupalKernel/DrupalKernelTest.php b/core/modules/system/src/Tests/DrupalKernel/DrupalKernelTest.php
similarity index 86%
rename from core/tests/Drupal/KernelTests/Core/DrupalKernel/DrupalKernelTest.php
rename to core/modules/system/src/Tests/DrupalKernel/DrupalKernelTest.php
index 7778a5a..c412d99 100644
--- a/core/tests/Drupal/KernelTests/Core/DrupalKernel/DrupalKernelTest.php
+++ b/core/modules/system/src/Tests/DrupalKernel/DrupalKernelTest.php
@@ -1,9 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\DrupalKernel;
+namespace Drupal\system\Tests\DrupalKernel;
 
 use Drupal\Core\DrupalKernel;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\Core\Site\Settings;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Component\HttpFoundation\Request;
 
 /**
@@ -13,17 +14,29 @@
  */
 class DrupalKernelTest extends KernelTestBase {
 
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     // DrupalKernel relies on global $config_directories and requires those
     // directories to exist. Therefore, create the directories, but do not
     // invoke KernelTestBase::setUp(), since that would set up further
     // environment aspects, which would distort this test, because it tests
     // the DrupalKernel (re-)building itself.
-    $this->root = static::getDrupalRoot();
-    $this->bootEnvironment();
+    $this->prepareConfigDirectories();
+
+    $this->settingsSet('php_storage', array('service_container' => array(
+      'bin' => 'service_container',
+      'class' => 'Drupal\Component\PhpStorage\MTimeProtectedFileStorage',
+      'directory' => DRUPAL_ROOT . '/' . $this->publicFilesDirectory . '/php',
+      'secret' => Settings::getHashSalt(),
+    )));
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function prepareConfigDirectories() {
+    \Drupal::setContainer($this->originalContainer);
+    parent::prepareConfigDirectories();
+    \Drupal::unsetContainer();
   }
 
   /**
@@ -43,10 +56,10 @@ protected function setUp() {
    */
   protected function getTestKernel(Request $request, array $modules_enabled = NULL) {
     // Manually create kernel to avoid replacing settings.
-    $class_loader = require $this->root . '/autoload.php';
+    $class_loader = require DRUPAL_ROOT . '/autoload.php';
     $kernel = DrupalKernel::createFromRequest($request, $class_loader, 'testing');
-    $this->setSetting('container_yamls', []);
-    $this->setSetting('hash_salt', $this->databasePrefix);
+    $this->settingsSet('container_yamls', []);
+    $this->settingsSet('hash_salt', $this->databasePrefix);
     if (isset($modules_enabled)) {
       $kernel->updateModules($modules_enabled);
     }
@@ -133,11 +146,6 @@ public function testCompileDIC() {
       'pathname' => drupal_get_filename('module', 'service_provider_test'),
       'filename' => NULL,
     ));
-
-    // Check that the container itself is not among the persist IDs because it
-    // does not make sense to persist the container itself.
-    $persist_ids = $container->getParameter('persist_ids');
-    $this->assertIdentical(FALSE, array_search('service_container', $persist_ids));
   }
 
   /**
@@ -145,7 +153,7 @@ public function testCompileDIC() {
    */
   public function testRepeatedBootWithDifferentEnvironment() {
     $request = Request::createFromGlobals();
-    $class_loader = require $this->root . '/autoload.php';
+    $class_loader = require DRUPAL_ROOT . '/autoload.php';
 
     $environments = [
       'testing1',
@@ -156,8 +164,8 @@ public function testRepeatedBootWithDifferentEnvironment() {
 
     foreach ($environments as $environment) {
       $kernel = DrupalKernel::createFromRequest($request, $class_loader, $environment);
-      $this->setSetting('container_yamls', []);
-      $this->setSetting('hash_salt', $this->databasePrefix);
+      $this->settingsSet('container_yamls', []);
+      $this->settingsSet('hash_salt', $this->databasePrefix);
       $kernel->boot();
     }
 
diff --git a/core/tests/Drupal/KernelTests/Core/DrupalKernel/ServiceDestructionTest.php b/core/modules/system/src/Tests/DrupalKernel/ServiceDestructionTest.php
similarity index 95%
rename from core/tests/Drupal/KernelTests/Core/DrupalKernel/ServiceDestructionTest.php
rename to core/modules/system/src/Tests/DrupalKernel/ServiceDestructionTest.php
index f4fe094..cc1a381 100644
--- a/core/tests/Drupal/KernelTests/Core/DrupalKernel/ServiceDestructionTest.php
+++ b/core/modules/system/src/Tests/DrupalKernel/ServiceDestructionTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\DrupalKernel;
+namespace Drupal\system\Tests\DrupalKernel;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Component\HttpFoundation\Response;
 
 /**
diff --git a/core/tests/Drupal/KernelTests/Core/Element/PathElementFormTest.php b/core/modules/system/src/Tests/Element/PathElementFormTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Element/PathElementFormTest.php
rename to core/modules/system/src/Tests/Element/PathElementFormTest.php
index ca4e501..0cb15a1 100644
--- a/core/tests/Drupal/KernelTests/Core/Element/PathElementFormTest.php
+++ b/core/modules/system/src/Tests/Element/PathElementFormTest.php
@@ -1,13 +1,13 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Element;
+namespace Drupal\system\Tests\Element;
 
 use Drupal\Core\Form\FormInterface;
 use Drupal\Core\Form\FormState;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Render\Element\PathElement;
 use Drupal\Core\Url;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\user\Entity\Role;
 use Drupal\user\Entity\User;
 
diff --git a/core/modules/system/src/Tests/Entity/ConfigEntityImportTest.php b/core/modules/system/src/Tests/Entity/ConfigEntityImportTest.php
index 0f731be..d62b9d0 100644
--- a/core/modules/system/src/Tests/Entity/ConfigEntityImportTest.php
+++ b/core/modules/system/src/Tests/Entity/ConfigEntityImportTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\system\Tests\Entity;
 
 use Drupal\Core\Entity\EntityWithPluginCollectionInterface;
-use Drupal\filter\Entity\FilterFormat;
 use Drupal\image\Entity\ImageStyle;
 use Drupal\search\Entity\SearchPage;
 use Drupal\simpletest\WebTestBase;
@@ -90,7 +89,7 @@ protected function doFilterFormatUpdate() {
     $name = 'filter.format.plain_text';
 
     /** @var $entity \Drupal\filter\Entity\FilterFormat */
-    $entity = FilterFormat::load('plain_text');
+    $entity = entity_load('filter_format', 'plain_text');
     $plugin_collection = $entity->getPluginCollections()['filters'];
 
     $filters = $entity->get('filters');
diff --git a/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php b/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php
index f8a0144..e02917d 100644
--- a/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php
+++ b/core/modules/system/src/Tests/Entity/EntityCacheTagsTestBase.php
@@ -229,7 +229,7 @@ protected function selectViewMode($entity_type) {
    *   The entity that the referencing entity should reference.
    *
    * @return \Drupal\Core\Entity\EntityInterface[]
-   *   An array containing a referencing entity and a non-referencing entity.
+   *  An array containing a referencing entity and a non-referencing entity.
    */
   protected function createReferenceTestEntities($referenced_entity) {
     // All referencing entities should be of the type 'entity_test'.
diff --git a/core/modules/system/src/Tests/Entity/EntityTranslationFormTest.php b/core/modules/system/src/Tests/Entity/EntityTranslationFormTest.php
index d64e019..101569c 100644
--- a/core/modules/system/src/Tests/Entity/EntityTranslationFormTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityTranslationFormTest.php
@@ -86,11 +86,7 @@ function testEntityFormLanguage() {
     $edit['body[0][value]'] = $this->randomMachineName(16);
     $edit['langcode[0][value]'] = $langcode;
     $this->drupalPostForm('node/add/page', $edit, t('Save'));
-    $this->assertText(t('Basic page @title has been created.', array('@title' => $edit['title[0][value]'])), 'Basic page created.');
-
-    // Verify that the creation message contains a link to a node.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'node/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a node');
+    $this->assertRaw(t('Basic page %title has been created.', array('%title' => $edit['title[0][value]'])), 'Basic page created.');
 
     // Check to make sure the node was created.
     $node = $this->drupalGetNodeByTitle($edit['title[0][value]']);
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/ThemeInstallerTest.php b/core/modules/system/src/Tests/Extension/ThemeInstallerTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Theme/ThemeInstallerTest.php
rename to core/modules/system/src/Tests/Extension/ThemeInstallerTest.php
index b82978c..ecf83e9 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/ThemeInstallerTest.php
+++ b/core/modules/system/src/Tests/Extension/ThemeInstallerTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Theme;
+namespace Drupal\system\Tests\Extension;
 
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\Extension\ExtensionNameLengthException;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests installing and uninstalling of themes.
@@ -20,11 +20,8 @@ class ThemeInstallerTest extends KernelTestBase {
    */
   public static $modules = array('system');
 
-  /**
-   * {@inheritdoc}
-   */
-  public function register(ContainerBuilder $container) {
-    parent::register($container);
+  public function containerBuild(ContainerBuilder $container) {
+    parent::containerBuild($container);
     // Some test methods involve ModuleHandler operations, which attempt to
     // rebuild and dump routes.
     $container
diff --git a/core/tests/Drupal/KernelTests/Core/Updater/UpdaterTest.php b/core/modules/system/src/Tests/Extension/UpdaterTest.php
similarity index 91%
rename from core/tests/Drupal/KernelTests/Core/Updater/UpdaterTest.php
rename to core/modules/system/src/Tests/Extension/UpdaterTest.php
index 185a3fe..1c277a5 100644
--- a/core/tests/Drupal/KernelTests/Core/Updater/UpdaterTest.php
+++ b/core/modules/system/src/Tests/Extension/UpdaterTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Updater;
+namespace Drupal\system\Tests\Extension;
 
+use Drupal\simpletest\KernelTestBase;
 use Drupal\Core\Updater\Updater;
-use Drupal\KernelTests\KernelTestBase;
 
 /**
  * Tests InfoParser class and exception.
diff --git a/core/tests/Drupal/KernelTests/Core/File/DirectoryTest.php b/core/modules/system/src/Tests/File/DirectoryTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/File/DirectoryTest.php
rename to core/modules/system/src/Tests/File/DirectoryTest.php
index 774bd7c..5e9e44a 100644
--- a/core/tests/Drupal/KernelTests/Core/File/DirectoryTest.php
+++ b/core/modules/system/src/Tests/File/DirectoryTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 use Drupal\Component\PhpStorage\FileStorage;
 
@@ -10,7 +10,6 @@
  * @group File
  */
 class DirectoryTest extends FileTestBase {
-
   /**
    * Test local directory handling functions.
    */
@@ -78,7 +77,7 @@ function testFileCheckDirectoryHandling() {
       $this->assertFalse(file_prepare_directory($directory, 0), 'Error reported for a non-writeable directory.', 'File');
 
       // Test directory permission modification.
-      $this->setSetting('file_chmod_directory', 0777);
+      $this->settingsSet('file_chmod_directory', 0777);
       $this->assertTrue(file_prepare_directory($directory, FILE_MODIFY_PERMISSIONS), 'No error reported when making directory writeable.', 'File');
     }
 
diff --git a/core/tests/Drupal/KernelTests/Core/File/FileTestBase.php b/core/modules/system/src/Tests/File/FileTestBase.php
similarity index 81%
rename from core/tests/Drupal/KernelTests/Core/File/FileTestBase.php
rename to core/modules/system/src/Tests/File/FileTestBase.php
index 548d1bc..219ff6c 100644
--- a/core/tests/Drupal/KernelTests/Core/File/FileTestBase.php
+++ b/core/modules/system/src/Tests/File/FileTestBase.php
@@ -1,9 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
-use Drupal\Core\DependencyInjection\ContainerBuilder;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Base class for file tests that adds some additional file specific
@@ -32,50 +31,17 @@
    */
   protected $classname;
 
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
-
-    \Drupal::configFactory()->getEditable('system.file')->set('default_scheme', 'public')->save();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function register(ContainerBuilder $container) {
-    parent::register($container);
-
-    $container->register('stream_wrapper.private', 'Drupal\Core\StreamWrapper\PrivateStream')
-      ->addTag('stream_wrapper', ['scheme' => 'private']);
+    $this->installConfig(array('system'));
+    $this->registerStreamWrapper('private', 'Drupal\Core\StreamWrapper\PrivateStream');
 
     if (isset($this->scheme)) {
-      $container->register('stream_wrapper.' . $this->scheme, $this->classname)
-        ->addTag('stream_wrapper', ['scheme' => $this->scheme]);
+      $this->registerStreamWrapper($this->scheme, $this->classname);
     }
   }
 
   /**
-   * {@inheritdoc}
-   */
-  protected function setUpFilesystem() {
-    $public_file_directory = $this->siteDirectory . '/files';
-
-    require_once 'core/includes/file.inc';
-
-    mkdir($this->siteDirectory, 0775);
-    mkdir($this->siteDirectory . '/files', 0775);
-    mkdir($this->siteDirectory . '/files/config/' . CONFIG_SYNC_DIRECTORY, 0775, TRUE);
-
-    $this->setSetting('file_public_path', $public_file_directory);
-
-    $GLOBALS['config_directories'] = array(
-      CONFIG_SYNC_DIRECTORY => $this->siteDirectory . '/files/config/sync',
-    );
-  }
-
-  /**
    * Helper function to test the permissions of a file.
    *
    * @param $filepath
diff --git a/core/tests/Drupal/KernelTests/Core/File/HtaccessTest.php b/core/modules/system/src/Tests/File/HtaccessUnitTest.php
similarity index 92%
rename from core/tests/Drupal/KernelTests/Core/File/HtaccessTest.php
rename to core/modules/system/src/Tests/File/HtaccessUnitTest.php
index 0ef5078..2ddca7d 100644
--- a/core/tests/Drupal/KernelTests/Core/File/HtaccessTest.php
+++ b/core/modules/system/src/Tests/File/HtaccessUnitTest.php
@@ -1,25 +1,24 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 use Drupal\Component\Utility\SafeMarkup;
-use Drupal\Core\Site\Settings;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests .htaccess file saving.
  *
  * @group File
  */
-class HtaccessTest extends KernelTestBase {
+class HtaccessUnitTest extends KernelTestBase {
 
   /**
    * Tests file_save_htaccess().
    */
   function testHtaccessSave() {
     // Prepare test directories.
-    $public = Settings::get('file_public_path') . '/test/public';
-    $private = Settings::get('file_public_path') . '/test/private';
+    $public = $this->publicFilesDirectory . '/test/public';
+    $private = $this->publicFilesDirectory . '/test/private';
     $stream = 'public://test/stream';
 
     // Verify that file_save_htaccess() returns FALSE if .htaccess cannot be
diff --git a/core/tests/Drupal/KernelTests/Core/File/MimeTypeTest.php b/core/modules/system/src/Tests/File/MimeTypeTest.php
similarity index 86%
rename from core/tests/Drupal/KernelTests/Core/File/MimeTypeTest.php
rename to core/modules/system/src/Tests/File/MimeTypeTest.php
index 9bfe681..8120c0a 100644
--- a/core/tests/Drupal/KernelTests/Core/File/MimeTypeTest.php
+++ b/core/modules/system/src/Tests/File/MimeTypeTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests filename mimetype detection.
@@ -20,7 +20,7 @@ class MimeTypeTest extends FileTestBase {
    * Test mapping of mimetypes from filenames.
    */
   public function testFileMimeTypeDetection() {
-    $prefixes = ['public://', 'private://', 'temporary://', 'dummy-remote://'];
+    $prefix = 'public://';
 
     $test_case = array(
       'test.jar' => 'application/java-archive',
@@ -43,10 +43,8 @@ public function testFileMimeTypeDetection() {
     // Test using default mappings.
     foreach ($test_case as $input => $expected) {
       // Test stream [URI].
-      foreach ($prefixes as $prefix) {
-        $output = $guesser->guess($prefix . $input);
-        $this->assertIdentical($output, $expected, format_string('Mimetype for %input is %output (expected: %expected).', array('%input' => $prefix . $input, '%output' => $output, '%expected' => $expected)));
-      }
+      $output = $guesser->guess($prefix . $input);
+      $this->assertIdentical($output, $expected, format_string('Mimetype for %input is %output (expected: %expected).', array('%input' => $input, '%output' => $output, '%expected' => $expected)));
 
       // Test normal path equivalent
       $output = $guesser->guess($input);
diff --git a/core/tests/Drupal/KernelTests/Core/File/NameMungingTest.php b/core/modules/system/src/Tests/File/NameMungingTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/File/NameMungingTest.php
rename to core/modules/system/src/Tests/File/NameMungingTest.php
index 1fff41e..52163fc 100644
--- a/core/tests/Drupal/KernelTests/Core/File/NameMungingTest.php
+++ b/core/modules/system/src/Tests/File/NameMungingTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests filename munging and unmunging.
diff --git a/core/tests/Drupal/KernelTests/Core/File/ReadOnlyStreamWrapperTest.php b/core/modules/system/src/Tests/File/ReadOnlyStreamWrapperTest.php
similarity index 90%
rename from core/tests/Drupal/KernelTests/Core/File/ReadOnlyStreamWrapperTest.php
rename to core/modules/system/src/Tests/File/ReadOnlyStreamWrapperTest.php
index ae19e02..d1128c4 100644
--- a/core/tests/Drupal/KernelTests/Core/File/ReadOnlyStreamWrapperTest.php
+++ b/core/modules/system/src/Tests/File/ReadOnlyStreamWrapperTest.php
@@ -1,9 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
-
-use Drupal\Core\StreamWrapper\StreamWrapperInterface;
-use Drupal\file_test\StreamWrapper\DummyReadOnlyStreamWrapper;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the read-only stream wrapper write functions.
@@ -30,12 +27,6 @@ class ReadOnlyStreamWrapperTest extends FileTestBase {
    * Test read-only specific behavior.
    */
   function testReadOnlyBehavior() {
-    $type = DummyReadOnlyStreamWrapper::getType();
-    // Checks that the stream wrapper type is not declared as writable.
-    $this->assertSame(0, $type & StreamWrapperInterface::WRITE);
-    // Checks that the stream wrapper type is declared as local.
-    $this->assertSame(1, $type & StreamWrapperInterface::LOCAL);
-
     // Generate a test file
     $filename = $this->randomMachineName();
     $site_path = $this->container->get('site.path');
diff --git a/core/tests/Drupal/KernelTests/Core/File/RemoteFileDirectoryTest.php b/core/modules/system/src/Tests/File/RemoteFileDirectoryTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/File/RemoteFileDirectoryTest.php
rename to core/modules/system/src/Tests/File/RemoteFileDirectoryTest.php
index 3265562..7c286fe 100644
--- a/core/tests/Drupal/KernelTests/Core/File/RemoteFileDirectoryTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileDirectoryTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests operations dealing with directories.
diff --git a/core/tests/Drupal/KernelTests/Core/File/RemoteFileScanDirectoryTest.php b/core/modules/system/src/Tests/File/RemoteFileScanDirectoryTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/File/RemoteFileScanDirectoryTest.php
rename to core/modules/system/src/Tests/File/RemoteFileScanDirectoryTest.php
index 3d872bc..8b30aba 100644
--- a/core/tests/Drupal/KernelTests/Core/File/RemoteFileScanDirectoryTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileScanDirectoryTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the file_scan_directory() function.
diff --git a/core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedCopyTest.php b/core/modules/system/src/Tests/File/RemoteFileUnmanagedCopyTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedCopyTest.php
rename to core/modules/system/src/Tests/File/RemoteFileUnmanagedCopyTest.php
index 8be6726..9c6c0d6 100644
--- a/core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedCopyTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileUnmanagedCopyTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the unmanaged file copy function.
diff --git a/core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedDeleteRecursiveTest.php b/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteRecursiveTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedDeleteRecursiveTest.php
rename to core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteRecursiveTest.php
index 06f0e1a..7c47526 100644
--- a/core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedDeleteRecursiveTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteRecursiveTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the unmanaged file delete recursive function.
diff --git a/core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedDeleteTest.php b/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedDeleteTest.php
rename to core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteTest.php
index fe0ad6e..d628bee 100644
--- a/core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedDeleteTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileUnmanagedDeleteTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the unmanaged file delete function.
diff --git a/core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedMoveTest.php b/core/modules/system/src/Tests/File/RemoteFileUnmanagedMoveTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedMoveTest.php
rename to core/modules/system/src/Tests/File/RemoteFileUnmanagedMoveTest.php
index 47b66f2..ee3ef7f 100644
--- a/core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedMoveTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileUnmanagedMoveTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the unmanaged file move function.
diff --git a/core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedSaveDataTest.php b/core/modules/system/src/Tests/File/RemoteFileUnmanagedSaveDataTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedSaveDataTest.php
rename to core/modules/system/src/Tests/File/RemoteFileUnmanagedSaveDataTest.php
index 15b5929..2af252a 100644
--- a/core/tests/Drupal/KernelTests/Core/File/RemoteFileUnmanagedSaveDataTest.php
+++ b/core/modules/system/src/Tests/File/RemoteFileUnmanagedSaveDataTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the unmanaged file save data function.
diff --git a/core/tests/Drupal/KernelTests/Core/File/ScanDirectoryTest.php b/core/modules/system/src/Tests/File/ScanDirectoryTest.php
similarity index 82%
rename from core/tests/Drupal/KernelTests/Core/File/ScanDirectoryTest.php
rename to core/modules/system/src/Tests/File/ScanDirectoryTest.php
index 8362c04..d372671 100644
--- a/core/tests/Drupal/KernelTests/Core/File/ScanDirectoryTest.php
+++ b/core/modules/system/src/Tests/File/ScanDirectoryTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the file_scan_directory() function.
@@ -142,25 +142,4 @@ function testOptionMinDepth() {
     $this->assertTrue(empty($files), 'Minimum-depth of 1 successfully excludes files from current directory.');
   }
 
-  /**
-   * Tests file_scan_directory() obeys 'file_scan_ignore_directories' setting.
-   */
-  public function testIgnoreDirectories() {
-    $files = file_scan_directory('core/modules/system/tests/fixtures/IgnoreDirectories', '/\.txt$/');
-    $this->assertCount(2, $files, '2 text files found when not ignoring directories.');
-
-    $this->setSetting('file_scan_ignore_directories', ['frontend_framework']);
-    $files = file_scan_directory('core/modules/system/tests/fixtures/IgnoreDirectories', '/\.txt$/');
-    $this->assertCount(1, $files, '1 text files found when ignoring directories called "frontend_framework".');
-
-    // Ensure that the directories in file_scan_ignore_directories are escaped
-    // using preg_quote.
-    $this->setSetting('file_scan_ignore_directories', ['frontend.*']);
-    $files = file_scan_directory('core/modules/system/tests/fixtures/IgnoreDirectories', '/\.txt$/');
-    $this->assertCount(2, $files, '2 text files found when ignoring a directory that is not there.');
-
-    $files = file_scan_directory('core/modules/system/tests/fixtures/IgnoreDirectories', '/\.txt$/', ['nomask' => '/^something_thing_else$/']);
-    $this->assertCount(2, $files, '2 text files found when an "nomask" option is passed in.');
-  }
-
 }
diff --git a/core/tests/Drupal/KernelTests/Core/File/StreamWrapperTest.php b/core/modules/system/src/Tests/File/StreamWrapperTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/File/StreamWrapperTest.php
rename to core/modules/system/src/Tests/File/StreamWrapperTest.php
index e9c8642..9524388 100644
--- a/core/tests/Drupal/KernelTests/Core/File/StreamWrapperTest.php
+++ b/core/modules/system/src/Tests/File/StreamWrapperTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 use Drupal\Core\DrupalKernel;
 use Drupal\Core\Site\Settings;
@@ -36,12 +36,14 @@ class StreamWrapperTest extends FileTestBase {
   protected $classname = 'Drupal\file_test\StreamWrapper\DummyStreamWrapper';
 
   function setUp() {
-    parent::setUp();
-
     // Add file_private_path setting.
+    $settings = Settings::getAll();
     $request = Request::create('/');;
     $site_path = DrupalKernel::findSitePath($request);
-    $this->setSetting('file_private_path', $site_path . '/private');
+    $settings['file_private_path'] = $site_path . '/private';
+    new Settings($settings + Settings::getAll());
+
+    parent::setUp();
   }
 
   /**
diff --git a/core/tests/Drupal/KernelTests/Core/File/UnmanagedCopyTest.php b/core/modules/system/src/Tests/File/UnmanagedCopyTest.php
similarity index 99%
rename from core/tests/Drupal/KernelTests/Core/File/UnmanagedCopyTest.php
rename to core/modules/system/src/Tests/File/UnmanagedCopyTest.php
index 6b2fbed..97a8b4c 100644
--- a/core/tests/Drupal/KernelTests/Core/File/UnmanagedCopyTest.php
+++ b/core/modules/system/src/Tests/File/UnmanagedCopyTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 use Drupal\Core\Site\Settings;
 use Drupal\Core\File\FileSystem;
diff --git a/core/tests/Drupal/KernelTests/Core/File/UnmanagedDeleteRecursiveTest.php b/core/modules/system/src/Tests/File/UnmanagedDeleteRecursiveTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/File/UnmanagedDeleteRecursiveTest.php
rename to core/modules/system/src/Tests/File/UnmanagedDeleteRecursiveTest.php
index feed31b..b8c33e0 100644
--- a/core/tests/Drupal/KernelTests/Core/File/UnmanagedDeleteRecursiveTest.php
+++ b/core/modules/system/src/Tests/File/UnmanagedDeleteRecursiveTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the unmanaged file delete recursive function.
diff --git a/core/tests/Drupal/KernelTests/Core/File/UnmanagedDeleteTest.php b/core/modules/system/src/Tests/File/UnmanagedDeleteTest.php
similarity index 96%
rename from core/tests/Drupal/KernelTests/Core/File/UnmanagedDeleteTest.php
rename to core/modules/system/src/Tests/File/UnmanagedDeleteTest.php
index 55e4536..d93e213 100644
--- a/core/tests/Drupal/KernelTests/Core/File/UnmanagedDeleteTest.php
+++ b/core/modules/system/src/Tests/File/UnmanagedDeleteTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the unmanaged file delete function.
diff --git a/core/tests/Drupal/KernelTests/Core/File/UnmanagedMoveTest.php b/core/modules/system/src/Tests/File/UnmanagedMoveTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/File/UnmanagedMoveTest.php
rename to core/modules/system/src/Tests/File/UnmanagedMoveTest.php
index 87a29f4..562ab5f 100644
--- a/core/tests/Drupal/KernelTests/Core/File/UnmanagedMoveTest.php
+++ b/core/modules/system/src/Tests/File/UnmanagedMoveTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 use Drupal\Core\Site\Settings;
 use Drupal\Core\File\FileSystem;
diff --git a/core/tests/Drupal/KernelTests/Core/File/UnmanagedSaveDataTest.php b/core/modules/system/src/Tests/File/UnmanagedSaveDataTest.php
similarity index 92%
rename from core/tests/Drupal/KernelTests/Core/File/UnmanagedSaveDataTest.php
rename to core/modules/system/src/Tests/File/UnmanagedSaveDataTest.php
index dc06d2c..7b869f8 100644
--- a/core/tests/Drupal/KernelTests/Core/File/UnmanagedSaveDataTest.php
+++ b/core/modules/system/src/Tests/File/UnmanagedSaveDataTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 /**
  * Tests the file_unmanaged_save_data() function.
@@ -13,7 +13,7 @@ class UnmanagedSaveDataTest extends FileTestBase {
    */
   function testFileSaveData() {
     $contents = $this->randomMachineName(8);
-    $this->setSetting('file_chmod_file', 0777);
+    $this->settingsSet('file_chmod_file', 0777);
 
     // No filename.
     $filepath = file_unmanaged_save_data($contents);
diff --git a/core/tests/Drupal/KernelTests/Core/File/UrlRewritingTest.php b/core/modules/system/src/Tests/File/UrlRewritingTest.php
similarity index 99%
rename from core/tests/Drupal/KernelTests/Core/File/UrlRewritingTest.php
rename to core/modules/system/src/Tests/File/UrlRewritingTest.php
index 5494975..5930011 100644
--- a/core/tests/Drupal/KernelTests/Core/File/UrlRewritingTest.php
+++ b/core/modules/system/src/Tests/File/UrlRewritingTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\File;
+namespace Drupal\system\Tests\File;
 
 use Symfony\Component\HttpFoundation\Request;
 
diff --git a/core/tests/Drupal/KernelTests/Core/Form/ExternalFormUrlTest.php b/core/modules/system/src/Tests/Form/ExternalFormUrlTest.php
similarity index 91%
rename from core/tests/Drupal/KernelTests/Core/Form/ExternalFormUrlTest.php
rename to core/modules/system/src/Tests/Form/ExternalFormUrlTest.php
index f3fbc4f..d1ef9ff 100644
--- a/core/tests/Drupal/KernelTests/Core/Form/ExternalFormUrlTest.php
+++ b/core/modules/system/src/Tests/Form/ExternalFormUrlTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Form;
+namespace Drupal\system\Tests\Form;
 
 use Drupal\Core\Form\FormInterface;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\user\Entity\User;
 use Symfony\Component\HttpFoundation\Request;
 
@@ -62,6 +62,7 @@ protected function setUp() {
     ]);
     $test_user->save();
     \Drupal::service('current_user')->setAccount($test_user);
+
   }
 
   /**
@@ -71,11 +72,7 @@ public function testActionUrlBehavior() {
     // Create a new request which has a request uri with multiple leading
     // slashes and make it the master request.
     $request_stack = \Drupal::service('request_stack');
-    /** @var \Symfony\Component\HttpFoundation\RequestStack $original_request */
     $original_request = $request_stack->pop();
-    // Just request some more so there is no request left.
-    $request_stack->pop();
-    $request_stack->pop();
     $request = Request::create($original_request->getSchemeAndHttpHost() . '//example.org');
     $request_stack->push($request);
 
diff --git a/core/tests/Drupal/KernelTests/Core/Form/FormCacheTest.php b/core/modules/system/src/Tests/Form/FormCacheTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Form/FormCacheTest.php
rename to core/modules/system/src/Tests/Form/FormCacheTest.php
index fa86bee..0584621 100644
--- a/core/tests/Drupal/KernelTests/Core/Form/FormCacheTest.php
+++ b/core/modules/system/src/Tests/Form/FormCacheTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Form;
+namespace Drupal\system\Tests\Form;
 
 use Drupal\Core\Form\FormState;
 use Drupal\Core\Session\AnonymousUserSession;
 use Drupal\Core\Session\UserSession;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests \Drupal::formBuilder()->setCache() and
diff --git a/core/tests/Drupal/KernelTests/Core/Form/FormDefaultHandlersTest.php b/core/modules/system/src/Tests/Form/FormDefaultHandlersTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Form/FormDefaultHandlersTest.php
rename to core/modules/system/src/Tests/Form/FormDefaultHandlersTest.php
index 7f046e9..5322b7c 100644
--- a/core/tests/Drupal/KernelTests/Core/Form/FormDefaultHandlersTest.php
+++ b/core/modules/system/src/Tests/Form/FormDefaultHandlersTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Form;
+namespace Drupal\system\Tests\Form;
 
 use Drupal\Core\Form\FormInterface;
 use Drupal\Core\Form\FormState;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests automatically added form handlers.
diff --git a/core/tests/Drupal/KernelTests/Core/Form/TriggeringElementProgrammedTest.php b/core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php
similarity index 91%
rename from core/tests/Drupal/KernelTests/Core/Form/TriggeringElementProgrammedTest.php
rename to core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php
index c24d47e..5f2a589 100644
--- a/core/tests/Drupal/KernelTests/Core/Form/TriggeringElementProgrammedTest.php
+++ b/core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php
@@ -1,18 +1,20 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Form;
+namespace Drupal\system\Tests\Form;
 
 use Drupal\Core\Form\FormInterface;
 use Drupal\Core\Form\FormState;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests detection of triggering_element for programmed form submissions.
  *
  * @group Form
  */
-class TriggeringElementProgrammedTest extends KernelTestBase implements FormInterface {
+class TriggeringElementProgrammedUnitTest extends KernelTestBase implements FormInterface {
+
+  public static $modules = array('system');
 
   /**
    * {@inheritdoc}
diff --git a/core/tests/Drupal/KernelTests/Core/HttpKernel/StackKernelIntegrationTest.php b/core/modules/system/src/Tests/HttpKernel/StackKernelIntegrationTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/HttpKernel/StackKernelIntegrationTest.php
rename to core/modules/system/src/Tests/HttpKernel/StackKernelIntegrationTest.php
index 166ec24..1d6f769 100644
--- a/core/tests/Drupal/KernelTests/Core/HttpKernel/StackKernelIntegrationTest.php
+++ b/core/modules/system/src/Tests/HttpKernel/StackKernelIntegrationTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\HttpKernel;
+namespace Drupal\system\Tests\HttpKernel;
 
+use Drupal\simpletest\KernelTestBase;
 use Drupal\Core\Url;
-use Drupal\KernelTests\KernelTestBase;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 
@@ -52,7 +52,7 @@ public function testLazyLateMiddlewares() {
     $this->assertFalse($this->container->getDefinition('http_kernel.basic')->isLazy(), 'lazy flag on http_kernel.basic definition is not set');
 
     \Drupal::service('module_installer')->install(['page_cache']);
-    $this->container = \Drupal::service('kernel')->rebuildContainer();
+    $this->container = $this->kernel->rebuildContainer();
 
     $this->assertFalse($this->container->getDefinition('http_middleware.reverse_proxy')->isLazy(), 'lazy flag on http_middleware.reverse_proxy definition is not set');
     $this->assertFalse($this->container->getDefinition('http_middleware.page_cache')->isLazy(), 'lazy flag on http_middleware.page_cache definition is not set');
diff --git a/core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php b/core/modules/system/src/Tests/Image/ToolkitGdTest.php
similarity index 95%
rename from core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php
rename to core/modules/system/src/Tests/Image/ToolkitGdTest.php
index fe36c3d..cb87374 100644
--- a/core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php
+++ b/core/modules/system/src/Tests/Image/ToolkitGdTest.php
@@ -1,11 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Image;
+namespace Drupal\system\Tests\Image;
 
 use Drupal\Core\Image\ImageInterface;
 use Drupal\Component\Utility\SafeMarkup;
-use Drupal\Core\Site\Settings;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests that core image manipulations work properly: scale, resize, rotate,
@@ -107,26 +106,6 @@ function testManipulations() {
     // Test that the image factory is set to use the GD toolkit.
     $this->assertEqual($this->imageFactory->getToolkitId(), 'gd', 'The image factory is set to use the \'gd\' image toolkit.');
 
-    // Test the list of supported extensions.
-    $expected_extensions = ['png', 'gif', 'jpeg', 'jpg', 'jpe'];
-    $supported_extensions = $this->imageFactory->getSupportedExtensions();
-    $this->assertEqual($expected_extensions, array_intersect($expected_extensions, $supported_extensions));
-
-    // Test that the supported extensions map to correct internal GD image
-    // types.
-    $expected_image_types = [
-      'png' => IMAGETYPE_PNG,
-      'gif' => IMAGETYPE_GIF,
-      'jpeg' => IMAGETYPE_JPEG,
-      'jpg' => IMAGETYPE_JPEG,
-      'jpe' => IMAGETYPE_JPEG
-    ];
-    $image = $this->imageFactory->get();
-    foreach ($expected_image_types as $extension => $expected_image_type) {
-      $image_type = $image->getToolkit()->extensionToImageType($extension);
-      $this->assertSame($expected_image_type, $image_type);
-    }
-
     // Typically the corner colors will be unchanged. These colors are in the
     // order of top-left, top-right, bottom-right, bottom-left.
     $default_corners = array($this->red, $this->green, $this->blue, $this->transparent);
@@ -269,7 +248,7 @@ function testManipulations() {
     }
 
     // Prepare a directory for test file results.
-    $directory = Settings::get('file_public_path') . '/imagetest';
+    $directory = $this->publicFilesDirectory . '/imagetest';
     file_prepare_directory($directory, FILE_CREATE_DIRECTORY);
 
     foreach ($files as $file) {
@@ -445,7 +424,7 @@ public function testResourceDestruction() {
    */
   function testGifTransparentImages() {
     // Prepare a directory for test file results.
-    $directory = Settings::get('file_public_path') . '/imagetest';
+    $directory = $this->publicFilesDirectory . '/imagetest';
     file_prepare_directory($directory, FILE_CREATE_DIRECTORY);
 
     // Test loading an indexed GIF image with transparent color set.
diff --git a/core/modules/system/src/Tests/Installer/InstallerExistingConfigDirectoryTest.php b/core/modules/system/src/Tests/Installer/InstallerExistingConfigDirectoryTest.php
index ae6b606..38174f5 100644
--- a/core/modules/system/src/Tests/Installer/InstallerExistingConfigDirectoryTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerExistingConfigDirectoryTest.php
@@ -12,20 +12,11 @@
 class InstallerExistingConfigDirectoryTest extends InstallerTestBase {
 
   /**
-   * The expected file perms of the folder.
-   *
-   * @var int
-   */
-  protected $expectedFilePerms;
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
-    mkdir($this->siteDirectory . '/config_read_only', 0444);
-    $this->expectedFilePerms = fileperms($this->siteDirectory . '/config_read_only');
     $this->settings['config_directories'][CONFIG_SYNC_DIRECTORY] = (object) array(
-      'value' => $this->siteDirectory . '/config_read_only',
+      'value' => $this->siteDirectory . '/config',
       'required' => TRUE,
     );
     parent::setUp();
@@ -37,8 +28,6 @@ protected function setUp() {
   public function testInstaller() {
     $this->assertUrl('user/1');
     $this->assertResponse(200);
-    $this->assertEqual($this->expectedFilePerms, fileperms($this->siteDirectory . '/config_read_only'));
-    $this->assertEqual([], glob($this->siteDirectory . '/config_read_only/*'), 'The sync directory is empty after install because it is read-only.');
   }
 
 }
diff --git a/core/tests/Drupal/KernelTests/Core/Installer/InstallerLanguageTest.php b/core/modules/system/src/Tests/Installer/InstallerLanguageTest.php
similarity index 96%
rename from core/tests/Drupal/KernelTests/Core/Installer/InstallerLanguageTest.php
rename to core/modules/system/src/Tests/Installer/InstallerLanguageTest.php
index 060ee46..ca2ea0c 100644
--- a/core/tests/Drupal/KernelTests/Core/Installer/InstallerLanguageTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerLanguageTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Installer;
+namespace Drupal\system\Tests\Installer;
 
+use Drupal\simpletest\KernelTestBase;
 use Drupal\Core\StringTranslation\Translator\FileTranslation;
-use Drupal\KernelTests\KernelTestBase;
 
 /**
  * Tests for installer language support.
diff --git a/core/modules/system/src/Tests/Installer/InstallerTest.php b/core/modules/system/src/Tests/Installer/InstallerTest.php
index 7a145f8..5e0e8ad 100644
--- a/core/modules/system/src/Tests/Installer/InstallerTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerTest.php
@@ -74,14 +74,4 @@ protected function setUpSite() {
     parent::setUpSite();
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function visitInstaller() {
-    parent::visitInstaller();
-
-    // Assert the title is correct and has the title suffix.
-    $this->assertTitle('Choose language | Drupal');
-  }
-
 }
diff --git a/core/tests/Drupal/KernelTests/Core/KeyValueStore/DatabaseStorageExpirableTest.php b/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageExpirableTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/KeyValueStore/DatabaseStorageExpirableTest.php
rename to core/modules/system/src/Tests/KeyValueStore/DatabaseStorageExpirableTest.php
index 1631501..ff31f33 100644
--- a/core/tests/Drupal/KernelTests/Core/KeyValueStore/DatabaseStorageExpirableTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageExpirableTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\KeyValueStore;
+namespace Drupal\system\Tests\KeyValueStore;
 
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\KeyValueStore\KeyValueFactory;
@@ -28,8 +28,8 @@ protected function setUp() {
   /**
    * {@inheritdoc}
    */
-  public function register(ContainerBuilder $container) {
-    parent::register($container);
+  public function containerBuild(ContainerBuilder $container) {
+    parent::containerBuild($container);
 
     $parameter[KeyValueFactory::DEFAULT_SETTING] = 'keyvalue.expirable.database';
     $container->setParameter('factory.keyvalue.expirable', $parameter);
diff --git a/core/tests/Drupal/KernelTests/Core/KeyValueStore/DatabaseStorageTest.php b/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageTest.php
similarity index 80%
rename from core/tests/Drupal/KernelTests/Core/KeyValueStore/DatabaseStorageTest.php
rename to core/modules/system/src/Tests/KeyValueStore/DatabaseStorageTest.php
index 676ab10..b433ac1 100644
--- a/core/tests/Drupal/KernelTests/Core/KeyValueStore/DatabaseStorageTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/DatabaseStorageTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\KeyValueStore;
+namespace Drupal\system\Tests\KeyValueStore;
 
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\KeyValueStore\KeyValueFactory;
@@ -27,8 +27,8 @@ protected function setUp() {
   /**
    * {@inheritdoc}
    */
-  public function register(ContainerBuilder $container) {
-    parent::register($container);
+  public function containerBuild(ContainerBuilder $container) {
+    parent::containerBuild($container);
 
     $parameter[KeyValueFactory::DEFAULT_SETTING] = 'keyvalue.database';
     $container->setParameter('factory.keyvalue', $parameter);
diff --git a/core/tests/Drupal/KernelTests/Core/KeyValueStore/GarbageCollectionTest.php b/core/modules/system/src/Tests/KeyValueStore/GarbageCollectionTest.php
similarity index 95%
rename from core/tests/Drupal/KernelTests/Core/KeyValueStore/GarbageCollectionTest.php
rename to core/modules/system/src/Tests/KeyValueStore/GarbageCollectionTest.php
index 4dc9b47..46a99ab 100644
--- a/core/tests/Drupal/KernelTests/Core/KeyValueStore/GarbageCollectionTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/GarbageCollectionTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\KernelTests\Core\KeyValueStore;
+namespace Drupal\system\Tests\KeyValueStore;
 
 use Drupal\Component\Serialization\PhpSerialize;
 use Drupal\Core\Database\Database;
 use Drupal\Core\KeyValueStore\DatabaseStorageExpirable;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests garbage collection for the expirable key-value database storage.
diff --git a/core/tests/Drupal/KernelTests/Core/KeyValueStore/KeyValueContentEntityStorageTest.php b/core/modules/system/src/Tests/KeyValueStore/KeyValueContentEntityStorageTest.php
similarity index 99%
rename from core/tests/Drupal/KernelTests/Core/KeyValueStore/KeyValueContentEntityStorageTest.php
rename to core/modules/system/src/Tests/KeyValueStore/KeyValueContentEntityStorageTest.php
index 068216b..8161163 100644
--- a/core/tests/Drupal/KernelTests/Core/KeyValueStore/KeyValueContentEntityStorageTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/KeyValueContentEntityStorageTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\KeyValueStore;
+namespace Drupal\system\Tests\KeyValueStore;
 
 use Drupal\Core\Entity\EntityMalformedException;
 use Drupal\Core\Entity\EntityStorageException;
diff --git a/core/tests/Drupal/KernelTests/Core/KeyValueStore/MemoryStorageTest.php b/core/modules/system/src/Tests/KeyValueStore/MemoryStorageTest.php
similarity index 77%
rename from core/tests/Drupal/KernelTests/Core/KeyValueStore/MemoryStorageTest.php
rename to core/modules/system/src/Tests/KeyValueStore/MemoryStorageTest.php
index f0f7642..5c149ef 100644
--- a/core/tests/Drupal/KernelTests/Core/KeyValueStore/MemoryStorageTest.php
+++ b/core/modules/system/src/Tests/KeyValueStore/MemoryStorageTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\KeyValueStore;
+namespace Drupal\system\Tests\KeyValueStore;
 
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\KeyValueStore\KeyValueFactory;
@@ -15,8 +15,8 @@ class MemoryStorageTest extends StorageTestBase {
   /**
    * {@inheritdoc}
    */
-  public function register(ContainerBuilder $container) {
-    parent::register($container);
+  public function containerBuild(ContainerBuilder $container) {
+    parent::containerBuild($container);
 
     $container->register('keyvalue.memory', 'Drupal\Core\KeyValueStore\KeyValueMemoryFactory');
     $parameter[KeyValueFactory::DEFAULT_SETTING] = 'keyvalue.memory';
diff --git a/core/tests/Drupal/KernelTests/Core/KeyValueStore/StorageTestBase.php b/core/modules/system/src/Tests/KeyValueStore/StorageTestBase.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/KeyValueStore/StorageTestBase.php
rename to core/modules/system/src/Tests/KeyValueStore/StorageTestBase.php
index 48e047d..807d087 100644
--- a/core/tests/Drupal/KernelTests/Core/KeyValueStore/StorageTestBase.php
+++ b/core/modules/system/src/Tests/KeyValueStore/StorageTestBase.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\KeyValueStore;
+namespace Drupal\system\Tests\KeyValueStore;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Base class for testing key-value storages.
diff --git a/core/tests/Drupal/KernelTests/Core/Lock/LockTest.php b/core/modules/system/src/Tests/Lock/LockUnitTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/Lock/LockTest.php
rename to core/modules/system/src/Tests/Lock/LockUnitTest.php
index 0bd761f..fc3b341 100644
--- a/core/tests/Drupal/KernelTests/Core/Lock/LockTest.php
+++ b/core/modules/system/src/Tests/Lock/LockUnitTest.php
@@ -1,16 +1,16 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Lock;
+namespace Drupal\system\Tests\Lock;
 
 use Drupal\Core\Lock\DatabaseLockBackend;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests the Database lock backend.
  *
  * @group Lock
  */
-class LockTest extends KernelTestBase {
+class LockUnitTest extends KernelTestBase {
 
   /**
    * Database lock backend to test.
diff --git a/core/tests/Drupal/KernelTests/Core/Menu/MenuLinkDefaultIntegrationTest.php b/core/modules/system/src/Tests/Menu/MenuLinkDefaultIntegrationTest.php
similarity index 95%
rename from core/tests/Drupal/KernelTests/Core/Menu/MenuLinkDefaultIntegrationTest.php
rename to core/modules/system/src/Tests/Menu/MenuLinkDefaultIntegrationTest.php
index b999887..9935dfc 100644
--- a/core/tests/Drupal/KernelTests/Core/Menu/MenuLinkDefaultIntegrationTest.php
+++ b/core/modules/system/src/Tests/Menu/MenuLinkDefaultIntegrationTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Menu;
+namespace Drupal\system\Tests\Menu;
 
 use Drupal\Core\Menu\MenuTreeParameters;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests integration of static menu links.
@@ -18,6 +18,7 @@ class MenuLinkDefaultIntegrationTest extends KernelTestBase {
    * @var array
    */
   public static $modules = array(
+    'system',
     'menu_test',
   );
 
diff --git a/core/tests/Drupal/KernelTests/Core/Menu/MenuLinkTreeTest.php b/core/modules/system/src/Tests/Menu/MenuLinkTreeTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Menu/MenuLinkTreeTest.php
rename to core/modules/system/src/Tests/Menu/MenuLinkTreeTest.php
index 0cdc303..1be1153 100644
--- a/core/tests/Drupal/KernelTests/Core/Menu/MenuLinkTreeTest.php
+++ b/core/modules/system/src/Tests/Menu/MenuLinkTreeTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Menu;
+namespace Drupal\system\Tests\Menu;
 
 use Drupal\Core\Menu\MenuLinkTreeElement;
 use Drupal\Core\Menu\MenuTreeParameters;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\Tests\Core\Menu\MenuLinkMock;
 
 /**
diff --git a/core/tests/Drupal/KernelTests/Core/Menu/MenuTreeStorageTest.php b/core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php
similarity index 99%
rename from core/tests/Drupal/KernelTests/Core/Menu/MenuTreeStorageTest.php
rename to core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php
index cb1d74d..66df4dd 100644
--- a/core/tests/Drupal/KernelTests/Core/Menu/MenuTreeStorageTest.php
+++ b/core/modules/system/src/Tests/Menu/MenuTreeStorageTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Menu;
+namespace Drupal\system\Tests\Menu;
 
 use Drupal\Component\Plugin\Exception\PluginException;
 use Drupal\Core\Menu\MenuTreeParameters;
 use Drupal\Core\Menu\MenuTreeStorage;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests the menu tree storage.
@@ -31,6 +31,13 @@ class MenuTreeStorageTest extends KernelTestBase {
   protected $connection;
 
   /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('system');
+
+  /**
    * {@inheritdoc}
    */
   protected function setUp() {
diff --git a/core/tests/Drupal/KernelTests/Core/Extension/ModuleImplementsAlterTest.php b/core/modules/system/src/Tests/Module/ModuleImplementsAlterTest.php
similarity index 95%
rename from core/tests/Drupal/KernelTests/Core/Extension/ModuleImplementsAlterTest.php
rename to core/modules/system/src/Tests/Module/ModuleImplementsAlterTest.php
index f55d744..585e81e 100644
--- a/core/tests/Drupal/KernelTests/Core/Extension/ModuleImplementsAlterTest.php
+++ b/core/modules/system/src/Tests/Module/ModuleImplementsAlterTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Extension;
+namespace Drupal\system\Tests\Module;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests hook_module_implements_alter().
@@ -12,11 +12,6 @@
 class ModuleImplementsAlterTest extends KernelTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['system'];
-
-  /**
    * Tests hook_module_implements_alter() adding an implementation.
    *
    * @see \Drupal\Core\Extension\ModuleHandler::buildImplementationInfo()
diff --git a/core/modules/system/src/Tests/Pager/PagerTest.php b/core/modules/system/src/Tests/Pager/PagerTest.php
index 4c13c0f..1000b1c 100644
--- a/core/modules/system/src/Tests/Pager/PagerTest.php
+++ b/core/modules/system/src/Tests/Pager/PagerTest.php
@@ -91,89 +91,6 @@ protected function testPagerQueryParametersAndCacheContext() {
   }
 
   /**
-   * Test proper functioning of multiple pagers.
-   */
-  protected function testMultiplePagers() {
-    // First page.
-    $this->drupalGet('pager-test/multiple-pagers');
-
-    // Test data.
-    // Expected URL query string param is 0-indexed.
-    // Expected page per pager is 1-indexed.
-    $test_data = [
-      // With no query, all pagers set to first page.
-      [
-        'input_query' => NULL,
-        'expected_page' => [0 => '1', 1 => '1', 4 => '1'],
-        'expected_query' => '?page=0,0,,,0',
-      ],
-      // Blanks around page numbers should not be relevant.
-      [
-        'input_query' => '?page=2  ,    10,,,   5     ,,',
-        'expected_page' => [0 => '3', 1 => '11', 4 => '6'],
-        'expected_query' => '?page=2,10,,,5',
-      ],
-      // Blanks within page numbers should lead to only the first integer
-      // to be considered.
-      [
-        'input_query' => '?page=2  ,   3 0,,,   4  13    ,,',
-        'expected_page' => [0 => '3', 1 => '4', 4 => '5'],
-        'expected_query' => '?page=2,3,,,4',
-      ],
-      // If floats are passed as page numbers, only the integer part is
-      // returned.
-      [
-        'input_query' => '?page=2.1,6.999,,,5.',
-        'expected_page' => [0 => '3', 1 => '7', 4 => '6'],
-        'expected_query' => '?page=2,6,,,5',
-      ],
-      // Partial page fragment, undefined pagers set to first page.
-      [
-        'input_query' => '?page=5,2',
-        'expected_page' => [0 => '6', 1 => '3', 4 => '1'],
-        'expected_query' => '?page=5,2,,,0',
-      ],
-      // Partial page fragment, undefined pagers set to first page.
-      [
-        'input_query' => '?page=,2',
-        'expected_page' => [0 => '1', 1 => '3', 4 => '1'],
-        'expected_query' => '?page=0,2,,,0',
-      ],
-      // Partial page fragment, undefined pagers set to first page.
-      [
-        'input_query' => '?page=,',
-        'expected_page' => [0 => '1', 1 => '1', 4 => '1'],
-        'expected_query' => '?page=0,0,,,0',
-      ],
-      // With overflow pages, all pagers set to max page.
-      [
-        'input_query' => '?page=99,99,,,99',
-        'expected_page' => [0 => '16', 1 => '16', 4 => '16'],
-        'expected_query' => '?page=15,15,,,15',
-      ],
-      // Wrong value for the page resets pager to first page.
-      [
-        'input_query' => '?page=bar,5,foo,qux,bet',
-        'expected_page' => [0 => '1', 1 => '6', 4 => '1'],
-        'expected_query' => '?page=0,5,,,0',
-      ],
-    ];
-
-    // We loop through the page with the test data query parameters, and check
-    // that the active page for each pager element has the expected page
-    // (1-indexed) and resulting query parameter
-    foreach ($test_data as $data) {
-      $input_query = str_replace(' ', '%20', $data['input_query']);
-      $this->drupalGet($GLOBALS['base_root'] . parse_url($this->getUrl())['path'] . $input_query, ['external' => TRUE]);
-      foreach ([0, 1, 4] as $pager_element) {
-        $active_page = $this->cssSelect("div.test-pager-{$pager_element} ul.pager__items li.is-active:contains('{$data['expected_page'][$pager_element]}')");
-        $destination = str_replace('%2C', ',', $active_page[0]->a['href'][0]->__toString());
-        $this->assertEqual($destination, $data['expected_query']);
-      }
-    }
-  }
-
-  /**
    * Test proper functioning of the ellipsis.
    */
   public function testPagerEllipsis() {
diff --git a/core/tests/Drupal/KernelTests/Core/Path/AliasTest.php b/core/modules/system/src/Tests/Path/AliasTest.php
similarity index 99%
rename from core/tests/Drupal/KernelTests/Core/Path/AliasTest.php
rename to core/modules/system/src/Tests/Path/AliasTest.php
index 5eb2ace..4ef3b94 100644
--- a/core/tests/Drupal/KernelTests/Core/Path/AliasTest.php
+++ b/core/modules/system/src/Tests/Path/AliasTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Path;
+namespace Drupal\system\Tests\Path;
 
 use Drupal\Core\Cache\MemoryCounterBackend;
 use Drupal\Core\Path\AliasStorage;
diff --git a/core/tests/Drupal/KernelTests/Core/Path/PathUnitTestBase.php b/core/modules/system/src/Tests/Path/PathUnitTestBase.php
similarity index 83%
rename from core/tests/Drupal/KernelTests/Core/Path/PathUnitTestBase.php
rename to core/modules/system/src/Tests/Path/PathUnitTestBase.php
index 9c50f9a..b245b0e 100644
--- a/core/tests/Drupal/KernelTests/Core/Path/PathUnitTestBase.php
+++ b/core/modules/system/src/Tests/Path/PathUnitTestBase.php
@@ -1,10 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Path;
+namespace Drupal\system\Tests\Path;
 
+use Drupal\simpletest\KernelTestBase;
 use Drupal\Core\Database\Database;
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\system\Tests\Path\UrlAliasFixtures;
 
 /**
  * Base class for Path/URL alias integration tests.
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/Condition/RequestPathTest.php b/core/modules/system/src/Tests/Plugin/Condition/RequestPathTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Plugin/Condition/RequestPathTest.php
rename to core/modules/system/src/Tests/Plugin/Condition/RequestPathTest.php
index 02f2a5d..6c37dcf 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/Condition/RequestPathTest.php
+++ b/core/modules/system/src/Tests/Plugin/Condition/RequestPathTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin\Condition;
+namespace Drupal\system\Tests\Plugin\Condition;
 
 use Drupal\Core\Path\CurrentPathStack;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\system\Tests\Routing\MockAliasManager;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\RequestStack;
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/ContextPluginTest.php b/core/modules/system/src/Tests/Plugin/ContextPluginTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Plugin/ContextPluginTest.php
rename to core/modules/system/src/Tests/Plugin/ContextPluginTest.php
index 3c25184..ca36a3b 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/ContextPluginTest.php
+++ b/core/modules/system/src/Tests/Plugin/ContextPluginTest.php
@@ -1,13 +1,13 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin;
+namespace Drupal\system\Tests\Plugin;
 
 use Drupal\Component\Plugin\Exception\ContextException;
 use Drupal\Core\Plugin\Context\ContextDefinition;
-use Drupal\KernelTests\KernelTestBase;
 use Drupal\node\Entity\Node;
 use Drupal\node\Entity\NodeType;
 use Drupal\plugin_test\Plugin\MockBlockManager;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\user\Entity\User;
 
 /**
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/DerivativeTest.php b/core/modules/system/src/Tests/Plugin/DerivativeTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Plugin/DerivativeTest.php
rename to core/modules/system/src/Tests/Plugin/DerivativeTest.php
index 7a834af..1ff5e69 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/DerivativeTest.php
+++ b/core/modules/system/src/Tests/Plugin/DerivativeTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin;
+namespace Drupal\system\Tests\Plugin;
 
 /**
  * Tests that derivative plugins are correctly discovered.
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/Discovery/AnnotatedClassDiscoveryTest.php b/core/modules/system/src/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
rename to core/modules/system/src/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
index bc68dc1..3fb45b4 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
+++ b/core/modules/system/src/Tests/Plugin/Discovery/AnnotatedClassDiscoveryTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin\Discovery;
+namespace Drupal\system\Tests\Plugin\Discovery;
 
 use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
 
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php b/core/modules/system/src/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
similarity index 96%
rename from core/tests/Drupal/KernelTests/Core/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
rename to core/modules/system/src/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
index 5cd8f75..a8a8656 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
+++ b/core/modules/system/src/Tests/Plugin/Discovery/CustomAnnotationClassDiscoveryTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin\Discovery;
+namespace Drupal\system\Tests\Plugin\Discovery;
 
 use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
 
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/Discovery/CustomDirectoryAnnotatedClassDiscoveryTest.php b/core/modules/system/src/Tests/Plugin/Discovery/CustomDirectoryAnnotatedClassDiscoveryTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Plugin/Discovery/CustomDirectoryAnnotatedClassDiscoveryTest.php
rename to core/modules/system/src/Tests/Plugin/Discovery/CustomDirectoryAnnotatedClassDiscoveryTest.php
index 3d5d8c2..e8e9c78 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/Discovery/CustomDirectoryAnnotatedClassDiscoveryTest.php
+++ b/core/modules/system/src/Tests/Plugin/Discovery/CustomDirectoryAnnotatedClassDiscoveryTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin\Discovery;
+namespace Drupal\system\Tests\Plugin\Discovery;
 
 use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
 
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/Discovery/DiscoveryTestBase.php b/core/modules/system/src/Tests/Plugin/Discovery/DiscoveryTestBase.php
similarity index 96%
rename from core/tests/Drupal/KernelTests/Core/Plugin/Discovery/DiscoveryTestBase.php
rename to core/modules/system/src/Tests/Plugin/Discovery/DiscoveryTestBase.php
index bbe2073..d3d4487 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/Discovery/DiscoveryTestBase.php
+++ b/core/modules/system/src/Tests/Plugin/Discovery/DiscoveryTestBase.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin\Discovery;
+namespace Drupal\system\Tests\Plugin\Discovery;
 
 use Drupal\Core\StringTranslation\TranslatableMarkup;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Base class for plugin discovery tests.
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/Discovery/StaticDiscoveryTest.php b/core/modules/system/src/Tests/Plugin/Discovery/StaticDiscoveryTest.php
similarity index 96%
rename from core/tests/Drupal/KernelTests/Core/Plugin/Discovery/StaticDiscoveryTest.php
rename to core/modules/system/src/Tests/Plugin/Discovery/StaticDiscoveryTest.php
index bd0c317..b68f709 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/Discovery/StaticDiscoveryTest.php
+++ b/core/modules/system/src/Tests/Plugin/Discovery/StaticDiscoveryTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin\Discovery;
+namespace Drupal\system\Tests\Plugin\Discovery;
 
 use Drupal\Component\Plugin\Discovery\StaticDiscovery;
 
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/FactoryTest.php b/core/modules/system/src/Tests/Plugin/FactoryTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Plugin/FactoryTest.php
rename to core/modules/system/src/Tests/Plugin/FactoryTest.php
index 4760990..1cdaf3a 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/FactoryTest.php
+++ b/core/modules/system/src/Tests/Plugin/FactoryTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin;
+namespace Drupal\system\Tests\Plugin;
 
 use Drupal\Component\Plugin\Exception\ExceptionInterface;
 
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/InspectionTest.php b/core/modules/system/src/Tests/Plugin/InspectionTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Plugin/InspectionTest.php
rename to core/modules/system/src/Tests/Plugin/InspectionTest.php
index 4ff9573..b1e51cc 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/InspectionTest.php
+++ b/core/modules/system/src/Tests/Plugin/InspectionTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin;
+namespace Drupal\system\Tests\Plugin;
 
 /**
  * Tests that plugins implementing PluginInspectionInterface are inspectable.
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/PluginTestBase.php b/core/modules/system/src/Tests/Plugin/PluginTestBase.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Plugin/PluginTestBase.php
rename to core/modules/system/src/Tests/Plugin/PluginTestBase.php
index 2b70ed4..4231cdd 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/PluginTestBase.php
+++ b/core/modules/system/src/Tests/Plugin/PluginTestBase.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin;
+namespace Drupal\system\Tests\Plugin;
 
 use Drupal\Core\Plugin\Context\ContextDefinition;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\plugin_test\Plugin\TestPluginManager;
 use Drupal\plugin_test\Plugin\MockBlockManager;
 use Drupal\plugin_test\Plugin\DefaultsTestPluginManager;
diff --git a/core/tests/Drupal/KernelTests/Core/Queue/QueueSerializationTest.php b/core/modules/system/src/Tests/Queue/QueueSerializationTest.php
similarity index 96%
rename from core/tests/Drupal/KernelTests/Core/Queue/QueueSerializationTest.php
rename to core/modules/system/src/Tests/Queue/QueueSerializationTest.php
index 3ea4c66..b8eaaf3 100644
--- a/core/tests/Drupal/KernelTests/Core/Queue/QueueSerializationTest.php
+++ b/core/modules/system/src/Tests/Queue/QueueSerializationTest.php
@@ -1,12 +1,12 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Queue;
+namespace Drupal\system\Tests\Queue;
 
 use Drupal\Core\DependencyInjection\DependencySerializationTrait;
 use Drupal\Core\Form\FormInterface;
 use Drupal\Core\Form\FormState;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\user\Entity\User;
 
 /**
diff --git a/core/tests/Drupal/KernelTests/Core/Queue/QueueTest.php b/core/modules/system/src/Tests/Queue/QueueTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Queue/QueueTest.php
rename to core/modules/system/src/Tests/Queue/QueueTest.php
index 1a2af7d..2c0513c 100644
--- a/core/tests/Drupal/KernelTests/Core/Queue/QueueTest.php
+++ b/core/modules/system/src/Tests/Queue/QueueTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Queue;
+namespace Drupal\system\Tests\Queue;
 
 use Drupal\Core\Database\Database;
 use Drupal\Core\Queue\DatabaseQueue;
 use Drupal\Core\Queue\Memory;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Queues and dequeues a set of items to check the basic queue functionality.
diff --git a/core/tests/Drupal/KernelTests/Core/Render/Element/TableTest.php b/core/modules/system/src/Tests/Render/Element/TableTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Render/Element/TableTest.php
rename to core/modules/system/src/Tests/Render/Element/TableTest.php
index 34cbfc0..efeb2eb 100644
--- a/core/tests/Drupal/KernelTests/Core/Render/Element/TableTest.php
+++ b/core/modules/system/src/Tests/Render/Element/TableTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Render\Element;
+namespace Drupal\system\Tests\Render\Element;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests built-in table theme functions.
@@ -19,6 +19,15 @@ class TableTest extends KernelTestBase {
   public static $modules = ['system', 'form_test'];
 
   /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    \Drupal::service('router.builder')->rebuild();
+  }
+
+  /**
    * Tableheader.js provides 'sticky' table headers, and is included by default.
    */
   function testThemeTableStickyHeaders() {
diff --git a/core/tests/Drupal/KernelTests/Core/Render/ElementInfoIntegrationTest.php b/core/modules/system/src/Tests/Render/ElementInfoIntegrationTest.php
similarity index 93%
rename from core/tests/Drupal/KernelTests/Core/Render/ElementInfoIntegrationTest.php
rename to core/modules/system/src/Tests/Render/ElementInfoIntegrationTest.php
index cd33fcb..5a47787 100644
--- a/core/tests/Drupal/KernelTests/Core/Render/ElementInfoIntegrationTest.php
+++ b/core/modules/system/src/Tests/Render/ElementInfoIntegrationTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Render;
+namespace Drupal\system\Tests\Render;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests the element info.
diff --git a/core/tests/Drupal/KernelTests/Core/Render/RenderCacheTest.php b/core/modules/system/src/Tests/Render/RenderCacheTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Render/RenderCacheTest.php
rename to core/modules/system/src/Tests/Render/RenderCacheTest.php
index 91061ca..370ae58 100644
--- a/core/tests/Drupal/KernelTests/Core/Render/RenderCacheTest.php
+++ b/core/modules/system/src/Tests/Render/RenderCacheTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Render;
+namespace Drupal\system\Tests\Render;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\simpletest\UserCreationTrait;
 
 /**
diff --git a/core/tests/Drupal/KernelTests/Core/RouteProcessor/RouteNoneTest.php b/core/modules/system/src/Tests/RouteProcessor/RouteNoneTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/RouteProcessor/RouteNoneTest.php
rename to core/modules/system/src/Tests/RouteProcessor/RouteNoneTest.php
index 2b59933..8457934 100644
--- a/core/tests/Drupal/KernelTests/Core/RouteProcessor/RouteNoneTest.php
+++ b/core/modules/system/src/Tests/RouteProcessor/RouteNoneTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\KernelTests\Core\RouteProcessor;
+namespace Drupal\system\Tests\RouteProcessor;
 
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\GeneratedUrl;
 use Drupal\Core\Render\BubbleableMetadata;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Cmf\Component\Routing\RouteObjectInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Routing\Route;
@@ -37,6 +37,8 @@ class RouteNoneTest extends KernelTestBase {
   protected function setUp() {
     parent::setUp();
 
+    \Drupal::service('router.builder')->rebuild();
+
     $this->urlGenerator = \Drupal::urlGenerator();
   }
 
diff --git a/core/tests/Drupal/KernelTests/Core/RouteProcessor/RouteProcessorCurrentIntegrationTest.php b/core/modules/system/src/Tests/RouteProcessor/RouteProcessorCurrentIntegrationTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/RouteProcessor/RouteProcessorCurrentIntegrationTest.php
rename to core/modules/system/src/Tests/RouteProcessor/RouteProcessorCurrentIntegrationTest.php
index ea6a9c2..a09621b 100644
--- a/core/tests/Drupal/KernelTests/Core/RouteProcessor/RouteProcessorCurrentIntegrationTest.php
+++ b/core/modules/system/src/Tests/RouteProcessor/RouteProcessorCurrentIntegrationTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\KernelTests\Core\RouteProcessor;
+namespace Drupal\system\Tests\RouteProcessor;
 
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\GeneratedUrl;
 use Drupal\Core\Render\BubbleableMetadata;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Cmf\Component\Routing\RouteObjectInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Routing\Route;
@@ -36,6 +36,8 @@ class RouteProcessorCurrentIntegrationTest extends KernelTestBase {
   protected function setUp() {
     parent::setUp();
 
+    \Drupal::service('router.builder')->rebuild();
+
     $this->urlGenerator = \Drupal::urlGenerator();
   }
 
diff --git a/core/tests/Drupal/KernelTests/Core/Routing/ContentNegotiationRoutingTest.php b/core/modules/system/src/Tests/Routing/ContentNegotiationRoutingTest.php
similarity index 91%
rename from core/tests/Drupal/KernelTests/Core/Routing/ContentNegotiationRoutingTest.php
rename to core/modules/system/src/Tests/Routing/ContentNegotiationRoutingTest.php
index 812e437..8a9a26c 100644
--- a/core/tests/Drupal/KernelTests/Core/Routing/ContentNegotiationRoutingTest.php
+++ b/core/modules/system/src/Tests/Routing/ContentNegotiationRoutingTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Routing;
+namespace Drupal\system\Tests\Routing;
 
 use Drupal\Core\DependencyInjection\ContainerBuilder;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 
@@ -17,15 +17,25 @@ class ContentNegotiationRoutingTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['conneg_test'];
+  public static $modules = ['system', 'conneg_test'];
 
   /**
    * {@inheritdoc}
    */
-  public function register(ContainerBuilder $container) {
-    parent::register($container);
+  protected function setUp() {
+    \Drupal::unsetContainer();
+    parent::setUp();
 
-    // \Drupal\KernelTests\KernelTestBase::register() removes the alias path
+    \Drupal::service('router.builder')->rebuild();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function containerBuild(ContainerBuilder $container) {
+    parent::containerBuild($container);
+
+    // \Drupal\simpletest\KernelTestBase::containerBuild() removes the alias path
     // processor.
     if ($container->hasDefinition('path_processor_alias')) {
       $definition = $container->getDefinition('path_processor_alias');
diff --git a/core/tests/Drupal/KernelTests/Core/Routing/ExceptionHandlingTest.php b/core/modules/system/src/Tests/Routing/ExceptionHandlingTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Routing/ExceptionHandlingTest.php
rename to core/modules/system/src/Tests/Routing/ExceptionHandlingTest.php
index ab9cd92..962f2dd 100644
--- a/core/tests/Drupal/KernelTests/Core/Routing/ExceptionHandlingTest.php
+++ b/core/modules/system/src/Tests/Routing/ExceptionHandlingTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Routing;
+namespace Drupal\system\Tests\Routing;
 
 use Drupal\Component\Utility\Html;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 
@@ -26,6 +26,7 @@ protected function setUp() {
     parent::setUp();
 
     $this->installEntitySchema('date_format');
+    \Drupal::service('router.builder')->rebuild();
   }
 
   /**
diff --git a/core/tests/Drupal/KernelTests/Core/Routing/MatcherDumperTest.php b/core/modules/system/src/Tests/Routing/MatcherDumperTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Routing/MatcherDumperTest.php
rename to core/modules/system/src/Tests/Routing/MatcherDumperTest.php
index 7c06df0..102aa1a 100644
--- a/core/tests/Drupal/KernelTests/Core/Routing/MatcherDumperTest.php
+++ b/core/modules/system/src/Tests/Routing/MatcherDumperTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Routing;
+namespace Drupal\system\Tests\Routing;
 
 use Drupal\Core\KeyValueStore\KeyValueMemoryFactory;
 use Drupal\Core\State\State;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
 use Drupal\Core\Database\Database;
diff --git a/core/tests/Drupal/KernelTests/Core/Routing/RouteProviderTest.php b/core/modules/system/src/Tests/Routing/RouteProviderTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Routing/RouteProviderTest.php
rename to core/modules/system/src/Tests/Routing/RouteProviderTest.php
index d28ca5e..056a37a 100644
--- a/core/tests/Drupal/KernelTests/Core/Routing/RouteProviderTest.php
+++ b/core/modules/system/src/Tests/Routing/RouteProviderTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\KernelTests\Core\Routing\RouteProviderTest.
+ * Contains \Drupal\system\Tests\Routing\RouteProviderTest.
  */
 
-namespace Drupal\KernelTests\Core\Routing;
+namespace Drupal\system\Tests\Routing;
 
 use Drupal\Core\Cache\MemoryBackend;
 use Drupal\Core\Database\Database;
@@ -15,14 +15,14 @@
 use Drupal\Core\Routing\MatcherDumper;
 use Drupal\Core\Routing\RouteProvider;
 use Drupal\Core\State\State;
-use Drupal\KernelTests\KernelTestBase;
 use Drupal\Tests\Core\Routing\RoutingFixtures;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
 use Symfony\Component\Routing\Exception\RouteNotFoundException;
 use Symfony\Component\Routing\Route;
 use Symfony\Component\Routing\RouteCollection;
+use Symfony\Component\Routing\Exception\ResourceNotFoundException;
 
 /**
  * Confirm that the default route provider is working correctly.
@@ -91,8 +91,8 @@ protected function setUp() {
   /**
    * {@inheritdoc}
    */
-  public function register(ContainerBuilder $container) {
-    parent::register($container);
+  public function containerBuild(ContainerBuilder $container) {
+    parent::containerBuild($container); // TODO: Change the autogenerated stub
 
     // Readd the incoming path alias for these tests.
     if ($container->hasDefinition('path_processor_alias')) {
diff --git a/core/tests/Drupal/KernelTests/Core/Routing/UrlIntegrationTest.php b/core/modules/system/src/Tests/Routing/UrlIntegrationTest.php
similarity index 92%
rename from core/tests/Drupal/KernelTests/Core/Routing/UrlIntegrationTest.php
rename to core/modules/system/src/Tests/Routing/UrlIntegrationTest.php
index a70cc1f..bf927fe 100644
--- a/core/tests/Drupal/KernelTests/Core/Routing/UrlIntegrationTest.php
+++ b/core/modules/system/src/Tests/Routing/UrlIntegrationTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Routing;
+namespace Drupal\system\Tests\Routing;
 
 use Drupal\Core\Url;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\user\Entity\Role;
 use Drupal\user\Entity\User;
 
@@ -25,6 +25,7 @@ class UrlIntegrationTest extends KernelTestBase {
    * Ensures that the access() method on \Drupal\Core\Url objects works.
    */
   public function testAccess() {
+    \Drupal::service('router.builder')->rebuild();
     /** @var \Drupal\user\RoleInterface $role_with_access */
     $role_with_access = Role::create(['id' => 'role_with_access']);
     $role_with_access->grantPermission('administer users');
diff --git a/core/tests/Drupal/KernelTests/Core/ServiceProvider/ServiceProviderTest.php b/core/modules/system/src/Tests/ServiceProvider/ServiceProviderTest.php
similarity index 93%
rename from core/tests/Drupal/KernelTests/Core/ServiceProvider/ServiceProviderTest.php
rename to core/modules/system/src/Tests/ServiceProvider/ServiceProviderTest.php
index 2995c97..9d1cc72 100644
--- a/core/tests/Drupal/KernelTests/Core/ServiceProvider/ServiceProviderTest.php
+++ b/core/modules/system/src/Tests/ServiceProvider/ServiceProviderTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\ServiceProvider;
+namespace Drupal\system\Tests\ServiceProvider;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests service provider registration to the DIC.
@@ -16,7 +16,7 @@ class ServiceProviderTest extends KernelTestBase {
    *
    * @var array
    */
-  public static $modules = array('file', 'service_provider_test', 'system');
+  public static $modules = array('file', 'service_provider_test');
 
   /**
    * Tests that services provided by module service providers get registered to the DIC.
diff --git a/core/tests/Drupal/KernelTests/Core/Session/AccountSwitcherTest.php b/core/modules/system/src/Tests/Session/AccountSwitcherTest.php
similarity index 96%
rename from core/tests/Drupal/KernelTests/Core/Session/AccountSwitcherTest.php
rename to core/modules/system/src/Tests/Session/AccountSwitcherTest.php
index 0e6fa8a..7f771f6 100644
--- a/core/tests/Drupal/KernelTests/Core/Session/AccountSwitcherTest.php
+++ b/core/modules/system/src/Tests/Session/AccountSwitcherTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Session;
+namespace Drupal\system\Tests\Session;
 
 use Drupal\Core\Session\UserSession;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Test case for account switching.
diff --git a/core/modules/system/tests/src/Kernel/System/CronQueueTest.php b/core/modules/system/src/Tests/System/CronQueueTest.php
similarity index 56%
rename from core/modules/system/tests/src/Kernel/System/CronQueueTest.php
rename to core/modules/system/src/Tests/System/CronQueueTest.php
index c51ee5a..25fef44 100644
--- a/core/modules/system/tests/src/Kernel/System/CronQueueTest.php
+++ b/core/modules/system/src/Tests/System/CronQueueTest.php
@@ -1,51 +1,22 @@
 <?php
 
-namespace Drupal\Tests\system\Kernel\System;
+namespace Drupal\system\Tests\System;
 
-use Drupal\Core\Database\Database;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\WebTestBase;
 
 /**
  * Tests the Cron Queue runner.
  *
  * @group system
  */
-class CronQueueTest extends KernelTestBase {
+class CronQueueTest extends WebTestBase {
 
   /**
    * The modules to enable.
    *
    * @var array
    */
-  public static $modules = ['system', 'cron_queue_test'];
-
-  /**
-   * The database connection.
-   *
-   * @var \Drupal\Core\Database\Connection
-   */
-  protected $connection;
-
-  /**
-   * The cron service.
-   *
-   * @var \Drupal\Core\Cron
-   */
-  protected $cron;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    // These additional tables are necessary because $this->cron->run() calls
-    // system_cron().
-    $this->installSchema('system', ['key_value_expire']);
-
-    $this->connection = Database::getConnection();
-    $this->cron = \Drupal::service('cron');
-  }
+  public static $modules = array('cron_queue_test');
 
   /**
    * Tests that exceptions thrown by workers are handled properly.
@@ -59,25 +30,11 @@ public function testExceptions() {
 
     // Run cron; the worker for this queue should throw an exception and handle
     // it.
-    $this->cron->run();
-    $this->assertEqual(\Drupal::state()->get('cron_queue_test_exception'), 1);
+    $this->cronRun();
 
     // The item should be left in the queue.
     $this->assertEqual($queue->numberOfItems(), 1, 'Failing item still in the queue after throwing an exception.');
 
-    // Expire the queue item manually. system_cron() relies in REQUEST_TIME to
-    // find queue items whose expire field needs to be reset to 0. This is a
-    // Kernel test, so REQUEST_TIME won't change when cron runs.
-    // @see system_cron()
-    // @see \Drupal\Core\Cron::processQueues()
-    $this->connection->update('queue')
-      ->condition('name', 'cron_queue_test_exception')
-      ->fields(['expire' => REQUEST_TIME - 1])
-      ->execute();
-    $this->cron->run();
-    $this->assertEqual(\Drupal::state()->get('cron_queue_test_exception'), 2);
-    $this->assertEqual($queue->numberOfItems(), 0, 'Item was processed and removed from the queue.');
-
     // Get the queue to test the specific SuspendQueueException.
     $queue = $this->container->get('queue')->get('cron_queue_test_broken_queue');
 
@@ -88,7 +45,7 @@ public function testExceptions() {
 
     // Run cron; the worker for this queue should process as far as the crashing
     // item.
-    $this->cron->run();
+    $this->cronRun();
 
     // Only one item should have been processed.
     $this->assertEqual($queue->numberOfItems(), 2, 'Failing queue stopped processing at the failing item.');
@@ -103,8 +60,7 @@ public function testExceptions() {
     // Test the requeueing functionality.
     $queue = $this->container->get('queue')->get('cron_queue_test_requeue_exception');
     $queue->createItem([]);
-    $this->cron->run();
-
+    $this->cronRun();
     $this->assertEqual(\Drupal::state()->get('cron_queue_test_requeue_exception'), 2);
     $this->assertFalse($queue->numberOfItems());
   }
diff --git a/core/modules/system/src/Tests/System/DateTimeTest.php b/core/modules/system/src/Tests/System/DateTimeTest.php
index 9ca050f..f1202cc 100644
--- a/core/modules/system/src/Tests/System/DateTimeTest.php
+++ b/core/modules/system/src/Tests/System/DateTimeTest.php
@@ -45,7 +45,7 @@ function testTimeZoneHandling() {
       ->set('timezone.default', 'Pacific/Honolulu')
       ->set('timezone.user.configurable', 0)
       ->save();
-    DateFormat::load('medium')
+    entity_load('date_format', 'medium')
       ->setPattern('Y-m-d H:i:s O')
       ->save();
 
@@ -120,7 +120,7 @@ function testDateFormatConfiguration() {
     $this->assertRaw(t('The date format %format has been deleted.', array('%format' => $name)), 'Custom date format removed.');
 
     // Make sure the date does not exist in config.
-    $date_format = DateFormat::load($date_format_id);
+    $date_format = entity_load('date_format', $date_format_id);
     $this->assertFalse($date_format);
 
     // Add a new date format with an existing format.
diff --git a/core/tests/Drupal/KernelTests/Core/EventSubscriber/IgnoreReplicaSubscriberTest.php b/core/modules/system/src/Tests/System/IgnoreReplicaSubscriberTest.php
similarity index 94%
rename from core/tests/Drupal/KernelTests/Core/EventSubscriber/IgnoreReplicaSubscriberTest.php
rename to core/modules/system/src/Tests/System/IgnoreReplicaSubscriberTest.php
index 5131537..8b35bdf 100644
--- a/core/tests/Drupal/KernelTests/Core/EventSubscriber/IgnoreReplicaSubscriberTest.php
+++ b/core/modules/system/src/Tests/System/IgnoreReplicaSubscriberTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\KernelTests\Core\EventSubscriber;
+namespace Drupal\system\Tests\System;
 
 use Drupal\Core\Database\Database;
 use Drupal\Core\EventSubscriber\ReplicaDatabaseIgnoreSubscriber;
 use Drupal\Core\DrupalKernel;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\Event\GetResponseEvent;
diff --git a/core/modules/system/tests/src/Kernel/System/InfoAlterTest.php b/core/modules/system/src/Tests/System/InfoAlterTest.php
similarity index 93%
rename from core/modules/system/tests/src/Kernel/System/InfoAlterTest.php
rename to core/modules/system/src/Tests/System/InfoAlterTest.php
index 8e6f79e..b09893b 100644
--- a/core/modules/system/tests/src/Kernel/System/InfoAlterTest.php
+++ b/core/modules/system/src/Tests/System/InfoAlterTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\Tests\system\Kernel\System;
+namespace Drupal\system\Tests\System;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests the effectiveness of hook_system_info_alter().
diff --git a/core/modules/system/src/Tests/System/ResponseGeneratorTest.php b/core/modules/system/src/Tests/System/ResponseGeneratorTest.php
index d0d22a2..9d6cf4f 100644
--- a/core/modules/system/src/Tests/System/ResponseGeneratorTest.php
+++ b/core/modules/system/src/Tests/System/ResponseGeneratorTest.php
@@ -16,7 +16,7 @@ class ResponseGeneratorTest extends RESTTestBase {
    *
    * @var array
    */
-  public static $modules = array('hal', 'rest', 'node', 'basic_auth');
+  public static $modules = array('hal', 'rest', 'node');
 
   /**
    * {@inheritdoc}
diff --git a/core/tests/Drupal/KernelTests/Core/Site/SettingsRewriteTest.php b/core/modules/system/src/Tests/System/SettingsRewriteTest.php
similarity index 88%
rename from core/tests/Drupal/KernelTests/Core/Site/SettingsRewriteTest.php
rename to core/modules/system/src/Tests/System/SettingsRewriteTest.php
index 948236b..630db65 100644
--- a/core/tests/Drupal/KernelTests/Core/Site/SettingsRewriteTest.php
+++ b/core/modules/system/src/Tests/System/SettingsRewriteTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Site;
+namespace Drupal\system\Tests\System;
 
 use Drupal\Core\Site\Settings;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests the drupal_rewrite_settings() function.
@@ -11,7 +11,6 @@
  * @group system
  */
 class SettingsRewriteTest extends KernelTestBase {
-
   /**
    * Tests the drupal_rewrite_settings() function.
    */
@@ -97,9 +96,9 @@ function testDrupalRewriteSettings() {
     );
     foreach ($tests as $test) {
       $filename = Settings::get('file_public_path', $site_path . '/files') . '/mock_settings.php';
-      file_put_contents($filename, "<?php\n" . $test['original'] . "\n");
+      file_put_contents(\Drupal::root() . '/' . $filename, "<?php\n" . $test['original'] . "\n");
       drupal_rewrite_settings($test['settings'], $filename);
-      $this->assertEqual(file_get_contents($filename), "<?php\n" . $test['expected'] . "\n");
+      $this->assertEqual(file_get_contents(\Drupal::root() . '/' . $filename), "<?php\n" . $test['expected'] . "\n");
     }
 
     // Test that <?php gets added to the start of an empty settings file.
@@ -115,13 +114,13 @@ function testDrupalRewriteSettings() {
     );
     // Make an empty file.
     $filename = Settings::get('file_public_path', $site_path . '/files') . '/mock_settings.php';
-    file_put_contents($filename, "");
+    file_put_contents(\Drupal::root() . '/' . $filename, "");
 
     // Write the setting to the file.
     drupal_rewrite_settings($test['settings'], $filename);
 
     // Check that the result is just the php opening tag and the settings.
-    $this->assertEqual(file_get_contents($filename), "<?php\n" . $test['expected'] . "\n");
+    $this->assertEqual(file_get_contents(\Drupal::root() . '/' . $filename), "<?php\n" . $test['expected'] . "\n");
   }
 
 }
diff --git a/core/modules/system/src/Tests/System/SiteMaintenanceTest.php b/core/modules/system/src/Tests/System/SiteMaintenanceTest.php
index 49aff66..6a86083 100644
--- a/core/modules/system/src/Tests/System/SiteMaintenanceTest.php
+++ b/core/modules/system/src/Tests/System/SiteMaintenanceTest.php
@@ -36,7 +36,7 @@ protected function setUp() {
   }
 
   /**
-   * Verifies site maintenance mode functionality.
+   * Verify site maintenance mode functionality.
    */
   protected function testSiteMaintenance() {
     $this->drupalGet(Url::fromRoute('user.page'));
@@ -131,20 +131,4 @@ protected function testSiteMaintenance() {
     $this->assertEqual('Site under maintenance', $this->cssSelect('main h1')[0]);
   }
 
-  /**
-   * Tests responses to non-HTML requests when in maintenance mode.
-   */
-  public function testNonHtmlRequest() {
-    $this->drupalLogout();
-    \Drupal::state()->set('system.maintenance_mode', TRUE);
-    $formats = ['json', 'xml', 'non-existing'];
-    foreach ($formats as $format) {
-      $this->pass('Testing format ' . $format);
-      $this->drupalGet('<front>', ['query' => ['_format' => $format]]);
-      $this->assertResponse(503);
-      $this->assertRaw('Drupal is currently under maintenance. We should be back shortly. Thank you for your patience.');
-      $this->assertHeader('Content-Type', 'text/plain; charset=UTF-8');
-    }
-  }
-
 }
diff --git a/core/modules/system/src/Tests/System/StatusTest.php b/core/modules/system/src/Tests/System/StatusTest.php
index c170316..525b079 100644
--- a/core/modules/system/src/Tests/System/StatusTest.php
+++ b/core/modules/system/src/Tests/System/StatusTest.php
@@ -24,16 +24,6 @@ class StatusTest extends WebTestBase {
   protected function setUp() {
     parent::setUp();
 
-    // Unset the sync directory in settings.php to trigger $config_directories
-    // error.
-    $settings['config_directories']  = array(
-      CONFIG_SYNC_DIRECTORY => (object) array(
-        'value' => '',
-        'required' => TRUE,
-      ),
-    );
-    $this->writeSettings($settings);
-
     $admin_user = $this->drupalCreateUser(array(
       'administer site configuration',
     ));
@@ -70,9 +60,6 @@ public function testStatusPage() {
     // If a module is fully installed no pending updates exists.
     $this->assertNoText(t('Out of date'));
 
-    // The global $config_directories is not properly formed.
-    $this->assertRaw(t('Your %file file must define the $config_directories variable as an array containing the names of directories in which configuration files can be found. It must contain a %sync_key key.', array('%file' => $this->siteDirectory . '/settings.php', '%sync_key' => CONFIG_SYNC_DIRECTORY)));
-
     // Set the schema version of update_test_postupdate to a lower version, so
     // update_test_postupdate_update_8001() needs to be executed.
     drupal_set_installed_schema_version('update_test_postupdate', 8000);
diff --git a/core/modules/system/src/Tests/System/ThemeTest.php b/core/modules/system/src/Tests/System/ThemeTest.php
index e01f28a..30bd9a2 100644
--- a/core/modules/system/src/Tests/System/ThemeTest.php
+++ b/core/modules/system/src/Tests/System/ThemeTest.php
@@ -201,18 +201,6 @@ function testThemeSettings() {
     $this->assertLink($theme_handler->getName('stable'));
     $this->drupalGet('admin/appearance/settings/stable');
     $this->assertResponse(200, 'The theme settings form URL for a hidden theme that is the admin theme is available.');
-
-    // Ensure default logo and favicons are not triggering custom path
-    // validation errors if their custom paths are set on the form.
-    $edit = [
-      'default_logo' => TRUE,
-      'logo_path' => 'public://whatever.png',
-      'default_favicon' => TRUE,
-      'favicon_path' => 'public://whatever.ico',
-    ];
-    $this->drupalPostForm('admin/appearance/settings', $edit, 'Save configuration');
-    $this->assertNoText('The custom logo path is invalid.');
-    $this->assertNoText('The custom favicon path is invalid.');
   }
 
   /**
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/ImageTest.php b/core/modules/system/src/Tests/Theme/ImageTest.php
similarity index 96%
rename from core/tests/Drupal/KernelTests/Core/Theme/ImageTest.php
rename to core/modules/system/src/Tests/Theme/ImageTest.php
index 51608eb..b5323f4 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/ImageTest.php
+++ b/core/modules/system/src/Tests/Theme/ImageTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Theme;
+namespace Drupal\system\Tests\Theme;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Symfony\Component\HttpFoundation\Request;
 
 /**
@@ -33,7 +33,7 @@ protected function setUp() {
     // the Request containing the correct hostname. KernelTestBase doesn't set
     // it, so push another request onto the stack to ensure it's correct.
     $request = Request::create('/', 'GET', [], [], [], $_SERVER);
-    $this->container = \Drupal::service('kernel')->getContainer();
+    $this->container = $this->kernel->getContainer();
     $this->container->get('request_stack')->push($request);
 
     $this->testImages = array(
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/MessageTest.php b/core/modules/system/src/Tests/Theme/MessageTest.php
similarity index 90%
rename from core/tests/Drupal/KernelTests/Core/Theme/MessageTest.php
rename to core/modules/system/src/Tests/Theme/MessageTest.php
index 76e14e9..6605e81 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/MessageTest.php
+++ b/core/modules/system/src/Tests/Theme/MessageTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Theme;
+namespace Drupal\system\Tests\Theme;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests built-in message theme functions.
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/RegistryTest.php b/core/modules/system/src/Tests/Theme/RegistryTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Theme/RegistryTest.php
rename to core/modules/system/src/Tests/Theme/RegistryTest.php
index 93e931b..a17d8ed 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/RegistryTest.php
+++ b/core/modules/system/src/Tests/Theme/RegistryTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Theme;
+namespace Drupal\system\Tests\Theme;
 
 use Drupal\Core\Theme\Registry;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\Core\Utility\ThemeRegistry;
-use Drupal\KernelTests\KernelTestBase;
 
 /**
  * Tests the behavior of the ThemeRegistry class.
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/StableLibraryOverrideTest.php b/core/modules/system/src/Tests/Theme/StableLibraryOverrideTest.php
similarity index 92%
rename from core/tests/Drupal/KernelTests/Core/Theme/StableLibraryOverrideTest.php
rename to core/modules/system/src/Tests/Theme/StableLibraryOverrideTest.php
index a71c3fe..d7a6541 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/StableLibraryOverrideTest.php
+++ b/core/modules/system/src/Tests/Theme/StableLibraryOverrideTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Theme;
+namespace Drupal\system\Tests\Theme;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests Stable's library overrides.
@@ -49,34 +49,28 @@ class StableLibraryOverrideTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = ['system'];
-
-  /**
-   * {@inheritdoc}
-   */
   protected function setUp() {
     parent::setUp();
 
+    $this->themeManager = $this->container->get('theme.manager');
+    $this->themeInitialization = $this->container->get('theme.initialization');
+    $this->libraryDiscovery = $this->container->get('library.discovery');
+
     $this->container->get('theme_installer')->install(['stable']);
 
     // Enable all core modules.
     $all_modules = system_rebuild_module_data();
     $all_modules = array_filter($all_modules, function ($module) {
-      // Filter contrib, hidden, experimental, already enabled modules, and
-      // modules in the Testing package.
-      if ($module->origin !== 'core' || !empty($module->info['hidden']) || $module->status == TRUE || $module->info['package'] == 'Testing' || $module->info['package'] == 'Core (Experimental)') {
+      // Filter contrib, hidden, already enabled modules and modules in the
+      // Testing package.
+      if ($module->origin !== 'core' || !empty($module->info['hidden']) || $module->status == TRUE || $module->info['package'] == 'Testing') {
         return FALSE;
       }
       return TRUE;
     });
     $this->allModules = array_keys($all_modules);
-    $this->allModules[] = 'system';
     sort($this->allModules);
-    $this->container->get('module_installer')->install($this->allModules);
-
-    $this->themeManager = $this->container->get('theme.manager');
-    $this->themeInitialization = $this->container->get('theme.initialization');
-    $this->libraryDiscovery = $this->container->get('library.discovery');
+    $this->enableModules($this->allModules);
   }
 
   /**
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/StableThemeTest.php b/core/modules/system/src/Tests/Theme/StableThemeTest.php
similarity index 95%
rename from core/tests/Drupal/KernelTests/Core/Theme/StableThemeTest.php
rename to core/modules/system/src/Tests/Theme/StableThemeTest.php
index da585d0..1290847 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/StableThemeTest.php
+++ b/core/modules/system/src/Tests/Theme/StableThemeTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Theme;
+namespace Drupal\system\Tests\Theme;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests the behavior of the Stable theme.
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/ThemeSettingsTest.php b/core/modules/system/src/Tests/Theme/ThemeSettingsTest.php
similarity index 95%
rename from core/tests/Drupal/KernelTests/Core/Theme/ThemeSettingsTest.php
rename to core/modules/system/src/Tests/Theme/ThemeSettingsTest.php
index 6c2dfb3..b7e6866 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/ThemeSettingsTest.php
+++ b/core/modules/system/src/Tests/Theme/ThemeSettingsTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Theme;
+namespace Drupal\system\Tests\Theme;
 
 use Drupal\Core\Config\InstallStorage;
 use Drupal\Core\Extension\ExtensionDiscovery;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests theme settings functionality.
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/TwigEnvironmentTest.php b/core/modules/system/src/Tests/Theme/TwigEnvironmentTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Theme/TwigEnvironmentTest.php
rename to core/modules/system/src/Tests/Theme/TwigEnvironmentTest.php
index deaf033..ef3c4697 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/TwigEnvironmentTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigEnvironmentTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Theme;
+namespace Drupal\system\Tests\Theme;
 
 use Drupal\Component\Utility\Html;
 use Drupal\Core\Site\Settings;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests the twig environment.
@@ -47,7 +47,7 @@ public function testInlineTemplate() {
     $settings['twig_auto_reload'] = TRUE;
 
     new Settings($settings);
-    $this->container = \Drupal::service('kernel')->rebuildContainer();
+    $this->container = $this->kernel->rebuildContainer();
     \Drupal::setContainer($this->container);
 
     $element = array();
diff --git a/core/modules/system/src/Tests/Theme/TwigTransTest.php b/core/modules/system/src/Tests/Theme/TwigTransTest.php
index 6473d6e..65d10a5 100644
--- a/core/modules/system/src/Tests/Theme/TwigTransTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigTransTest.php
@@ -92,30 +92,6 @@ public function testTwigTransTags() {
   }
 
   /**
-   * Test empty Twig "trans" tags.
-   */
-  public function testEmptyTwigTransTags() {
-    $elements = [
-      '#type' => 'inline_template',
-      '#template' => '{% trans %}{% endtrans %}',
-    ];
-    /** @var \Drupal\Core\Render\RendererInterface $renderer */
-    $renderer = \Drupal::service('renderer');
-
-    try {
-      $renderer->renderPlain($elements);
-
-      $this->fail('{% trans %}{% endtrans %} did not throw an exception.');
-    }
-    catch (\Twig_Error_Syntax $e) {
-      $this->assertTrue(strstr($e->getMessage(), '{% trans %} tag cannot be empty'), '{% trans %}{% endtrans %} threw the expected exception.');
-    }
-    catch (\Exception $e) {
-      $this->fail('{% trans %}{% endtrans %} threw an unexpected exception.');
-    }
-  }
-
-  /**
    * Asserts Twig trans tags.
    */
   protected function assertTwigTransTags() {
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php b/core/modules/system/src/Tests/Theme/TwigWhiteListTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php
rename to core/modules/system/src/Tests/Theme/TwigWhiteListTest.php
index 41984d6..7f644fe 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/TwigWhiteListTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigWhiteListTest.php
@@ -1,13 +1,13 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Theme;
+namespace Drupal\system\Tests\Theme;
 
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\KernelTests\KernelTestBase;
 use Drupal\node\Entity\Node;
 use Drupal\node\Entity\NodeType;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\taxonomy\Entity\Term;
 use Drupal\taxonomy\Entity\Vocabulary;
 
diff --git a/core/tests/Drupal/KernelTests/Core/TypedData/TypedDataDefinitionTest.php b/core/modules/system/src/Tests/TypedData/TypedDataDefinitionTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/TypedData/TypedDataDefinitionTest.php
rename to core/modules/system/src/Tests/TypedData/TypedDataDefinitionTest.php
index 4ff9ff6..034987b 100644
--- a/core/tests/Drupal/KernelTests/Core/TypedData/TypedDataDefinitionTest.php
+++ b/core/modules/system/src/Tests/TypedData/TypedDataDefinitionTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\TypedData;
+namespace Drupal\system\Tests\TypedData;
 
 use Drupal\Core\TypedData\ComplexDataDefinitionInterface;
 use Drupal\Core\TypedData\DataDefinition;
@@ -10,7 +10,7 @@
 use Drupal\Core\TypedData\ListDataDefinition;
 use Drupal\Core\TypedData\ListDataDefinitionInterface;
 use Drupal\Core\TypedData\MapDataDefinition;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests deriving metadata of core data types.
diff --git a/core/tests/Drupal/KernelTests/Core/TypedData/TypedDataTest.php b/core/modules/system/src/Tests/TypedData/TypedDataTest.php
similarity index 99%
rename from core/tests/Drupal/KernelTests/Core/TypedData/TypedDataTest.php
rename to core/modules/system/src/Tests/TypedData/TypedDataTest.php
index 08f27b3..8473485 100644
--- a/core/tests/Drupal/KernelTests/Core/TypedData/TypedDataTest.php
+++ b/core/modules/system/src/Tests/TypedData/TypedDataTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\TypedData;
+namespace Drupal\system\Tests\TypedData;
 
 use Drupal\Core\Datetime\DrupalDateTime;
 use Drupal\Core\Field\BaseFieldDefinition;
@@ -17,7 +17,7 @@
 use Drupal\Core\TypedData\Type\UriInterface;
 use Drupal\Core\TypedData\TypedDataInterface;
 use Drupal\file\Entity\File;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests the functionality of all core data types.
diff --git a/core/tests/Drupal/KernelTests/Core/Update/CompatibilityFixTest.php b/core/modules/system/src/Tests/Update/CompatibilityFixTest.php
similarity index 91%
rename from core/tests/Drupal/KernelTests/Core/Update/CompatibilityFixTest.php
rename to core/modules/system/src/Tests/Update/CompatibilityFixTest.php
index ee1b6e1..6689c2f 100644
--- a/core/tests/Drupal/KernelTests/Core/Update/CompatibilityFixTest.php
+++ b/core/modules/system/src/Tests/Update/CompatibilityFixTest.php
@@ -1,8 +1,8 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Update;
+namespace Drupal\system\Tests\Update;
 
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests that extensions that are incompatible with the current core version are disabled.
@@ -11,11 +11,6 @@
  */
 class CompatibilityFixTest extends KernelTestBase {
 
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['system'];
-
   protected function setUp() {
     parent::setUp();
     require_once \Drupal::root() . '/core/includes/update.inc';
diff --git a/core/tests/Drupal/KernelTests/Core/Command/DbDumpTest.php b/core/modules/system/src/Tests/Update/DbDumpTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Command/DbDumpTest.php
rename to core/modules/system/src/Tests/Update/DbDumpTest.php
index 8129410..3a6a927 100644
--- a/core/tests/Drupal/KernelTests/Core/Command/DbDumpTest.php
+++ b/core/modules/system/src/Tests/Update/DbDumpTest.php
@@ -1,13 +1,13 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Command;
+namespace Drupal\system\Tests\Update;
 
 use Drupal\Component\Utility\SafeMarkup;
 use Drupal\Core\Command\DbDumpApplication;
 use Drupal\Core\Config\DatabaseStorage;
 use Drupal\Core\Database\Database;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\user\Entity\User;
 use Symfony\Component\Console\Tester\CommandTester;
 use Symfony\Component\DependencyInjection\Reference;
@@ -66,8 +66,8 @@ class DbDumpTest extends KernelTestBase {
    *
    * Register a database cache backend rather than memory-based.
    */
-  public function register(ContainerBuilder $container) {
-    parent::register($container);
+  public function containerBuild(ContainerBuilder $container) {
+    parent::containerBuild($container);
     $container->register('cache_factory', 'Drupal\Core\Cache\DatabaseBackendFactory')
       ->addArgument(new Reference('database'))
       ->addArgument(new Reference('cache_tags.invalidator.checksum'));
@@ -121,8 +121,8 @@ protected function setUp() {
       'cachetags',
       'config',
       'cache_bootstrap',
-      'cache_config',
       'cache_data',
+      'cache_default',
       'cache_discovery',
       'cache_entity',
       'file_managed',
diff --git a/core/modules/system/src/Tests/Update/UpdatePathTestBase.php b/core/modules/system/src/Tests/Update/UpdatePathTestBase.php
index 82169ad..19e1fcf 100644
--- a/core/modules/system/src/Tests/Update/UpdatePathTestBase.php
+++ b/core/modules/system/src/Tests/Update/UpdatePathTestBase.php
@@ -265,15 +265,7 @@ protected function runUpdates() {
     }
 
     // Ensure that the update hooks updated all entity schema.
-    $needs_updates = \Drupal::entityDefinitionUpdateManager()->needsUpdates();
-    $this->assertFalse($needs_updates, 'After all updates ran, entity schema is up to date.');
-    if ($needs_updates) {
-      foreach (\Drupal::entityDefinitionUpdateManager()->getChangeSummary() as $entity_type_id => $summary) {
-        foreach ($summary as $message) {
-          $this->fail($message);
-        }
-      }
-    }
+    $this->assertFalse(\Drupal::service('entity.definition_update_manager')->needsUpdates(), 'After all updates ran, entity schema is up to date.');
   }
 
   /**
diff --git a/core/tests/Drupal/KernelTests/Core/Url/LinkGenerationTest.php b/core/modules/system/src/Tests/Utility/LinkGenerationTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/Url/LinkGenerationTest.php
rename to core/modules/system/src/Tests/Utility/LinkGenerationTest.php
index 3d7ce5e..fabb6c7 100644
--- a/core/tests/Drupal/KernelTests/Core/Url/LinkGenerationTest.php
+++ b/core/modules/system/src/Tests/Utility/LinkGenerationTest.php
@@ -1,11 +1,11 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Url;
+namespace Drupal\system\Tests\Utility;
 
 use Drupal\Component\Render\MarkupInterface;
 use Drupal\Core\Render\RenderContext;
 use Drupal\Core\Url;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests link generation with hooks.
diff --git a/core/tests/Drupal/KernelTests/Core/TypedData/AllowedValuesConstraintValidatorTest.php b/core/modules/system/src/Tests/Validation/AllowedValuesConstraintValidatorTest.php
similarity index 95%
rename from core/tests/Drupal/KernelTests/Core/TypedData/AllowedValuesConstraintValidatorTest.php
rename to core/modules/system/src/Tests/Validation/AllowedValuesConstraintValidatorTest.php
index 4a23fbb..3970166 100644
--- a/core/tests/Drupal/KernelTests/Core/TypedData/AllowedValuesConstraintValidatorTest.php
+++ b/core/modules/system/src/Tests/Validation/AllowedValuesConstraintValidatorTest.php
@@ -1,9 +1,9 @@
 <?php
 
-namespace Drupal\KernelTests\Core\TypedData;
+namespace Drupal\system\Tests\Validation;
 
 use Drupal\Core\TypedData\DataDefinition;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests AllowedValues validation constraint with both valid and invalid values.
diff --git a/core/tests/Drupal/KernelTests/Core/TypedData/ComplexDataConstraintValidatorTest.php b/core/modules/system/src/Tests/Validation/ComplexDataConstraintValidatorTest.php
similarity index 97%
rename from core/tests/Drupal/KernelTests/Core/TypedData/ComplexDataConstraintValidatorTest.php
rename to core/modules/system/src/Tests/Validation/ComplexDataConstraintValidatorTest.php
index 078cb7a..d75d405 100644
--- a/core/tests/Drupal/KernelTests/Core/TypedData/ComplexDataConstraintValidatorTest.php
+++ b/core/modules/system/src/Tests/Validation/ComplexDataConstraintValidatorTest.php
@@ -1,10 +1,10 @@
 <?php
 
-namespace Drupal\KernelTests\Core\TypedData;
+namespace Drupal\system\Tests\Validation;
 
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\Core\TypedData\MapDataDefinition;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests ComplexData validation constraint with both valid and invalid values
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index b3a0ec1..cdaeba6 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -549,22 +549,15 @@ function system_requirements($phase) {
   // defined, the installer will create a valid config directory later, but
   // during runtime we must always display an error.
   if (!empty($GLOBALS['config_directories'])) {
-    foreach (array_keys(array_filter($GLOBALS['config_directories'])) as $type) {
-      $directory = config_get_config_directory($type);
-      if (!is_dir($directory)) {
-        $requirements['config directory ' . $type] = array(
-          'title' => t('Configuration directory: %type', ['%type' => $type]),
-          'description' => t('The directory %directory does not exist.', array('%directory' => $directory)),
-          'severity' => REQUIREMENT_ERROR,
-        );
-      }
+    foreach ($GLOBALS['config_directories'] as $type => $directory) {
+      $directories[] = config_get_config_directory($type);
     }
   }
-  if ($phase != 'install' && (empty($GLOBALS['config_directories']) || empty($GLOBALS['config_directories'][CONFIG_SYNC_DIRECTORY]) )) {
+  elseif ($phase != 'install') {
     $requirements['config directories'] = array(
       'title' => t('Configuration directories'),
       'value' => t('Not present'),
-      'description' => t('Your %file file must define the $config_directories variable as an array containing the names of directories in which configuration files can be found. It must contain a %sync_key key.', array('%file' => $site_path . '/settings.php', '%sync_key' => CONFIG_SYNC_DIRECTORY)),
+      'description' => t('Your %file file must define the $config_directories variable as an array containing the name of a directories in which configuration files can be written.', array('%file' => $site_path . '/settings.php')),
       'severity' => REQUIREMENT_ERROR,
     );
   }
@@ -678,7 +671,7 @@ function system_requirements($phase) {
         ];
       }
 
-      $entity_update_issues = \Drupal::service('renderer')->renderPlain($build);
+      $entity_update_issues = \Drupal::service('renderer')->render($build);
       $requirements['entity_update']['severity'] = REQUIREMENT_ERROR;
       $requirements['entity_update']['value'] = t('Mismatched entity and/or field definitions');
       $requirements['entity_update']['description'] = t('The following changes were detected in the entity type and field definitions. @updates', ['@updates' => $entity_update_issues]);
@@ -804,6 +797,22 @@ function system_requirements($phase) {
     }
   }
 
+  // Check if the Twig C extension is available.
+  if ($phase == 'runtime') {
+    $url = 'http://twig.sensiolabs.org/doc/installation.html#installing-the-c-extension';
+    $requirements['twig_c_extension'] = [
+      'title' => t('Twig C extension'),
+      'severity' => REQUIREMENT_INFO,
+    ];
+    if (!function_exists('twig_template_get_attributes')) {
+      $requirements['twig_c_extension']['value'] = t('Not available');
+      $requirements['twig_c_extension']['description'] = t('Enabling the Twig C extension can greatly increase rendering performance. See <a href=":url">the installation instructions</a> for more detail.', [':url' => $url]);
+    }
+    else {
+      $requirements['twig_c_extension']['description'] = t('The <a href=":url">Twig C extension</a> is available', [':url' => $url]);
+    }
+  }
+
   // Check xdebug.max_nesting_level, as some pages will not work if it is too
   // low.
   if (extension_loaded('xdebug')) {
@@ -1122,11 +1131,7 @@ function system_update_8004() {
   $manager = \Drupal::entityDefinitionUpdateManager();
   foreach (array_keys(\Drupal::entityManager()
     ->getDefinitions()) as $entity_type_id) {
-    // Only update the entity type if it already exists. This condition is
-    // needed in case new entity types are introduced after this update.
-    if ($entity_type = $manager->getEntityType($entity_type_id)) {
-      $manager->updateEntityType($entity_type);
-    }
+    $manager->updateEntityType($manager->getEntityType($entity_type_id));
   }
 }
 
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 04c428a..738b52e 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -1286,15 +1286,8 @@ function system_cron() {
   }
 
   // Clean up any garbage in the queue service.
-  $queue_worker_manager = \Drupal::service('plugin.manager.queue_worker');
-  $queue_factory = \Drupal::service('queue');
-
-  foreach (array_keys($queue_worker_manager->getDefinitions()) as $queue_name) {
-    $queue = $queue_factory->get($queue_name);
-
-    if ($queue instanceof QueueGarbageCollectionInterface) {
-      $queue->garbageCollection();
-    }
+  if (\Drupal::service('queue') instanceof QueueGarbageCollectionInterface) {
+    \Drupal::service('queue')->garbageCollection();
   }
 
   // Clean up PHP storage.
diff --git a/core/modules/system/templates/block--system-menu-block.html.twig b/core/modules/system/templates/block--system-menu-block.html.twig
index 6113bc2..8f4548c 100644
--- a/core/modules/system/templates/block--system-menu-block.html.twig
+++ b/core/modules/system/templates/block--system-menu-block.html.twig
@@ -40,7 +40,7 @@
     {% set title_attributes = title_attributes.addClass('visually-hidden') %}
   {% endif %}
   {{ title_prefix }}
-  <h2{{ title_attributes.setAttribute('id', heading_id) }}>{{ configuration.label }}</h2>
+  <h2{{ title_attributes }}>{{ configuration.label }}</h2>
   {{ title_suffix }}
 
   {# Menu. #}
diff --git a/core/modules/system/templates/breadcrumb.html.twig b/core/modules/system/templates/breadcrumb.html.twig
index 0331409..91d8376 100644
--- a/core/modules/system/templates/breadcrumb.html.twig
+++ b/core/modules/system/templates/breadcrumb.html.twig
@@ -11,7 +11,7 @@
 #}
 {% if breadcrumb %}
   <nav role="navigation" aria-labelledby="system-breadcrumb">
-    <h2 id="system-breadcrumb" class="visually-hidden">{{ 'Breadcrumb'|t }}</h2>
+    <h2 class="visually-hidden">{{ 'Breadcrumb'|t }}</h2>
     <ol>
     {% for item in breadcrumb %}
       <li>
diff --git a/core/modules/system/templates/fieldset.html.twig b/core/modules/system/templates/fieldset.html.twig
index bacd1d4..b67ec85 100644
--- a/core/modules/system/templates/fieldset.html.twig
+++ b/core/modules/system/templates/fieldset.html.twig
@@ -4,19 +4,18 @@
  * Default theme implementation for a fieldset element and its children.
  *
  * Available variables:
- * - attributes: HTML attributes for the <fieldset> element.
- * - errors: (optional) Any errors for this <fieldset> element, may not be set.
- * - required: Boolean indicating whether the <fieldeset> element is required.
- * - legend: The <legend> element containing the following properties:
- *   - title: Title of the <fieldset>, intended for use as the text
-       of the <legend>.
- *   - attributes: HTML attributes to apply to the <legend> element.
+ * - attributes: HTML attributes for the fieldset element.
+ * - errors: (optional) Any errors for this fieldset element, may not be set.
+ * - required: Boolean indicating whether the fieldeset element is required.
+ * - legend: The legend element containing the following properties:
+ *   - title: Title of the fieldset, intended for use as the text of the legend.
+ *   - attributes: HTML attributes to apply to the legend.
  * - description: The description element containing the following properties:
- *   - content: The description content of the <fieldset>.
+ *   - content: The description content of the fieldset.
  *   - attributes: HTML attributes to apply to the description container.
- * - children: The rendered child elements of the <fieldset>.
- * - prefix: The content to add before the <fieldset> children.
- * - suffix: The content to add after the <fieldset> children.
+ * - children: The rendered child elements of the fieldset.
+ * - prefix: The content to add before the fieldset children.
+ * - suffix: The content to add after the fieldset children.
  *
  * @see template_preprocess_fieldset()
  *
@@ -39,7 +38,7 @@
       required ? 'form-required',
     ]
   %}
-  {#  Always wrap fieldset legends in a <span> for CSS positioning. #}
+  {#  Always wrap fieldset legends in a SPAN for CSS positioning. #}
   <legend{{ legend.attributes }}>
     <span{{ legend_span.attributes.addClass(legend_span_classes) }}>{{ legend.title }}</span>
   </legend>
diff --git a/core/modules/system/templates/html.html.twig b/core/modules/system/templates/html.html.twig
index 195d82e..39702c2 100644
--- a/core/modules/system/templates/html.html.twig
+++ b/core/modules/system/templates/html.html.twig
@@ -28,22 +28,18 @@
 <!DOCTYPE html>
 <html{{ html_attributes }}>
   <head>
-    <head-placeholder token="{{ placeholder_token }}">
+    <head-placeholder token="{{ placeholder_token|raw }}">
     <title>{{ head_title|safe_join(' | ') }}</title>
-    <css-placeholder token="{{ placeholder_token }}">
-    <js-placeholder token="{{ placeholder_token }}">
+    <css-placeholder token="{{ placeholder_token|raw }}">
+    <js-placeholder token="{{ placeholder_token|raw }}">
   </head>
   <body{{ attributes }}>
-    {#
-      Keyboard navigation/accessibility link to main content section in
-      page.html.twig.
-    #}
     <a href="#main-content" class="visually-hidden focusable">
       {{ 'Skip to main content'|t }}
     </a>
     {{ page_top }}
     {{ page }}
     {{ page_bottom }}
-    <js-bottom-placeholder token="{{ placeholder_token }}">
+    <js-bottom-placeholder token="{{ placeholder_token|raw }}">
   </body>
 </html>
diff --git a/core/modules/system/templates/region.html.twig b/core/modules/system/templates/region.html.twig
index 219e14b..e009455 100644
--- a/core/modules/system/templates/region.html.twig
+++ b/core/modules/system/templates/region.html.twig
@@ -5,7 +5,7 @@
  *
  * Available variables:
  * - content: The content for this region, typically blocks.
- * - attributes: HTML attributes for the region <div>.
+ * - attributes: HTML attributes for the region div.
  * - region: The name of the region variable as defined in the theme's
  *   .info.yml file.
  *
diff --git a/core/modules/system/templates/select.html.twig b/core/modules/system/templates/select.html.twig
index 0b5c3d2..fb7226e 100644
--- a/core/modules/system/templates/select.html.twig
+++ b/core/modules/system/templates/select.html.twig
@@ -4,8 +4,8 @@
  * Default theme implementation for a select element.
  *
  * Available variables:
- * - attributes: HTML attributes for the <select> tag.
- * - options: The <option> element children.
+ * - attributes: HTML attributes for the select tag.
+ * - options: The option element children.
  *
  * @see template_preprocess_select()
  *
diff --git a/core/modules/system/templates/table.html.twig b/core/modules/system/templates/table.html.twig
index 4436570..f6b32e4 100644
--- a/core/modules/system/templates/table.html.twig
+++ b/core/modules/system/templates/table.html.twig
@@ -12,7 +12,7 @@
  *     https://www.drupal.org/node/893530 and
  *     http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109.
  * - header: Table header cells. Each cell contains the following properties:
- *   - tag: The HTML tag name to use; either 'th' or 'td'.
+ *   - tag: The HTML tag name to use; either TH or TD.
  *   - attributes: HTML attributes to apply to the tag.
  *   - content: A localized string for the title of the column.
  *   - field: Field name (required for column sorting).
@@ -24,7 +24,7 @@
  *   - no_striping: A flag indicating that the row should receive no
  *     'even / odd' styling. Defaults to FALSE.
  *   - cells: Table cells of the row. Each cell contains the following keys:
- *     - tag: The HTML tag name to use; either 'th' or 'td'.
+ *     - tag: The HTML tag name to use; either TH or TD.
  *     - attributes: Any HTML attributes, such as "colspan", to apply to the
  *       table cell.
  *     - content: The string to display in the table cell.
diff --git a/core/modules/system/templates/textarea.html.twig b/core/modules/system/templates/textarea.html.twig
index cd987d2..6a1a46e 100644
--- a/core/modules/system/templates/textarea.html.twig
+++ b/core/modules/system/templates/textarea.html.twig
@@ -5,7 +5,7 @@
  *
  * Available variables
  * - wrapper_attributes: A list of HTML attributes for the wrapper element.
- * - attributes: A list of HTML attributes for the <textarea> element.
+ * - attributes: A list of HTML attributes for the textarea element.
  * - resizable: An indicator for whether the textarea is resizable.
  * - required: An indicator for whether the textarea is required.
  * - value: The textarea content.
diff --git a/core/modules/system/tests/fixtures/IgnoreDirectories/a.txt b/core/modules/system/tests/fixtures/IgnoreDirectories/a.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/modules/system/tests/fixtures/IgnoreDirectories/frontend_framework/b.txt b/core/modules/system/tests/fixtures/IgnoreDirectories/frontend_framework/b.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/modules/system/tests/modules/ajax_test/ajax_test.routing.yml b/core/modules/system/tests/modules/ajax_test/ajax_test.routing.yml
index e8d06c0..d22be40 100644
--- a/core/modules/system/tests/modules/ajax_test/ajax_test.routing.yml
+++ b/core/modules/system/tests/modules/ajax_test/ajax_test.routing.yml
@@ -35,17 +35,12 @@ ajax_test.render:
   requirements:
     _access: 'TRUE'
 
-ajax_test.admin.theme:
-  path: '/admin/ajax-test/theme'
-  defaults:
-    _controller: '\Drupal\ajax_test\Controller\AjaxTestController::theme'
-  requirements:
-    _access: 'TRUE'
-
 ajax_test.order:
   path: '/ajax-test/order'
   defaults:
     _controller: '\Drupal\ajax_test\Controller\AjaxTestController::order'
+  options:
+    _theme: ajax_base_page
   requirements:
     _access: 'TRUE'
 
diff --git a/core/modules/system/tests/modules/ajax_test/src/Controller/AjaxTestController.php b/core/modules/system/tests/modules/ajax_test/src/Controller/AjaxTestController.php
index b618f0a..fbbb2b5 100644
--- a/core/modules/system/tests/modules/ajax_test/src/Controller/AjaxTestController.php
+++ b/core/modules/system/tests/modules/ajax_test/src/Controller/AjaxTestController.php
@@ -62,15 +62,6 @@ public function render() {
   }
 
   /**
-   * Returns the used theme.
-   */
-  public function theme() {
-    return [
-      '#markup' => 'Current theme: ' . \Drupal::theme()->getActiveTheme()->getName(),
-    ];
-  }
-
-  /**
    * Returns an AjaxResponse; settings command set last.
    *
    * Helps verifying AjaxResponse reorders commands to ensure correct execution.
@@ -193,17 +184,6 @@ public function dialog() {
             ))
           ),
         ),
-        'link8' => [
-          'title' => 'Link 8 (ajax)',
-          'url' => Url::fromRoute('ajax_test.admin.theme'),
-          'attributes' => [
-            'class' => ['use-ajax'],
-            'data-dialog-type' => 'modal',
-            'data-dialog-options' => json_encode([
-              'width' => 400,
-            ]),
-          ],
-        ],
       ),
     );
 
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/Condition/ConditionTestDualUserTest.php b/core/modules/system/tests/modules/condition_test/src/Tests/ConditionTestDualUserTest.php
similarity index 98%
rename from core/tests/Drupal/KernelTests/Core/Plugin/Condition/ConditionTestDualUserTest.php
rename to core/modules/system/tests/modules/condition_test/src/Tests/ConditionTestDualUserTest.php
index 5d57d57..c5724e0 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/Condition/ConditionTestDualUserTest.php
+++ b/core/modules/system/tests/modules/condition_test/src/Tests/ConditionTestDualUserTest.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin\Condition;
+namespace Drupal\condition_test\Tests;
 
 use Drupal\Core\Plugin\Context\Context;
 use Drupal\Core\Plugin\Context\ContextDefinition;
diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/Condition/OptionalContextConditionTest.php b/core/modules/system/tests/modules/condition_test/src/Tests/OptionalContextConditionTest.php
similarity index 90%
rename from core/tests/Drupal/KernelTests/Core/Plugin/Condition/OptionalContextConditionTest.php
rename to core/modules/system/tests/modules/condition_test/src/Tests/OptionalContextConditionTest.php
index 96c8bac..8b15f86 100644
--- a/core/tests/Drupal/KernelTests/Core/Plugin/Condition/OptionalContextConditionTest.php
+++ b/core/modules/system/tests/modules/condition_test/src/Tests/OptionalContextConditionTest.php
@@ -1,12 +1,12 @@
 <?php
 
-namespace Drupal\KernelTests\Core\Plugin\Condition;
+namespace Drupal\condition_test\Tests;
 
 use Drupal\Core\Plugin\Context\Context;
 use Drupal\Core\Plugin\Context\ContextDefinition;
-use Drupal\KernelTests\KernelTestBase;
 use Drupal\node\Entity\Node;
 use Drupal\node\Entity\NodeType;
+use Drupal\simpletest\KernelTestBase;
 
 /**
  * Tests a condition with optional context.
@@ -23,7 +23,7 @@ class OptionalContextConditionTest extends KernelTestBase {
   /**
    * Tests with both contexts mapped to the same user.
    */
-  public function testContextMissing() {
+  protected function testContextMissing() {
     /** @var \Drupal\Core\Condition\ConditionPluginBase $condition */
     $condition = \Drupal::service('plugin.manager.condition')
       ->createInstance('condition_test_optional_context')
@@ -37,7 +37,7 @@ public function testContextMissing() {
   /**
    * Tests with both contexts mapped to the same user.
    */
-  public function testContextNoValue() {
+  protected function testContextNoValue() {
     /** @var \Drupal\Core\Condition\ConditionPluginBase $condition */
     $condition = \Drupal::service('plugin.manager.condition')
       ->createInstance('condition_test_optional_context')
@@ -53,7 +53,7 @@ public function testContextNoValue() {
   /**
    * Tests with both contexts mapped to the same user.
    */
-  public function testContextAvailable() {
+  protected function testContextAvailable() {
     NodeType::create(['type' => 'example', 'name' => 'Example'])->save();
     /** @var \Drupal\Core\Condition\ConditionPluginBase $condition */
     $condition = \Drupal::service('plugin.manager.condition')
diff --git a/core/modules/system/tests/modules/cron_queue_test/src/Plugin/QueueWorker/CronQueueTestException.php b/core/modules/system/tests/modules/cron_queue_test/src/Plugin/QueueWorker/CronQueueTestException.php
index b6ef791..b64c51a 100644
--- a/core/modules/system/tests/modules/cron_queue_test/src/Plugin/QueueWorker/CronQueueTestException.php
+++ b/core/modules/system/tests/modules/cron_queue_test/src/Plugin/QueueWorker/CronQueueTestException.php
@@ -8,7 +8,7 @@
  * @QueueWorker(
  *   id = "cron_queue_test_exception",
  *   title = @Translation("Exception test"),
- *   cron = {"time" = 1}
+ *   cron = {"time" = 60}
  * )
  */
 class CronQueueTestException extends QueueWorkerBase {
@@ -17,14 +17,7 @@ class CronQueueTestException extends QueueWorkerBase {
    * {@inheritdoc}
    */
   public function processItem($data) {
-    $state = \Drupal::state();
-    if (!$state->get('cron_queue_test_exception')) {
-      $state->set('cron_queue_test_exception', 1);
-      throw new \Exception('That is not supposed to happen.');
-    }
-    else {
-      $state->set('cron_queue_test_exception', 2);
-    }
+    throw new \Exception('That is not supposed to happen.');
   }
 
 }
diff --git a/core/modules/system/tests/modules/entity_test/entity_test.module b/core/modules/system/tests/modules/entity_test/entity_test.module
index beb68ba..9d9d63c 100644
--- a/core/modules/system/tests/modules/entity_test/entity_test.module
+++ b/core/modules/system/tests/modules/entity_test/entity_test.module
@@ -320,11 +320,7 @@ function entity_test_form_node_form_alter(&$form, FormStateInterface $form_state
  *   The loaded entity object, or NULL if the entity cannot be loaded.
  */
 function entity_test_load($id, $reset = FALSE) {
-  $storage = \Drupal::entityTypeManager()->getStorage('entity_test');
-  if ($reset) {
-    $storage->resetCache([$id]);
-  }
-  return $storage->load($id);
+  return entity_load('entity_test', $id, $reset);
 }
 
 /**
@@ -339,11 +335,7 @@ function entity_test_load($id, $reset = FALSE) {
  *   The loaded entity object, or NULL if the entity cannot be loaded.
  */
 function entity_test_rev_load($id, $reset = FALSE) {
-  $storage = \Drupal::entityTypeManager()->getStorage('entity_test_rev');
-  if ($reset) {
-    $storage->resetCache([$id]);
-  }
-  return $storage->load($id);
+  return entity_load('entity_test_rev', $id, $reset);
 }
 
 /**
@@ -358,11 +350,7 @@ function entity_test_rev_load($id, $reset = FALSE) {
  *   The loaded entity object, or FALSE if the entity cannot be loaded.
  */
 function entity_test_mul_load($id, $reset = FALSE) {
-  $storage = \Drupal::entityTypeManager()->getStorage('entity_test_mul');
-  if ($reset) {
-    $storage->resetCache([$id]);
-  }
-  return $storage->load($id);
+  return entity_load('entity_test_mul', $id, $reset);
 }
 
 /**
@@ -377,11 +365,7 @@ function entity_test_mul_load($id, $reset = FALSE) {
  *   The loaded entity object, or NULL if the entity cannot be loaded.
  */
 function entity_test_mulrev_load($id, $reset = FALSE) {
-  $storage = \Drupal::entityTypeManager()->getStorage('entity_test_mulrev');
-  if ($reset) {
-    $storage->resetCache([$id]);
-  }
-  return $storage->load($id);
+  return entity_load('entity_test_mulrev', $id, $reset);
 }
 
 /**
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestCache.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestCache.php
index dfbb9f0..7778104 100644
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestCache.php
+++ b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestCache.php
@@ -15,7 +15,7 @@
  *     },
  *     "translation" = "Drupal\content_translation\ContentTranslationHandler"
  *   },
- *   base_table = "entity_test_cache",
+ *   base_table = "entity_test",
  *   entity_keys = {
  *     "id" = "id",
  *     "uuid" = "uuid",
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestConstraintViolation.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestConstraintViolation.php
index 448718d..7f3a676 100644
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestConstraintViolation.php
+++ b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestConstraintViolation.php
@@ -15,7 +15,7 @@
  *       "default" = "Drupal\entity_test\EntityTestForm"
  *     }
  *   },
- *   base_table = "entity_test_constraint_violation",
+ *   base_table = "entity_test",
  *   persistent_cache = FALSE,
  *   entity_keys = {
  *     "id" = "id",
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestDefaultAccess.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestDefaultAccess.php
index 71c806b..491ddf9 100644
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestDefaultAccess.php
+++ b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestDefaultAccess.php
@@ -8,7 +8,7 @@
  * @ContentEntityType(
  *   id = "entity_test_default_access",
  *   label = @Translation("Test entity with default access"),
- *   base_table = "entity_test_default_access",
+ *   base_table = "entity_test",
  *   entity_keys = {
  *     "id" = "id",
  *     "bundle" = "type"
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestLabel.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestLabel.php
index 1b4597f..1996e33 100644
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestLabel.php
+++ b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestLabel.php
@@ -12,7 +12,7 @@
  *     "access" = "Drupal\entity_test\EntityTestAccessControlHandler",
  *     "view_builder" = "Drupal\entity_test\EntityTestViewBuilder"
  *   },
- *   base_table = "entity_test_label",
+ *   base_table = "entity_test",
  *   render_cache = FALSE,
  *   entity_keys = {
  *     "uuid" = "uuid",
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestLabelCallback.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestLabelCallback.php
index e3fd77e..76a7169 100644
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestLabelCallback.php
+++ b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestLabelCallback.php
@@ -9,7 +9,7 @@
  *   id = "entity_test_label_callback",
  *   label = @Translation("Entity test label callback"),
  *   persistent_cache = FALSE,
- *   base_table = "entity_test_label_callback",
+ *   base_table = "entity_test",
  *   label_callback = "entity_test_label_callback",
  *   entity_keys = {
  *     "id" = "id",
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestMultiValueBasefield.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestMultiValueBasefield.php
deleted file mode 100644
index b5bf2c2..0000000
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestMultiValueBasefield.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Drupal\entity_test\Entity;
-
-use Drupal\Core\Entity\EntityTypeInterface;
-
-/**
- * Defines an entity type with a multivalue base field.
- *
- * @ContentEntityType(
- *   id = "entity_test_multivalue_basefield",
- *   label = @Translation("Entity Test with a multivalue base field"),
- *   base_table = "entity_test_multivalue_basefield",
- *   data_table = "entity_test_multivalue_basefield_field_data",
- *   handlers = {
- *     "views_data" = "Drupal\views\EntityViewsData",
- *   },
- *   entity_keys = {
- *     "id" = "id",
- *     "uuid" = "uuid",
- *     "bundle" = "type",
- *     "label" = "name",
- *     "langcode" = "langcode",
- *   }
- * )
- */
-class EntityTestMultiValueBasefield extends EntityTest {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
-    $fields = parent::baseFieldDefinitions($entity_type);
-    $fields['name']->setCardinality(2);
-
-    return $fields;
-  }
-
-}
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestNoLabel.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestNoLabel.php
index b339f5b..cd9bcda 100644
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestNoLabel.php
+++ b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestNoLabel.php
@@ -9,7 +9,7 @@
  *   id = "entity_test_no_label",
  *   label = @Translation("Entity Test without label"),
  *   persistent_cache = FALSE,
- *   base_table = "entity_test_no_label",
+ *   base_table = "entity_test",
  *   entity_keys = {
  *     "id" = "id",
  *     "bundle" = "type"
diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestViewBuilder.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestViewBuilder.php
index 6cf9050..45a4791 100644
--- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestViewBuilder.php
+++ b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestViewBuilder.php
@@ -12,7 +12,7 @@
  *     "access" = "Drupal\entity_test\EntityTestAccessControlHandler",
  *     "view_builder" = "Drupal\entity_test\EntityTestViewBuilderOverriddenView",
  *   },
- *   base_table = "entity_test_view_builder",
+ *   base_table = "entity_test",
  *   render_cache = FALSE,
  *   entity_keys = {
  *     "id" = "id",
diff --git a/core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/ShapeItem.php b/core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/ShapeItem.php
index 0d2ebb9..6eb44ce 100644
--- a/core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/ShapeItem.php
+++ b/core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/ShapeItem.php
@@ -77,11 +77,4 @@ public function isEmpty() {
     return empty($item['shape']) && empty($item['color']);
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public static function mainPropertyName() {
-    return 'shape';
-  }
-
 }
diff --git a/core/modules/system/tests/modules/pager_test/pager_test.routing.yml b/core/modules/system/tests/modules/pager_test/pager_test.routing.yml
index ea6c9cb..9720507 100644
--- a/core/modules/system/tests/modules/pager_test/pager_test.routing.yml
+++ b/core/modules/system/tests/modules/pager_test/pager_test.routing.yml
@@ -1,11 +1,3 @@
-pager_test.multiple_pagers:
-  path: '/pager-test/multiple-pagers'
-  defaults:
-    _title: 'Page using multiple pagers for testing'
-    _controller: '\Drupal\pager_test\Controller\PagerTestController::multiplePagers'
-  requirements:
-    _access: 'TRUE'
-
 pager_test.query_parameters:
   path: '/pager-test/query-parameters'
   defaults:
diff --git a/core/modules/system/tests/modules/pager_test/src/Controller/PagerTestController.php b/core/modules/system/tests/modules/pager_test/src/Controller/PagerTestController.php
index 39144c6..a4d9de9 100644
--- a/core/modules/system/tests/modules/pager_test/src/Controller/PagerTestController.php
+++ b/core/modules/system/tests/modules/pager_test/src/Controller/PagerTestController.php
@@ -10,41 +10,6 @@
 class PagerTestController extends ControllerBase {
 
   /**
-   * Builds a render array for a pageable test table.
-   *
-   * @param int $element
-   *   The pager element to be used for paging.
-   * @param int $limit
-   *   The limit of rows per page for the specified element.
-   *
-   * @return array
-   *   A render array.
-   */
-  protected function buildTestTable($element, $limit) {
-    $header = [
-      ['data' => 'wid'],
-      ['data' => 'type'],
-      ['data' => 'timestamp'],
-    ];
-    $query = db_select('watchdog', 'd')->extend('Drupal\Core\Database\Query\PagerSelectExtender')->element($element);
-    $result = $query
-      ->fields('d', array('wid', 'type', 'timestamp'))
-      ->limit($limit)
-      ->orderBy('d.wid')
-      ->execute();
-    $rows = [];
-    foreach ($result as $row) {
-      $rows[] = ['data' => (array) $row];
-    }
-    return [
-      '#theme' => 'table',
-      '#header' => $header,
-      '#rows' => $rows,
-      '#empty' => $this->t("There are no watchdog records found in the db"),
-    ];
-  }
-
-  /**
    * Returns a pager with 'parameters' variable.
    *
    * The 'pager_calls' parameter counts the calls to the pager, subsequent
@@ -53,7 +18,27 @@ protected function buildTestTable($element, $limit) {
   public function queryParameters() {
 
     // Example query.
-    $build['pager_table_0'] = $this->buildTestTable(0, 5);
+    $header_0 = array(
+      array('data' => 'wid'),
+      array('data' => 'type'),
+      array('data' => 'timestamp'),
+    );
+    $query_0 = db_select('watchdog', 'd')->extend('Drupal\Core\Database\Query\PagerSelectExtender')->element(0);
+    $query_0->fields('d', array('wid', 'type', 'timestamp'));
+    $result_0 = $query_0
+      ->limit(5)
+      ->orderBy('d.wid')
+      ->execute();
+    $rows_0 = array();
+    foreach ($result_0 as $row) {
+      $rows_0[] = array('data' => (array) $row);
+    }
+    $build['pager_table_0'] = array(
+      '#theme' => 'table',
+      '#header' => $header_0,
+      '#rows' => $rows_0,
+      '#empty' => $this->t("There are no watchdog records found in the db"),
+    );
 
     // Counter of calls to the current pager.
     $query_params = pager_get_query_parameters();
@@ -76,45 +61,6 @@ public function queryParameters() {
   }
 
   /**
-   * Returns a page with multiple pagers.
-   */
-  public function multiplePagers() {
-
-    // Build three tables with same query and different pagers.
-    $build['pager_table_0'] = $this->buildTestTable(0, 20);
-    $build['pager_pager_0'] = array(
-      '#type' => 'container',
-      '#attributes' => ['class' => ['test-pager-0']],
-      'pager' => [
-        '#type' => 'pager',
-        '#element' => 0,
-      ],
-    );
-
-    $build['pager_table_1'] = $this->buildTestTable(1, 20);
-    $build['pager_pager_1'] = array(
-      '#type' => 'container',
-      '#attributes' => ['class' => ['test-pager-1']],
-      'pager' => [
-        '#type' => 'pager',
-        '#element' => 1,
-      ],
-    );
-
-    $build['pager_table_4'] = $this->buildTestTable(4, 20);
-    $build['pager_pager_4'] = array(
-      '#type' => 'container',
-      '#attributes' => ['class' => ['test-pager-4']],
-      'pager' => [
-        '#type' => 'pager',
-        '#element' => 4,
-      ],
-    );
-
-    return $build;
-  }
-
-  /**
    * #pre_render callback for #type => pager that shows the pager cache context.
    */
   public static function showPagerCacheContext(array $pager) {
diff --git a/core/modules/system/tests/themes/test_basetheme/config/install/core.date_format.fancy.yml b/core/modules/system/tests/themes/test_basetheme/config/install/core.date_format.fancy.yml
index b42fbae..2b962d6 100644
--- a/core/modules/system/tests/themes/test_basetheme/config/install/core.date_format.fancy.yml
+++ b/core/modules/system/tests/themes/test_basetheme/config/install/core.date_format.fancy.yml
@@ -1,6 +1,6 @@
 # Themes are not supposed to provide/install this kind of config normally.
 # This exists for testing purposes only.
-# @see \Drupal\KernelTests\Core\Theme\ThemeInstallerTest
+# @see \Drupal\system\Tests\Extension\ThemeInstallerTest
 id: fancy
 label: 'Fancy date'
 status: true
diff --git a/core/modules/system/tests/themes/test_theme_libraries_empty/test_theme_libraries_empty.info.yml b/core/modules/system/tests/themes/test_theme_libraries_empty/test_theme_libraries_empty.info.yml
deleted file mode 100644
index bfe8a93..0000000
--- a/core/modules/system/tests/themes/test_theme_libraries_empty/test_theme_libraries_empty.info.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: 'Test theme libraries empty'
-type: theme
-description: 'Test theme with empty libraries in theme.info.yml'
-version: VERSION
-base theme: classy
-core: 8.x
-libraries:
-
diff --git a/core/modules/taxonomy/migration_templates/d6_taxonomy_term.yml b/core/modules/taxonomy/migration_templates/d6_taxonomy_term.yml
index 44f9f7f..0c41c6d 100644
--- a/core/modules/taxonomy/migration_templates/d6_taxonomy_term.yml
+++ b/core/modules/taxonomy/migration_templates/d6_taxonomy_term.yml
@@ -13,19 +13,10 @@ process:
   name: name
   description: description
   weight: weight
-  # Only attempt to stub real (non-zero) parents.
-  parent_id:
-    -
-      plugin: skip_on_empty
-      method: process
-      source: parent
-    -
-      plugin: migration
-      migration: d6_taxonomy_term
   parent:
-    plugin: default_value
-    default_value: 0
-    source: '@parent_id'
+    plugin: migration
+    migration: d6_taxonomy_term
+    source: parent
   changed: timestamp
 destination:
   plugin: entity:taxonomy_term
diff --git a/core/modules/taxonomy/migration_templates/d7_taxonomy_term.yml b/core/modules/taxonomy/migration_templates/d7_taxonomy_term.yml
index 8d4adbb..7546660 100644
--- a/core/modules/taxonomy/migration_templates/d7_taxonomy_term.yml
+++ b/core/modules/taxonomy/migration_templates/d7_taxonomy_term.yml
@@ -11,22 +11,12 @@ process:
     migration: d7_taxonomy_vocabulary
     source: vid
   name: name
-  'description/value': description
-  'description/format': format
+  description: description
   weight: weight
-  # Only attempt to stub real (non-zero) parents.
-  parent_id:
-    -
-      plugin: skip_on_empty
-      method: process
-      source: parent
-    -
-      plugin: migration
-      migration: d7_taxonomy_term
   parent:
-    plugin: default_value
-    default_value: 0
-    source: '@parent_id'
+    plugin: migration
+    migration: d7_taxonomy_term
+    source: parent
   changed: timestamp
 destination:
   plugin: entity:taxonomy_term
diff --git a/core/modules/taxonomy/src/Plugin/migrate/cckfield/TaxonomyTermReference.php b/core/modules/taxonomy/src/Plugin/migrate/cckfield/TaxonomyTermReference.php
index c3035c4..6971b54 100644
--- a/core/modules/taxonomy/src/Plugin/migrate/cckfield/TaxonomyTermReference.php
+++ b/core/modules/taxonomy/src/Plugin/migrate/cckfield/TaxonomyTermReference.php
@@ -7,11 +7,7 @@
 
 /**
  * @MigrateCckField(
- *   id = "taxonomy_term_reference",
- *   type_map = {
- *     "taxonomy_term_reference" = "entity_reference"
- *   },
- *   core = {6,7}
+ *   id = "taxonomy_term_reference"
  * )
  */
 class TaxonomyTermReference extends CckFieldPluginBase {
diff --git a/core/modules/taxonomy/src/Plugin/migrate/source/Term.php b/core/modules/taxonomy/src/Plugin/migrate/source/Term.php
index 0b2a5c3..f1364af 100644
--- a/core/modules/taxonomy/src/Plugin/migrate/source/Term.php
+++ b/core/modules/taxonomy/src/Plugin/migrate/source/Term.php
@@ -47,10 +47,10 @@ public function query() {
     $query = $this->select($this->termDataTable, 'td')
       ->fields('td')
       ->distinct()
-      ->orderBy('td.tid');
+      ->orderBy('tid');
 
     if (isset($this->configuration['vocabulary'])) {
-      $query->condition('td.vid', $this->configuration['vocabulary'], 'IN');
+      $query->condition('vid', $this->configuration['vocabulary'], 'IN');
     }
 
     return $query;
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..b375b10 100644
--- a/core/modules/taxonomy/src/Plugin/views/argument_default/Tid.php
+++ b/core/modules/taxonomy/src/Plugin/views/argument_default/Tid.php
@@ -191,10 +191,10 @@ public function getArgument() {
         $taxonomy = array();
         foreach ($node->getFieldDefinitions() as $field) {
           if ($field->getType() == 'entity_reference' && $field->getSetting('target_type') == 'taxonomy_term') {
-            $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();
+            foreach ($node->get($field->getName()) as $item) {
+              if (($handler_settings = $field->getSetting('handler_settings')) && isset($handler_settings['target_bundles'])) {
+                $taxonomy[$item->target_id] = reset($handler_settings['target_bundles']);
+              }
             }
           }
         }
diff --git a/core/modules/taxonomy/src/TermForm.php b/core/modules/taxonomy/src/TermForm.php
index cf05932..17ac5c2 100644
--- a/core/modules/taxonomy/src/TermForm.php
+++ b/core/modules/taxonomy/src/TermForm.php
@@ -123,16 +123,15 @@ public function save(array $form, FormStateInterface $form_state) {
 
     $result = $term->save();
 
-    $edit_link = $term->link($this->t('Edit'), 'edit-form');
-    $view_link = $term->link($term->getName());
+    $link = $term->link($this->t('Edit'), 'edit-form');
     switch ($result) {
       case SAVED_NEW:
-        drupal_set_message($this->t('Created new term %term.', array('%term' => $view_link)));
-        $this->logger('taxonomy')->notice('Created new term %term.', array('%term' => $term->getName(), 'link' => $edit_link));
+        drupal_set_message($this->t('Created new term %term.', array('%term' => $term->getName())));
+        $this->logger('taxonomy')->notice('Created new term %term.', array('%term' => $term->getName(), 'link' => $link));
         break;
       case SAVED_UPDATED:
-        drupal_set_message($this->t('Updated term %term.', array('%term' => $view_link)));
-        $this->logger('taxonomy')->notice('Updated term %term.', array('%term' => $term->getName(), 'link' => $edit_link));
+        drupal_set_message($this->t('Updated term %term.', array('%term' => $term->getName())));
+        $this->logger('taxonomy')->notice('Updated term %term.', array('%term' => $term->getName(), 'link' => $link));
         break;
     }
 
diff --git a/core/modules/taxonomy/src/Tests/TermTest.php b/core/modules/taxonomy/src/Tests/TermTest.php
index 403c28c..603da1f 100644
--- a/core/modules/taxonomy/src/Tests/TermTest.php
+++ b/core/modules/taxonomy/src/Tests/TermTest.php
@@ -255,12 +255,7 @@ function testNodeTermCreationAndDeletion() {
 
     // Save, creating the terms.
     $this->drupalPostForm('node/add/article', $edit, t('Save'));
-    $this->assertText(t('@type @title has been created.', array('@type' => t('Article'), '@title' => $edit['title[0][value]'])), 'The node was created successfully.');
-
-    // Verify that the creation message contains a link to a node.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'node/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a node');
-
+    $this->assertRaw(t('@type %title has been created.', array('@type' => t('Article'), '%title' => $edit['title[0][value]'])), 'The node was created successfully.');
     foreach ($terms as $term) {
       $this->assertText($term, 'The term was saved and appears on the node page.');
     }
diff --git a/core/modules/taxonomy/src/Tests/Views/TaxonomyDefaultArgumentTest.php b/core/modules/taxonomy/src/Tests/Views/TaxonomyDefaultArgumentTest.php
index c08266f..a0105f5 100644
--- a/core/modules/taxonomy/src/Tests/Views/TaxonomyDefaultArgumentTest.php
+++ b/core/modules/taxonomy/src/Tests/Views/TaxonomyDefaultArgumentTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\taxonomy\Tests\Views;
 
-use Drupal\field\Entity\FieldConfig;
 use Drupal\views\Views;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
@@ -31,38 +30,6 @@ public function testNodePath() {
     $request->server->set('SCRIPT_NAME', $GLOBALS['base_path'] . 'index.php');
     $request->server->set('SCRIPT_FILENAME', 'index.php');
 
-    $response = $this->container->get('http_kernel')
-      ->handle($request, HttpKernelInterface::SUB_REQUEST);
-    $view->setRequest($request);
-    $view->setResponse($response);
-
-    $view->initHandlers();
-    $expected = implode(',', array($this->term1->id(), $this->term2->id()));
-    $this->assertEqual($expected, $view->argument['tid']->getDefaultArgument());
-    $view->destroy();
-  }
-
-  public function testNodePathWithViewSelection() {
-    // Change the term entity reference field to use a view as selection plugin.
-    \Drupal::service('module_installer')->install(['entity_reference_test']);
-
-    $field_name = 'field_' . $this->vocabulary->id();
-    $field = FieldConfig::loadByName('node', 'article', $field_name);
-    $field->setSetting('handler', 'views');
-    $field->setSetting('handler_settings', [
-      'view' => [
-        'view_name' => 'test_entity_reference',
-        'display_name' => 'entity_reference_1',
-      ],
-    ]);
-    $field->save();
-
-    $view = Views::getView('taxonomy_default_argument_test');
-
-    $request = Request::create($this->nodes[0]->url());
-    $request->server->set('SCRIPT_NAME', $GLOBALS['base_path'] . 'index.php');
-    $request->server->set('SCRIPT_FILENAME', 'index.php');
-
     $response = $this->container->get('http_kernel')->handle($request, HttpKernelInterface::SUB_REQUEST);
     $view->setRequest($request);
     $view->setResponse($response);
diff --git a/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php b/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php
index 7dff50a..b37a717 100644
--- a/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php
+++ b/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php
@@ -7,7 +7,6 @@
 use Drupal\taxonomy\Entity\Vocabulary;
 use Drupal\views\Tests\ViewTestData;
 use Drupal\views_ui\Tests\UITestBase;
-use Drupal\views\Entity\View;
 
 /**
  * Tests the taxonomy index filter handler UI.
@@ -103,7 +102,7 @@ public function testFilterUI() {
 
     // Ensure the autocomplete input element appears when using the 'textfield'
     // type.
-    $view = View::load('test_filter_taxonomy_index_tid');
+    $view = entity_load('view', 'test_filter_taxonomy_index_tid');
     $display =& $view->getDisplay('default');
     $display['display_options']['filters']['tid']['type'] = 'textfield';
     $view->save();
diff --git a/core/modules/taxonomy/src/Tests/VocabularyPermissionsTest.php b/core/modules/taxonomy/src/Tests/VocabularyPermissionsTest.php
index 9a5e8c0..5468f8a 100644
--- a/core/modules/taxonomy/src/Tests/VocabularyPermissionsTest.php
+++ b/core/modules/taxonomy/src/Tests/VocabularyPermissionsTest.php
@@ -36,11 +36,7 @@ function testVocabularyPermissionsTaxonomyTerm() {
     $edit['name[0][value]'] = $this->randomMachineName();
 
     $this->drupalPostForm(NULL, $edit, t('Save'));
-    $this->assertText(t('Created new term @name.', array('@name' => $edit['name[0][value]'])), 'Term created successfully.');
-
-    // Verify that the creation message contains a link to a term.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'term/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a term');
+    $this->assertRaw(t('Created new term %name.', array('%name' => $edit['name[0][value]'])), 'Term created successfully.');
 
     $terms = taxonomy_term_load_multiple_by_name($edit['name[0][value]']);
     $term = reset($terms);
@@ -52,7 +48,7 @@ function testVocabularyPermissionsTaxonomyTerm() {
 
     $edit['name[0][value]'] = $this->randomMachineName();
     $this->drupalPostForm(NULL, $edit, t('Save'));
-    $this->assertText(t('Updated term @name.', array('@name' => $edit['name[0][value]'])), 'Term updated successfully.');
+    $this->assertRaw(t('Updated term %name.', array('%name' => $edit['name[0][value]'])), 'Term updated successfully.');
 
     // Delete the vocabulary.
     $this->drupalGet('taxonomy/term/' . $term->id() . '/delete');
@@ -80,11 +76,7 @@ function testVocabularyPermissionsTaxonomyTerm() {
 
     $edit['name[0][value]'] = $this->randomMachineName();
     $this->drupalPostForm(NULL, $edit, t('Save'));
-    $this->assertText(t('Updated term @name.', array('@name' => $edit['name[0][value]'])), 'Term updated successfully.');
-
-    // Verify that the update message contains a link to a term.
-    $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', array(':href' => 'term/'));
-    $this->assert(isset($view_link), 'The message area contains a link to a term');
+    $this->assertRaw(t('Updated term %name.', array('%name' => $edit['name[0][value]'])), 'Term updated successfully.');
 
     // Delete the vocabulary.
     $this->drupalGet('taxonomy/term/' . $term->id() . '/delete');
diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index 32df678..30a9ca2 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -377,7 +377,7 @@ function taxonomy_term_load_multiple(array $tids = NULL) {
  *   (optional) An array of entity IDs. If omitted, all entities are loaded.
  *
  * @return array
- *   An array of vocabulary objects, indexed by vid.
+ *  An array of vocabulary objects, indexed by vid.
  */
 function taxonomy_vocabulary_load_multiple(array $vids = NULL) {
   return Vocabulary::loadMultiple($vids);
@@ -532,11 +532,7 @@ function taxonomy_build_node_index($node) {
  * Implements hook_ENTITY_TYPE_update() for node entities.
  */
 function taxonomy_node_update(EntityInterface $node) {
-  // If we're not dealing with the default revision of the node, do not make any
-  // change to the taxonomy index.
-  if (!$node->isDefaultRevision()) {
-    return;
-  }
+  // Always rebuild the node's taxonomy index entries on node save.
   taxonomy_delete_node_index($node);
   taxonomy_build_node_index($node);
 }
diff --git a/core/modules/taxonomy/tests/src/Kernel/ForwardRevisionTest.php b/core/modules/taxonomy/tests/src/Kernel/ForwardRevisionTest.php
deleted file mode 100644
index 6f751b1..0000000
--- a/core/modules/taxonomy/tests/src/Kernel/ForwardRevisionTest.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-namespace Drupal\Tests\taxonomy\Kernel;
-
-use Drupal\field\Entity\FieldConfig;
-use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\node\Entity\Node;
-use Drupal\node\Entity\NodeType;
-use Drupal\taxonomy\Entity\Term;
-use Drupal\taxonomy\Entity\Vocabulary;
-
-/**
- * Kernel tests for taxonomy forward revisions.
- *
- * @group taxonomy
- */
-class ForwardRevisionTest extends KernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['taxonomy', 'node', 'user', 'text', 'field', 'system'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $this->installEntitySchema('user');
-    $this->installEntitySchema('node');
-    $this->installEntitySchema('taxonomy_term');
-    $this->installSchema('node', 'node_access');
-  }
-
-  /**
-   * Tests that the taxonomy index work correctly with forward revisions.
-   */
-  public function testTaxonomyIndexWithForwardRevision() {
-    \Drupal::configFactory()->getEditable('taxonomy.settings')->set('maintain_index_table', TRUE)->save();
-
-    Vocabulary::create([
-      'name' => 'test',
-      'vid' => 'test',
-    ])->save();
-    $term = Term::create([
-      'name' => 'term1',
-      'vid' => 'test',
-    ]);
-    $term->save();
-    $term2 = Term::create([
-      'name' => 'term2',
-      'vid' => 'test',
-    ]);
-    $term2->save();
-
-    NodeType::create([
-      'type' => 'page',
-    ])->save();
-
-    FieldStorageConfig::create([
-      'entity_type' => 'node',
-      'field_name' => 'field_tags',
-      'type' => 'entity_reference',
-      'settings' => [
-        'target_type' => 'taxonomy_term',
-      ],
-    ])->save();
-
-    FieldConfig::create([
-      'field_name' => 'field_tags',
-      'entity_type' => 'node',
-      'bundle' => 'page',
-    ])->save();
-    $node = Node::create([
-      'type' => 'page',
-      'title' => 'test_title',
-      'field_tags' => [$term->id()],
-    ]);
-    $node->save();
-
-    $taxonomy_index = $this->getTaxonomyIndex();
-    $this->assertEquals($term->id(), $taxonomy_index[$node->id()]->tid);
-
-    // Normal new revision.
-    $node->setNewRevision(TRUE);
-    $node->isDefaultRevision(TRUE);
-    $node->field_tags->target_id = $term2->id();
-    $node->save();
-
-    $taxonomy_index = $this->getTaxonomyIndex();
-    $this->assertEquals($term2->id(), $taxonomy_index[$node->id()]->tid);
-
-    // Check that saving a forward (non-default) revision does not affect the
-    // taxonomy index.
-    $node->setNewRevision(TRUE);
-    $node->isDefaultRevision(FALSE);
-    $node->field_tags->target_id = $term->id();
-    $node->save();
-
-    $taxonomy_index = $this->getTaxonomyIndex();
-    $this->assertEquals($term2->id(), $taxonomy_index[$node->id()]->tid);
-
-    // Check that making the previously created forward-revision the default
-    // revision updates the taxonomy index correctly.
-    $node->isDefaultRevision(TRUE);
-    $node->save();
-
-    $taxonomy_index = $this->getTaxonomyIndex();
-    $this->assertEquals($term->id(), $taxonomy_index[$node->id()]->tid);
-  }
-
-  protected function getTaxonomyIndex() {
-    return \Drupal::database()->select('taxonomy_index')
-     ->fields('taxonomy_index')
-     ->execute()
-     ->fetchAllAssoc('nid');
-  }
-
-}
diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php
index b0311f3..399c3ed 100644
--- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php
+++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php
@@ -69,17 +69,6 @@ public function testTaxonomyTerms() {
       ),
     );
     $terms = Term::loadMultiple(array_keys($expected_results));
-
-    // Find each term in the tree.
-    $storage = \Drupal::entityTypeManager()->getStorage('taxonomy_term');
-    $vids = array_unique(array_column($expected_results, 'vid'));
-    $tree_terms = [];
-    foreach ($vids as $vid) {
-      foreach ($storage->loadTree($vid) as $term) {
-        $tree_terms[$term->tid] = $term;
-      }
-    }
-
     foreach ($expected_results as $tid => $values) {
       /** @var Term $term */
       $term = $terms[$tid];
@@ -97,10 +86,6 @@ public function testTaxonomyTerms() {
         }
         $this->assertIdentical($parents, $values['parent']);
       }
-
-      $this->assertArrayHasKey($tid, $tree_terms, "Term $tid exists in vocabulary tree");
-      $tree_term = $tree_terms[$tid];
-      $this->assertEquals($values['parent'], $tree_term->parents, "Term $tid has correct parents in vocabulary tree");
     }
   }
 
diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTermNodeRevisionTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTermNodeRevisionTest.php
index facd69b..ff2b514 100644
--- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTermNodeRevisionTest.php
+++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTermNodeRevisionTest.php
@@ -22,7 +22,7 @@ class MigrateTermNodeRevisionTest extends MigrateDrupal6TestBase {
   protected function setUp() {
     parent::setUp();
     $this->installSchema('node', ['node_access']);
-    $this->migrateContent(['revisions']);
+    $this->migrateContent(TRUE);
     $this->migrateTaxonomy();
     $this->executeMigrations(['d6_term_node', 'd6_term_node_revision']);
   }
diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTermNodeTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTermNodeTest.php
index 26f069c..718c35d 100644
--- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTermNodeTest.php
+++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTermNodeTest.php
@@ -55,7 +55,7 @@ public function testTermNode() {
   public function testSkipNonExistentNode() {
     // Node 2 is migrated by d6_node__story, but we need to pretend that it
     // failed, so record that in the map table.
-    $this->mockFailure('d6_node:story', ['nid' => 2, 'language' => 'en']);
+    $this->mockFailure('d6_node:story', ['nid' => 2]);
 
     // d6_term_node__2 should skip over node 2 (a.k.a. revision 3) because,
     // according to the map table, it failed.
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 c7e7828..8a2ea11 100644
--- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
+++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php
@@ -16,13 +16,6 @@ class MigrateTaxonomyTermTest extends MigrateDrupal7TestBase {
   public static $modules = array('taxonomy', 'text');
 
   /**
-   * The cached taxonomy tree items, keyed by vid and tid.
-   *
-   * @var array
-   */
-  protected $treeData = [];
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -42,38 +35,34 @@ protected function setUp() {
    *   The parent vocabulary the migrated entity should have.
    * @param string $expected_description
    *   The description the migrated entity should have.
-   * @param string $expected_format
-   *   The format the migrated entity should have.
    * @param int $expected_weight
    *   The weight the migrated entity should have.
    * @param array $expected_parents
    *   The parent terms the migrated entity should have.
    */
-  protected function assertEntity($id, $expected_label, $expected_vid, $expected_description = '', $expected_format = NULL, $expected_weight = 0, $expected_parents = []) {
+  protected function assertEntity($id, $expected_label, $expected_vid, $expected_description = '', $expected_weight = 0, $expected_parents = []) {
     /** @var \Drupal\taxonomy\TermInterface $entity */
     $entity = Term::load($id);
     $this->assertTrue($entity instanceof TermInterface);
     $this->assertIdentical($expected_label, $entity->label());
     $this->assertIdentical($expected_vid, $entity->getVocabularyId());
     $this->assertEqual($expected_description, $entity->getDescription());
-    $this->assertEquals($expected_format, $entity->getFormat());
     $this->assertEqual($expected_weight, $entity->getWeight());
     $this->assertIdentical($expected_parents, $this->getParentIDs($id));
-    $this->assertHierarchy($expected_vid, $id, $expected_parents);
   }
 
   /**
    * Tests the Drupal 7 taxonomy term to Drupal 8 migration.
    */
   public function testTaxonomyTerms() {
-    $this->assertEntity(1, 'General discussion', 'forums', '', NULL, 2);
-    $this->assertEntity(2, 'Term1', 'test_vocabulary', 'The first term.', 'filtered_html');
-    $this->assertEntity(3, 'Term2', 'test_vocabulary', 'The second term.', 'filtered_html');
-    $this->assertEntity(4, 'Term3', 'test_vocabulary', 'The third term.', 'full_html', 0, [3]);
-    $this->assertEntity(5, 'Custom Forum', 'forums', 'Where the cool kids are.', NULL, 3);
-    $this->assertEntity(6, 'Games', 'forums', '', NULL, 4);
-    $this->assertEntity(7, 'Minecraft', 'forums', '', NULL, 1, [6]);
-    $this->assertEntity(8, 'Half Life 3', 'forums', '', NULL, 0, [6]);
+    $this->assertEntity(1, 'General discussion', 'forums', '', 2);
+    $this->assertEntity(2, 'Term1', 'test_vocabulary', 'The first term.');
+    $this->assertEntity(3, 'Term2', 'test_vocabulary', 'The second term.');
+    $this->assertEntity(4, 'Term3', 'test_vocabulary', 'The third term.', 0, [3]);
+    $this->assertEntity(5, 'Custom Forum', 'forums', 'Where the cool kids are.', 3);
+    $this->assertEntity(6, 'Games', 'forums', '', 4);
+    $this->assertEntity(7, 'Minecraft', 'forums', '', 1, [6]);
+    $this->assertEntity(8, 'Half Life 3', 'forums', '', 0, [6]);
   }
 
   /**
@@ -89,28 +78,4 @@ protected function getParentIDs($tid) {
     return array_keys(\Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($tid));
   }
 
-  /**
-   * Assert that a term is present in the tree storage, with the right parents.
-   *
-   * @param string $vid
-   *   Vocabular ID.
-   * @param int $tid
-   *   ID of the term to check.
-   * @param array $parent_ids
-   *   The expected parent term IDs.
-   */
-  protected function assertHierarchy($vid, $tid, array $parent_ids) {
-    if (!isset($this->treeData[$vid])) {
-      $tree = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree($vid);
-      $this->treeData[$vid] = [];
-      foreach ($tree as $item) {
-        $this->treeData[$vid][$item->tid] = $item;
-      }
-    }
-
-    $this->assertArrayHasKey($tid, $this->treeData[$vid], "Term $tid exists in taxonomy tree");
-    $term = $this->treeData[$vid][$tid];
-    $this->assertEquals($parent_ids, array_filter($term->parents), "Term $tid has correct parents in taxonomy tree");
-  }
-
 }
diff --git a/core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php b/core/modules/telephone/src/Tests/TelephoneFieldTest.php
similarity index 95%
rename from core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php
rename to core/modules/telephone/src/Tests/TelephoneFieldTest.php
index cc28bc7..f7452b0 100644
--- a/core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php
+++ b/core/modules/telephone/src/Tests/TelephoneFieldTest.php
@@ -1,17 +1,17 @@
 <?php
 
-namespace Drupal\Tests\telephone\Functional;
+namespace Drupal\telephone\Tests;
 
 use Drupal\field\Entity\FieldConfig;
+use Drupal\simpletest\WebTestBase;
 use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\Tests\BrowserTestBase;
 
 /**
  * Tests the creation of telephone fields.
  *
  * @group telephone
  */
-class TelephoneFieldTest extends BrowserTestBase {
+class TelephoneFieldTest extends WebTestBase {
 
   /**
    * Modules to enable.
diff --git a/core/modules/telephone/tests/src/Kernel/TelephoneItemTest.php b/core/modules/telephone/tests/src/Kernel/TelephoneItemTest.php
index 7f94ba3..2187c36 100644
--- a/core/modules/telephone/tests/src/Kernel/TelephoneItemTest.php
+++ b/core/modules/telephone/tests/src/Kernel/TelephoneItemTest.php
@@ -52,7 +52,7 @@ public function testTestItem() {
 
     // Verify entity has been created properly.
     $id = $entity->id();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertTrue($entity->field_test instanceof FieldItemListInterface, 'Field implements interface.');
     $this->assertTrue($entity->field_test[0] instanceof FieldItemInterface, 'Field item implements interface.');
     $this->assertEqual($entity->field_test->value, $value);
@@ -65,7 +65,7 @@ public function testTestItem() {
 
     // Read changed entity and assert changed values.
     $entity->save();
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $this->assertEqual($entity->field_test->value, $new_value);
 
     // Test sample item generation.
diff --git a/core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php b/core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
index 0a78114..c57a6a8 100644
--- a/core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
+++ b/core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
@@ -15,6 +15,9 @@
  *     "text",
  *     "text_long",
  *     "text_with_summary",
+ *   },
+ *   quickedit = {
+ *     "editor" = "plain_text"
  *   }
  * )
  */
diff --git a/core/modules/text/src/Plugin/migrate/cckfield/TextField.php b/core/modules/text/src/Plugin/migrate/cckfield/TextField.php
index cc4c1ec..523ffca 100644
--- a/core/modules/text/src/Plugin/migrate/cckfield/TextField.php
+++ b/core/modules/text/src/Plugin/migrate/cckfield/TextField.php
@@ -8,13 +8,7 @@
 
 /**
  * @MigrateCckField(
- *   id = "text",
- *   type_map = {
- *     "text" = "text",
- *     "text_long" = "text_long",
- *     "text_with_summary" = "text_with_summary"
- *   },
- *   core = {6,7}
+ *   id = "text"
  * )
  */
 class TextField extends CckFieldPluginBase {
@@ -119,7 +113,6 @@ public function getFieldType(Row $row) {
         case 'text_textarea':
           return 'text_long';
         default:
-          return parent::getFieldType($row);
           break;
       }
     }
diff --git a/core/modules/text/src/Tests/TextFieldTest.php b/core/modules/text/src/Tests/TextFieldTest.php
index 993346a..fcec361 100644
--- a/core/modules/text/src/Tests/TextFieldTest.php
+++ b/core/modules/text/src/Tests/TextFieldTest.php
@@ -7,7 +7,6 @@
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\Tests\String\StringFieldTest;
 use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\filter\Entity\FilterFormat;
 
 /**
  * Tests the creation of text fields.
@@ -196,7 +195,7 @@ function _testTextfieldWidgetsFormatted($field_type, $widget_type) {
     $this->assertText(t('entity_test @id has been created.', array('@id' => $id)), 'Entity was created');
 
     // Display the entity.
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full');
     $content = $display->build($entity);
     $this->setRawContent($renderer->renderRoot($content));
@@ -212,7 +211,7 @@ function _testTextfieldWidgetsFormatted($field_type, $widget_type) {
     );
     $this->drupalPostForm('admin/config/content/formats/add', $edit, t('Save configuration'));
     filter_formats_reset();
-    $format = FilterFormat::load($edit['format']);
+    $format = entity_load('filter_format', $edit['format']);
     $format_id = $format->id();
     $permission = $format->getPermissionName();
     $roles = $this->webUser->getRoles();
@@ -235,7 +234,7 @@ function _testTextfieldWidgetsFormatted($field_type, $widget_type) {
 
     // Display the entity.
     $this->container->get('entity.manager')->getStorage('entity_test')->resetCache(array($id));
-    $entity = EntityTest::load($id);
+    $entity = entity_load('entity_test', $id);
     $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full');
     $content = $display->build($entity);
     $this->setRawContent($renderer->renderRoot($content));
diff --git a/core/modules/text/text.module b/core/modules/text/text.module
index 906b461..a3dbcec 100644
--- a/core/modules/text/text.module
+++ b/core/modules/text/text.module
@@ -8,7 +8,6 @@
 use Drupal\Component\Utility\Html;
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Routing\RouteMatchInterface;
-use Drupal\filter\Entity\FilterFormat;
 
 /**
  * Implements hook_help().
@@ -81,7 +80,7 @@ function text_summary($text, $format = NULL, $size = NULL) {
 
   // Retrieve the filters of the specified text format, if any.
   if (isset($format)) {
-    $filters = FilterFormat::load($format)->filters();
+    $filters = entity_load('filter_format', $format)->filters();
     // If the specified format does not exist, return nothing. $text is already
     // filtered text, but the remainder of this function will not be able to
     // ensure a sane and secure summary.
diff --git a/core/modules/toolbar/src/Element/Toolbar.php b/core/modules/toolbar/src/Element/Toolbar.php
index 69a53db..7077372 100644
--- a/core/modules/toolbar/src/Element/Toolbar.php
+++ b/core/modules/toolbar/src/Element/Toolbar.php
@@ -59,7 +59,7 @@ public function getInfo() {
    *   A renderable array.
    *
    * @return array
-   *   A renderable array.
+   *  A renderable array.
    *
    * @see toolbar_page_top()
    */
diff --git a/core/modules/toolbar/toolbar.routing.yml b/core/modules/toolbar/toolbar.routing.yml
index 10e6cc3..0f9dcf8 100644
--- a/core/modules/toolbar/toolbar.routing.yml
+++ b/core/modules/toolbar/toolbar.routing.yml
@@ -2,5 +2,7 @@ toolbar.subtrees:
   path: '/toolbar/subtrees/{hash}'
   defaults:
     _controller: '\Drupal\toolbar\Controller\ToolbarController::subtreesAjax'
+  options:
+    _theme: ajax_base_page
   requirements:
     _custom_access: '\Drupal\toolbar\Controller\ToolbarController::checkSubTreeAccess'
diff --git a/core/modules/tour/src/Tests/TourTest.php b/core/modules/tour/src/Tests/TourTest.php
index 78304c6..ab2fe4a 100644
--- a/core/modules/tour/src/Tests/TourTest.php
+++ b/core/modules/tour/src/Tests/TourTest.php
@@ -145,7 +145,7 @@ public function testTourFunctionality() {
     $this->drupalGet('tour-test-1');
 
     // Load it back from the database and verify storage worked.
-    $entity_save_tip = Tour::load('tour-entity-create-test-en');
+    $entity_save_tip = entity_load('tour', 'tour-entity-create-test-en');
     // Verify that hook_ENTITY_TYPE_load() integration worked.
     $this->assertEqual($entity_save_tip->loaded, 'Load hooks work');
     // Verify that hook_ENTITY_TYPE_presave() integration worked.
diff --git a/core/modules/tour/tour.module b/core/modules/tour/tour.module
index 050eaa7..ed53f25 100644
--- a/core/modules/tour/tour.module
+++ b/core/modules/tour/tour.module
@@ -6,7 +6,6 @@
  */
 
 use Drupal\Core\Routing\RouteMatchInterface;
-use Drupal\tour\Entity\Tour;
 
 /**
  * Implements hook_help().
@@ -86,7 +85,7 @@ function tour_page_bottom(array &$page_bottom) {
   $results = \Drupal::entityQuery('tour')
     ->condition('routes.*.route_name', $route_name)
     ->execute();
-  if (!empty($results) && $tours = Tour::loadMultiple(array_keys($results))) {
+  if (!empty($results) && $tours = entity_load_multiple('tour', array_keys($results))) {
     foreach ($tours as $id => $tour) {
       // Match on params.
       if (!$tour->hasMatchingRoute($route_name, $route_match->getRawParameters()->all())) {
diff --git a/core/modules/tour/tour.permissions.yml b/core/modules/tour/tour.permissions.yml
index d5a4ebc..fa14b8a 100644
--- a/core/modules/tour/tour.permissions.yml
+++ b/core/modules/tour/tour.permissions.yml
@@ -1,2 +1,3 @@
 access tour:
-  title: 'Access tours'
+  title: 'Access tour'
+  description: 'View tour tips.'
diff --git a/core/modules/tracker/src/Tests/TrackerTest.php b/core/modules/tracker/src/Tests/TrackerTest.php
index a927e89..fa533c1 100644
--- a/core/modules/tracker/src/Tests/TrackerTest.php
+++ b/core/modules/tracker/src/Tests/TrackerTest.php
@@ -412,7 +412,7 @@ function testTrackerAdminUnpublish() {
       'action' => 'node_unpublish_action',
       'node_bulk_form[0]' => $node->id(),
     );
-    $this->drupalPostForm('admin/content', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('admin/content', $edit, t('Apply'));
 
     $this->drupalGet('activity');
     $this->assertText(t('No content available.'), 'A node is displayed on the tracker listing pages.');
diff --git a/core/modules/tracker/tracker.module b/core/modules/tracker/tracker.module
index 1b2f648..54d490d 100644
--- a/core/modules/tracker/tracker.module
+++ b/core/modules/tracker/tracker.module
@@ -155,7 +155,7 @@ function _tracker_myrecent_access(AccountInterface $account) {
  * @param int $account
  *   The user account ID to track.
  *
- * @return bool
+ * @return boolean
  *   TRUE if a user has permission to access the account for $account and
  *   has permission to access the content.
  *
diff --git a/core/modules/update/src/Form/UpdateManagerInstall.php b/core/modules/update/src/Form/UpdateManagerInstall.php
index 3bc2c78..f06b53a 100644
--- a/core/modules/update/src/Form/UpdateManagerInstall.php
+++ b/core/modules/update/src/Form/UpdateManagerInstall.php
@@ -219,17 +219,12 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
       'local_url' => $project_real_location,
     );
 
-    // This process is inherently difficult to test therefore use a state flag.
-    $test_authorize = FALSE;
-    if (drupal_valid_test_ua()) {
-      $test_authorize = \Drupal::state()->get('test_uploaders_via_prompt', FALSE);
-    }
     // If the owner of the directory we extracted is the same as the owner of
     // our configuration directory (e.g. sites/default) where we're trying to
     // install the code, there's no need to prompt for FTP/SSH credentials.
     // Instead, we instantiate a Drupal\Core\FileTransfer\Local and invoke
     // update_authorize_run_install() directly.
-    if (fileowner($project_real_location) == fileowner($this->sitePath) && !$test_authorize) {
+    if (fileowner($project_real_location) == fileowner($this->sitePath)) {
       $this->moduleHandler->loadInclude('update', 'inc', 'update.authorize');
       $filetransfer = new Local($this->root);
       $response = call_user_func_array('update_authorize_run_install', array_merge(array($filetransfer), $arguments));
diff --git a/core/modules/update/src/Tests/FileTransferAuthorizeFormTest.php b/core/modules/update/src/Tests/FileTransferAuthorizeFormTest.php
deleted file mode 100644
index 0d0989b..0000000
--- a/core/modules/update/src/Tests/FileTransferAuthorizeFormTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Drupal\update\Tests;
-
-/**
- * Tests the Update Manager module upload via authorize.php functionality.
- *
- * @group update
- */
-class FileTransferAuthorizeFormTest extends UpdateTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('update', 'update_test');
-
-  protected function setUp() {
-    parent::setUp();
-    $admin_user = $this->drupalCreateUser(array('administer modules', 'administer software updates', 'administer site configuration'));
-    $this->drupalLogin($admin_user);
-
-    // Create a local cache so the module is not downloaded from drupal.org.
-    $cache_directory = _update_manager_cache_directory(TRUE);
-    $validArchiveFile = __DIR__ . '/../../tests/update_test_new_module/8.x-1.0/update_test_new_module.tar.gz';
-    copy($validArchiveFile, $cache_directory . '/update_test_new_module.tar.gz');
-  }
-
-  /**
-   * Tests the Update Manager module upload via authorize.php functionality.
-   */
-  public function testViaAuthorize() {
-    // Ensure the that we can select which file transfer backend to use.
-    \Drupal::state()->set('test_uploaders_via_prompt', TRUE);
-
-    // Ensure the module does not already exist.
-    $this->drupalGet('admin/modules');
-    $this->assertNoText('Update test new module');
-
-    $edit = [
-      // This project has been cached in the test's setUp() method.
-      'project_url' => 'https://ftp.drupal.org/files/projects/update_test_new_module.tar.gz',
-    ];
-    $this->drupalPostForm('admin/modules/install', $edit, t('Install'));
-    $edit = [
-      'connection_settings[authorize_filetransfer_default]' => 'system_test',
-      'connection_settings[system_test][update_test_username]' => $this->randomMachineName(),
-    ];
-    $this->drupalPostForm(NULL, $edit, t('Continue'));
-    $this->assertText(t('Installation was completed successfully.'));
-
-    // Ensure the module is available to install.
-    $this->drupalGet('admin/modules');
-    $this->assertText('Update test new module');
-  }
-
-}
diff --git a/core/modules/update/src/Tests/UpdateContribTest.php b/core/modules/update/src/Tests/UpdateContribTest.php
index 88cf378..923b5d5 100644
--- a/core/modules/update/src/Tests/UpdateContribTest.php
+++ b/core/modules/update/src/Tests/UpdateContribTest.php
@@ -345,9 +345,6 @@ function testUpdateBrokenFetchURL() {
     );
     $this->config('update_test.settings')->set('system_info', $system_info)->save();
 
-    // Ensure that the update information is correct before testing.
-    $this->drupalGet('admin/reports/updates');
-
     $xml_mapping = array(
       'drupal' => '0.0',
       'aaa_update_test' => '1_0',
diff --git a/core/modules/update/src/Tests/UpdateCoreTest.php b/core/modules/update/src/Tests/UpdateCoreTest.php
index baecde8..799d5a9 100644
--- a/core/modules/update/src/Tests/UpdateCoreTest.php
+++ b/core/modules/update/src/Tests/UpdateCoreTest.php
@@ -65,17 +65,11 @@ function testNoUpdatesAvailable() {
    */
   function testNormalUpdateAvailable() {
     $this->setSystemInfo('8.0.0');
-
-    // Ensure that the update check requires a token.
-    $this->drupalGet('admin/reports/updates/check');
-    $this->assertResponse(403, 'Accessing admin/reports/updates/check without a CSRF token results in access denied.');
-
     foreach (array(0, 1) as $minor_version) {
       foreach (array('-alpha1', '-beta1', '') as $extra_version) {
         $this->refreshUpdateStatus(array('drupal' => "$minor_version.1" . $extra_version));
         $this->standardTests();
-        $this->drupalGet('admin/reports/updates');
-        $this->clickLink(t('Check manually'));
+        $this->drupalGet('admin/reports/updates/check');
         $this->assertNoText(t('Security update required!'));
         $this->assertRaw(\Drupal::l("8.$minor_version.1" . $extra_version, Url::fromUri("http://example.com/drupal-8-$minor_version-1$extra_version-release")), 'Link to release appears.');
         $this->assertRaw(\Drupal::l(t('Download'), Url::fromUri("http://example.com/drupal-8-$minor_version-1$extra_version.tar.gz")), 'Link to download appears.');
@@ -137,8 +131,7 @@ function testMajorUpdateAvailable() {
           $this->setSystemInfo("8.$minor_version.$patch_version" . $extra_version);
           $this->refreshUpdateStatus(array('drupal' => '9'));
           $this->standardTests();
-          $this->drupalGet('admin/reports/updates');
-          $this->clickLink(t('Check manually'));
+          $this->drupalGet('admin/reports/updates/check');
           $this->assertNoText(t('Security update required!'));
           $this->assertRaw(\Drupal::l('9.0.0', Url::fromUri("http://example.com/drupal-9-0-0-release")), 'Link to release appears.');
           $this->assertRaw(\Drupal::l(t('Download'), Url::fromUri("http://example.com/drupal-9-0-0.tar.gz")), 'Link to download appears.');
diff --git a/core/modules/update/src/Tests/UpdateTestBase.php b/core/modules/update/src/Tests/UpdateTestBase.php
index 9cb3c20..de15b0b 100644
--- a/core/modules/update/src/Tests/UpdateTestBase.php
+++ b/core/modules/update/src/Tests/UpdateTestBase.php
@@ -67,8 +67,7 @@ protected function refreshUpdateStatus($xml_map, $url = 'update-test') {
     // Save the map for UpdateTestController::updateTest() to use.
     $this->config('update_test.settings')->set('xml_map', $xml_map)->save();
     // Manually check the update status.
-    $this->drupalGet('admin/reports/updates');
-    $this->clickLink(t('Check manually'));
+    $this->drupalGet('admin/reports/updates/check');
   }
 
   /**
diff --git a/core/modules/update/src/Tests/UpdateUploadTest.php b/core/modules/update/src/Tests/UpdateUploadTest.php
index 39b6944..1605f2e 100644
--- a/core/modules/update/src/Tests/UpdateUploadTest.php
+++ b/core/modules/update/src/Tests/UpdateUploadTest.php
@@ -30,9 +30,6 @@ protected function setUp() {
    * Tests upload, extraction, and update of a module.
    */
   public function testUploadModule() {
-    // Ensure that the update information is correct before testing.
-    update_get_available(TRUE);
-
     // Images are not valid archives, so get one and try to install it. We
     // need an extra variable to store the result of drupalGetTestFiles()
     // since reset() takes an argument by reference and passing in a constant
diff --git a/core/modules/update/tests/modules/update_test/src/MockFileTransfer.php b/core/modules/update/tests/modules/update_test/src/MockFileTransfer.php
new file mode 100644
index 0000000..2194b43
--- /dev/null
+++ b/core/modules/update/tests/modules/update_test/src/MockFileTransfer.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Drupal\update_test;
+
+/**
+ * Mocks a FileTransfer object to test the settings form functionality.
+ */
+class MockFileTransfer {
+
+  /**
+   * Returns a Drupal\update_test\MockFileTransfer object.
+   *
+   * @return \Drupal\update_test\MockFileTransfer
+   *   A new Drupal\update_test\MockFileTransfer object.
+   */
+  public static function factory() {
+    return new FileTransfer();
+  }
+
+  /**
+   * Returns a settings form with a text field to input a username.
+   */
+  public function getSettingsForm() {
+    $form = array();
+    $form['update_test_username'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Update Test Username'),
+    );
+    return $form;
+  }
+
+}
diff --git a/core/modules/update/tests/modules/update_test/src/TestFileTransferWithSettingsForm.php b/core/modules/update/tests/modules/update_test/src/TestFileTransferWithSettingsForm.php
deleted file mode 100644
index 5737c09..0000000
--- a/core/modules/update/tests/modules/update_test/src/TestFileTransferWithSettingsForm.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace Drupal\update_test;
-
-use Drupal\Core\FileTransfer\Local;
-
-/**
- * Provides an object to test the settings form functionality.
- *
- * This class extends \Drupal\Core\FileTransfer\Local to make module install
- * testing via \Drupal\Core\FileTransfer\Form\FileTransferAuthorizeForm and
- * authorize.php possible.
- *
- * @see \Drupal\update\Tests\FileTransferAuthorizeFormTest
- */
-class TestFileTransferWithSettingsForm extends Local {
-
-  /**
-   * Returns a Drupal\update_test\TestFileTransferWithSettingsForm object.
-   *
-   * @return \Drupal\update_test\TestFileTransferWithSettingsForm
-   *   A new Drupal\update_test\TestFileTransferWithSettingsForm object.
-   */
-  public static function factory($jail, $settings) {
-    return new static($jail);
-  }
-
-  /**
-   * Returns a settings form with a text field to input a username.
-   */
-  public function getSettingsForm() {
-    $form = array();
-    $form['update_test_username'] = array(
-      '#type' => 'textfield',
-      '#title' => t('Update Test Username'),
-    );
-    return $form;
-  }
-
-}
diff --git a/core/modules/update/tests/modules/update_test/update_test.module b/core/modules/update/tests/modules/update_test/update_test.module
index 90b6cdc..04a77e9 100644
--- a/core/modules/update/tests/modules/update_test/update_test.module
+++ b/core/modules/update/tests/modules/update_test/update_test.module
@@ -59,13 +59,13 @@ function update_test_update_status_alter(&$projects) {
  * Implements hook_filetransfer_info().
  */
 function update_test_filetransfer_info() {
-  // Define a test file transfer method, to ensure that there will always be at
-  // least one method available in the user interface (regardless of the
+  // Define a mock file transfer method, to ensure that there will always be
+  // at least one method available in the user interface (regardless of the
   // environment in which the update manager tests are run).
   return array(
     'system_test' => array(
       'title' => t('Update Test FileTransfer'),
-      'class' => 'Drupal\update_test\TestFileTransferWithSettingsForm',
+      'class' => 'Drupal\update_test\MockFileTransfer',
       'weight' => -20,
     ),
   );
diff --git a/core/modules/update/update.install b/core/modules/update/update.install
index e810129..b2223f1 100644
--- a/core/modules/update/update.install
+++ b/core/modules/update/update.install
@@ -148,20 +148,3 @@ function _update_requirement_check($project, $type) {
   $requirement['value'] = \Drupal::l($requirement_label, new Url(_update_manager_access() ? 'update.report_update' : 'update.status'));
   return $requirement;
 }
-
-/**
- * @addtogroup updates-8.1.x
- * @{
- */
-
-/**
- * Rebuild the router to ensure admin/reports/updates/check has CSRF protection.
- */
-function update_update_8001() {
-  // Empty update forces a call to drupal_flush_all_caches() which rebuilds the
-  // router.
-}
-
-/**
- * @} End of "addtogroup updates-8.1.x".
- */
diff --git a/core/modules/update/update.routing.yml b/core/modules/update/update.routing.yml
index d5b79ea..0049396 100644
--- a/core/modules/update/update.routing.yml
+++ b/core/modules/update/update.routing.yml
@@ -21,7 +21,6 @@ update.manual_status:
     _controller: '\Drupal\update\Controller\UpdateController::updateStatusManually'
   requirements:
     _permission: 'administer site configuration'
-    _csrf_token: 'TRUE'
 
 update.report_install:
   path: '/admin/reports/updates/install'
diff --git a/core/modules/user/src/Form/UserPermissionsForm.php b/core/modules/user/src/Form/UserPermissionsForm.php
index 7a06219..01e8755 100644
--- a/core/modules/user/src/Form/UserPermissionsForm.php
+++ b/core/modules/user/src/Form/UserPermissionsForm.php
@@ -100,6 +100,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#value' => $role_names,
     );
     // Render role/permission overview:
+    $options = array();
     $hide_descriptions = system_admin_compact_mode();
 
     $form['system_compact_link'] = array(
@@ -144,6 +145,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
           'restrict access' => FALSE,
           'warning' => !empty($perm_item['restrict access']) ? $this->t('Warning: Give to trusted roles only; this permission has security implications.') : '',
         );
+        $options[$perm] = $perm_item['title'];
         $form['permissions'][$perm]['description'] = array(
           '#type' => 'inline_template',
           '#template' => '<div class="permission"><span class="title">{{ title }}</span>{% if description or warning %}<div class="description">{% if warning %}<em class="permission-warning">{{ warning }}</em> {% endif %}{{ description }}</div>{% endif %}</div>',
@@ -156,6 +158,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
           $form['permissions'][$perm]['description']['#context']['description'] = $perm_item['description'];
           $form['permissions'][$perm]['description']['#context']['warning'] = $perm_item['warning'];
         }
+        $options[$perm] = '';
         foreach ($role_names as $rid => $name) {
           $form['permissions'][$perm][$rid] = array(
             '#title' => $name . ': ' . $perm_item['title'],
diff --git a/core/modules/user/src/MigratePassword.php b/core/modules/user/src/MigratePassword.php
index 79715df..4116c16 100644
--- a/core/modules/user/src/MigratePassword.php
+++ b/core/modules/user/src/MigratePassword.php
@@ -1,5 +1,89 @@
 <?php
-// @codingStandardsIgnoreFile
-// This file is intentionally empty so that it overwrites when sites are
-// updated from a zip/tarball without deleting the /core folder first.
-// @todo: remove in 8.3.x
+
+namespace Drupal\user;
+
+use Drupal\Core\Password\PasswordInterface;
+
+/**
+ * Replaces the original 'password' service in order to prefix the MD5 re-hashed
+ * passwords with the 'U' flag. The new salted hash is recreated on first login
+ * similarly to the D6->D7 upgrade path.
+ */
+class MigratePassword implements PasswordInterface {
+
+  /**
+   * The original password service.
+   *
+   * @var \Drupal\Core\Password\PasswordInterface
+   */
+  protected $originalPassword;
+
+  /**
+   * Indicates if MD5 password prefixing is enabled.
+   */
+  protected $enabled = FALSE;
+
+  /**
+   * Builds the replacement password service class.
+   *
+   * @param \Drupal\Core\Password\PasswordInterface $original_password
+   *   The password object.
+   */
+  public function __construct(PasswordInterface $original_password) {
+    $this->originalPassword = $original_password;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function check($password, $hash) {
+    return $this->originalPassword->check($password, $hash);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function needsRehash($hash) {
+    return $this->originalPassword->needsRehash($hash);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function hash($password) {
+    $hash = $this->originalPassword->hash($password);
+
+    // Allow prefixing only if the service was asked to prefix. Check also if
+    // the $password pattern is conforming to a MD5 result.
+    if ($this->enabled && preg_match('/^[0-9a-f]{32}$/', $password)) {
+      $hash = 'U' . $hash;
+    }
+
+    return $hash;
+  }
+
+  /**
+   * Enables the MD5 password prefixing.
+   */
+  public function enableMd5Prefixing() {
+    $this->enabled = TRUE;
+  }
+
+  /**
+   * Disables the MD5 password prefixing.
+   */
+  public function disableMd5Prefixing() {
+    $this->enabled = FALSE;
+  }
+
+  /**
+   * Implements the PhpassHashedPassword::getCountLog2() method.
+   *
+   * @todo: Revisit this whole alternate password service:
+   *   https://www.drupal.org/node/2540594.
+   */
+  public function getCountLog2($setting) {
+    return $this->originalPassword->getCountLog2($setting);
+  }
+
+}
diff --git a/core/modules/user/src/Plugin/migrate/destination/EntityUser.php b/core/modules/user/src/Plugin/migrate/destination/EntityUser.php
index 6ec88ad..4187121 100644
--- a/core/modules/user/src/Plugin/migrate/destination/EntityUser.php
+++ b/core/modules/user/src/Plugin/migrate/destination/EntityUser.php
@@ -3,13 +3,14 @@
 namespace Drupal\user\Plugin\migrate\destination;
 
 use Drupal\Component\Utility\Unicode;
-use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Field\FieldTypePluginManagerInterface;
 use Drupal\Core\Field\Plugin\Field\FieldType\EmailItem;
 use Drupal\Core\Password\PasswordInterface;
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate\MigrateException;
+use Drupal\user\MigratePassword;
 use Drupal\migrate\Plugin\migrate\destination\EntityContentBase;
 use Drupal\migrate\Row;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -54,7 +55,9 @@ class EntityUser extends EntityContentBase {
    */
   public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, EntityStorageInterface $storage, array $bundles, EntityManagerInterface $entity_manager, FieldTypePluginManagerInterface $field_type_manager, PasswordInterface $password) {
     parent::__construct($configuration, $plugin_id, $plugin_definition, $migration, $storage, $bundles, $entity_manager, $field_type_manager);
-    $this->password = $password;
+    if (isset($configuration['md5_passwords'])) {
+      $this->password = $password;
+    }
   }
 
   /**
@@ -80,29 +83,24 @@ public static function create(ContainerInterface $container, array $configuratio
    * @throws \Drupal\migrate\MigrateException
    */
   public function import(Row $row, array $old_destination_id_values = array()) {
+    if ($this->password) {
+      if ($this->password instanceof MigratePassword) {
+        $this->password->enableMd5Prefixing();
+      }
+      else {
+        throw new MigrateException('Password service has been altered by another module, aborting.');
+      }
+    }
     // Do not overwrite the root account password.
     if ($row->getDestinationProperty('uid') == 1) {
       $row->removeDestinationProperty('pass');
     }
-    return parent::import($row, $old_destination_id_values);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function save(ContentEntityInterface $entity, array $old_destination_id_values = array()) {
-    // Do not overwrite the root account password.
-    if ($entity->id() != 1) {
-      // Set the pre_hashed password so that the PasswordItem field does not hash
-      // already hashed passwords. If the md5_passwords configuration option is
-      // set we need to rehash the password and prefix with a U.
-      // @see \Drupal\Core\Field\Plugin\Field\FieldType\PasswordItem::preSave()
-      $entity->pass->pre_hashed = TRUE;
-      if (isset($this->configuration['md5_passwords'])) {
-        $entity->pass->value = 'U' . $this->password->hash($entity->pass->value);
-      }
+    $ids = parent::import($row, $old_destination_id_values);
+    if ($this->password) {
+      $this->password->disableMd5Prefixing();
     }
-    return parent::save($entity, $old_destination_id_values);
+
+    return $ids;
   }
 
   /**
diff --git a/core/modules/user/src/Plugin/migrate/source/d6/Role.php b/core/modules/user/src/Plugin/migrate/source/d6/Role.php
index f7bac99..79ce021 100644
--- a/core/modules/user/src/Plugin/migrate/source/d6/Role.php
+++ b/core/modules/user/src/Plugin/migrate/source/d6/Role.php
@@ -27,7 +27,7 @@ class Role extends DrupalSqlBase {
   public function query() {
     $query = $this->select('role', 'r')
       ->fields('r', array('rid', 'name'))
-      ->orderBy('r.rid');
+      ->orderBy('rid');
     return $query;
   }
 
diff --git a/core/modules/user/src/Plugin/migrate/source/d6/User.php b/core/modules/user/src/Plugin/migrate/source/d6/User.php
index 1260ca7..58d8182 100644
--- a/core/modules/user/src/Plugin/migrate/source/d6/User.php
+++ b/core/modules/user/src/Plugin/migrate/source/d6/User.php
@@ -20,7 +20,7 @@ class User extends DrupalSqlBase {
   public function query() {
     return $this->select('users', 'u')
       ->fields('u', array_keys($this->baseFields()))
-      ->condition('u.uid', 0, '>');
+      ->condition('uid', 0, '>');
   }
 
   /**
diff --git a/core/modules/user/src/Plugin/migrate/source/d6/UserPicture.php b/core/modules/user/src/Plugin/migrate/source/d6/UserPicture.php
index 13ae4f3..4e638be 100644
--- a/core/modules/user/src/Plugin/migrate/source/d6/UserPicture.php
+++ b/core/modules/user/src/Plugin/migrate/source/d6/UserPicture.php
@@ -22,7 +22,7 @@ public function query() {
     $query = $this->select('users', 'u')
       ->condition('picture', '', '<>')
       ->fields('u', array('uid', 'access', 'picture'))
-      ->orderBy('u.access');
+      ->orderBy('access');
     return $query;
   }
 
diff --git a/core/modules/user/src/Plugin/migrate/source/d6/UserPictureFile.php b/core/modules/user/src/Plugin/migrate/source/d6/UserPictureFile.php
index d394e9c..7883aea 100644
--- a/core/modules/user/src/Plugin/migrate/source/d6/UserPictureFile.php
+++ b/core/modules/user/src/Plugin/migrate/source/d6/UserPictureFile.php
@@ -33,7 +33,7 @@ class UserPictureFile extends DrupalSqlBase {
    */
   public function query() {
     $query = $this->select('users', 'u')
-      ->condition('u.picture', '', '<>')
+      ->condition('picture', '', '<>')
       ->fields('u', array('uid', 'picture'));
     return $query;
   }
diff --git a/core/modules/user/src/Plugin/migrate/source/d7/User.php b/core/modules/user/src/Plugin/migrate/source/d7/User.php
index 717e120..63cabc1 100644
--- a/core/modules/user/src/Plugin/migrate/source/d7/User.php
+++ b/core/modules/user/src/Plugin/migrate/source/d7/User.php
@@ -20,7 +20,7 @@ class User extends FieldableEntity {
   public function query() {
     return $this->select('users', 'u')
       ->fields('u')
-      ->condition('u.uid', 0, '>');
+      ->condition('uid', 0, '>');
   }
 
   /**
diff --git a/core/modules/user/src/Plugin/views/filter/Name.php b/core/modules/user/src/Plugin/views/filter/Name.php
index 5f63cb3..d31c781 100644
--- a/core/modules/user/src/Plugin/views/filter/Name.php
+++ b/core/modules/user/src/Plugin/views/filter/Name.php
@@ -108,8 +108,7 @@ public function adminSummary() {
     $this->valueOptions = array();
 
     if ($this->value) {
-      $result = \Drupal::entityTypeManager()->getStorage('user')
-        ->loadByProperties(['uid' => $this->value]);
+      $result = entity_load_multiple_by_properties('user', array('uid' => $this->value));
       foreach ($result as $account) {
         if ($account->id()) {
           $this->valueOptions[$account->id()] = $account->label();
diff --git a/core/modules/user/src/SharedTempStore.php b/core/modules/user/src/SharedTempStore.php
index d629526..8e7fcfe 100644
--- a/core/modules/user/src/SharedTempStore.php
+++ b/core/modules/user/src/SharedTempStore.php
@@ -163,7 +163,7 @@ public function setIfNotExists($key, $value) {
    *
    * @return bool
    *   TRUE if the data was set, or FALSE if it already exists and is not owned
-   *   by $this->user.
+   * by $this->user.
    */
   public function setIfOwner($key, $value) {
     if ($this->setIfNotExists($key, $value)) {
diff --git a/core/modules/user/src/Tests/UserAdminTest.php b/core/modules/user/src/Tests/UserAdminTest.php
index 8d4a22b..6569ad2 100644
--- a/core/modules/user/src/Tests/UserAdminTest.php
+++ b/core/modules/user/src/Tests/UserAdminTest.php
@@ -100,7 +100,7 @@ function testUserAdmin() {
     $config
       ->set('notify.status_blocked', TRUE)
       ->save();
-    $this->drupalPostForm('admin/people', $edit, t('Apply to selected items'), array(
+    $this->drupalPostForm('admin/people', $edit, t('Apply'), array(
       // Sort the table by username so that we know reliably which user will be
       // targeted with the blocking action.
       'query' => array('order' => 'name', 'sort' => 'asc')
@@ -121,7 +121,7 @@ function testUserAdmin() {
     $editunblock = array();
     $editunblock['action'] = 'user_unblock_user_action';
     $editunblock['user_bulk_form[4]'] = TRUE;
-    $this->drupalPostForm('admin/people', $editunblock, t('Apply to selected items'), array(
+    $this->drupalPostForm('admin/people', $editunblock, t('Apply'), array(
       // Sort the table by username so that we know reliably which user will be
       // targeted with the blocking action.
       'query' => array('order' => 'name', 'sort' => 'asc')
@@ -174,8 +174,8 @@ function testNotificationEmailAddress() {
       ->save();
     // Register a new user account.
     $edit = array();
-    $edit['name'] = $this->randomMachineName();
-    $edit['mail'] = $edit['name'] . '@example.com';
+    $edit['name'] = $name = $this->randomMachineName();
+    $edit['mail'] = $mail = $edit['name'] . '@example.com';
     $this->drupalPostForm('user/register', $edit, t('Create new account'));
     $subject = 'Account details for ' . $edit['name'] . ' at ' . $system->get('name') . ' (pending admin approval)';
     // Ensure that admin notification mail is sent to the configured
diff --git a/core/modules/user/src/Tests/UserCancelTest.php b/core/modules/user/src/Tests/UserCancelTest.php
index 4ce4d91..fe21516 100644
--- a/core/modules/user/src/Tests/UserCancelTest.php
+++ b/core/modules/user/src/Tests/UserCancelTest.php
@@ -124,7 +124,7 @@ function testUserCancelUid1() {
       'action' => 'user_cancel_user_action',
       'user_bulk_form[0]' => TRUE,
     );
-    $this->drupalPostForm('admin/people', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('admin/people', $edit, t('Apply'));
 
     // Verify that uid 1's account was not cancelled.
     $user_storage->resetCache(array(1));
@@ -567,7 +567,7 @@ function testMassUserCancelByAdmin() {
     for ($i = 0; $i <= 4; $i++) {
       $edit['user_bulk_form[' . $i . ']'] = TRUE;
     }
-    $this->drupalPostForm('admin/people', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('admin/people', $edit, t('Apply'));
     $this->assertText(t('Are you sure you want to cancel these user accounts?'), 'Confirmation form to cancel accounts displayed.');
     $this->assertText(t('When cancelling these accounts'), 'Allows to select account cancellation method.');
     $this->assertText(t('Require email confirmation to cancel account'), 'Allows to send confirmation mail.');
diff --git a/core/modules/user/src/Tests/UserRegistrationTest.php b/core/modules/user/src/Tests/UserRegistrationTest.php
index 0831362..56f21e4 100644
--- a/core/modules/user/src/Tests/UserRegistrationTest.php
+++ b/core/modules/user/src/Tests/UserRegistrationTest.php
@@ -40,10 +40,7 @@ function testRegistrationWithEmailVerification() {
     $edit['mail'] = $mail = $edit['name'] . '@example.com';
     $this->drupalPostForm('user/register', $edit, t('Create new account'));
     $this->assertText(t('A welcome message with further instructions has been sent to your email address.'), 'User registered successfully.');
-
-    /** @var EntityStorageInterface $storage */
-    $storage = $this->container->get('entity_type.manager')->getStorage('user');
-    $accounts = $storage->loadByProperties(['name' => $name, 'mail' => $mail]);
+    $accounts = entity_load_multiple_by_properties('user', array('name' => $name, 'mail' => $mail));
     $new_user = reset($accounts);
     $this->assertTrue($new_user->isActive(), 'New account is active after registration.');
     $resetURL = user_pass_reset_url($new_user);
@@ -57,7 +54,7 @@ function testRegistrationWithEmailVerification() {
     $edit['mail'] = $mail = $edit['name'] . '@example.com';
     $this->drupalPostForm('user/register', $edit, t('Create new account'));
     $this->container->get('entity.manager')->getStorage('user')->resetCache();
-    $accounts = $storage->loadByProperties(['name' => $name, 'mail' => $mail]);
+    $accounts = entity_load_multiple_by_properties('user', array('name' => $name, 'mail' => $mail));
     $new_user = reset($accounts);
     $this->assertFalse($new_user->isActive(), 'New account is blocked until approved by an administrator.');
   }
@@ -86,8 +83,7 @@ function testRegistrationWithoutEmailVerification() {
     $edit['pass[pass2]'] = $new_pass;
     $this->drupalPostForm('user/register', $edit, t('Create new account'));
     $this->container->get('entity.manager')->getStorage('user')->resetCache();
-    $accounts = $this->container->get('entity_type.manager')->getStorage('user')
-      ->loadByProperties(['name' => $name, 'mail' => $mail]);
+    $accounts = entity_load_multiple_by_properties('user', array('name' => $name, 'mail' => $mail));
     $new_user = reset($accounts);
     $this->assertNotNull($new_user, 'New account successfully created with matching passwords.');
     $this->assertText(t('Registration successful. You are now logged in.'), 'Users are logged in after registering.');
@@ -112,8 +108,7 @@ function testRegistrationWithoutEmailVerification() {
     $this->assertText(t('The username @name has not been activated or is blocked.', array('@name' => $name)), 'User cannot log in yet.');
 
     // Activate the new account.
-    $accounts = $this->container->get('entity_type.manager')->getStorage('user')
-      ->loadByProperties(['name' => $name, 'mail' => $mail]);
+    $accounts = entity_load_multiple_by_properties('user', array('name' => $name, 'mail' => $mail));
     $new_user = reset($accounts);
     $admin_user = $this->drupalCreateUser(array('administer users'));
     $this->drupalLogin($admin_user);
@@ -253,8 +248,7 @@ function testRegistrationDefaultValues() {
     $this->drupalPostForm(NULL, $edit, t('Create new account'));
 
     // Check user fields.
-    $accounts = $this->container->get('entity_type.manager')->getStorage('user')
-      ->loadByProperties(['name' => $name, 'mail' => $mail]);
+    $accounts = entity_load_multiple_by_properties('user', array('name' => $name, 'mail' => $mail));
     $new_user = reset($accounts);
     $this->assertEqual($new_user->getUsername(), $name, 'Username matches.');
     $this->assertEqual($new_user->getEmail(), $mail, 'Email address matches.');
@@ -344,8 +338,7 @@ function testRegistrationWithUserFields() {
     $edit['test_user_field[0][value]'] = $value;
     $this->drupalPostForm(NULL, $edit, t('Create new account'));
     // Check user fields.
-    $accounts = $this->container->get('entity_type.manager')->getStorage('user')
-      ->loadByProperties(['name' => $name, 'mail' => $mail]);
+    $accounts = entity_load_multiple_by_properties('user', array('name' => $name, 'mail' => $mail));
     $new_user = reset($accounts);
     $this->assertEqual($new_user->test_user_field->value, $value, 'The field value was correctly saved.');
 
@@ -374,8 +367,7 @@ function testRegistrationWithUserFields() {
       $edit['mail'] = $mail = $edit['name'] . '@example.com';
       $this->drupalPostForm(NULL, $edit, t('Create new account'));
       // Check user fields.
-      $accounts = $this->container->get('entity_type.manager')->getStorage('user')
-        ->loadByProperties(array('name' => $name, 'mail' => $mail));
+      $accounts = entity_load_multiple_by_properties('user', array('name' => $name, 'mail' => $mail));
       $new_user = reset($accounts);
       $this->assertEqual($new_user->test_user_field[0]->value, $value, format_string('@js : The field value was correctly saved.', array('@js' => $js)));
       $this->assertEqual($new_user->test_user_field[1]->value, $value + 1, format_string('@js : The field value was correctly saved.', array('@js' => $js)));
diff --git a/core/modules/user/src/Tests/UserRoleAdminTest.php b/core/modules/user/src/Tests/UserRoleAdminTest.php
index 182da93..62b4bc1 100644
--- a/core/modules/user/src/Tests/UserRoleAdminTest.php
+++ b/core/modules/user/src/Tests/UserRoleAdminTest.php
@@ -113,7 +113,7 @@ function testRoleWeightOrdering() {
       $saved_rids[] = $role->id();
       $weight--;
     }
-    $this->drupalPostForm('admin/people/roles', $edit, t('Save'));
+    $this->drupalPostForm('admin/people/roles', $edit, t('Save order'));
     $this->assertText(t('The role settings have been updated.'), 'The role settings form submitted successfully.');
 
     // Load up the user roles with the new weights.
diff --git a/core/modules/user/src/Tests/UserTimeZoneTest.php b/core/modules/user/src/Tests/UserTimeZoneTest.php
index 3229d31..09513fd 100644
--- a/core/modules/user/src/Tests/UserTimeZoneTest.php
+++ b/core/modules/user/src/Tests/UserTimeZoneTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\user\Tests;
 
-use Drupal\Core\Datetime\Entity\DateFormat;
 use Drupal\simpletest\WebTestBase;
 
 /**
@@ -28,7 +27,7 @@ function testUserTimeZone() {
       ->set('timezone.user.configurable', 1)
       ->set('timezone.default', 'America/Los_Angeles')
       ->save();
-    DateFormat::load('medium')
+    entity_load('date_format', 'medium')
       ->setPattern('Y-m-d H:i T')
       ->save();
 
diff --git a/core/modules/user/src/Tests/Views/BulkFormAccessTest.php b/core/modules/user/src/Tests/Views/BulkFormAccessTest.php
index 3aa5f93..47d2833 100644
--- a/core/modules/user/src/Tests/Views/BulkFormAccessTest.php
+++ b/core/modules/user/src/Tests/Views/BulkFormAccessTest.php
@@ -50,7 +50,7 @@ public function testUserEditAccess() {
       'user_bulk_form[' . ($no_edit_user->id() - 1) . ']' => TRUE,
       'action' => 'user_block_user_action',
     );
-    $this->drupalPostForm('test-user-bulk-form', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('test-user-bulk-form', $edit, t('Apply'));
     $this->assertResponse(200);
 
     $this->assertRaw(SafeMarkup::format('No access to execute %action on the @entity_type_label %entity_label.', [
@@ -71,7 +71,7 @@ public function testUserEditAccess() {
       'user_bulk_form[' . ($normal_user->id() - 1) . ']' => TRUE,
       'action' => 'user_block_user_action',
     );
-    $this->drupalPostForm('test-user-bulk-form', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('test-user-bulk-form', $edit, t('Apply'));
 
     $normal_user = User::load($normal_user->id());
     $this->assertTrue($normal_user->isBlocked(), 'The user is blocked.');
@@ -83,7 +83,7 @@ public function testUserEditAccess() {
       'user_bulk_form[' . ($normal_user->id() - 1) . ']' => TRUE,
       'action' => 'user_unblock_user_action',
     );
-    $this->drupalPostForm('test-user-bulk-form', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('test-user-bulk-form', $edit, t('Apply'));
 
     // Re-load the normal user and ensure it is still blocked.
     $normal_user = User::load($normal_user->id());
@@ -114,7 +114,7 @@ public function testUserDeleteAccess() {
       'user_bulk_form[' . ($account2->id() - 1) . ']' => TRUE,
       'action' => 'user_cancel_user_action',
     );
-    $this->drupalPostForm('test-user-bulk-form', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('test-user-bulk-form', $edit, t('Apply'));
     $edit = array(
       'user_cancel_method' => 'user_cancel_delete',
     );
diff --git a/core/modules/user/src/Tests/Views/BulkFormTest.php b/core/modules/user/src/Tests/Views/BulkFormTest.php
index 00bdc82..a4ff23d 100644
--- a/core/modules/user/src/Tests/Views/BulkFormTest.php
+++ b/core/modules/user/src/Tests/Views/BulkFormTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\user\Tests\Views;
 
-use Drupal\user\Entity\User;
 use Drupal\user\RoleInterface;
 use Drupal\views\Views;
 
@@ -46,7 +45,7 @@ public function testBulkForm() {
     $edit = array(
       'action' => 'user_block_user_action',
     );
-    $this->drupalPostForm('test-user-bulk-form', $edit, t('Apply to selected items'));
+    $this->drupalPostForm('test-user-bulk-form', $edit, t('Apply'));
     $this->assertText(t('No users selected.'));
 
     // Assign a role to a user.
@@ -60,7 +59,7 @@ public function testBulkForm() {
       'user_bulk_form[1]' => TRUE,
       'action' => 'user_add_role_action.' . $role,
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     // Re-load the user and check their roles.
     $user_storage->resetCache(array($account->id()));
     $account = $user_storage->load($account->id());
@@ -70,7 +69,7 @@ public function testBulkForm() {
       'user_bulk_form[1]' => TRUE,
       'action' => 'user_remove_role_action.' . $role,
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     // Re-load the user and check their roles.
     $user_storage->resetCache(array($account->id()));
     $account = $user_storage->load($account->id());
@@ -83,7 +82,7 @@ public function testBulkForm() {
       'user_bulk_form[1]' => TRUE,
       'action' => 'user_block_user_action',
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     // Re-load the user and check their status.
     $user_storage->resetCache(array($account->id()));
     $account = $user_storage->load($account->id());
@@ -104,7 +103,7 @@ public function testBulkForm() {
       'user_bulk_form[0]' => TRUE,
       'action' => 'user_block_user_action',
     );
-    $this->drupalPostForm(NULL, $edit, t('Apply to selected items'));
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
     $anonymous_account = $user_storage->load(0);
     $this->assertTrue($anonymous_account->isBlocked(), 'Ensure the anonymous user got blocked.');
 
@@ -131,7 +130,7 @@ public function testBulkForm() {
    */
   public function testBulkFormCombineFilter() {
     // Add a user.
-    User::load($this->users[0]->id());
+    $account = entity_load('user', $this->users[0]->id());
     $view = Views::getView('test_user_bulk_form_combine_filter');
     $errors = $view->validate();
     $this->assertEqual(reset($errors['default']), t('Field %field set in %filter is not usable for this filter type. Combined field filter only works for simple fields.', array('%field' => 'User: Bulk update', '%filter' => 'Global: Combine fields filter')));
diff --git a/core/modules/user/src/UserDataInterface.php b/core/modules/user/src/UserDataInterface.php
index 24cd45d..eb20167 100644
--- a/core/modules/user/src/UserDataInterface.php
+++ b/core/modules/user/src/UserDataInterface.php
@@ -42,6 +42,8 @@ public function get($module, $uid = NULL, $name = NULL);
    *   The name of the data key.
    * @param mixed $value
    *   The value to store. Non-scalar values are serialized automatically.
+   *
+   * @return void
    */
   public function set($module, $uid, $name, $value);
 
@@ -58,6 +60,8 @@ public function set($module, $uid, $name, $value);
    * @param string $name
    *   (optional) The name of the data key. If omitted, all data associated with
    *   $module and $uid is deleted.
+   *
+   * @return void
    */
   public function delete($module = NULL, $uid = NULL, $name = NULL);
 
diff --git a/core/modules/user/src/UserServiceProvider.php b/core/modules/user/src/UserServiceProvider.php
index 79715df..ae3c7ed 100644
--- a/core/modules/user/src/UserServiceProvider.php
+++ b/core/modules/user/src/UserServiceProvider.php
@@ -1,5 +1,25 @@
 <?php
-// @codingStandardsIgnoreFile
-// This file is intentionally empty so that it overwrites when sites are
-// updated from a zip/tarball without deleting the /core folder first.
-// @todo: remove in 8.3.x
+
+namespace Drupal\user;
+
+use Drupal\Core\DependencyInjection\ServiceModifierInterface;
+use Drupal\Core\DependencyInjection\ContainerBuilder;
+
+/**
+ * Swaps the original 'password' service in order to handle password hashing for
+ * user migrations that have passwords hashed to MD5.
+ *
+ * @see \Drupal\migrate\MigratePassword
+ * @see \Drupal\Core\Password\PhpassHashedPassword
+ */
+class UserServiceProvider implements ServiceModifierInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function alter(ContainerBuilder $container) {
+    $container->setDefinition('password_original', $container->getDefinition('password'));
+    $container->setDefinition('password', $container->getDefinition('password_migrate'));
+  }
+
+}
diff --git a/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserTest.php b/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserTest.php
index 2e0965d..61ff800 100644
--- a/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserTest.php
+++ b/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserTest.php
@@ -44,8 +44,6 @@ protected function setUp() {
    *   The username.
    * @param string $mail
    *   The user's email address.
-   * @param string $password
-   *   The password for this user.
    * @param int $access
    *   The last access time.
    * @param int $login
@@ -61,7 +59,7 @@ protected function setUp() {
    * @param bool $has_picture
    *   Whether the user is expected to have a picture attached.
    */
-  protected function assertEntity($id, $label, $mail, $password, $access, $login, $blocked, $langcode, $init, array $roles = [RoleInterface::AUTHENTICATED_ID], $has_picture = FALSE) {
+  protected function assertEntity($id, $label, $mail, $access, $login, $blocked, $langcode, $init, array $roles = [RoleInterface::AUTHENTICATED_ID], $has_picture = FALSE) {
     /** @var \Drupal\user\UserInterface $user */
     $user = User::load($id);
     $this->assertTrue($user instanceof UserInterface);
@@ -79,29 +77,13 @@ protected function assertEntity($id, $label, $mail, $password, $access, $login,
     $this->assertIdentical($init, $user->getInitialEmail());
     $this->assertIdentical($roles, $user->getRoles());
     $this->assertIdentical($has_picture, !$user->user_picture->isEmpty());
-    $this->assertIdentical($password, $user->getPassword());
   }
 
   /**
    * Tests the Drupal 7 user to Drupal 8 migration.
    */
   public function testUser() {
-    $password = '$S$DGFZUE.FhrXbe4y52eC7p0ZVRGD/gOPtVctDlmC89qkujnBokAlJ';
-    $this->assertEntity(2, 'Odo', 'odo@local.host', $password, '0', '0', FALSE, '', 'odo@local.host');
-
-    // Ensure that the user can authenticate.
-    $this->assertEquals(2, \Drupal::service('user.auth')->authenticate('Odo', 'a password'));
-    // After authenticating the password will be rehashed because the password
-    // stretching iteration count has changed from 15 in Drupal 7 to 16 in
-    // Drupal 8.
-    $user = User::load(2);
-    $rehash = $user->getPassword();
-    $this->assertNotEquals($password, $rehash);
-
-    // Authenticate again and there should be no re-hash.
-    $this->assertEquals(2, \Drupal::service('user.auth')->authenticate('Odo', 'a password'));
-    $user = User::load(2);
-    $this->assertEquals($rehash, $user->getPassword());
+    $this->assertEntity(2, 'Odo', 'odo@local.host', '0', '0', FALSE, '', 'odo@local.host');
   }
 
 }
diff --git a/core/modules/user/tests/src/Kernel/UserAccountFormFieldsTest.php b/core/modules/user/tests/src/Kernel/UserAccountFormFieldsTest.php
index 4022972..4a83c41 100644
--- a/core/modules/user/tests/src/Kernel/UserAccountFormFieldsTest.php
+++ b/core/modules/user/tests/src/Kernel/UserAccountFormFieldsTest.php
@@ -135,7 +135,7 @@ protected function buildAccountForm($operation) {
     $entity = $this->container->get('entity.manager')
       ->getStorage($entity_type)
       ->create($fields);
-    $this->container->get('entity.manager')
+    $form_object = $this->container->get('entity.manager')
       ->getFormObject($entity_type, $operation)
       ->setEntity($entity);
 
diff --git a/core/modules/user/user.api.php b/core/modules/user/user.api.php
index 6700727..d0716c9 100644
--- a/core/modules/user/user.api.php
+++ b/core/modules/user/user.api.php
@@ -107,15 +107,15 @@ function hook_user_cancel_methods_alter(&$methods) {
  *
  * Called by $account->getDisplayName() to allow modules to alter the username
  * that is displayed. Can be used to ensure user privacy in situations where
- * $account->getDisplayName() is too revealing.
+ * $account->name is too revealing.
  *
  * @param string $name
  *   The string that $account->getDisplayName() will return.
  *
  * @param $account
- *   The account object the name belongs to.
+ *   The account object passed to user_format_name().
  *
- * @see \Drupal\Core\Session\AccountInterface->getDisplayName()
+ * @see $account->getDisplayName()
  */
 function hook_user_format_name_alter(&$name, $account) {
   // Display the user's uid instead of name.
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 1394b23..1e84fa9 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -232,8 +232,7 @@ function user_load($uid, $reset = FALSE) {
  * @see \Drupal\user\Entity\User::loadMultiple()
  */
 function user_load_by_mail($mail) {
-  $users = \Drupal::entityTypeManager()->getStorage('user')
-    ->loadByProperties(['mail' => $mail]);
+  $users = entity_load_multiple_by_properties('user', array('mail' => $mail));
   return $users ? reset($users) : FALSE;
 }
 
@@ -249,8 +248,7 @@ function user_load_by_mail($mail) {
  * @see \Drupal\user\Entity\User::loadMultiple()
  */
 function user_load_by_name($name) {
-  $users = \Drupal::entityTypeManager()->getStorage('user')
-    ->loadByProperties(['name' => $name]);
+  $users = entity_load_multiple_by_properties('user', array('name' => $name));
   return $users ? reset($users) : FALSE;
 }
 
diff --git a/core/modules/user/user.services.yml b/core/modules/user/user.services.yml
index c273cb3..8fc9bf5 100644
--- a/core/modules/user/user.services.yml
+++ b/core/modules/user/user.services.yml
@@ -66,6 +66,9 @@ services:
     arguments: ['@current_user', '@entity.manager']
     tags:
       - { name: 'context_provider' }
+  password_migrate:
+    class: Drupal\user\MigratePassword
+    arguments: ['@password_original']
 
 parameters:
   user.tempstore.expire: 604800
diff --git a/core/modules/views/config/schema/views.display.schema.yml b/core/modules/views/config/schema/views.display.schema.yml
index d17c48c..511b0b9 100644
--- a/core/modules/views/config/schema/views.display.schema.yml
+++ b/core/modules/views/config/schema/views.display.schema.yml
@@ -34,12 +34,6 @@ views.display.page:
         weight:
           type: integer
           label: 'Weight'
-        enabled:
-          type: boolean
-          label: 'Enabled'
-        expanded:
-          type: boolean
-          label: 'Expanded'
         menu_name:
           type: string
           label: 'Menu name'
diff --git a/core/modules/views/js/ajax_view.js b/core/modules/views/js/ajax_view.js
index 6422dd0..ad61000 100644
--- a/core/modules/views/js/ajax_view.js
+++ b/core/modules/views/js/ajax_view.js
@@ -114,9 +114,7 @@
   Drupal.views.ajaxView.prototype.attachExposedFormAjax = function () {
     var that = this;
     this.exposedFormAjax = [];
-    // Exclude the reset buttons so no AJAX behaviours are bound. Many things
-    // break during the form reset phase if using AJAX.
-    $('input[type=submit], input[type=image]', this.$exposed_form).not('[data-drupal-selector=edit-reset]').each(function (index) {
+    $('input[type=submit], input[type=image]', this.$exposed_form).each(function (index) {
       var self_settings = $.extend({}, that.element_settings, {
         base: $(this).attr('id'),
         element: this
diff --git a/core/modules/views/src/Controller/ViewAjaxController.php b/core/modules/views/src/Controller/ViewAjaxController.php
index 7993d2a..022f4d7 100644
--- a/core/modules/views/src/Controller/ViewAjaxController.php
+++ b/core/modules/views/src/Controller/ViewAjaxController.php
@@ -104,7 +104,7 @@ public static function create(ContainerInterface $container) {
    *   The current request object.
    *
    * @return \Drupal\views\Ajax\ViewAjaxResponse
-   *   The view response as ajax response.
+   *  The view response as ajax response.
    *
    * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
    *   Thrown when the view was not found.
diff --git a/core/modules/views/src/EntityViewsData.php b/core/modules/views/src/EntityViewsData.php
index 61def5a..cc7b7be 100644
--- a/core/modules/views/src/EntityViewsData.php
+++ b/core/modules/views/src/EntityViewsData.php
@@ -58,13 +58,6 @@ class EntityViewsData implements EntityHandlerInterface, EntityViewsDataInterfac
   protected $fieldStorageDefinitions;
 
   /**
-   * The entity manager.
-   *
-   * @var \Drupal\Core\Entity\EntityManagerInterface
-   */
-  protected $entityManager;
-
-  /**
    * Constructs an EntityViewsData object.
    *
    * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
@@ -119,7 +112,6 @@ public function getViewsData() {
     $data = [];
 
     $base_table = $this->entityType->getBaseTable() ?: $this->entityType->id();
-    $views_revision_base_table = NULL;
     $revisionable = $this->entityType->isRevisionable();
     $base_field = $this->entityType->getKey('id');
 
@@ -243,7 +235,6 @@ public function getViewsData() {
     // Load all typed data definitions of all fields. This should cover each of
     // the entity base, revision, data tables.
     $field_definitions = $this->entityManager->getBaseFieldDefinitions($this->entityType->id());
-    /** @var \Drupal\Core\Entity\Sql\DefaultTableMapping $table_mapping */
     if ($table_mapping = $this->storage->getTableMapping($field_definitions)) {
       // Fetch all fields that can appear in both the base table and the data
       // table.
@@ -266,36 +257,6 @@ public function getViewsData() {
           $this->mapFieldDefinition($table, $field_name, $field_definitions[$field_name], $table_mapping, $data[$table]);
         }
       }
-
-      foreach ($field_definitions as $field_definition) {
-        if ($table_mapping->requiresDedicatedTableStorage($field_definition->getFieldStorageDefinition())) {
-          $table = $table_mapping->getDedicatedDataTableName($field_definition->getFieldStorageDefinition());
-
-          $data[$table]['table']['group'] = $this->entityType->getLabel();
-          $data[$table]['table']['provider'] = $this->entityType->getProvider();
-          $data[$table]['table']['join'][$views_base_table] = [
-            'left_field' => $base_field,
-            'field' => 'entity_id',
-            'extra' => [
-              ['field' => 'deleted', 'value' => 0, 'numeric' => TRUE],
-            ],
-          ];
-
-          if ($revisionable) {
-            $revision_table = $table_mapping->getDedicatedRevisionTableName($field_definition->getFieldStorageDefinition());
-
-            $data[$revision_table]['table']['group'] = $this->t('@entity_type revision', ['@entity_type' => $this->entityType->getLabel()]);
-            $data[$revision_table]['table']['provider'] = $this->entityType->getProvider();
-            $data[$revision_table]['table']['join'][$views_revision_base_table] = [
-              'left_field' => $revision_field,
-              'field' => 'entity_id',
-              'extra' => [
-                ['field' => 'deleted', 'value' => 0, 'numeric' => TRUE],
-              ],
-            ];
-          }
-        }
-      }
     }
 
     // Add the entity type key to each table generated.
diff --git a/core/modules/views/src/Form/ViewsExposedForm.php b/core/modules/views/src/Form/ViewsExposedForm.php
index bacd554..bea6152 100644
--- a/core/modules/views/src/Form/ViewsExposedForm.php
+++ b/core/modules/views/src/Form/ViewsExposedForm.php
@@ -5,7 +5,6 @@
 use Drupal\Component\Utility\Html;
 use Drupal\Core\Form\FormBase;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Render\Element\Checkboxes;
 use Drupal\Core\Url;
 use Drupal\views\ExposedFormCache;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -147,46 +146,26 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
    * {@inheritdoc}
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
-    // Form input keys that will not be included in $view->exposed_raw_data.
-    $exclude = array('submit', 'form_build_id', 'form_id', 'form_token', 'exposed_form_plugin', 'reset');
-    $values = $form_state->getValues();
     foreach (array('field', 'filter') as $type) {
       /** @var \Drupal\views\Plugin\views\ViewsHandlerInterface[] $handlers */
       $handlers = &$form_state->get('view')->$type;
       foreach ($handlers as $key => $info) {
-        if ($handlers[$key]->acceptExposedInput($values)) {
-          $handlers[$key]->submitExposed($form, $form_state);
-        }
-        else {
-          // The input from the form did not validate, exclude it from the
-          // stored raw data.
-          $exclude[] = $key;
-        }
+        $handlers[$key]->submitExposed($form, $form_state);
       }
     }
 
     $view = $form_state->get('view');
-    $view->exposed_data = $values;
+    $view->exposed_data = $form_state->getValues();
     $view->exposed_raw_input = [];
 
     $exclude = array('submit', 'form_build_id', 'form_id', 'form_token', 'exposed_form_plugin', 'reset');
-    /** @var \Drupal\views\Plugin\views\exposed_form\ExposedFormPluginBase $exposed_form_plugin */
+    /** @var \Drupal\views\Plugin\views\exposed_form\ExposedFormPluginInterface $exposed_form_plugin */
     $exposed_form_plugin = $view->display_handler->getPlugin('exposed_form');
     $exposed_form_plugin->exposedFormSubmit($form, $form_state, $exclude);
-    foreach ($values as $key => $value) {
-      if (!empty($key) && !in_array($key, $exclude)) {
-        if (is_array($value)) {
-          // Handle checkboxes, we only want to include the checked options.
-          // @todo: revisit the need for this when
-          //   https://www.drupal.org/node/342316 is resolved.
-          $checked = Checkboxes::getCheckedCheckboxes($value);
-          foreach ($checked as $option_id) {
-            $view->exposed_raw_input[$option_id] = $value[$option_id];
-          }
-        }
-        else {
-          $view->exposed_raw_input[$key] = $value;
-        }
+
+    foreach ($form_state->getValues() as $key => $value) {
+      if (!in_array($key, $exclude)) {
+        $view->exposed_raw_input[$key] = $value;
       }
     }
   }
diff --git a/core/modules/views/src/Plugin/Menu/ViewsMenuLink.php b/core/modules/views/src/Plugin/Menu/ViewsMenuLink.php
index b484c24..33a2fd2 100644
--- a/core/modules/views/src/Plugin/Menu/ViewsMenuLink.php
+++ b/core/modules/views/src/Plugin/Menu/ViewsMenuLink.php
@@ -26,6 +26,7 @@ class ViewsMenuLink extends MenuLinkBase implements ContainerFactoryPluginInterf
     'enabled' => 1,
     'title' => 1,
     'description' => 1,
+    'metadata' => 1,
   );
 
   /**
@@ -139,9 +140,9 @@ public function updateLink(array $new_definition_values, $persist) {
       $display = &$view->storage->getDisplay($view->current_display);
       // Just save the title to the original view.
       $changed = FALSE;
-      foreach ($overrides as $key => $new_definition_value) {
-        if (empty($display['display_options']['menu'][$key]) || $display['display_options']['menu'][$key] != $new_definition_value) {
-          $display['display_options']['menu'][$key] = $new_definition_value;
+      foreach ($new_definition_values as $key => $new_definition_value) {
+        if (isset($display['display_options']['menu'][$key]) && $display['display_options']['menu'][$key] != $new_definition_values[$key]) {
+          $display['display_options']['menu'][$key] = $new_definition_values[$key];
           $changed = TRUE;
         }
       }
diff --git a/core/modules/views/src/Plugin/ViewsHandlerManager.php b/core/modules/views/src/Plugin/ViewsHandlerManager.php
index d918696..d138d72 100644
--- a/core/modules/views/src/Plugin/ViewsHandlerManager.php
+++ b/core/modules/views/src/Plugin/ViewsHandlerManager.php
@@ -86,7 +86,7 @@ public function getHandler($item, $override = NULL) {
 
     if (isset($data[$field][$this->handlerType])) {
       $definition = $data[$field][$this->handlerType];
-      foreach (array('group', 'title', 'title short', 'label', 'help', 'real field', 'real table', 'entity type', 'entity field') as $key) {
+      foreach (array('group', 'title', 'title short', 'help', 'real field', 'real table', 'entity type', 'entity field') as $key) {
         if (!isset($definition[$key])) {
           // First check the field level.
           if (!empty($data[$field][$key])) {
diff --git a/core/modules/views/src/Plugin/views/HandlerBase.php b/core/modules/views/src/Plugin/views/HandlerBase.php
index b6b5a5b..12cd72b 100644
--- a/core/modules/views/src/Plugin/views/HandlerBase.php
+++ b/core/modules/views/src/Plugin/views/HandlerBase.php
@@ -816,19 +816,4 @@ public function submitTemporaryForm($form, FormStateInterface $form_state) {
     $view->cacheSet();
   }
 
-  /**
-   * Calculates options stored on the handler
-   *
-   * @param array $options
-   *   The options stored in the handler
-   * @param array $form_state_options
-   *   The newly submitted form state options.
-   *
-   * @return array
-   *   The new options
-   */
-  public function submitFormCalculateOptions(array $options, array $form_state_options) {
-    return $form_state_options + $options;
-  }
-
 }
diff --git a/core/modules/views/src/Plugin/views/PluginBase.php b/core/modules/views/src/Plugin/views/PluginBase.php
index 6d5aec1..c876f6d 100644
--- a/core/modules/views/src/Plugin/views/PluginBase.php
+++ b/core/modules/views/src/Plugin/views/PluginBase.php
@@ -336,7 +336,7 @@ public function globalTokenReplace($string = '', array $options = array()) {
    * @param $tokens
    *   Array of token => replacement_value items.
    *
-   * @return string
+   * @return String
    */
   protected function viewsTokenReplace($text, $tokens) {
     if (!strlen($text)) {
@@ -373,8 +373,7 @@ protected function viewsTokenReplace($text, $tokens) {
         assert('preg_match(\'/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/\', $top) === 1', 'Tokens need to be valid Twig variables.');
         $token_array = array(array_pop($parts) => $replacement);
         foreach (array_reverse($parts) as $key) {
-          // The key could also be numeric (array index) so allow that.
-          assert('is_numeric($key) || (preg_match(\'/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/\', $key) === 1)', 'Tokens need to be valid Twig variables.');
+          assert('preg_match(\'/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/\', $key) === 1', 'Tokens need to be valid Twig variables.');
           $token_array = array($key => $token_array);
         }
         if (!isset($twig_tokens[$top])) {
diff --git a/core/modules/views/src/Plugin/views/display/DisplayPluginInterface.php b/core/modules/views/src/Plugin/views/display/DisplayPluginInterface.php
index 982b4ce..28f13b3 100644
--- a/core/modules/views/src/Plugin/views/display/DisplayPluginInterface.php
+++ b/core/modules/views/src/Plugin/views/display/DisplayPluginInterface.php
@@ -568,7 +568,7 @@ public function getSpecialBlocks();
    * Renders the exposed form as block.
    *
    * @return string|null
-   *   The rendered exposed form as string or NULL otherwise.
+   *  The rendered exposed form as string or NULL otherwise.
    */
   public function viewExposedFormBlocks();
 
diff --git a/core/modules/views/src/Plugin/views/display/Page.php b/core/modules/views/src/Plugin/views/display/Page.php
index d79b75b..a046698 100644
--- a/core/modules/views/src/Plugin/views/display/Page.php
+++ b/core/modules/views/src/Plugin/views/display/Page.php
@@ -124,7 +124,6 @@ protected function defineOptions() {
         'title' => array('default' => ''),
         'description' => array('default' => ''),
         'weight' => array('default' => 0),
-        'enabled' => array('default' => TRUE),
         'menu_name' => array('default' => 'main'),
         'parent' => array('default' => ''),
         'context' => array('default' => ''),
diff --git a/core/modules/views/src/Plugin/views/display/PathPluginBase.php b/core/modules/views/src/Plugin/views/display/PathPluginBase.php
index 966cc1a..da230c4 100644
--- a/core/modules/views/src/Plugin/views/display/PathPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/PathPluginBase.php
@@ -237,8 +237,8 @@ public function alterRoutes(RouteCollection $collection) {
       $route_path = RouteCompiler::getPathWithoutDefaults($route);
       $route_path = RouteCompiler::getPatternOutline($route_path);
       // Ensure that we don't override a route which is already controlled by
-      // views. Also ensure that we don't override for example REST routes.
-      if (!$route->hasDefault('view_id') && ('/' . $view_path == $route_path) && (!$route->getMethods() || in_array('GET', $route->getMethods()))) {
+      // views.
+      if (!$route->hasDefault('view_id') && ('/' . $view_path == $route_path)) {
         $parameters = $route->compile()->getPathVariables();
 
         // @todo Figure out whether we need to merge some settings (like
@@ -322,8 +322,6 @@ public function getMenuLinks() {
         $links[$menu_link_id]['title'] = $menu['title'];
         $links[$menu_link_id]['description'] = $menu['description'];
         $links[$menu_link_id]['parent'] = $menu['parent'];
-        $links[$menu_link_id]['enabled'] = $menu['enabled'];
-        $links[$menu_link_id]['expanded'] = $menu['expanded'];
 
         if (isset($menu['weight'])) {
           $links[$menu_link_id]['weight'] = intval($menu['weight']);
diff --git a/core/modules/views/src/Plugin/views/field/EntityLabel.php b/core/modules/views/src/Plugin/views/field/EntityLabel.php
index 967fd52..3691d06 100644
--- a/core/modules/views/src/Plugin/views/field/EntityLabel.php
+++ b/core/modules/views/src/Plugin/views/field/EntityLabel.php
@@ -2,9 +2,7 @@
 
 namespace Drupal\views\Plugin\views\field;
 
-use Drupal\Core\Entity\EntityMalformedException;
 use Drupal\Core\Entity\EntityManagerInterface;
-use Drupal\Core\Entity\Exception\UndefinedLinkTemplateException;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\views\ResultRow;
 use Drupal\views\ViewExecutable;
@@ -107,16 +105,8 @@ public function render(ResultRow $values) {
     $entity = $this->loadedReferencers[$type][$value];
 
     if (!empty($this->options['link_to_entity'])) {
-      try {
-        $this->options['alter']['url'] = $entity->toUrl();
-        $this->options['alter']['make_link'] = TRUE;
-      }
-      catch (UndefinedLinkTemplateException $e) {
-        $this->options['alter']['make_link'] = FALSE;
-      }
-      catch (EntityMalformedException $e) {
-        $this->options['alter']['make_link'] = FALSE;
-      }
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['url'] = $entity->urlInfo();
     }
 
     return $this->sanitizeValue($entity->label());
diff --git a/core/modules/views/src/Plugin/views/field/Field.php b/core/modules/views/src/Plugin/views/field/Field.php
index c4003b4..35dcb64 100644
--- a/core/modules/views/src/Plugin/views/field/Field.php
+++ b/core/modules/views/src/Plugin/views/field/Field.php
@@ -472,8 +472,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
     // Get the settings form.
     $settings_form = array('#value' => array());
-    $format = isset($form_state->getUserInput()['options']['type']) ? $form_state->getUserInput()['options']['type'] : $this->options['type'];
-    if ($formatter = $this->getFormatterInstance($format)) {
+    if ($formatter = $this->getFormatterInstance()) {
       $settings_form = $formatter->settingsForm($form, $form_state);
       // Convert field UI selector states to work in the Views field form.
       FormHelper::rewriteStatesSelector($settings_form, "fields[{$field->getName()}][settings_edit_form]", 'options');
@@ -482,21 +481,6 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
   }
 
   /**
-   * {@inheritdoc}
-   */
-  public function submitFormCalculateOptions(array $options, array $form_state_options) {
-    // When we change the formatter type we don't want to keep any of the
-    // previous configured formatter settings, as there might be schema
-    // conflict.
-    unset($options['settings']);
-    $options = $form_state_options + $options;
-    if (!isset($options['settings'])) {
-      $options['settings'] = [];
-    }
-    return $options;
-  }
-
-  /**
    * Provide options for multiple value fields.
    */
   function multiple_options_form(&$form, FormStateInterface $form_state) {
@@ -953,16 +937,13 @@ protected function addSelfTokens(&$tokens, $item) {
    * @return \Drupal\Core\Field\FormatterInterface|null
    *   The field formatter instance.
    */
-  protected function getFormatterInstance($format = NULL) {
-    if (!isset($format)) {
-      $format = $this->options['type'];
-    }
-    $settings = $this->options['settings'] + $this->formatterPluginManager->getDefaultSettings($format);
+  protected function getFormatterInstance() {
+    $settings = $this->options['settings'] + $this->formatterPluginManager->getDefaultSettings($this->options['type']);
 
     $options = [
       'field_definition' => $this->getFieldDefinition(),
       'configuration' => [
-        'type' => $format,
+        'type' => $this->options['type'],
         'settings' => $settings,
         'label' => '',
         'weight' => 0,
diff --git a/core/modules/views/src/Plugin/views/field/FieldHandlerInterface.php b/core/modules/views/src/Plugin/views/field/FieldHandlerInterface.php
index d7389c9..d1115a9 100644
--- a/core/modules/views/src/Plugin/views/field/FieldHandlerInterface.php
+++ b/core/modules/views/src/Plugin/views/field/FieldHandlerInterface.php
@@ -140,7 +140,7 @@ public function getValue(ResultRow $values, $field = NULL);
    * by in the style settings.
    *
    * @return bool
-   *   TRUE if this field handler is groupable, otherwise FALSE.
+   *  TRUE if this field handler is groupable, otherwise FALSE.
    */
   public function useStringGroupBy();
 
@@ -215,7 +215,7 @@ public function advancedRender(ResultRow $values);
    *   Whether or not to use empty() to check the value.
    *
    * @return bool
-   *   TRUE if the value is considered empty, FALSE otherwise.
+   * TRUE if the value is considered empty, FALSE otherwise.
    */
   public function isValueEmpty($value, $empty_zero, $no_skip_empty = TRUE);
 
diff --git a/core/modules/views/src/Plugin/views/filter/BooleanOperator.php b/core/modules/views/src/Plugin/views/filter/BooleanOperator.php
index 7078032..616666b 100644
--- a/core/modules/views/src/Plugin/views/filter/BooleanOperator.php
+++ b/core/modules/views/src/Plugin/views/filter/BooleanOperator.php
@@ -93,14 +93,9 @@ public function init(ViewExecutable $view, DisplayPluginBase $display, array &$o
     parent::init($view, $display, $options);
 
     $this->value_value = $this->t('True');
-
     if (isset($this->definition['label'])) {
       $this->value_value = $this->definition['label'];
     }
-    elseif (isset($this->definition['title'])) {
-      $this->value_value = $this->definition['title'];
-    }
-
     if (isset($this->definition['accept null'])) {
       $this->accept_null = (bool) $this->definition['accept null'];
     }
diff --git a/core/modules/views/src/Plugin/views/filter/Combine.php b/core/modules/views/src/Plugin/views/filter/Combine.php
index e13df51..f5a6035 100644
--- a/core/modules/views/src/Plugin/views/filter/Combine.php
+++ b/core/modules/views/src/Plugin/views/filter/Combine.php
@@ -99,26 +99,21 @@ public function query() {
    */
   public function validate() {
     $errors = parent::validate();
-    if ($this->displayHandler->usesFields()) {
-      $fields = $this->displayHandler->getHandlers('field');
-      foreach ($this->options['fields'] as $id) {
-        if (!isset($fields[$id])) {
-          // Combined field filter only works with fields that are in the field
-          // settings.
-          $errors[] = $this->t('Field %field set in %filter is not set in display %display.', array('%field' => $id, '%filter' => $this->adminLabel(), '%display' => $this->displayHandler->display['display_title']));
-          break;
-        }
-        elseif (!$fields[$id]->clickSortable()) {
-          // Combined field filter only works with simple fields. If the field
-          // is not click sortable we can assume it is not a simple field.
-          // @todo change this check to isComputed. See
-          // https://www.drupal.org/node/2349465
-          $errors[] = $this->t('Field %field set in %filter is not usable for this filter type. Combined field filter only works for simple fields.', array('%field' => $fields[$id]->adminLabel(), '%filter' => $this->adminLabel()));
-        }
+    $fields = $this->view->display_handler->getHandlers('field');
+    foreach ($this->options['fields'] as $id) {
+      if (!isset($fields[$id])) {
+        // Combined field filter only works with fields that are in the field
+        // settings.
+        $errors[] = $this->t('Field %field set in %filter is not set in this display.', array('%field' => $id, '%filter' => $this->adminLabel()));
+        break;
+      }
+      elseif (!$fields[$id]->clickSortable()) {
+        // Combined field filter only works with simple fields. If the field is
+        // not click sortable we can assume it is not a simple field.
+        // @todo change this check to isComputed. See
+        // https://www.drupal.org/node/2349465
+        $errors[] = $this->t('Field %field set in %filter is not usable for this filter type. Combined field filter only works for simple fields.', array('%field' => $fields[$id]->adminLabel(), '%filter' => $this->adminLabel()));
       }
-    }
-    else {
-      $errors[] = $this->t('%display: %filter can only be used on displays that use fields. Set the style or row format for that display to one using fields to use the combine field filter.', array('%display' => $this->displayHandler->display['display_title'], '%filter' => $this->adminLabel()));
     }
     return $errors;
   }
diff --git a/core/modules/views/src/Plugin/views/filter/Date.php b/core/modules/views/src/Plugin/views/filter/Date.php
index 84a1c42..8ea3750 100644
--- a/core/modules/views/src/Plugin/views/filter/Date.php
+++ b/core/modules/views/src/Plugin/views/filter/Date.php
@@ -98,24 +98,33 @@ public function validateValidTime(&$form, FormStateInterface $form_state, $opera
   }
 
   /**
-   * {@inheritdoc}
+   * Validate the build group options form.
    */
-  protected function hasValidGroupedValue(array $group) {
-    if (!is_array($group['value']) || empty($group['value'])) {
-      return FALSE;
+  protected function buildGroupValidate($form, FormStateInterface $form_state) {
+    // Special case to validate grouped date filters, this is because the
+    // $group['value'] array contains the type of filter (date or offset)
+    // and therefore the number of items the comparison has to be done
+    // against 'one' instead of 'zero'.
+    foreach ($form_state->getValue(array('options', 'group_info', 'group_items')) as $id => $group) {
+      if (empty($group['remove'])) {
+        // Check if the title is defined but value wasn't defined.
+        if (!empty($group['title'])) {
+          if ((!is_array($group['value']) && empty($group['value'])) || (is_array($group['value']) && count(array_filter($group['value'])) == 1)) {
+            $form_state->setError($form['group_info']['group_items'][$id]['value'], $this->t('The value is required if title for this item is defined.'));
+          }
+        }
+
+        // Check if the value is defined but title wasn't defined.
+        if ((!is_array($group['value']) && !empty($group['value'])) || (is_array($group['value']) && count(array_filter($group['value'])) > 1)) {
+          if (empty($group['title'])) {
+            $form_state->setError($form['group_info']['group_items'][$id]['title'], $this->t('The title is required if value for this item is defined.'));
+          }
+        }
+      }
     }
-
-    // Special case when validating grouped date filters because the
-    // $group['value'] array contains the type of filter (date or offset) and
-    // therefore the number of items the comparison has to be done against is
-    // one greater.
-    $operators = $this->operators();
-    $expected = $operators[$group['operator']]['values'] + 1;
-    $actual = count(array_filter($group['value'], 'static::arrayFilterZero'));
-
-    return $actual == $expected;
   }
 
+
   public function acceptExposedInput($input) {
     if (empty($this->options['exposed'])) {
       return TRUE;
diff --git a/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php b/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
index e4189c5..c458e63 100644
--- a/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
+++ b/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
@@ -7,7 +7,6 @@
 use Drupal\Core\Form\FormHelper;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Render\Element;
-use Drupal\Core\Render\Element\Checkboxes;
 use Drupal\user\RoleInterface;
 use Drupal\views\Plugin\views\HandlerBase;
 use Drupal\Component\Utility\Html;
@@ -619,38 +618,6 @@ public function validateExposeForm($form, FormStateInterface $form_state) {
   }
 
   /**
-   * Determines if the given grouped filter entry has a valid value.
-   *
-   * @param array $group
-   *   A group entry as defined by buildGroupForm().
-   *
-   * @return bool
-   */
-  protected function hasValidGroupedValue(array $group) {
-    $operators = $this->operators();
-    if ($operators[$group['operator']]['values'] == 0) {
-      // Some filters, such as "is empty," do not require a value to be
-      // specified in order to be valid entries.
-      return TRUE;
-    }
-    else {
-      if (is_string($group['value'])) {
-        return trim($group['value']) != '';
-      }
-      elseif (is_array($group['value'])) {
-        // Some filters allow multiple options to be selected (for example, node
-        // types). Ensure at least the minimum number of values is present for
-        // this entry to be considered valid.
-        $min_values = $operators[$group['operator']]['values'];
-        $actual_values = count(array_filter($group['value'], 'static::arrayFilterZero'));
-        return $actual_values >= $min_values;
-      }
-    }
-    return FALSE;
-  }
-
-
-  /**
    * Validate the build group options form.
    */
   protected function buildGroupValidate($form, FormStateInterface $form_state) {
@@ -660,20 +627,25 @@ protected function buildGroupValidate($form, FormStateInterface $form_state) {
     }
 
     if ($group_items = $form_state->getValue(array('options', 'group_info', 'group_items'))) {
+      $operators = $this->operators();
+
       foreach ($group_items as $id => $group) {
         if (empty($group['remove'])) {
-          $has_valid_value = $this->hasValidGroupedValue($group);
-          if ($has_valid_value && $group['title'] == '') {
-            $operators = $this->operators();
-            if ($operators[$group['operator']]['values'] == 0) {
-              $form_state->setError($form['group_info']['group_items'][$id]['title'], $this->t('A label is required for the specified operator.'));
-            }
-            else {
-              $form_state->setError($form['group_info']['group_items'][$id]['title'], $this->t('A label is required if the value for this item is defined.'));
+
+          // Check if the title is defined but value wasn't defined.
+          if (!empty($group['title']) && $operators[$group['operator']]['values'] > 0) {
+            if ((!is_array($group['value']) && trim($group['value']) == "") ||
+                (is_array($group['value']) && count(array_filter($group['value'], 'static::arrayFilterZero')) == 0)) {
+              $form_state->setError($form['group_info']['group_items'][$id]['value'], $this->t('The value is required if title for this item is defined.'));
             }
           }
-          if (!$has_valid_value && $group['title'] != '') {
-            $form_state->setError($form['group_info']['group_items'][$id]['value'], $this->t('A value is required if the label for this item is defined.'));
+
+          // Check if the value is defined but title wasn't defined.
+          if ((!is_array($group['value']) && trim($group['value']) != "") ||
+              (is_array($group['value']) && count(array_filter($group['value'], 'static::arrayFilterZero')) > 0)) {
+            if (empty($group['title'])) {
+              $form_state->setError($form['group_info']['group_items'][$id]['title'], $this->t('The title is required if value for this item is defined.'));
+            }
           }
         }
       }
@@ -1360,20 +1332,15 @@ public function storeGroupInput($input, $status) {
   }
 
   /**
-   * Determines if the input from a filter should change the generated query.
-   *
-   * @param array $input
-   *   The exposed data for this view.
-   *
-   * @return bool
-   *   TRUE if the input for this filter should be included in the view query.
-   *   FALSE otherwise.
+   * Check to see if input from the exposed filters should change
+   * the behavior of this filter.
    */
   public function acceptExposedInput($input) {
     if (empty($this->options['exposed'])) {
       return TRUE;
     }
 
+
     if (!empty($this->options['expose']['use_operator']) && !empty($this->options['expose']['operator_id']) && isset($input[$this->options['expose']['operator_id']])) {
       $this->operator = $input[$this->options['expose']['operator_id']];
     }
@@ -1391,12 +1358,6 @@ public function acceptExposedInput($input) {
           if ($value == 'All' || $value === array()) {
             return FALSE;
           }
-
-          // If checkboxes are used to render this filter, do not include the
-          // filter if no options are checked.
-          if (is_array($value) && Checkboxes::detectEmptyCheckboxes($value)) {
-            return FALSE;
-          }
         }
 
         if (!empty($this->alwaysMultiple) && $value === '') {
@@ -1496,6 +1457,19 @@ public function canGroup() {
    }
 
   /**
+   * Filter by no empty values, though allow to use "0".
+   *
+   * @param string $var
+   *   The variable to evaluate.
+   *
+   * @return bool
+   *   TRUE if the value is equal to an empty string, FALSE otherwise.
+   */
+  protected static function arrayFilterZero($var) {
+    return trim($var) != '';
+  }
+
+  /**
    * {@inheritdoc}
    */
   public function getCacheMaxAge() {
@@ -1532,22 +1506,6 @@ public function validate() {
     }
   }
 
-  /**
-   * Filter by no empty values, though allow the use of (string) "0".
-   *
-   * @param string $var
-   *   The variable to evaluate.
-   *
-   * @return bool
-   *   TRUE if the value is equal to an empty string, FALSE otherwise.
-   */
-  protected static function arrayFilterZero($var) {
-    if (is_int($var)) {
-      return $var != 0;
-    }
-    return trim($var) != '';
-  }
-
 }
 
 /**
diff --git a/core/modules/views/src/Plugin/views/filter/GroupByNumeric.php b/core/modules/views/src/Plugin/views/filter/GroupByNumeric.php
index 4f1baa1..7dce053 100644
--- a/core/modules/views/src/Plugin/views/filter/GroupByNumeric.php
+++ b/core/modules/views/src/Plugin/views/filter/GroupByNumeric.php
@@ -28,7 +28,7 @@ protected function opBetween($field) {
       $this->query->addHavingExpression($this->options['group'], "$field <= $placeholder_max", array($placeholder_max => $this->value['max']));
     }
     else {
-      $this->query->addHavingExpression($this->options['group'], "$field < $placeholder_min OR $field > $placeholder_max", array($placeholder_min => $this->value['min'], $placeholder_max => $this->value['max']));
+      $this->query->addHavingExpression($this->options['group'], "$field <= $placeholder_min OR $field >= $placeholder_max", array($placeholder_min => $this->value['min'], $placeholder_max => $this->value['max']));
     }
   }
 
diff --git a/core/modules/views/src/Plugin/views/filter/InOperator.php b/core/modules/views/src/Plugin/views/filter/InOperator.php
index 593e97b..f3f1ca4 100644
--- a/core/modules/views/src/Plugin/views/filter/InOperator.php
+++ b/core/modules/views/src/Plugin/views/filter/InOperator.php
@@ -282,17 +282,15 @@ public function reduceValueOptions($input = NULL) {
     return $options;
   }
 
-  /**
-   * {@inheritdoc}
-   */
   public function acceptExposedInput($input) {
+    // A very special override because the All state for this type of
+    // filter could have a default:
     if (empty($this->options['exposed'])) {
       return TRUE;
     }
 
-    // The "All" state for this type of filter could have a default value. If
-    // this is a non-multiple and non-required option, then this filter will
-    // participate by using the default settings *if* 'limit' is true.
+    // If this is non-multiple and non-required, then this filter will
+    // participate, but using the default settings, *if* 'limit is true.
     if (empty($this->options['expose']['multiple']) && empty($this->options['expose']['required']) && !empty($this->options['expose']['limit'])) {
       $identifier = $this->options['expose']['identifier'];
       if ($input[$identifier] == 'All') {
diff --git a/core/modules/views/src/Plugin/views/filter/NumericFilter.php b/core/modules/views/src/Plugin/views/filter/NumericFilter.php
index e7720df..e1ad6b3 100644
--- a/core/modules/views/src/Plugin/views/filter/NumericFilter.php
+++ b/core/modules/views/src/Plugin/views/filter/NumericFilter.php
@@ -248,7 +248,7 @@ protected function opBetween($field) {
       $this->query->addWhere($this->options['group'], $field, array($this->value['min'], $this->value['max']), 'BETWEEN');
     }
     else {
-      $this->query->addWhere($this->options['group'], $field, array($this->value['min'], $this->value['max']), 'NOT BETWEEN');
+      $this->query->addWhere($this->options['group'], db_or()->condition($field, $this->value['min'], '<=')->condition($field, $this->value['max'], '>='));
     }
   }
 
diff --git a/core/modules/views/src/Plugin/views/join/JoinPluginBase.php b/core/modules/views/src/Plugin/views/join/JoinPluginBase.php
index 37c1e06..36b6e42 100644
--- a/core/modules/views/src/Plugin/views/join/JoinPluginBase.php
+++ b/core/modules/views/src/Plugin/views/join/JoinPluginBase.php
@@ -303,18 +303,24 @@ public function buildJoin($select_query, $table, $view_query) {
           if (is_array($info['value']) && count($info['value']) == 1) {
             $info['value'] = array_shift($info['value']);
           }
+
           if (is_array($info['value'])) {
-            // We use an SA-CORE-2014-005 conformant placeholder for our array
-            // of values. Also, note that the 'IN' operator is implicit.
-            // @see https://www.drupal.org/node/2401615.
+            // With an array of values, we need multiple placeholders and the
+            // 'IN' operator is implicit.
+            $local_arguments = array();
+            foreach ($info['value'] as $value) {
+              $placeholder_i = ':views_join_condition_' . $select_query->nextPlaceholder();
+              $local_arguments[$placeholder_i] = $value;
+            }
+
             $operator = !empty($info['operator']) ? $info['operator'] : 'IN';
-            $placeholder = ':views_join_condition_' . $select_query->nextPlaceholder() . '[]';
-            $placeholder_sql = "( $placeholder )";
+            $placeholder = '( ' . implode(', ', array_keys($local_arguments)) . ' )';
+            $arguments += $local_arguments;
           }
           else {
             // With a single value, the '=' operator is implicit.
             $operator = !empty($info['operator']) ? $info['operator'] : '=';
-            $placeholder = $placeholder_sql = ':views_join_condition_' . $select_query->nextPlaceholder();
+            $placeholder = ':views_join_condition_' . $select_query->nextPlaceholder();
           }
           // Set 'field' as join table field if available or set 'left field' as
           // join table field is not set.
@@ -323,7 +329,7 @@ public function buildJoin($select_query, $table, $view_query) {
             // Allow the value to be set either with the 'value' element or
             // with 'left_field'.
             if (isset($info['left_field'])) {
-              $placeholder_sql = "$left[alias].$info[left_field]";
+              $placeholder = "$left[alias].$info[left_field]";
             }
             else {
               $arguments[$placeholder] = $info['value'];
@@ -334,8 +340,7 @@ public function buildJoin($select_query, $table, $view_query) {
             $join_table_field = "$left[alias].$info[left_field]";
             $arguments[$placeholder] = $info['value'];
           }
-          // Render out the SQL fragment with parameters.
-          $extras[] = "$join_table_field $operator $placeholder_sql";
+          $extras[] = "$join_table_field $operator $placeholder";
         }
 
         if ($extras) {
diff --git a/core/modules/views/src/Plugin/views/query/QueryPluginBase.php b/core/modules/views/src/Plugin/views/query/QueryPluginBase.php
index d4e1b23..e896660 100644
--- a/core/modules/views/src/Plugin/views/query/QueryPluginBase.php
+++ b/core/modules/views/src/Plugin/views/query/QueryPluginBase.php
@@ -285,14 +285,6 @@ public function getEntityTableInfo() {
     foreach ((array) $this->view->relationship as $relationship_id => $relationship) {
       $table_data = $views_data->get($relationship->definition['base']);
       if (isset($table_data['table']['entity type'])) {
-
-        // If this is not one of the entity base tables, skip it.
-        $entity_type = \Drupal::entityTypeManager()->getDefinition($table_data['table']['entity type']);
-        $entity_base_tables = [$entity_type->getBaseTable(), $entity_type->getDataTable(), $entity_type->getRevisionTable(), $entity_type->getRevisionDataTable()];
-        if (!in_array($relationship->definition['base'], $entity_base_tables)) {
-          continue;
-        }
-
         $entity_tables[$relationship_id . '__' . $relationship->tableAlias] = array(
           'base' => $relationship->definition['base'],
           'relationship_id' => $relationship_id,
diff --git a/core/modules/views/src/Tests/Handler/FilterDateTest.php b/core/modules/views/src/Tests/Handler/FilterDateTest.php
index 2045b8a..127c3ec 100644
--- a/core/modules/views/src/Tests/Handler/FilterDateTest.php
+++ b/core/modules/views/src/Tests/Handler/FilterDateTest.php
@@ -88,8 +88,8 @@ protected function _testBetween() {
     // Test between with min and max.
     $view->initHandlers();
     $view->filter['created']->operator = 'between';
-    $view->filter['created']->value['min'] = format_date(150000, 'custom', 'Y-m-d H:i:s');
-    $view->filter['created']->value['max'] = format_date(200000, 'custom', 'Y-m-d H:i:s');
+    $view->filter['created']->value['min'] = format_date(150000, 'custom', 'Y-m-d H:s');
+    $view->filter['created']->value['max'] = format_date(250000, 'custom', 'Y-m-d H:s');
     $view->executeDisplay('default');
     $expected_result = array(
       array('nid' => $this->nodes[1]->id()),
@@ -100,7 +100,7 @@ protected function _testBetween() {
     // Test between with just max.
     $view->initHandlers();
     $view->filter['created']->operator = 'between';
-    $view->filter['created']->value['max'] = format_date(200000, 'custom', 'Y-m-d H:i:s');
+    $view->filter['created']->value['max'] = format_date(250000, 'custom', 'Y-m-d H:s');
     $view->executeDisplay('default');
     $expected_result = array(
       array('nid' => $this->nodes[0]->id()),
@@ -112,11 +112,11 @@ protected function _testBetween() {
     // Test not between with min and max.
     $view->initHandlers();
     $view->filter['created']->operator = 'not between';
-    $view->filter['created']->value['min'] = format_date(100000, 'custom', 'Y-m-d H:i:s');
-    $view->filter['created']->value['max'] = format_date(200000, 'custom', 'Y-m-d H:i:s');
-
+    $view->filter['created']->value['min'] = format_date(150000, 'custom', 'Y-m-d H:s');
+    $view->filter['created']->value['max'] = format_date(250000, 'custom', 'Y-m-d H:s');
     $view->executeDisplay('default');
     $expected_result = array(
+      array('nid' => $this->nodes[0]->id()),
       array('nid' => $this->nodes[2]->id()),
       array('nid' => $this->nodes[3]->id()),
     );
@@ -126,9 +126,10 @@ protected function _testBetween() {
     // Test not between with just max.
     $view->initHandlers();
     $view->filter['created']->operator = 'not between';
-    $view->filter['created']->value['max'] = format_date(200000, 'custom', 'Y-m-d H:i:s');
+    $view->filter['created']->value['max'] = format_date(150000, 'custom', 'Y-m-d H:s');
     $view->executeDisplay('default');
     $expected_result = array(
+      array('nid' => $this->nodes[1]->id()),
       array('nid' => $this->nodes[2]->id()),
       array('nid' => $this->nodes[3]->id()),
     );
diff --git a/core/modules/views/src/Tests/Plugin/DisplayPageWebTest.php b/core/modules/views/src/Tests/Plugin/DisplayPageWebTest.php
index acb3af8..bac35fd 100644
--- a/core/modules/views/src/Tests/Plugin/DisplayPageWebTest.php
+++ b/core/modules/views/src/Tests/Plugin/DisplayPageWebTest.php
@@ -152,7 +152,7 @@ public function testPagePaths() {
    * @param string $path
    *   Path that will be set as the view page display path.
    *
-   * @return bool
+   * @return boolean
    *   Assertion result.
    */
   public function assertPagePath($path) {
diff --git a/core/modules/views/src/Tests/Plugin/ExposedFormTest.php b/core/modules/views/src/Tests/Plugin/ExposedFormTest.php
index 55957e5..719d4da 100644
--- a/core/modules/views/src/Tests/Plugin/ExposedFormTest.php
+++ b/core/modules/views/src/Tests/Plugin/ExposedFormTest.php
@@ -8,7 +8,6 @@
 use Drupal\views\Tests\ViewTestBase;
 use Drupal\views\ViewExecutable;
 use Drupal\views\Views;
-use Drupal\views\Entity\View;
 
 /**
  * Tests exposed forms functionality.
@@ -169,9 +168,6 @@ public function testResetButton() {
     $this->assertResponse(200);
     $this->assertFieldById('edit-type', 'All', 'Article type filter has been reset.');
 
-    // Test the button is hidden after reset.
-    $this->assertNoField('edit-reset');
-
     // Rename the label of the reset button.
     $view = Views::getView('test_exposed_form_buttons');
     $view->setDisplay();
@@ -210,48 +206,6 @@ public function testExposedFormRender() {
   }
 
   /**
-   * Tests overriding the default render option with checkboxes.
-   */
-  public function testExposedFormRenderCheckboxes() {
-    // Make sure we have at least two options for node type.
-    $this->drupalCreateContentType(['type' => 'page']);
-    $this->drupalCreateNode(['type' => 'page']);
-
-    // Use a test theme to convert multi-select elements into checkboxes.
-    \Drupal::service('theme_handler')->install(array('views_test_checkboxes_theme'));
-    $this->config('system.theme')
-      ->set('default', 'views_test_checkboxes_theme')
-      ->save();
-
-    // Set the "type" filter to multi-select.
-    $view = Views::getView('test_exposed_form_buttons');
-    $filter = $view->getHandler('page_1', 'filter', 'type');
-    $filter['expose']['multiple'] = TRUE;
-    $view->setHandler('page_1', 'filter', 'type', $filter);
-
-    // Only display 5 items per page so we can test that paging works.
-    $display = &$view->storage->getDisplay('default');
-    $display['display_options']['pager']['options']['items_per_page'] = 5;
-
-    $view->save();
-    $this->drupalGet('test_exposed_form_buttons');
-
-    $actual = $this->xpath('//form//input[@type="checkbox" and @name="type[article]"]');
-    $this->assertEqual(count($actual), 1, 'Article option renders as a checkbox.');
-    $actual = $this->xpath('//form//input[@type="checkbox" and @name="type[page]"]');
-    $this->assertEqual(count($actual), 1, 'Page option renders as a checkbox');
-
-    // Ensure that all results are displayed.
-    $rows = $this->xpath("//div[contains(@class, 'views-row')]");
-    $this->assertEqual(count($rows), 5, '5 rows are displayed by default on the first page when no options are checked.');
-
-    $this->clickLink('Page 2');
-    $rows = $this->xpath("//div[contains(@class, 'views-row')]");
-    $this->assertEqual(count($rows), 1, '1 row is displayed by default on the second page when no options are checked.');
-    $this->assertNoText('An illegal choice has been detected. Please contact the site administrator.');
-  }
-
-  /**
    * Tests the exposed block functionality.
    */
   public function testExposedBlock() {
@@ -287,7 +241,7 @@ public function testExposedBlock() {
    * Test the input required exposed form type.
    */
   public function testInputRequired() {
-    $view = View::load('test_exposed_form_buttons');
+    $view = entity_load('view', 'test_exposed_form_buttons');
     $display = &$view->getDisplay('default');
     $display['display_options']['exposed_form']['type'] = 'input_required';
     $view->save();
diff --git a/core/modules/views/src/Tests/Plugin/NumericFormatPluralTest.php b/core/modules/views/src/Tests/Plugin/NumericFormatPluralTest.php
index bb06328..94f752b 100644
--- a/core/modules/views/src/Tests/Plugin/NumericFormatPluralTest.php
+++ b/core/modules/views/src/Tests/Plugin/NumericFormatPluralTest.php
@@ -136,7 +136,7 @@ function testNumericFormatPlural() {
    * Creates and saves a test file.
    *
    * @return \Drupal\Core\Entity\EntityInterface
-   *   A file entity.
+   *  A file entity.
    */
   protected function createFile() {
     // Create a new file entity.
diff --git a/core/modules/views/tests/src/Kernel/Plugin/PluginBaseTest.php b/core/modules/views/src/Tests/Plugin/PluginBaseTest.php
similarity index 79%
rename from core/modules/views/tests/src/Kernel/Plugin/PluginBaseTest.php
rename to core/modules/views/src/Tests/Plugin/PluginBaseTest.php
index 681cf39..c9ba78f 100644
--- a/core/modules/views/tests/src/Kernel/Plugin/PluginBaseTest.php
+++ b/core/modules/views/src/Tests/Plugin/PluginBaseTest.php
@@ -5,11 +5,11 @@
  * Contains \Drupal\views\Tests\Plugin\PluginBaseTest.
  */
 
-namespace Drupal\Tests\views\Kernel\Plugin;
+namespace Drupal\views\Tests\Plugin;
 
 use Drupal\Core\Render\RenderContext;
 use Drupal\Core\Render\Markup;
-use Drupal\KernelTests\KernelTestBase;
+use Drupal\simpletest\KernelTestBase;
 use Drupal\views\Plugin\views\PluginBase;
 
 /**
@@ -55,16 +55,6 @@ public function testViewsTokenReplaceWithDots() {
     });
 
     $this->assertIdentical($result, 'first comes before second');
-
-    // Test tokens with numeric indexes.
-    $text = '{{ argument.0.first }} comes before {{ argument.1.second }}';
-    $tokens = ['{{ argument.0.first }}' => 'first', '{{ argument.1.second }}' => 'second'];
-
-    $result = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($text, $tokens) {
-      return $this->testPluginBase->viewsTokenReplace($text, $tokens);
-    });
-
-    $this->assertIdentical($result, 'first comes before second');
   }
 
   /**
diff --git a/core/modules/views/src/Tests/Plugin/StyleTableTest.php b/core/modules/views/src/Tests/Plugin/StyleTableTest.php
index 9a3f25e..ade5ebe 100644
--- a/core/modules/views/src/Tests/Plugin/StyleTableTest.php
+++ b/core/modules/views/src/Tests/Plugin/StyleTableTest.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\views\Tests\Plugin;
 
-use Drupal\views\Entity\View;
-
 /**
  * Tests the table style views plugin.
  *
@@ -46,7 +44,7 @@ public function testAccessibilitySettings() {
     $this->assertEqual(trim((string) $result[0]), 'description-text');
 
     // Remove the caption and ensure the caption is not displayed anymore.
-    $view = View::load('test_table');
+    $view = entity_load('view', 'test_table');
     $display = &$view->getDisplay('default');
     $display['display_options']['style']['options']['caption'] = '';
     $view->save();
@@ -90,7 +88,7 @@ public function testFieldInColumns() {
     $this->assertTrue(count($result), 'Ensure there is a td with the class views-field-job-1');
 
     // Combine the second job-column with the first one, with ', ' as separator.
-    $view = View::load('test_table');
+    $view = entity_load('view', 'test_table');
     $display = &$view->getDisplay('default');
     $display['display_options']['style']['options']['columns']['job_1'] = 'job';
     $display['display_options']['style']['options']['info']['job']['separator'] = ', ';
diff --git a/core/modules/views/src/Tests/ViewAjaxTest.php b/core/modules/views/src/Tests/ViewAjaxTest.php
index c1705a5..9219b20 100644
--- a/core/modules/views/src/Tests/ViewAjaxTest.php
+++ b/core/modules/views/src/Tests/ViewAjaxTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\views\Tests;
 
 use Drupal\Component\Serialization\Json;
-use Drupal\Core\EventSubscriber\MainContentViewSubscriber;
 
 /**
  * Tests the ajax view functionality.
@@ -47,7 +46,7 @@ public function testAjaxView() {
       'view_display_id' => 'page_1',
     );
     $post += $this->getAjaxPageStatePostData();
-    $response = $this->drupalPost('views/ajax', '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
+    $response = $this->drupalPost('views/ajax', 'application/vnd.drupal-ajax', $post);
     $data = Json::decode($response);
 
     $this->assertTrue(isset($data[0]['settings']['views']['ajaxViews']));
diff --git a/core/modules/views/src/Tests/Wizard/BasicTest.php b/core/modules/views/src/Tests/Wizard/BasicTest.php
index a8eedf2..aa4fc34 100644
--- a/core/modules/views/src/Tests/Wizard/BasicTest.php
+++ b/core/modules/views/src/Tests/Wizard/BasicTest.php
@@ -26,7 +26,7 @@ function testViewsWizardAndListing() {
 
     // Check if we can access the main views admin page.
     $this->drupalGet('admin/structure/views');
-    $this->assertText(t('Add view'));
+    $this->assertText(t('Add new view'));
 
     // Create a simple and not at all useful view.
     $view1 = array();
diff --git a/core/modules/views/src/ViewExecutable.php b/core/modules/views/src/ViewExecutable.php
index da85925..a29d452 100644
--- a/core/modules/views/src/ViewExecutable.php
+++ b/core/modules/views/src/ViewExecutable.php
@@ -2376,7 +2376,7 @@ public function setShowAdminLinks($show_admin_links) {
    * Returns whether admin links should be rendered on the view.
    *
    * @return bool
-   *   TRUE if admin links should be rendered, else FALSE.
+   *  TRUE if admin links should be rendered, else FALSE.
    */
   public function getShowAdminLinks() {
     if (!isset($this->showAdminLinks)) {
diff --git a/core/modules/views/src/Views.php b/core/modules/views/src/Views.php
index 4689479..10d8240 100644
--- a/core/modules/views/src/Views.php
+++ b/core/modules/views/src/Views.php
@@ -295,8 +295,8 @@ public static function getDisabledViews() {
    *   If TRUE, the list of views is sorted ascending.
    *
    * @return array
-   *   An associative array for use in select.
-   *   - key: view name and display id separated by ':', or the view name only.
+   *  an associative array for use in select.
+   *  - key: view name and display id separated by ':', or the view name only
    */
   public static function getViewsAsOptions($views_only = FALSE, $filter = 'all', $exclude_view = NULL, $optgroup = FALSE, $sort = FALSE) {
 
diff --git a/core/modules/views/src/ViewsData.php b/core/modules/views/src/ViewsData.php
index 8bb6b53..021ea78 100644
--- a/core/modules/views/src/ViewsData.php
+++ b/core/modules/views/src/ViewsData.php
@@ -81,7 +81,7 @@ class ViewsData {
   protected $moduleHandler;
 
   /**
-   * The language manager.
+   * The language manager
    *
    * @var \Drupal\Core\Language\LanguageManagerInterface
    */
@@ -109,76 +109,63 @@ public function __construct(CacheBackendInterface $cache_backend, ConfigFactoryI
   }
 
   /**
-   * Gets all table data.
-   *
-   * @see https://www.drupal.org/node/2723553
-   *
-   * @return array $data
-   *   An array of table data.
-   */
-  public function getAll() {
-    if (!$this->fullyLoaded) {
-      $this->allStorage = $this->getData();
-    }
-
-    // Set storage from allStorage outside of the fullyLoaded check to prevent
-    // cache calls on requests that have requested all data to get a single
-    // tables data. Make sure $this->storage is populated in this case.
-    $this->storage = $this->allStorage;
-    return $this->allStorage;
-  }
-
-  /**
    * Gets data for a particular table, or all tables.
    *
    * @param string|null $key
    *   The key of the cache entry to retrieve. Defaults to NULL, this will
    *   return all table data.
    *
-   * @deprecated NULL $key deprecated in Drupal 8.2.x and will be removed in
-   * 9.0.0. Use getAll() instead.
-   *
-   * @see https://www.drupal.org/node/2723553
-   *
    * @return array $data
    *   An array of table data.
    */
   public function get($key = NULL) {
-    if (!$key) {
-      return $this->getAll();
-    }
-    if (!isset($this->storage[$key])) {
-      // Prepare a cache ID for get and set.
-      $cid = $this->baseCid . ':' . $key;
-      $from_cache = FALSE;
-
-      if ($data = $this->cacheGet($cid)) {
-        $this->storage[$key] = $data->data;
-        $from_cache = TRUE;
-      }
-      // If there is no cached entry and data is not already fully loaded,
-      // rebuild. This will stop requests for invalid tables calling getData.
-      elseif (!$this->fullyLoaded) {
-        $this->allStorage = $this->getData();
-      }
-
-      if (!$from_cache) {
-        if (!isset($this->allStorage[$key])) {
-          // Write an empty cache entry if no information for that table
-          // exists to avoid repeated cache get calls for this table and
-          // prevent loading all tables unnecessarily.
-          $this->storage[$key] = array();
-          $this->allStorage[$key] = array();
+    if ($key) {
+      if (!isset($this->storage[$key])) {
+        // Prepare a cache ID for get and set.
+        $cid = $this->baseCid . ':' . $key;
+        $from_cache = FALSE;
+
+        if ($data = $this->cacheGet($cid)) {
+          $this->storage[$key] = $data->data;
+          $from_cache = TRUE;
         }
-        else {
-          $this->storage[$key] = $this->allStorage[$key];
+        // If there is no cached entry and data is not already fully loaded,
+        // rebuild. This will stop requests for invalid tables calling getData.
+        elseif (!$this->fullyLoaded) {
+          $this->allStorage = $this->getData();
         }
 
-        // Create a cache entry for the requested table.
-        $this->cacheSet($cid, $this->allStorage[$key]);
+        if (!$from_cache) {
+          if (!isset($this->allStorage[$key])) {
+            // Write an empty cache entry if no information for that table
+            // exists to avoid repeated cache get calls for this table and
+            // prevent loading all tables unnecessarily.
+            $this->storage[$key] = array();
+            $this->allStorage[$key] = array();
+          }
+          else {
+            $this->storage[$key] = $this->allStorage[$key];
+          }
+
+          // Create a cache entry for the requested table.
+          $this->cacheSet($cid, $this->allStorage[$key]);
+        }
       }
+
+      return $this->storage[$key];
     }
-    return $this->storage[$key];
+    else {
+      if (!$this->fullyLoaded) {
+        $this->allStorage = $this->getData();
+      }
+
+      // Set storage from allStorage outside of the fullyLoaded check to prevent
+      // cache calls on requests that have requested all data to get a single
+      // tables data. Make sure $this->storage is populated in this case.
+      $this->storage = $this->allStorage;
+    }
+
+    return $this->allStorage;
   }
 
   /**
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.rest_export_with_authorization.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.rest_export_with_authorization.yml
deleted file mode 100644
index 16ab4b9..0000000
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.rest_export_with_authorization.yml
+++ /dev/null
@@ -1,216 +0,0 @@
-langcode: en
-status: true
-dependencies:
-  config:
-    - core.entity_view_mode.node.teaser
-    - user.role.authenticated
-  module:
-    - node
-    - rest
-    - user
-id: rest_export_with_authorization
-label: 'Rest Export'
-module: views
-description: ''
-tag: ''
-base_table: node_field_data
-base_field: nid
-core: 8.x
-display:
-  default:
-    display_plugin: default
-    id: default
-    display_title: Master
-    position: 0
-    display_options:
-      access:
-        type: role
-        options:
-          role:
-            authenticated: authenticated
-      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: full
-        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: '‹ Previous'
-            next: 'Next ›'
-            first: '« First'
-            last: 'Last »'
-          quantity: 9
-      style:
-        type: default
-      row:
-        type: 'entity:node'
-        options:
-          view_mode: teaser
-      fields:
-        title:
-          id: title
-          table: node_field_data
-          field: title
-          entity_type: node
-          entity_field: title
-          label: ''
-          alter:
-            alter_text: false
-            make_link: false
-            absolute: false
-            trim: false
-            word_boundary: false
-            ellipsis: false
-            strip_tags: false
-            html: false
-          hide_empty: false
-          empty_zero: false
-          settings:
-            link_to_entity: true
-          plugin_id: field
-          relationship: none
-          group_type: group
-          admin_label: ''
-          exclude: 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_alter_empty: true
-          click_sort_column: value
-          type: string
-          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
-      filters:
-        status:
-          id: status
-          table: node_field_data
-          field: status
-          relationship: none
-          group_type: group
-          admin_label: ''
-          operator: '='
-          value: false
-          group: 1
-          exposed: false
-          expose:
-            operator_id: ''
-            label: ''
-            description: ''
-            use_operator: false
-            operator: ''
-            identifier: ''
-            required: false
-            remember: false
-            multiple: false
-            remember_roles:
-              authenticated: authenticated
-          is_grouped: false
-          group_info:
-            label: ''
-            description: ''
-            identifier: ''
-            optional: true
-            widget: select
-            multiple: false
-            remember: false
-            default_group: All
-            default_group_multiple: {  }
-            group_items: {  }
-          plugin_id: boolean
-          entity_type: node
-          entity_field: status
-      sorts:
-        created:
-          id: created
-          table: node_field_data
-          field: created
-          order: DESC
-          entity_type: node
-          entity_field: created
-          plugin_id: date
-          relationship: none
-          group_type: group
-          admin_label: ''
-          exposed: false
-          expose:
-            label: ''
-          granularity: second
-      title: 'Rest Export'
-      header: {  }
-      footer: {  }
-      empty: {  }
-      relationships: {  }
-      arguments: {  }
-      display_extenders: {  }
-    cache_metadata:
-      max-age: -1
-      contexts:
-        - 'languages:language_content'
-        - 'languages:language_interface'
-        - url.query_args
-        - 'user.node_grants:view'
-        - user.roles
-      tags: {  }
-  rest_export_1:
-    display_plugin: rest_export
-    id: rest_export_1
-    display_title: 'REST export'
-    position: 2
-    display_options:
-      display_extenders: {  }
-      path: unpublished-content
-      auth:
-        basic_auth: basic_auth
-    cache_metadata:
-      max-age: -1
-      contexts:
-        - 'languages:language_content'
-        - 'languages:language_interface'
-        - request_format
-        - 'user.node_grants:view'
-        - user.roles
-      tags: {  }
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_multivalue_basefield.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_multivalue_basefield.yml
deleted file mode 100644
index 478071d..0000000
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_multivalue_basefield.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-langcode: en
-status: true
-dependencies:
-  module:
-    - entity_test
-id: test_entity_multivalue_basefield
-label: ''
-module: views
-description: ''
-tag: ''
-base_table: entity_test_multivalue_basefield
-base_field: id
-core: '8'
-display:
-  default:
-    display_plugin: default
-    id: default
-    display_title: Master
-    position: 0
-    display_options:
-      fields:
-        id:
-          id: id
-          table: entity_test_multivalue_basefield
-          field: nid
-          relationship: none
-          plugin_id: field
-          entity_type: entity_test_multivalue_basefield
-          entity_field: id
-        name:
-          id: name
-          table: entity_test_multivalue_basefield__name
-          field: name
-          plugin_id: field
-          entity_type: entity_test_multivalue_basefield
-          entity_field: name
-      defaults:
-        fields: false
-        filters: false
-      sorts:
-        id:
-          id: id
-          table: entity_test_multivalue_basefield
-          field: id
-          order: asc
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_body.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_body.yml
deleted file mode 100644
index 10163c9..0000000
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_body.yml
+++ /dev/null
@@ -1,188 +0,0 @@
-langcode: en
-status: true
-dependencies:
-  config:
-    - field.storage.node.body
-  module:
-    - node
-    - text
-    - user
-id: test_field_body
-label: test_field_body
-module: views
-description: ''
-tag: ''
-base_table: node_field_data
-base_field: nid
-core: 8.x
-display:
-  default:
-    display_plugin: default
-    id: default
-    display_title: Master
-    position: 0
-    display_options:
-      access:
-        type: perm
-        options:
-          perm: 'access content'
-      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: default
-        options:
-          grouping: {  }
-          row_class: ''
-          default_row_class: true
-          uses_fields: false
-      row:
-        type: fields
-        options:
-          inline: {  }
-          separator: ''
-          hide_empty: false
-          default_field_elements: true
-      fields:
-        body:
-          id: body
-          table: node__body
-          field: body
-          relationship: none
-          group_type: group
-          admin_label: 'Body field'
-          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: false
-          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: text_default
-          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
-          plugin_id: field
-      filters:
-        status:
-          value: true
-          table: node_field_data
-          field: status
-          plugin_id: boolean
-          entity_type: node
-          entity_field: status
-          id: status
-          expose:
-            operator: ''
-          group: 1
-      sorts:
-        created:
-          id: created
-          table: node_field_data
-          field: created
-          order: DESC
-          entity_type: node
-          entity_field: created
-          plugin_id: date
-          relationship: none
-          group_type: group
-          admin_label: ''
-          exposed: false
-          expose:
-            label: ''
-          granularity: second
-      header: {  }
-      footer: {  }
-      empty: {  }
-      relationships: {  }
-      arguments: {  }
-      display_extenders: {  }
-    cache_metadata:
-      max-age: -1
-      contexts:
-        - 'languages:language_content'
-        - 'languages:language_interface'
-        - url.query_args
-        - 'user.node_grants:view'
-        - user.permissions
-      tags:
-        - 'config:field.storage.node.body'
diff --git a/core/modules/views/tests/src/FunctionalJavascript/ExposedFilterAJAXTest.php b/core/modules/views/tests/src/FunctionalJavascript/ExposedFilterAJAXTest.php
index 974aa2d..15ef650 100644
--- a/core/modules/views/tests/src/FunctionalJavascript/ExposedFilterAJAXTest.php
+++ b/core/modules/views/tests/src/FunctionalJavascript/ExposedFilterAJAXTest.php
@@ -55,7 +55,7 @@ public function testExposedFiltering() {
 
     // Search for "Page One".
     $this->submitForm(['title' => 'Page One'], t('Filter'));
-    $this->assertSession()->assertWaitOnAjaxRequest();
+    $this->waitForAjaxToFinish();
 
     // Verify that only the "Page One" Node is present.
     $html = $session->getPage()->getHtml();
@@ -64,20 +64,20 @@ public function testExposedFiltering() {
 
     // Search for "Page Two".
     $this->submitForm(['title' => 'Page Two'], t('Filter'));
-    $this->assertSession()->assertWaitOnAjaxRequest();
+    $this->waitForAjaxToFinish();
 
     // Verify that only the "Page Two" Node is present.
     $html = $session->getPage()->getHtml();
     $this->assertContains('Page Two', $html);
     $this->assertNotContains('Page One', $html);
+  }
 
-    // Reset the form.
-    $this->submitForm([], t('Reset'));
-    $this->assertSession()->assertWaitOnAjaxRequest();
-
-    $this->assertSession()->pageTextContains('Page One');
-    $this->assertSession()->pageTextContains('Page Two');
-    $this->assertFalse($session->getPage()->hasButton('Reset'));
+  /**
+   * Waits for jQuery to become active and animations to complete.
+   */
+  protected function waitForAjaxToFinish() {
+    $condition = "(0 === jQuery.active && 0 === jQuery(':animated').length)";
+    $this->assertJsCondition($condition, 10000);
   }
 
 }
diff --git a/core/modules/views/tests/src/FunctionalJavascript/Plugin/views/Handler/FieldTest.php b/core/modules/views/tests/src/FunctionalJavascript/Plugin/views/Handler/FieldTest.php
deleted file mode 100644
index 6676daf..0000000
--- a/core/modules/views/tests/src/FunctionalJavascript/Plugin/views/Handler/FieldTest.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-namespace Drupal\Tests\views\FunctionalJavascript\Plugin\views\Handler;
-
-use Drupal\config\Tests\SchemaCheckTestTrait;
-use Drupal\field\Entity\FieldConfig;
-use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
-use Drupal\node\Entity\NodeType;
-use Drupal\views\Tests\ViewTestData;
-
-/**
- * Tests the field field handler UI.
- *
- * @group views
- */
-class FieldTest extends JavascriptTestBase {
-  use SchemaCheckTestTrait;
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['node', 'views', 'views_ui', 'views_test_config'];
-
-  /**
-   * Views used by this test.
-   *
-   * @var array
-   */
-  public static $testViews = ['test_field_body'];
-
-  /**
-   * The account.
-   *
-   * @var \Drupal\user\UserInterface
-   */
-  protected $account;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    ViewTestData::createTestViews(get_class($this), ['views_test_config']);
-
-    // Disable automatic live preview to make the sequence of calls clearer.
-    \Drupal::configFactory()->getEditable('views.settings')->set('ui.always_live_preview', FALSE)->save();
-
-    $this->account = $this->drupalCreateUser(['administer views']);
-    $this->drupalLogin($this->account);
-
-    NodeType::create([
-      'type' => 'page',
-    ])->save();
-
-    FieldConfig::create([
-      'entity_type' => 'node',
-      'field_name' => 'body',
-      'bundle' => 'page',
-    ])->save();
-  }
-
-  public function testFormatterChanging() {
-    $web_assert = $this->assertSession();
-    $url = '/admin/structure/views/view/test_field_body';
-    $this->drupalGet($url);
-
-    $page = $this->getSession()->getPage();
-
-    $page->clickLink('Body field');
-    $web_assert->assertWaitOnAjaxRequest();
-
-    $page->fillField('options[type]', 'text_trimmed');
-    // Add a value to the trim_length setting.
-    $web_assert->assertWaitOnAjaxRequest();
-    $page->fillField('options[settings][trim_length]', '700');
-    $apply_button = $page->find('css', '.views-ui-dialog button.button--primary');
-    $this->assertTrue(!empty($apply_button));
-    $apply_button->press();
-    $web_assert->assertWaitOnAjaxRequest();
-
-    // Save the page.
-    $save_button = $page->find('css', '#edit-actions-submit');
-    $save_button->press();
-
-    // Set the body field back to 'default' and test that the trim_length
-    // settings are not in the config.
-    $this->drupalGet($url);
-    $page->clickLink('Body field');
-    $web_assert->assertWaitOnAjaxRequest();
-
-    $page->fillField('options[type]', 'text_default');
-    $web_assert->assertWaitOnAjaxRequest();
-    $apply_button = $page->find('css', '.views-ui-dialog button.button--primary');
-    $apply_button->press();
-    $web_assert->assertWaitOnAjaxRequest();
-
-    // Save the page.
-    $save_button = $page->find('css', '#edit-actions-submit');
-    $save_button->press();
-
-    $this->assertConfigSchemaByName('views.view.test_field_body');
-  }
-
-}
diff --git a/core/modules/views/tests/src/Kernel/Entity/EntityViewsWithMultivalueBasefieldTest.php b/core/modules/views/tests/src/Kernel/Entity/EntityViewsWithMultivalueBasefieldTest.php
deleted file mode 100644
index edf0fb0..0000000
--- a/core/modules/views/tests/src/Kernel/Entity/EntityViewsWithMultivalueBasefieldTest.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-namespace Drupal\Tests\views\Kernel\Entity;
-
-use Drupal\entity_test\Entity\EntityTestMultiValueBasefield;
-use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
-use Drupal\views\Views;
-
-/**
- * Tests entity views with multivalue base fields.
- *
- * @group views
- */
-class EntityViewsWithMultivalueBasefieldTest extends ViewsKernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['entity_test'];
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $testViews = ['test_entity_multivalue_basefield'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp($import_test_views = TRUE) {
-    parent::setUp($import_test_views);
-
-    $this->installEntitySchema('entity_test_multivalue_basefield');
-  }
-
-  /**
-   * Tests entity views with multivalue base fields.
-   */
-  public function testView() {
-    EntityTestMultiValueBasefield::create([
-      'name' => 'test',
-    ])->save();
-    EntityTestMultiValueBasefield::create([
-      'name' => ['test2', 'test3'],
-    ])->save();
-
-    $view = Views::getView('test_entity_multivalue_basefield');
-    $view->execute();
-    $this->assertIdenticalResultset($view, [
-      ['name' => ['test']],
-      ['name' => ['test2', 'test3']],
-    ], ['name' => 'name']);
-  }
-
-}
diff --git a/core/modules/views/tests/src/Kernel/Handler/FilterCombineTest.php b/core/modules/views/tests/src/Kernel/Handler/FilterCombineTest.php
index 775015b..d3aa2c9 100644
--- a/core/modules/views/tests/src/Kernel/Handler/FilterCombineTest.php
+++ b/core/modules/views/tests/src/Kernel/Handler/FilterCombineTest.php
@@ -13,16 +13,11 @@
 class FilterCombineTest extends ViewsKernelTestBase {
 
   /**
-   * {@inheritdoc}
-   */
-  public static $modules = array('entity_test');
-
-  /**
    * Views used by this test.
    *
    * @var array
    */
-  public static $testViews = array('test_view', 'entity_test_fields');
+  public static $testViews = array('test_view');
 
   /**
    * Map column names.
@@ -34,15 +29,6 @@ class FilterCombineTest extends ViewsKernelTestBase {
     'views_test_data_job' => 'job',
   );
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp($import_test_views = TRUE) {
-    parent::setUp($import_test_views);
-
-    $this->installEntitySchema('entity_test');
-  }
-
   public function testFilterCombineContains() {
     $view = Views::getView('test_view');
     $view->setDisplay();
@@ -140,42 +126,7 @@ public function testFilterCombineContainsFieldsOverwritten() {
     $this->assertTrue($view->build_info['fail'], "View build has been marked as failed.");
     // Make sure this view does not pass validation with the right error.
     $errors = $view->validate();
-    $this->assertEquals(t('Field %field set in %filter is not set in display %display.', array('%field' => 'dummy', '%filter' => 'Global: Combine fields filter', '%display' => 'Master')), reset($errors['default']));
-  }
-
-  /**
-   * Tests that the combine field filter is not valid on displays that don't use
-   * fields.
-   */
-  public function testNonFieldsRow() {
-    $view = Views::getView('entity_test_fields');
-    $view->setDisplay();
-
-    // Set the rows to a plugin type that doesn't support fields.
-    $view->displayHandlers->get('default')->overrideOption('row', array(
-      'type' => 'entity:entity_test',
-      'options' => array(
-        'view_mode' => 'teaser',
-      ),
-    ));
-    // Change the filtering.
-    $view->displayHandlers->get('default')->overrideOption('filters', array(
-      'name' => array(
-        'id' => 'combine',
-        'table' => 'views',
-        'field' => 'combine',
-        'relationship' => 'none',
-        'operator' => 'contains',
-        'fields' => array(
-          'name',
-        ),
-        'value' => 'ing',
-      ),
-    ));
-    $this->executeView($view);
-    $errors = $view->validate();
-    // Check that the right error is shown.
-    $this->assertEquals(t('%display: %filter can only be used on displays that use fields. Set the style or row format for that display to one using fields to use the combine field filter.', array('%filter' => 'Global: Combine fields filter', '%display' => 'Master')), reset($errors['default']));
+    $this->assertEqual(reset($errors['default']), t('Field %field set in %filter is not set in this display.', array('%field' => 'dummy', '%filter' => 'Global: Combine fields filter')));
   }
 
   /**
diff --git a/core/modules/views/tests/src/Kernel/Handler/FilterNumericTest.php b/core/modules/views/tests/src/Kernel/Handler/FilterNumericTest.php
index c6f5af9..7721479 100644
--- a/core/modules/views/tests/src/Kernel/Handler/FilterNumericTest.php
+++ b/core/modules/views/tests/src/Kernel/Handler/FilterNumericTest.php
@@ -149,6 +149,10 @@ public function testFilterNumericBetween() {
         'age' => 25,
       ),
       array(
+        'name' => 'Paul',
+        'age' => 26,
+      ),
+      array(
         'name' => 'Meredith',
         'age' => 30,
       ),
@@ -205,6 +209,10 @@ public function testFilterNumericExposedGroupedNotBetween() {
         'age' => 25,
       ),
       array(
+        'name' => 'Paul',
+        'age' => 26,
+      ),
+      array(
         'name' => 'Meredith',
         'age' => 30,
       ),
diff --git a/core/modules/views/tests/src/Kernel/Plugin/Display/ViewsMenuLinkTest.php b/core/modules/views/tests/src/Kernel/Plugin/Display/ViewsMenuLinkTest.php
deleted file mode 100644
index 9e05ebc..0000000
--- a/core/modules/views/tests/src/Kernel/Plugin/Display/ViewsMenuLinkTest.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-namespace Drupal\Tests\views\Kernel\Plugin\Display;
-
-use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
-
-/**
- * Menu link test.
- *
- * @group views
- */
-class ViewsMenuLinkTest extends ViewsKernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = [
-    'menu_ui',
-    'user',
-    'views'
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $testViews = ['test_page_display_menu'];
-
-  /**
-   * The entity manager.
-   *
-   * @var \Drupal\Core\Entity\EntityManagerInterface
-   */
-  protected $entityManger;
-
-  /**
-   * The menu link manager.
-   *
-   * @var \Drupal\Core\Menu\MenuLinkManagerInterface
-   */
-  protected $menuLinkManager;
-
-  /**
-   * The menu link overrides.
-   *
-   * @var \Drupal\Core\Menu\StaticMenuLinkOverridesInterface
-   */
-  protected $menuLinkOverrides;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp($import_test_views = TRUE) {
-    parent::setUp($import_test_views);
-
-    $this->entityManger = $this->container->get('entity.manager');
-    $this->menuLinkManager = $this->container->get('plugin.manager.menu.link');
-    $this->menuLinkOverrides = $this->container->get('menu_link.static.overrides');
-  }
-
-  /**
-   * Test views internal menu link options.
-   */
-  public function testMenuLinkOverrides() {
-    // Link from views module.
-    $views_link = $this->menuLinkManager->getDefinition('views_view:views.test_page_display_menu.page_3');
-    $this->assertTrue($views_link['enabled'], 'Menu link is enabled.');
-    $this->assertFalse($views_link['expanded'], 'Menu link is not expanded.');
-    $views_link['enabled'] = 0;
-    $views_link['expanded'] = 1;
-    $this->menuLinkManager->updateDefinition($views_link['id'], $views_link);
-    $views_link = $this->menuLinkManager->getDefinition($views_link['id']);
-    $this->assertFalse($views_link['enabled'], 'Menu link is disabled.');
-    $this->assertTrue($views_link['expanded'], 'Menu link is expanded.');
-    $this->menuLinkManager->rebuild();
-    $this->assertFalse($views_link['enabled'], 'Menu link is disabled.');
-    $this->assertTrue($views_link['expanded'], 'Menu link is expanded.');
-
-    // Link from user module.
-    $user_link = $this->menuLinkManager->getDefinition('user.page');
-    $this->assertTrue($user_link['enabled'], 'Menu link is enabled.');
-    $user_link['enabled'] = 0;
-    $views_link['expanded'] = 1;
-    $this->menuLinkManager->updateDefinition($user_link['id'], $user_link);
-    $this->assertFalse($user_link['enabled'], 'Menu link is disabled.');
-    $this->menuLinkManager->rebuild();
-    $this->assertFalse($user_link['enabled'], 'Menu link is disabled.');
-
-    $this->menuLinkOverrides->reload();
-
-    $views_link = $this->menuLinkManager->getDefinition('views_view:views.test_page_display_menu.page_3');
-    $this->assertFalse($views_link['enabled'], 'Menu link is disabled.');
-    $this->assertTrue($views_link['expanded'], 'Menu link is expanded.');
-
-    $user_link = $this->menuLinkManager->getDefinition('user.page');
-    $this->assertFalse($user_link['enabled'], 'Menu link is disabled.');
-  }
-
-}
diff --git a/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php b/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php
index db0262a..2b69948 100644
--- a/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php
+++ b/core/modules/views/tests/src/Kernel/Plugin/JoinTest.php
@@ -172,8 +172,7 @@ public function testBasePlugin() {
     $join_info = $tables['users4'];
     $this->assertTrue(strpos($join_info['condition'], "views_test_data.uid = users4.uid") !== FALSE, 'Make sure the join condition appears in the query.');
     $this->assertTrue(strpos($join_info['condition'], "users4.name = :views_join_condition_2") !== FALSE, 'Make sure the first extra join condition appears in the query.');
-    $this->assertTrue(strpos($join_info['condition'], "users4.name IN ( :views_join_condition_3[] )") !== FALSE, 'The IN condition for the join is properly formed.');
-    $this->assertEqual($join_info['arguments'][':views_join_condition_3[]'], array($random_name_2, $random_name_3, $random_name_4), 'Make sure the IN arguments are still part of an array.');
+    $this->assertTrue(strpos($join_info['condition'], "users4.name IN ( :views_join_condition_3, :views_join_condition_4, :views_join_condition_5 )") !== FALSE, 'The IN condition for the join is properly formed.');
 
     // Test that all the conditions are properly built.
     $configuration['extra'] = array(
@@ -198,8 +197,8 @@ public function testBasePlugin() {
     $tables = $query->getTables();
     $join_info = $tables['users5'];
     $this->assertTrue(strpos($join_info['condition'], "views_test_data.uid = users5.uid") !== FALSE, 'Make sure the join condition appears in the query.');
-    $this->assertTrue(strpos($join_info['condition'], "users5.langcode = :views_join_condition_4") !== FALSE, 'Make sure the first extra join condition appears in the query.');
-    $this->assertTrue(strpos($join_info['condition'], "views_test_data.status = :views_join_condition_5") !== FALSE, 'Make sure the second extra join condition appears in the query.');
+    $this->assertTrue(strpos($join_info['condition'], "users5.langcode = :views_join_condition_6") !== FALSE, 'Make sure the first extra join condition appears in the query.');
+    $this->assertTrue(strpos($join_info['condition'], "views_test_data.status = :views_join_condition_7") !== FALSE, 'Make sure the second extra join condition appears in the query.');
     $this->assertTrue(strpos($join_info['condition'], "users5.name = views_test_data.name") !== FALSE, 'Make sure the third extra join condition appears in the query.');
     $this->assertEqual(array_values($join_info['arguments']), array('en', 0), 'Make sure the arguments are in the right order');
   }
diff --git a/core/modules/views/tests/src/Kernel/ViewExecutableTest.php b/core/modules/views/tests/src/Kernel/ViewExecutableTest.php
index 01057b4..0ca5587 100644
--- a/core/modules/views/tests/src/Kernel/ViewExecutableTest.php
+++ b/core/modules/views/tests/src/Kernel/ViewExecutableTest.php
@@ -99,7 +99,7 @@ protected function setUpFixtures() {
   public function testFactoryService() {
     $factory = $this->container->get('views.executable');
     $this->assertTrue($factory instanceof ViewExecutableFactory, 'A ViewExecutableFactory instance was returned from the container.');
-    $view = View::load('test_executable_displays');
+    $view = entity_load('view', 'test_executable_displays');
     $this->assertTrue($factory->get($view) instanceof ViewExecutable, 'A ViewExecutable instance was returned from the factory.');
   }
 
diff --git a/core/modules/views/tests/src/Kernel/ViewStorageTest.php b/core/modules/views/tests/src/Kernel/ViewStorageTest.php
index fa264bd..5e999e0 100644
--- a/core/modules/views/tests/src/Kernel/ViewStorageTest.php
+++ b/core/modules/views/tests/src/Kernel/ViewStorageTest.php
@@ -78,7 +78,7 @@ function testConfigurationEntityCRUD() {
    * Tests loading configuration entities.
    */
   protected function loadTests() {
-    $view = View::load('test_view_storage');
+    $view = entity_load('view', 'test_view_storage');
     $data = $this->config('views.view.test_view_storage')->get();
 
     // Confirm that an actual view object is loaded and that it returns all of
@@ -143,7 +143,7 @@ protected function createTests() {
 
     // Check the UUID of the loaded View.
     $created->save();
-    $created_loaded = View::load('test_view_storage_new');
+    $created_loaded = entity_load('view', 'test_view_storage_new');
     $this->assertIdentical($created->uuid(), $created_loaded->uuid(), 'The created UUID has been saved correctly.');
   }
 
@@ -152,7 +152,7 @@ protected function createTests() {
    */
   protected function displayTests() {
     // Check whether a display can be added and saved to a View.
-    $view = View::load('test_view_storage_new');
+    $view = entity_load('view', 'test_view_storage_new');
 
     $new_id = $view->addDisplay('page', 'Test', 'test');
     $display = $view->get('display');
diff --git a/core/modules/views/tests/src/Kernel/ViewsKernelTestBase.php b/core/modules/views/tests/src/Kernel/ViewsKernelTestBase.php
index f149b7f..f53309b 100644
--- a/core/modules/views/tests/src/Kernel/ViewsKernelTestBase.php
+++ b/core/modules/views/tests/src/Kernel/ViewsKernelTestBase.php
@@ -11,7 +11,7 @@
 /**
  * Defines a base class for Views kernel testing.
  */
-abstract class ViewsKernelTestBase extends KernelTestBase {
+class ViewsKernelTestBase extends KernelTestBase {
 
   use ViewResultAssertionTrait;
 
diff --git a/core/modules/views/tests/src/Unit/EntityViewsDataTest.php b/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
index 245b8f1..c3e93ed 100644
--- a/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
+++ b/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
@@ -11,7 +11,6 @@
 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;
 use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem;
 use Drupal\Core\Field\Plugin\Field\FieldType\IntegerItem;
@@ -19,7 +18,6 @@
 use Drupal\Core\Field\Plugin\Field\FieldType\StringItem;
 use Drupal\Core\Field\Plugin\Field\FieldType\UriItem;
 use Drupal\Core\Field\Plugin\Field\FieldType\UuidItem;
-use Drupal\Core\TypedData\TypedDataManagerInterface;
 use Drupal\text\Plugin\Field\FieldType\TextLongItem;
 use Drupal\entity_test\Entity\EntityTest;
 use Drupal\entity_test\Entity\EntityTestMul;
@@ -85,7 +83,9 @@ protected function setUp() {
       ->getMock();
     $this->entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
 
-    $typed_data_manager = $this->getMock(TypedDataManagerInterface::class);
+    $typed_data_manager = $this->getMockBuilder('Drupal\Core\TypedData\TypedDataManager')
+      ->disableOriginalConstructor()
+      ->getMock();
     $typed_data_manager->expects($this->any())
         ->method('createDataDefinition')
         ->willReturn($this->getMock('Drupal\Core\TypedData\DataDefinitionInterface'));
@@ -161,12 +161,6 @@ protected function setupBaseFields(array $base_fields) {
       ->setTranslatable(TRUE)
       ->setSetting('max_length', 255);
 
-    // A base field with cardinality > 1
-    $base_fields['string']  = BaseFieldDefinition::create('string')
-      ->setLabel('Strong')
-      ->setTranslatable(TRUE)
-      ->setCardinality(2);
-
     foreach ($base_fields as $name => $base_field) {
       $base_field->setName($name);
     }
@@ -383,10 +377,6 @@ protected function setupFieldStorageDefinition() {
     $homepage_field_storage_definition->expects($this->any())
       ->method('getSchema')
       ->willReturn(UriItem::schema($homepage_field_storage_definition));
-    $string_field_storage_definition = $this->getMock('Drupal\Core\Field\FieldStorageDefinitionInterface');
-    $string_field_storage_definition->expects($this->any())
-      ->method('getSchema')
-      ->willReturn(StringItem::schema($string_field_storage_definition));
 
     // Setup the user_id entity reference field.
     $this->entityManager->expects($this->any())
@@ -422,7 +412,6 @@ protected function setupFieldStorageDefinition() {
         'name' => $name_field_storage_definition,
         'description' => $description_field_storage_definition,
         'homepage' => $homepage_field_storage_definition,
-        'string' => $string_field_storage_definition,
         'user_id' => $user_id_field_storage_definition,
         'revision_id' => $revision_id_field_storage_definition,
       ]);
@@ -447,12 +436,10 @@ public function testBaseTableFields() {
         ['entity_test', $base_field_definitions],
       ]));
     // Setup the table mapping.
-    $table_mapping = $this->getMockBuilder(DefaultTableMapping::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $table_mapping = $this->getMock('Drupal\Core\Entity\Sql\TableMappingInterface');
     $table_mapping->expects($this->any())
       ->method('getTableNames')
-      ->willReturn(['entity_test', 'entity_test__string']);
+      ->willReturn(['entity_test']);
     $table_mapping->expects($this->any())
       ->method('getColumnNames')
       ->willReturnMap([
@@ -464,26 +451,12 @@ public function testBaseTableFields() {
         ['description', ['value' => 'description__value', 'format' => 'description__format']],
         ['homepage', ['value' => 'homepage']],
         ['user_id', ['target_id' => 'user_id']],
-        ['string', ['value' => 'value']],
       ]);
     $table_mapping->expects($this->any())
       ->method('getFieldNames')
       ->willReturnMap([
-        ['entity_test', ['id', 'uuid', 'type', 'langcode', 'name', 'description', 'homepage', 'user_id']],
-        ['entity_test__string', ['string']],
+        ['entity_test', ['id', 'uuid', 'type', 'langcode', 'name', 'description', 'homepage', 'user_id']]
       ]);
-    $table_mapping->expects($this->any())
-      ->method('requiresDedicatedTableStorage')
-      ->willReturnCallback(function (BaseFieldDefinition $base_field) {
-        return $base_field->getName() === 'string';
-      });
-    $table_mapping->expects($this->any())
-      ->method('getDedicatedDataTableName')
-      ->willReturnCallback(function (BaseFieldDefinition $base_field) {
-        if ($base_field->getName() === 'string') {
-          return 'entity_test__string';
-        }
-      });
 
     $this->entityStorage->expects($this->once())
       ->method('getTableMapping')
@@ -520,18 +493,6 @@ public function testBaseTableFields() {
     $relationship = $data['entity_test']['user_id']['relationship'];
     $this->assertEquals('users_field_data', $relationship['base']);
     $this->assertEquals('uid', $relationship['base field']);
-
-    $this->assertStringField($data['entity_test__string']['string']);
-    $this->assertField($data['entity_test__string']['string'], 'string');
-    $this->assertEquals([
-      'left_field' => 'id',
-      'field' => 'entity_id',
-      'extra' => [[
-        'field' => 'deleted',
-        'value' => 0,
-        'numeric' => TRUE,
-      ]],
-    ], $data['entity_test__string']['table']['join']['entity_test']);
   }
 
   /**
@@ -569,12 +530,10 @@ public function testDataTableFields() {
     $this->viewsData->setEntityType($entity_type);
 
      // Setup the table mapping.
-    $table_mapping = $this->getMockBuilder(DefaultTableMapping::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $table_mapping = $this->getMock('Drupal\Core\Entity\Sql\TableMappingInterface');
     $table_mapping->expects($this->any())
       ->method('getTableNames')
-      ->willReturn(['entity_test_mul', 'entity_test_mul_property_data', 'entity_test_mul__string']);
+      ->willReturn(['entity_test_mul', 'entity_test_mul_property_data']);
     $table_mapping->expects($this->any())
       ->method('getColumnNames')
       ->willReturnMap([
@@ -586,14 +545,12 @@ public function testDataTableFields() {
         ['description', ['value' => 'description__value', 'format' => 'description__format']],
         ['homepage', ['value' => 'homepage']],
         ['user_id', ['target_id' => 'user_id']],
-        ['string', ['value' => 'value']],
       ]);
     $table_mapping->expects($this->any())
       ->method('getFieldNames')
       ->willReturnMap([
         ['entity_test_mul', ['uuid']],
         ['entity_test_mul_property_data', ['id', 'type', 'langcode', 'name', 'description', 'homepage', 'user_id']],
-        ['entity_test_mul__string', ['string']],
       ]);
 
     $table_mapping->expects($this->any())
@@ -604,18 +561,6 @@ public function testDataTableFields() {
         }
         return 'entity_test_mul_property_data';
       });
-    $table_mapping->expects($this->any())
-      ->method('requiresDedicatedTableStorage')
-      ->willReturnCallback(function (BaseFieldDefinition $base_field) {
-        return $base_field->getName() === 'string';
-      });
-    $table_mapping->expects($this->any())
-      ->method('getDedicatedDataTableName')
-      ->willReturnCallback(function (BaseFieldDefinition $base_field) {
-        if ($base_field->getName() === 'string') {
-          return 'entity_test_mul__string';
-        }
-      });
 
     $this->entityStorage->expects($this->once())
       ->method('getTableMapping')
@@ -675,18 +620,6 @@ public function testDataTableFields() {
     $relationship = $data['entity_test_mul_property_data']['user_id']['relationship'];
     $this->assertEquals('users_field_data', $relationship['base']);
     $this->assertEquals('uid', $relationship['base field']);
-
-    $this->assertStringField($data['entity_test_mul__string']['string']);
-    $this->assertField($data['entity_test_mul__string']['string'], 'string');
-    $this->assertEquals([
-      'left_field' => 'id',
-      'field' => 'entity_id',
-      'extra' => [[
-        'field' => 'deleted',
-        'value' => 0,
-        'numeric' => TRUE,
-      ]],
-    ], $data['entity_test_mul__string']['table']['join']['entity_test_mul']);
   }
 
   /**
@@ -718,12 +651,10 @@ public function testRevisionTableFields() {
     $this->viewsData->setEntityType($entity_type);
 
      // Setup the table mapping.
-    $table_mapping = $this->getMockBuilder(DefaultTableMapping::class)
-      ->disableOriginalConstructor()
-      ->getMock();
+    $table_mapping = $this->getMock('Drupal\Core\Entity\Sql\TableMappingInterface');
     $table_mapping->expects($this->any())
       ->method('getTableNames')
-      ->willReturn(['entity_test_mulrev', 'entity_test_mulrev_revision', 'entity_test_mulrev_property_data', 'entity_test_mulrev_property_revision', 'entity_test_mulrev__string', 'entity_test_mulrev_revision__string']);
+      ->willReturn(['entity_test_mulrev', 'entity_test_mulrev_revision', 'entity_test_mulrev_property_data', 'entity_test_mulrev_property_revision']);
     $table_mapping->expects($this->any())
       ->method('getColumnNames')
       ->willReturnMap([
@@ -736,7 +667,6 @@ public function testRevisionTableFields() {
         ['homepage', ['value' => 'homepage']],
         ['user_id', ['target_id' => 'user_id']],
         ['revision_id', ['value' => 'id']],
-        ['string', ['value' => 'value']],
       ]);
     $table_mapping->expects($this->any())
       ->method('getFieldNames')
@@ -745,29 +675,7 @@ public function testRevisionTableFields() {
         ['entity_test_mulrev_revision', ['id', 'revision_id', 'langcode']],
         ['entity_test_mulrev_property_data', ['id', 'revision_id', 'langcode', 'name', 'description', 'homepage', 'user_id']],
         ['entity_test_mulrev_property_revision', ['id', 'revision_id', 'langcode', 'name', 'description', 'homepage', 'user_id']],
-        ['entity_test_mulrev__string', ['string']],
-        ['entity_test_mulrev_revision__string', ['string']],
       ]);
-    $table_mapping->expects($this->any())
-      ->method('requiresDedicatedTableStorage')
-      ->willReturnCallback(function (BaseFieldDefinition $base_field) {
-        return $base_field->getName() === 'string';
-      });
-    $table_mapping->expects($this->any())
-      ->method('getDedicatedDataTableName')
-      ->willReturnCallback(function (BaseFieldDefinition $base_field) {
-        if ($base_field->getName() === 'string') {
-          return 'entity_test_mulrev__string';
-        }
-      });
-
-    $table_mapping->expects($this->any())
-      ->method('getDedicatedRevisionTableName')
-      ->willReturnCallback(function (BaseFieldDefinition $base_field) {
-        if ($base_field->getName() === 'string') {
-          return 'entity_test_mulrev_revision__string';
-        }
-      });
 
     $table_mapping->expects($this->any())
       ->method('getFieldTableName')
@@ -860,30 +768,6 @@ public function testRevisionTableFields() {
     $relationship = $data['entity_test_mulrev_property_revision']['user_id']['relationship'];
     $this->assertEquals('users_field_data', $relationship['base']);
     $this->assertEquals('uid', $relationship['base field']);
-
-    $this->assertStringField($data['entity_test_mulrev__string']['string']);
-    $this->assertField($data['entity_test_mulrev__string']['string'], 'string');
-    $this->assertEquals([
-      'left_field' => 'id',
-      'field' => 'entity_id',
-      'extra' => [[
-        'field' => 'deleted',
-        'value' => 0,
-        'numeric' => TRUE,
-      ]],
-    ], $data['entity_test_mulrev__string']['table']['join']['entity_test_mulrev_property_data']);
-
-    $this->assertStringField($data['entity_test_mulrev_revision__string']['string']);
-    $this->assertField($data['entity_test_mulrev_revision__string']['string'], 'string');
-    $this->assertEquals([
-      'left_field' => 'revision_id',
-      'field' => 'entity_id',
-      'extra' => [[
-        'field' => 'deleted',
-        'value' => 0,
-        'numeric' => TRUE,
-      ]],
-    ], $data['entity_test_mulrev_revision__string']['table']['join']['entity_test_mulrev_property_revision']);
   }
 
   /**
diff --git a/core/modules/views/tests/src/Unit/Plugin/display/PathPluginBaseTest.php b/core/modules/views/tests/src/Unit/Plugin/display/PathPluginBaseTest.php
index 9241a35..90d2ae7 100644
--- a/core/modules/views/tests/src/Unit/Plugin/display/PathPluginBaseTest.php
+++ b/core/modules/views/tests/src/Unit/Plugin/display/PathPluginBaseTest.php
@@ -261,44 +261,6 @@ public function testAlterRoute() {
   }
 
   /**
-   * Tests the altering of a REST route.
-   */
-  public function testAlterRestRoute() {
-    $collection = new RouteCollection();
-    $route = new Route('test_route', ['_controller' => 'Drupal\Tests\Core\Controller\TestController::content']);
-    $route->setMethods(['POST']);
-    $collection->add('test_route', $route);
-
-    list($view) = $this->setupViewExecutableAccessPlugin();
-
-    $display = [];
-    $display['display_plugin'] = 'page';
-    $display['id'] = 'page_1';
-    $display['display_options'] = [
-      'path' => 'test_route',
-    ];
-    $this->pathPlugin->initDisplay($view, $display);
-
-    $this->pathPlugin->collectRoutes($collection);
-    $view_route_names = $this->pathPlugin->alterRoutes($collection);
-    $this->assertEquals([], $view_route_names);
-
-    // Ensure that the test_route is not overridden.
-    $this->assertCount(2, $collection);
-    $route = $collection->get('test_route');
-    $this->assertTrue($route instanceof Route);
-    $this->assertFalse($route->hasDefault('view_id'));
-    $this->assertFalse($route->hasDefault('display_id'));
-    $this->assertSame($collection->get('test_route'), $route);
-
-    $route = $collection->get('view.test_id.page_1');
-    $this->assertTrue($route instanceof Route);
-    $this->assertEquals('test_id', $route->getDefault('view_id'));
-    $this->assertEquals('page_1', $route->getDefault('display_id'));
-    $this->assertEquals('my views title', $route->getDefault('_title'));
-  }
-
-  /**
    * Tests the alter route method with preexisting title callback.
    */
   public function testAlterRouteWithAlterCallback() {
diff --git a/core/modules/views/tests/src/Unit/Plugin/query/SqlTest.php b/core/modules/views/tests/src/Unit/Plugin/query/SqlTest.php
index 02a5ce6..4958846 100644
--- a/core/modules/views/tests/src/Unit/Plugin/query/SqlTest.php
+++ b/core/modules/views/tests/src/Unit/Plugin/query/SqlTest.php
@@ -202,12 +202,6 @@ protected function setupEntityTypes($entities_by_type = [], $entity_revisions_by
         'entity revision' => TRUE,
       ],
     ]);
-    $views_data->get('entity_first_field_data')->willReturn([
-      'table' => [
-        'entity type' => 'first',
-        'entity revision' => FALSE,
-      ],
-    ]);
     $this->setupViewsData($views_data->reveal());
 
     // Setup the loading of entities and entity revisions.
@@ -377,55 +371,6 @@ public function testLoadEntitiesWithRelationship() {
    * @covers ::loadEntities
    * @covers ::assignEntitiesToResult
    */
-  public function testLoadEntitiesWithNonEntityRelationship() {
-    // We don't use prophecy, because prophecy enforces methods.
-    $view = $this->getMockBuilder(ViewExecutable::class)->disableOriginalConstructor()->getMock();
-    $this->setupViewWithRelationships($view, 'entity_first_field_data');
-
-    $view_entity = $this->prophesize(ViewEntityInterface::class);
-    $view_entity->get('base_table')->willReturn('entity_first');
-    $view_entity->get('base_field')->willReturn('id');
-    $view->storage = $view_entity->reveal();
-
-    $entities = [
-      'first' => [
-        1 => $this->prophesize(EntityInterface::class)->reveal(),
-        2 => $this->prophesize(EntityInterface::class)->reveal(),
-      ],
-    ];
-    $entity_type_manager = $this->setupEntityTypes($entities);
-
-    $query = new Sql([], 'sql', [], $entity_type_manager->reveal());
-    $query->view = $view;
-
-    $result = [];
-    $result[] = new ResultRow([
-      'id' => 1,
-    ]);
-    $result[] = new ResultRow([
-      'id' => 2,
-    ]);
-
-    $query->addField('entity_first', 'id', 'id');
-    $query->loadEntities($result);
-    $entity_information = $query->getEntityTableInfo();
-
-    $this->assertSame($entities['first'][1], $result[0]->_entity);
-    $this->assertSame($entities['first'][2], $result[1]->_entity);
-
-    $this->assertEquals([], $result[0]->_relationship_entities);
-    $this->assertEquals([], $result[1]->_relationship_entities);
-
-    // This is an entity table and should be in $entity_information.
-    $this->assertContains('first', array_keys($entity_information));
-    // This is not an entity table and should not be in $entity_information.
-    $this->assertNotContains('entity_first_field_data__entity_first_field_data', array_keys($entity_information));
-  }
-
-  /**
-   * @covers ::loadEntities
-   * @covers ::assignEntitiesToResult
-   */
   public function testLoadEntitiesWithRevision() {
     // We don't use prophecy, because prophecy enforces methods.
     $view = $this->getMockBuilder(ViewExecutable::class)
diff --git a/core/modules/views/tests/src/Unit/ViewsDataTest.php b/core/modules/views/tests/src/Unit/ViewsDataTest.php
index 2351892..21ef9c3 100644
--- a/core/modules/views/tests/src/Unit/ViewsDataTest.php
+++ b/core/modules/views/tests/src/Unit/ViewsDataTest.php
@@ -148,7 +148,7 @@ protected function setupMockedModuleHandler() {
    */
   public function testFetchBaseTables() {
     $this->setupMockedModuleHandler();
-    $data = $this->viewsData->getAll();
+    $data = $this->viewsData->get();
 
     $base_tables = $this->viewsData->fetchBaseTables();
 
@@ -198,7 +198,7 @@ public function testGetOnFirstCall() {
       ->will($this->returnValue(FALSE));
 
     $expected_views_data = $this->viewsDataWithProvider();
-    $views_data = $this->viewsData->getAll();
+    $views_data = $this->viewsData->get();
     $this->assertSame($expected_views_data, $views_data);
   }
 
@@ -271,7 +271,7 @@ public function testFullAndTableGetCache() {
       ->method('set')
       ->with("views_data:$random_table_name:en", array());
 
-    $views_data = $this->viewsData->getAll();
+    $views_data = $this->viewsData->get();
     $this->assertSame($expected_views_data, $views_data);
 
     // Request a specific table should be static cached.
@@ -288,7 +288,7 @@ public function testFullAndTableGetCache() {
     $this->viewsData->clear();
 
     // Get the views data again.
-    $this->viewsData->getAll();
+    $this->viewsData->get();
     $this->viewsData->get($table_name);
     $this->viewsData->get($table_name_2);
     $this->viewsData->get($random_table_name);
@@ -312,10 +312,10 @@ public function testFullGetCache() {
       ->with("views_data:en")
       ->will($this->returnValue(FALSE));
 
-    $views_data = $this->viewsData->getAll();
+    $views_data = $this->viewsData->get();
     $this->assertSame($expected_views_data, $views_data);
 
-    $views_data = $this->viewsData->getAll();
+    $views_data = $this->viewsData->get();
     $this->assertSame($expected_views_data, $views_data);
   }
 
@@ -349,7 +349,7 @@ public function testSingleTableGetCache() {
     $this->assertSame($expected_views_data[$table_name], $views_data, 'Make sure fetching cached views data by table works as expected.');
 
     // Test that this data is present if all views data is returned.
-    $views_data = $this->viewsData->getAll();
+    $views_data = $this->viewsData->get();
 
     $this->assertArrayHasKey($table_name, $views_data, 'Make sure the views_test_data info appears in the total views data.');
     $this->assertSame($expected_views_data[$table_name], $views_data[$table_name], 'Make sure the views_test_data has the expected values.');
@@ -568,7 +568,7 @@ public function testCacheCallsWithoutWarmCacheAndGetAllTables() {
     // Initialize the views data cache and repeat with no specified table. This
     // should only load the cache entry for all tables.
     for ($i = 0; $i < 5; $i++) {
-      $views_data = $this->viewsData->getAll();
+      $views_data = $this->viewsData->get();
       $this->assertSame($expected_views_data, $views_data);
     }
   }
@@ -595,7 +595,7 @@ public function testCacheCallsWithWarmCacheAndGetAllTables() {
     // Initialize the views data cache and repeat with no specified table. This
     // should only load the cache entry for all tables.
     for ($i = 0; $i < 5; $i++) {
-      $views_data = $this->viewsData->getAll();
+      $views_data = $this->viewsData->get();
       $this->assertSame($expected_views_data, $views_data);
     }
   }
@@ -638,30 +638,4 @@ public function testCacheCallsWithoutWarmCacheAndGetMultipleTables() {
     $this->assertSame($expected_views_data[$table_name_2], $this->viewsData->get($table_name_2));
   }
 
-  /**
-   * Tests that getting all data has same results as getting data with NULL
-   * logic.
-   *
-   * @covers ::getAll
-   */
-  public function testGetAllEqualsToGetNull() {
-    $expected_views_data = $this->viewsDataWithProvider();
-    $this->setupMockedModuleHandler();
-
-    // Setup a warm cache backend for a single table.
-    $this->cacheBackend->expects($this->once())
-      ->method('get')
-      ->with("views_data:en");
-    $this->cacheBackend->expects($this->once())
-      ->method('set')
-      ->with('views_data:en', $expected_views_data);
-
-    // Initialize the views data cache and repeat with no specified table. This
-    // should only load the cache entry for all tables.
-    for ($i = 0; $i < 5; $i++) {
-      $this->assertSame($expected_views_data, $this->viewsData->getAll());
-      $this->assertSame($expected_views_data, $this->viewsData->get());
-    }
-  }
-
 }
diff --git a/core/modules/views/tests/src/Unit/ViewsHandlerManagerTest.php b/core/modules/views/tests/src/Unit/ViewsHandlerManagerTest.php
index efbbe49..d85fb43 100644
--- a/core/modules/views/tests/src/Unit/ViewsHandlerManagerTest.php
+++ b/core/modules/views/tests/src/Unit/ViewsHandlerManagerTest.php
@@ -42,7 +42,6 @@ class ViewsHandlerManagerTest extends UnitTestCase {
    * {@inheritdoc}
    */
   protected function setUp() {
-    parent::setUp();
     $this->viewsData = $this->getMockBuilder('Drupal\views\ViewsData')
       ->disableOriginalConstructor()
       ->getMock();
diff --git a/core/modules/views/tests/themes/views_test_checkboxes_theme/views_test_checkboxes_theme.info.yml b/core/modules/views/tests/themes/views_test_checkboxes_theme/views_test_checkboxes_theme.info.yml
deleted file mode 100644
index 50bf73e..0000000
--- a/core/modules/views/tests/themes/views_test_checkboxes_theme/views_test_checkboxes_theme.info.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-name: Views test checkboxes theme
-type: theme
-description: Theme for testing Views rendering of checkboxes.
-version: VERSION
-core: 8.x
diff --git a/core/modules/views/tests/themes/views_test_checkboxes_theme/views_test_checkboxes_theme.theme b/core/modules/views/tests/themes/views_test_checkboxes_theme/views_test_checkboxes_theme.theme
deleted file mode 100644
index cab52ac..0000000
--- a/core/modules/views/tests/themes/views_test_checkboxes_theme/views_test_checkboxes_theme.theme
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @file
- * Changes an exposed "type" filter from a multi-select to checkboxes.
- */
-
-use Drupal\Core\Form\FormStateInterface;
-
-/**
- * Changes an exposed "type" filter from a multi-select to checkboxes.
- */
-function views_test_checkboxes_theme_form_views_exposed_form_alter(&$form, FormStateInterface $form_state) {
-  $form['type']['#type'] = 'checkboxes';
-}
diff --git a/core/modules/views/views.api.php b/core/modules/views/views.api.php
index db06b46..29e5382 100644
--- a/core/modules/views/views.api.php
+++ b/core/modules/views/views.api.php
@@ -833,12 +833,12 @@ function hook_views_pre_render(ViewExecutable $view) {
  * primary field will be a nid, you can do something like this:
  * @code
  *   <!--post-FIELD-NID-->
- * @endcode
+ * @encode
  * And then in the post-render, create an array with the text that should
  * go there:
  * @code
  *   strtr($output, array('<!--post-FIELD-1-->' => 'output for FIELD of nid 1');
- * @endcode
+ * @encode
  * All of the cached result data will be available in $view->result, as well,
  * so all ids used in the query should be discoverable.
  *
diff --git a/core/modules/views/views.install b/core/modules/views/views.install
index 30ac79c..37d03b6 100644
--- a/core/modules/views/views.install
+++ b/core/modules/views/views.install
@@ -361,50 +361,5 @@ function views_update_8005() {
 }
 
 /**
- * Clear caches due to updated entity views data.
- */
-function views_update_8100() {
-  // Empty update to cause a cache flush so that views data is rebuilt.
-}
-
-/**
- * Set default values for enabled/expanded flag on page displays.
- */
-function views_update_8101() {
-  $config_factory = \Drupal::configFactory();
-  foreach ($config_factory->listAll('views.view.') as $view_config_name) {
-    $view = $config_factory->getEditable($view_config_name);
-    $save = FALSE;
-    foreach ($view->get('display') as $display_id => $display) {
-      if ($display['display_plugin'] == 'page') {
-        $display['display_options']['menu']['enabled'] = TRUE;
-        $display['display_options']['menu']['expanded'] = FALSE;
-        $view->set("display.$display_id", $display);
-        $save = TRUE;
-      }
-    }
-    if ($save) {
-      $view->save();
-    }
-  }
-}
-
-/**
  * @} End of "addtogroup updates-8.1.0".
  */
-
-/**
- * @addtogroup updates-8.2.0
- * @{
- */
-
-/**
- * Rebuild the container to add a new container parameter.
- */
-function views_update_8200() {
-  // Empty update to cause a cache rebuild so that the container is rebuilt.
-}
-
-/**
- * @} End of "addtogroup updates-8.2.0".
- */
diff --git a/core/modules/views/views.post_update.php b/core/modules/views/views.post_update.php
index e82b6c8..2d670c2 100644
--- a/core/modules/views/views.post_update.php
+++ b/core/modules/views/views.post_update.php
@@ -182,26 +182,3 @@ function views_post_update_taxonomy_index_tid() {
 /**
  * @} End of "addtogroup updates-8.1.x".
  */
-
-/**
- * @addtogroup updates-8.2.x
- * @{
- */
-
-/**
- * Fix views with serializer dependencies.
- */
-function views_post_update_serializer_dependencies() {
-  $views = View::loadMultiple();
-  array_walk($views, function(View $view) {
-    $old_dependencies = $view->getDependencies();
-    $new_dependencies = $view->calculateDependencies()->getDependencies();
-    if ($old_dependencies !== $new_dependencies) {
-      $view->save();
-    }
-  });
-}
-
-/**
- * @} End of "addtogroup updates-8.2.x".
- */
diff --git a/core/modules/views/views.routing.yml b/core/modules/views/views.routing.yml
index e720603..3d84341 100644
--- a/core/modules/views/views.routing.yml
+++ b/core/modules/views/views.routing.yml
@@ -2,6 +2,8 @@ views.ajax:
   path: '/views/ajax'
   defaults:
     _controller: '\Drupal\views\Controller\ViewAjaxController::ajaxView'
+  options:
+    _theme: ajax_base_page
   requirements:
     _access: 'TRUE'
 
diff --git a/core/modules/views/views.views.inc b/core/modules/views/views.views.inc
index aca4b8a..c8bc5ad 100644
--- a/core/modules/views/views.views.inc
+++ b/core/modules/views/views.views.inc
@@ -295,12 +295,6 @@ function views_field_default_views_data(FieldStorageConfigInterface $field_stora
   if (!$field_storage->getBundles()) {
     return $data;
   }
-
-  // Ignore custom storage too.
-  if ($field_storage->hasCustomStorage()) {
-    return $data;
-  }
-
   // Check whether the entity type storage is supported.
   $storage = _views_field_get_entity_type_storage($field_storage);
   if (!$storage) {
diff --git a/core/modules/views_ui/src/Form/Ajax/AddHandler.php b/core/modules/views_ui/src/Form/Ajax/AddHandler.php
index ada0ccd..b63c024 100644
--- a/core/modules/views_ui/src/Form/Ajax/AddHandler.php
+++ b/core/modules/views_ui/src/Form/Ajax/AddHandler.php
@@ -95,7 +95,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       $groups = array('all' => $this->t('- All -'));
       $form['override']['controls']['group'] = array(
         '#type' => 'select',
-        '#title' => $this->t('Category'),
+        '#title' => $this->t('Type'),
         '#options' => array(),
       );
 
diff --git a/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php b/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php
index 819cb75..3be2087 100644
--- a/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php
+++ b/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php
@@ -237,7 +237,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
 
     // Add the incoming options to existing options because items using
     // the extra form may not have everything in the form here.
-    $options = $handler->submitFormCalculateOptions($handler->options, $form_state->getValue('options', []));
+    $options = $form_state->getValue('options') + $handler->options;
 
     // This unpacks only options that are in the definition, ensuring random
     // extra stuff on the form is not sent through.
diff --git a/core/modules/views_ui/src/Tests/DisplayTest.php b/core/modules/views_ui/src/Tests/DisplayTest.php
index 7f5f125..39b85e4 100644
--- a/core/modules/views_ui/src/Tests/DisplayTest.php
+++ b/core/modules/views_ui/src/Tests/DisplayTest.php
@@ -191,7 +191,7 @@ public function testLinkDisplay() {
    */
   public function testPageContextualLinks() {
     $this->drupalLogin($this->drupalCreateUser(array('administer views', 'access contextual links')));
-    $view = View::load('test_display');
+    $view = entity_load('view', 'test_display');
     $view->enable()->save();
     $this->container->get('router.builder')->rebuildIfNeeded();
 
diff --git a/core/modules/views_ui/src/Tests/ExposedFormUITest.php b/core/modules/views_ui/src/Tests/ExposedFormUITest.php
index 66280b1..fd70978 100644
--- a/core/modules/views_ui/src/Tests/ExposedFormUITest.php
+++ b/core/modules/views_ui/src/Tests/ExposedFormUITest.php
@@ -18,20 +18,6 @@ class ExposedFormUITest extends UITestBase {
    */
   public static $testViews = array('test_exposed_admin_ui');
 
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = array('node', 'views_ui', 'block', 'taxonomy', 'field_ui', 'datetime');
-
-  /**
-   * Array of error message strings raised by the grouped form.
-   *
-   * @var array
-   *
-   * @see FilterPluginBase::buildGroupValidate
-   */
-  protected $groupFormUiErrors = [];
-
   protected function setUp() {
     parent::setUp();
 
@@ -42,11 +28,6 @@ protected function setUp() {
     for ($i = 0; $i < 5; $i++) {
       $this->drupalCreateNode();
     }
-
-    // Error strings used in the grouped filter form validation.
-    $this->groupFormUiErrors['missing_value'] = t('A value is required if the label for this item is defined.');
-    $this->groupFormUiErrors['missing_title'] = t('A label is required if the value for this item is defined.');
-    $this->groupFormUiErrors['missing_title_empty_operator'] = t('A label is required for the specified operator.');
   }
 
   /**
@@ -70,6 +51,8 @@ function testExposedAdminUi() {
     $this->drupalPostForm('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type', $edit, t('Expose filter'));
     // Check the label of the expose button.
     $this->helperButtonHasLabel('edit-options-expose-button-button', t('Hide filter'));
+    // Check the label of the grouped exposed button
+    $this->helperButtonHasLabel('edit-options-group-button-button', t('Grouped filters'));
 
     // After exposing the filter, Operator and Value should be still here.
     $this->assertFieldById('edit-options-operator-in', '', 'Operator In exists');
@@ -93,57 +76,6 @@ function testExposedAdminUi() {
     $this->helperButtonHasLabel('edit-options-expose-button-button', t('Expose sort'));
     $this->assertNoFieldById('edit-options-expose-label', '', 'Make sure no label field is shown');
 
-    // Un-expose the filter.
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
-    $this->drupalPostForm(NULL, array(), t('Hide filter'));
-
-    // After Un-exposing the filter, Operator and Value should be shown again.
-    $this->assertFieldById('edit-options-operator-in', '', 'Operator In exists after hide filter');
-    $this->assertFieldById('edit-options-operator-not-in', '', 'Operator Not In exists after hide filter');
-    $this->assertFieldById('edit-options-value-page', '', 'Checkbox for Page exists after hide filter');
-    $this->assertFieldById('edit-options-value-article', '', 'Checkbox for Article exists after hide filter');
-
-    // Click the Expose sort button.
-    $edit = array();
-    $this->drupalPostForm('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/sort/created', $edit, t('Expose sort'));
-    // Check the label of the expose button.
-    $this->helperButtonHasLabel('edit-options-expose-button-button', t('Hide sort'));
-    $this->assertFieldById('edit-options-expose-label', '', 'Make sure a label field is shown');
-
-    // Test adding a new exposed sort criteria.
-    $view_id = $this->randomView()['id'];
-    $this->drupalGet("admin/structure/views/nojs/add-handler/$view_id/default/sort");
-    $this->drupalPostForm(NULL, ['name[node_field_data.created]' => 1], t('Add and configure @handler', ['@handler' => t('sort criteria')]));
-    $this->assertFieldByXPath('//input[@name="options[order]" and @checked="checked"]', 'ASC', 'The default order is set.');
-    // Change the order and expose the sort.
-    $this->drupalPostForm(NULL, ['options[order]' => 'DESC'], t('Apply'));
-    $this->drupalPostForm("admin/structure/views/nojs/handler/$view_id/default/sort/created", [], t('Expose sort'));
-    $this->assertFieldByXPath('//input[@name="options[order]" and @checked="checked"]', 'DESC');
-    $this->assertFieldByName('options[expose][label]', 'Authored on', 'The default label is set.');
-    // Change the label and save the view.
-    $edit = ['options[expose][label]' => $this->randomString()];
-    $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->drupalPostForm(NULL, [], t('Save'));
-    // Check that the values were saved.
-    $display = View::load($view_id)->getDisplay('default');
-    $this->assertTrue($display['display_options']['sorts']['created']['exposed']);
-    $this->assertEqual($display['display_options']['sorts']['created']['expose'], ['label' => $edit['options[expose][label]']]);
-    $this->assertEqual($display['display_options']['sorts']['created']['order'], 'DESC');
-  }
-
-  /**
-   * Tests the admin interface of exposed grouped filters.
-   */
-  function testGroupedFilterAdminUi() {
-    $edit = array();
-
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
-
-    // Click the Expose filter button.
-    $this->drupalPostForm('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type', $edit, t('Expose filter'));
-    // Check the label of the grouped filters button.
-    $this->helperButtonHasLabel('edit-options-group-button-button', t('Grouped filters'));
-
     // Click the Grouped Filters button.
     $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
     $this->drupalPostForm(NULL, array(), t('Grouped filters'));
@@ -159,110 +91,83 @@ function testGroupedFilterAdminUi() {
     // add more items to the list.
     $this->helperButtonHasLabel('edit-options-group-info-add-group', t('Add another item'));
 
-    // Validate a single entry for a grouped filter.
+    // Create a grouped filter
     $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
     $edit = array();
     $edit["options[group_info][group_items][1][title]"] = 'Is Article';
     $edit["options[group_info][group_items][1][value][article]"] = 'article';
-    $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->assertUrl('admin/structure/views/view/test_exposed_admin_ui/edit/default');
-    $this->assertNoGroupedFilterErrors();
 
-    // Validate multiple entries for grouped filters.
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
-    $edit = array();
-    $edit["options[group_info][group_items][1][title]"] = 'Is Article';
-    $edit["options[group_info][group_items][1][value][article]"] = 'article';
     $edit["options[group_info][group_items][2][title]"] = 'Is Page';
-    $edit["options[group_info][group_items][2][value][page]"] = 'page';
+    $edit["options[group_info][group_items][2][value][page]"] = TRUE;
+
     $edit["options[group_info][group_items][3][title]"] = 'Is Page and Article';
-    $edit["options[group_info][group_items][3][value][article]"] = 'article';
-    $edit["options[group_info][group_items][3][value][page]"] = 'page';
+    $edit["options[group_info][group_items][3][value][article]"] = TRUE;
+    $edit["options[group_info][group_items][3][value][page]"] = TRUE;
     $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->assertUrl('admin/structure/views/view/test_exposed_admin_ui/edit/default', array(), 'Correct validation of the node type filter.');
-    $this->assertNoGroupedFilterErrors();
 
-    // Validate an "is empty" filter -- title without value is valid.
+    // Select the empty operator, so the empty value should not trigger a form
+    // error.
     $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/body_value');
     $edit = array();
-    $edit["options[group_info][group_items][1][title]"] = 'No body';
+    $edit["options[group_info][group_items][1][title]"] = $this->randomMachineName();
     $edit["options[group_info][group_items][1][operator]"] = 'empty';
     $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->assertUrl('admin/structure/views/view/test_exposed_admin_ui/edit/default', array(), 'The "empty" operator validates correctly.');
-    $this->assertNoGroupedFilterErrors();
+    $this->assertUrl('admin/structure/views/view/test_exposed_admin_ui/edit/default', array(), 'Validation did not run for the empty operator.');
+    // Test the validation error message text is not shown.
+    $this->assertNoText(t('The value is required if title for this item is defined.'));
 
-    // Ensure the string "0" can be used as a value for numeric filters.
-    $this->drupalPostForm('admin/structure/views/nojs/add-handler/test_exposed_admin_ui/default/filter', array('name[node_field_data.nid]' => TRUE), t('Add and configure @handler', array('@handler' => t('filter criteria'))));
-    $this->drupalPostForm(NULL, array(), t('Expose filter'));
-    $this->drupalPostForm(NULL, array(), t('Grouped filters'));
+    // Validate that all the titles are defined for each group
+    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
     $edit = array();
-    $edit['options[group_info][group_items][1][title]'] = 'Testing zero';
-    $edit['options[group_info][group_items][1][operator]'] = '>';
-    $edit['options[group_info][group_items][1][value][value]'] = '0';
-    $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->assertUrl('admin/structure/views/view/test_exposed_admin_ui/edit/default', array(), 'A string "0" is a valid value.');
-    $this->assertNoGroupedFilterErrors();
+    $edit["options[group_info][group_items][1][title]"] = 'Is Article';
+    $edit["options[group_info][group_items][1][value][article]"] = TRUE;
 
-    // Ensure "between" filters validate correctly.
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/nid');
-    $edit['options[group_info][group_items][1][title]'] = 'ID between test';
-    $edit['options[group_info][group_items][1][operator]'] = 'between';
-    $edit['options[group_info][group_items][1][value][min]'] = '0';
-    $edit['options[group_info][group_items][1][value][max]'] = '10';
-    $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->assertUrl('admin/structure/views/view/test_exposed_admin_ui/edit/default', array(), 'The "between" filter validates correctly.');
-    $this->assertNoGroupedFilterErrors();
-  }
+    // This should trigger an error
+    $edit["options[group_info][group_items][2][title]"] = '';
+    $edit["options[group_info][group_items][2][value][page]"] = TRUE;
 
-  public function testGroupedFilterAdminUiErrors() {
-    // Select the empty operator without a title specified.
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/body_value');
-    $edit = array();
-    $edit["options[group_info][group_items][1][title]"] = '';
-    $edit["options[group_info][group_items][1][operator]"] = 'empty';
+    $edit["options[group_info][group_items][3][title]"] = 'Is Page and Article';
+    $edit["options[group_info][group_items][3][value][article]"] = TRUE;
+    $edit["options[group_info][group_items][3][value][page]"] = TRUE;
     $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->assertText($this->groupFormUiErrors['missing_title_empty_operator']);
+    $this->assertRaw(t('The title is required if value for this item is defined.'), 'Group items should have a title');
 
-    // Specify a title without a value.
+    // Un-expose the filter.
     $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
-    $this->drupalPostForm('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type', [], t('Expose filter'));
-    $this->drupalPostForm('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type', [], t('Grouped filters'));
-    $edit = array();
-    $edit["options[group_info][group_items][1][title]"] = 'Is Article';
-    $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->assertText($this->groupFormUiErrors['missing_value']);
+    $this->drupalPostForm(NULL, array(), t('Hide filter'));
 
-    // Specify a value without a title.
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
+    // After Un-exposing the filter, Operator and Value should be shown again.
+    $this->assertFieldById('edit-options-operator-in', '', 'Operator In exists after hide filter');
+    $this->assertFieldById('edit-options-operator-not-in', '', 'Operator Not In exists after hide filter');
+    $this->assertFieldById('edit-options-value-page', '', 'Checkbox for Page exists after hide filter');
+    $this->assertFieldById('edit-options-value-article', '', 'Checkbox for Article exists after hide filter');
+
+    // Click the Expose sort button.
     $edit = array();
-    $edit["options[group_info][group_items][1][title]"] = '';
-    $edit["options[group_info][group_items][1][value][article]"] = 'article';
-    $this->drupalPostForm(NULL, $edit, t('Apply'));
-    $this->assertText($this->groupFormUiErrors['missing_title']);
-  }
+    $this->drupalPostForm('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/sort/created', $edit, t('Expose sort'));
+    // Check the label of the expose button.
+    $this->helperButtonHasLabel('edit-options-expose-button-button', t('Hide sort'));
+    $this->assertFieldById('edit-options-expose-label', '', 'Make sure a label field is shown');
 
-  /**
-   * Asserts that there are no Grouped Filters errors.
-   *
-   * @param string $message
-   *   The assert message.
-   * @param string $group
-   *   The assertion group.
-   *
-   * @return bool
-   *   Result of the assertion.
-   */
-  protected function assertNoGroupedFilterErrors($message = '', $group = 'Other') {
-    foreach ($this->groupFormUiErrors as $error) {
-      $err_message = $message;
-      if (empty($err_message)) {
-        $err_message = "Verify that '$error' is not in the HTML output.";
-      }
-      if (empty($message)) {
-        return $this->assertNoRaw($error, $err_message, $group);
-      }
-    }
-    return TRUE;
+    // Test adding a new exposed sort criteria.
+    $view_id = $this->randomView()['id'];
+    $this->drupalGet("admin/structure/views/nojs/add-handler/$view_id/default/sort");
+    $this->drupalPostForm(NULL, ['name[node_field_data.created]' => 1], t('Add and configure @handler', ['@handler' => t('sort criteria')]));
+    $this->assertFieldByXPath('//input[@name="options[order]" and @checked="checked"]', 'ASC', 'The default order is set.');
+    // Change the order and expose the sort.
+    $this->drupalPostForm(NULL, ['options[order]' => 'DESC'], t('Apply'));
+    $this->drupalPostForm("admin/structure/views/nojs/handler/$view_id/default/sort/created", [], t('Expose sort'));
+    $this->assertFieldByXPath('//input[@name="options[order]" and @checked="checked"]', 'DESC');
+    $this->assertFieldByName('options[expose][label]', 'Authored on', 'The default label is set.');
+    // Change the label and save the view.
+    $edit = ['options[expose][label]' => $this->randomString()];
+    $this->drupalPostForm(NULL, $edit, t('Apply'));
+    $this->drupalPostForm(NULL, [], t('Save'));
+    // Check that the values were saved.
+    $display = View::load($view_id)->getDisplay('default');
+    $this->assertTrue($display['display_options']['sorts']['created']['exposed']);
+    $this->assertEqual($display['display_options']['sorts']['created']['expose'], ['label' => $edit['options[expose][label]']]);
+    $this->assertEqual($display['display_options']['sorts']['created']['order'], 'DESC');
   }
 
 }
diff --git a/core/modules/views_ui/src/Tests/FilterBooleanWebTest.php b/core/modules/views_ui/src/Tests/FilterBooleanWebTest.php
index 668cc4c..3faca0c 100644
--- a/core/modules/views_ui/src/Tests/FilterBooleanWebTest.php
+++ b/core/modules/views_ui/src/Tests/FilterBooleanWebTest.php
@@ -23,10 +23,6 @@ class FilterBooleanWebTest extends UITestBase {
   public function testFilterBooleanUI() {
     $this->drupalPostForm('admin/structure/views/nojs/add-handler/test_view/default/filter', array('name[views_test_data.status]' => TRUE), t('Add and configure @handler', array('@handler' => t('filter criteria'))));
 
-    // Check the field widget label. 'title' should be used as a fallback.
-    $result = $this->cssSelect('#edit-options-value--wrapper legend span');
-    $this->assertEqual((string) $result[0], 'Status');
-
     $this->drupalPostForm(NULL, array(), t('Expose filter'));
     $this->drupalPostForm(NULL, array(), t('Grouped filters'));
 
diff --git a/core/modules/views_ui/src/Tests/PreviewTest.php b/core/modules/views_ui/src/Tests/PreviewTest.php
index 3b4dd9b..1be86cc 100644
--- a/core/modules/views_ui/src/Tests/PreviewTest.php
+++ b/core/modules/views_ui/src/Tests/PreviewTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\views_ui\Tests;
 
 use Drupal\Component\Serialization\Json;
-use Drupal\Core\EventSubscriber\MainContentViewSubscriber;
 
 /**
  * Tests the UI preview functionality.
@@ -325,7 +324,7 @@ protected function clickPreviewLinkAJAX($url, $row_count) {
     );
     $url = $this->getAbsoluteUrl($url);
     $post = array('js' => 'true') + $this->getAjaxPageStatePostData();
-    $result = Json::decode($this->drupalPost($url, '', $post, ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]));
+    $result = Json::decode($this->drupalPost($url, 'application/vnd.drupal-ajax', $post));
     if (!empty($result)) {
       $this->drupalProcessAjaxResponse($content, $result, $ajax_settings, $drupal_settings);
     }
diff --git a/core/modules/views_ui/src/Tests/ViewsListTest.php b/core/modules/views_ui/src/Tests/ViewsListTest.php
index 768e449..eb456e3 100644
--- a/core/modules/views_ui/src/Tests/ViewsListTest.php
+++ b/core/modules/views_ui/src/Tests/ViewsListTest.php
@@ -46,7 +46,7 @@ public function testViewsListLimit() {
     // Check if we can access the main views admin page.
     $this->drupalGet('admin/structure/views');
     $this->assertResponse(200);
-    $this->assertLink(t('Add view'));
+    $this->assertLink(t('Add new view'));
 
     // Count default views to be subtracted from the limit.
     $views = count(Views::getEnabledViews());
diff --git a/core/modules/views_ui/tests/src/FunctionalJavascript/ViewsListingTest.php b/core/modules/views_ui/tests/src/FunctionalJavascript/ViewsListingTest.php
deleted file mode 100644
index c39db77..0000000
--- a/core/modules/views_ui/tests/src/FunctionalJavascript/ViewsListingTest.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-namespace Drupal\Tests\views_ui\FunctionalJavascript;
-
-use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
-
-/**
- * Tests the JavaScript filtering on the Views listing page.
- *
- * @see core/modules/views_ui/js/views_ui.listing.js
- * @group views_ui
- */
-class ViewsListingTest extends JavascriptTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['node', 'views', 'views_ui'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $admin_user = $this->drupalCreateUser([
-      'administer site configuration',
-      'administer views',
-    ]);
-    $this->drupalLogin($admin_user);
-  }
-
-  /**
-   * Tests the filtering on the Views listing page.
-   */
-  public function testFilterViewsListing() {
-    $this->drupalGet('admin/structure/views');
-
-    $session = $this->assertSession();
-
-    $page = $this->getSession()->getPage();
-
-    // Test that we search in both the enabled and disabled rows.
-    $enabled_rows = $page->findAll('css', 'tr.views-ui-list-enabled');
-    $enabled_rows = $this->filterVisibleElements($enabled_rows);
-    $disabled_rows = $page->findAll('css', 'tr.views-ui-list-disabled');
-    $disabled_rows = $this->filterVisibleElements($disabled_rows);
-
-    // Test that we see some rows of views in both tables.
-    $this->assertCount(6, $enabled_rows);
-    $this->assertCount(2, $disabled_rows);
-
-    // Filter on the string 'people'. This should only show the people view.
-    $search_input = $page->find('css', '.views-filter-text.form-search');
-    $search_input->setValue('people');
-
-    $enabled_rows = $page->findAll('css', 'tr.views-ui-list-enabled');
-    $enabled_rows = $this->filterVisibleElements($enabled_rows);
-    $disabled_rows = $page->findAll('css', 'tr.views-ui-list-disabled');
-    $disabled_rows = $this->filterVisibleElements($disabled_rows);
-
-    $this->assertCount(1, $enabled_rows);
-    $this->assertCount(0, $disabled_rows);
-
-    // Filter on a string that also appears in the description.
-    $search_input->setValue('content');
-
-    $enabled_rows = $page->findAll('css', 'tr.views-ui-list-enabled');
-    $enabled_rows = $this->filterVisibleElements($enabled_rows);
-    $disabled_rows = $page->findAll('css', 'tr.views-ui-list-disabled');
-    $disabled_rows = $this->filterVisibleElements($disabled_rows);
-
-    $this->assertCount(3, $enabled_rows);
-    $this->assertCount(2, $disabled_rows);
-
-    // Reset the search string and check that we are back to the initial stage.
-    $search_input->setValue('');
-    // Add a backspace to trigger the keyUp event.
-    $search_input->keyUp(8);
-
-    $enabled_rows = $page->findAll('css', 'tr.views-ui-list-enabled');
-    $enabled_rows = $this->filterVisibleElements($enabled_rows);
-    $disabled_rows = $page->findAll('css', 'tr.views-ui-list-disabled');
-    $disabled_rows = $this->filterVisibleElements($disabled_rows);
-
-    $this->assertCount(6, $enabled_rows);
-    $this->assertCount(2, $disabled_rows);
-
-    // Disable a View and see if it moves to the disabled listing.
-    $enabled_view = $page->find('css', 'tr.views-ui-list-enabled');
-    // Open the dropdown with additional actions.
-    $enabled_view->find('css', 'li.dropbutton-toggle button')->click();
-    $disable_button = $enabled_view->find('css', 'li.disable.dropbutton-action a');
-    // Check that the disable button is visible now.
-    $this->assertTrue($disable_button->isVisible());
-    $disable_button->click();
-
-    $session->assertWaitOnAjaxRequest();
-
-    $enabled_rows = $page->findAll('css', 'tr.views-ui-list-enabled');
-    $enabled_rows = $this->filterVisibleElements($enabled_rows);
-    $disabled_rows = $page->findAll('css', 'tr.views-ui-list-disabled');
-    $disabled_rows = $this->filterVisibleElements($disabled_rows);
-
-    // Test that one enabled View has been moved to the disabled list.
-    $this->assertCount(5, $enabled_rows);
-    $this->assertCount(3, $disabled_rows);
-  }
-
-  /**
-   * Removes any non-visible elements from the passed array.
-   *
-   * @param array $elements
-   * @return array
-   */
-  protected function filterVisibleElements($elements) {
-    $elements = array_filter($elements, function($element) {
-      return $element->isVisible();
-    });
-    return $elements;
-  }
-
-}
diff --git a/core/modules/views_ui/tests/src/FunctionalJavascript/ViewsWizardTest.php b/core/modules/views_ui/tests/src/FunctionalJavascript/ViewsWizardTest.php
deleted file mode 100644
index 6320f69..0000000
--- a/core/modules/views_ui/tests/src/FunctionalJavascript/ViewsWizardTest.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace Drupal\Tests\views_ui\FunctionalJavascript;
-
-use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
-
-/**
- * Tests views creation wizard.
- *
- * @see core/modules/views_ui/js/views-admin.js
- * @group views_ui
- */
-class ViewsWizardTest extends JavascriptTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['node', 'views', 'views_ui', 'block'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $admin_user = $this->drupalCreateUser([
-      'administer site configuration',
-      'administer views',
-    ]);
-    $this->drupalLogin($admin_user);
-  }
-
-  /**
-   * Tests creating a View using the wizard.
-   */
-  public function testCreateViewWizard() {
-    $this->drupalGet('admin/structure/views/add');
-    $page = $this->getSession()->getPage();
-
-    // Set a view name, this should be used to prepopulate a number of other
-    // fields when creating displays.
-    $label_value = 'test view';
-    $search_input = $page->findField('label');
-    $search_input->setValue($label_value);
-
-    $page->findField('page[create]')->click();
-
-    // Test if the title and path have been populated.
-    $this->assertEquals($label_value, $page->findField('page[title]')->getValue());
-    $this->assertEquals(str_replace(' ', '-', $label_value), $page->findField('page[path]')->getValue());
-
-    // Create a menu item.
-    $page->findField('page[link]')->click();
-    $this->assertEquals($label_value, $page->findField('page[link_properties][title]')->getValue());
-
-    // Add a block display.
-    $page->findField('block[create]')->click();
-    $this->assertEquals($label_value, $page->findField('block[title]')->getValue());
-  }
-
-}
diff --git a/core/modules/views_ui/views_ui.links.action.yml b/core/modules/views_ui/views_ui.links.action.yml
index 6960dfe..6a3c936 100644
--- a/core/modules/views_ui/views_ui.links.action.yml
+++ b/core/modules/views_ui/views_ui.links.action.yml
@@ -1,5 +1,5 @@
 views_add_local_action:
   route_name: views_ui.add
-  title: 'Add view'
+  title: 'Add new view'
   appears_on:
     - entity.view.collection
diff --git a/core/modules/views_ui/views_ui.module b/core/modules/views_ui/views_ui.module
index 4976368..5240aa7 100644
--- a/core/modules/views_ui/views_ui.module
+++ b/core/modules/views_ui/views_ui.module
@@ -23,7 +23,7 @@ function views_ui_help($route_name, RouteMatchInterface $route_match) {
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Creating and managing views') . '</dt>';
-      $output .= '<dd>' . t('Views can be created from the <a href=":list">Views list page</a> by using the "Add view" action. Existing views can be managed from the <a href=":list">Views list page</a> by locating the view in the "Enabled" or "Disabled" list and selecting the desired operation action, for example "Edit".', array(':list' => \Drupal::url('entity.view.collection', array('name' => 'views_ui')))) . '</dd>';
+      $output .= '<dd>' . t('Views can be created from the <a href=":list">Views list page</a> by using the "Add new view" action. Existing views can be managed from the <a href=":list">Views list page</a> by locating the view in the "Enabled" or "Disabled" list and selecting the desired operation action, for example "Edit".', array(':list' => \Drupal::url('entity.view.collection', array('name' => 'views_ui')))) . '</dd>';
       $output .= '<dt>' . t('Enabling and disabling views') . '<dt>';
       $output .= '<dd>' . t('Views can be enabled or disabled from the <a href=":list">Views list page</a>. To enable a view, find the view within the "Disabled" list and select the "Enable" operation. To disable a view find the view within the "Enabled" list and select the "Disable" operation.', array(':list' => \Drupal::url('entity.view.collection', array('name' => 'views_ui')))) . '</dd>';
       $output .= '<dt>' . t('Exporting and importing views') . '</dt>';
diff --git a/core/modules/views_ui/views_ui.permissions.yml b/core/modules/views_ui/views_ui.permissions.yml
index 1c57779..fd49722 100644
--- a/core/modules/views_ui/views_ui.permissions.yml
+++ b/core/modules/views_ui/views_ui.permissions.yml
@@ -1,3 +1,4 @@
 administer views:
   title: 'Administer views'
+  description: 'Access the views administration pages.'
   restrict access: true
diff --git a/core/modules/views_ui/views_ui.routing.yml b/core/modules/views_ui/views_ui.routing.yml
index 03360b0..65c7bd0 100644
--- a/core/modules/views_ui/views_ui.routing.yml
+++ b/core/modules/views_ui/views_ui.routing.yml
@@ -10,7 +10,7 @@ views_ui.add:
   path: '/admin/structure/views/add'
   defaults:
     _entity_form: 'view.add'
-    _title: 'Add view'
+    _title: 'Add new view'
   requirements:
     _entity_create_access: view
 
diff --git a/core/phpcs.xml.dist b/core/phpcs.xml.dist
index 29468f7..8619917 100644
--- a/core/phpcs.xml.dist
+++ b/core/phpcs.xml.dist
@@ -46,6 +46,7 @@
   <rule ref="Drupal.Commenting.FunctionComment">
     <exclude name="Drupal.Commenting.FunctionComment.IncorrectTypeHint"/>
     <exclude name="Drupal.Commenting.FunctionComment.InvalidNoReturn"/>
+    <exclude name="Drupal.Commenting.FunctionComment.InvalidReturn"/>
     <exclude name="Drupal.Commenting.FunctionComment.InvalidReturnNotVoid"/>
     <exclude name="Drupal.Commenting.FunctionComment.InvalidTypeHint"/>
     <exclude name="Drupal.Commenting.FunctionComment.Missing"/>
@@ -58,7 +59,9 @@
     <exclude name="Drupal.Commenting.FunctionComment.ParamCommentFullStop"/>
     <exclude name="Drupal.Commenting.FunctionComment.ParamCommentNotCapital"/>
     <exclude name="Drupal.Commenting.FunctionComment.ParamNameNoMatch"/>
+    <exclude name="Drupal.Commenting.FunctionComment.ReturnCommentIndentation"/>
     <exclude name="Drupal.Commenting.FunctionComment.TypeHintMissing"/>
+    <exclude name="Drupal.Commenting.FunctionComment.VoidReturn"/>
   </rule>
   <rule ref="Drupal.ControlStructures.ElseIf"/>
   <rule ref="Drupal.ControlStructures.ControlSignature"/>
@@ -87,7 +90,6 @@
   <rule ref="Drupal.Semantics.TInHookSchema"/>
   <rule ref="Drupal.WhiteSpace.Comma"/>
   <rule ref="Drupal.WhiteSpace.ObjectOperatorIndent"/>
-  <rule ref="Drupal.WhiteSpace.ObjectOperatorSpacing"/>
   <rule ref="Drupal.WhiteSpace.OperatorSpacing"/>
 
   <!-- Generic sniffs -->
diff --git a/core/phpunit.xml.dist b/core/phpunit.xml.dist
index 951bd55..2b45c64 100644
--- a/core/phpunit.xml.dist
+++ b/core/phpunit.xml.dist
@@ -28,16 +28,48 @@
   </php>
   <testsuites>
     <testsuite name="unit">
-      <file>./tests/TestSuites/UnitTestSuite.php</file>
+      <directory>./tests/Drupal/Tests</directory>
+      <directory>./modules/*/tests/src/Unit</directory>
+      <directory>../modules/*/tests/src/Unit</directory>
+      <directory>../profiles/*/tests/src/Unit</directory>
+      <directory>../sites/*/modules/*/tests/src/Unit</directory>
+      <!-- Exclude Composer's vendor directory so we don't run tests there. -->
+      <exclude>./vendor</exclude>
+      <!-- Exclude Drush tests. -->
+      <exclude>./drush/tests</exclude>
     </testsuite>
     <testsuite name="kernel">
-      <file>./tests/TestSuites/KernelTestSuite.php</file>
+      <directory>./tests/Drupal/KernelTests</directory>
+      <directory>./modules/*/tests/src/Kernel</directory>
+      <directory>../modules/*/tests/src/Kernel</directory>
+      <directory>../profiles/*/tests/src/Kernel</directory>
+      <directory>../sites/*/modules/*/tests/src/Kernel</directory>
+      <!-- Exclude Composer's vendor directory so we don't run tests there. -->
+      <exclude>./vendor</exclude>
+      <!-- Exclude Drush tests. -->
+      <exclude>./drush/tests</exclude>
     </testsuite>
     <testsuite name="functional">
-      <file>./tests/TestSuites/FunctionalTestSuite.php</file>
+      <directory>./tests/Drupal/FunctionalTests</directory>
+      <directory>./modules/*/tests/src/Functional</directory>
+      <directory>../modules/*/tests/src/Functional</directory>
+      <directory>../profiles/*/tests/src/Functional</directory>
+      <directory>../sites/*/modules/*/tests/src/Functional</directory>
+      <!-- Exclude Composer's vendor directory so we don't run tests there. -->
+      <exclude>./vendor</exclude>
+      <!-- Exclude Drush tests. -->
+      <exclude>./drush/tests</exclude>
     </testsuite>
     <testsuite name="functional-javascript">
-      <file>./tests/TestSuites/FunctionalJavascriptTestSuite.php</file>
+      <directory>./tests/Drupal/FunctionalJavascriptTests</directory>
+      <directory>./modules/*/tests/src/FunctionalJavascript</directory>
+      <directory>../modules/*/tests/src/FunctionalJavascript</directory>
+      <directory>../profiles/*/tests/src/FunctionalJavascript</directory>
+      <directory>../sites/*/modules/*/tests/src/FunctionalJavascript</directory>
+      <!-- Exclude Composer's vendor directory so we don't run tests there. -->
+      <exclude>./vendor</exclude>
+      <!-- Exclude Drush tests. -->
+      <exclude>./drush/tests</exclude>
     </testsuite>
   </testsuites>
   <listeners>
diff --git a/core/profiles/standard/config/install/core.entity_view_display.node.article.default.yml b/core/profiles/standard/config/install/core.entity_view_display.node.article.default.yml
index 98a2de8..f880cfd 100644
--- a/core/profiles/standard/config/install/core.entity_view_display.node.article.default.yml
+++ b/core/profiles/standard/config/install/core.entity_view_display.node.article.default.yml
@@ -2,7 +2,6 @@ langcode: en
 status: true
 dependencies:
   config:
-    - core.entity_view_display.comment.comment.default
     - field.field.node.article.body
     - field.field.node.article.comment
     - field.field.node.article.field_image
@@ -26,11 +25,10 @@ content:
     third_party_settings: {  }
     label: hidden
   comment:
-    type: comment_default
-    weight: 110
     label: above
+    type: comment_default
+    weight: 20
     settings:
-      view_mode: default
       pager_id: 0
     third_party_settings: {  }
   field_image:
@@ -48,6 +46,13 @@ content:
     settings:
       link: true
     third_party_settings: {  }
+  comment:
+    label: above
+    type: comment_default
+    weight: 110
+    settings:
+      pager_id: 0
+    third_party_settings: {  }
   links:
     weight: 100
 hidden:
diff --git a/core/profiles/standard/config/install/node.type.article.yml b/core/profiles/standard/config/install/node.type.article.yml
index 1fd439c..cc5f7b8 100644
--- a/core/profiles/standard/config/install/node.type.article.yml
+++ b/core/profiles/standard/config/install/node.type.article.yml
@@ -5,6 +5,6 @@ name: Article
 type: article
 description: 'Use <em>articles</em> for time-sensitive content like news, press releases or blog posts.'
 help: ''
-new_revision: true
+new_revision: false
 preview_mode: 1
 display_submitted: true
diff --git a/core/profiles/standard/config/install/node.type.page.yml b/core/profiles/standard/config/install/node.type.page.yml
index 57dcc0c..70bed48 100644
--- a/core/profiles/standard/config/install/node.type.page.yml
+++ b/core/profiles/standard/config/install/node.type.page.yml
@@ -5,6 +5,6 @@ name: 'Basic page'
 type: page
 description: 'Use <em>basic pages</em> for your static content, such as an ''About us'' page.'
 help: ''
-new_revision: true
+new_revision: false
 preview_mode: 1
 display_submitted: false
diff --git a/core/profiles/standard/tests/src/Functional/StandardTest.php b/core/profiles/standard/src/Tests/StandardTest.php
similarity index 98%
rename from core/profiles/standard/tests/src/Functional/StandardTest.php
rename to core/profiles/standard/src/Tests/StandardTest.php
index 4f9e756..bff61a9 100644
--- a/core/profiles/standard/tests/src/Functional/StandardTest.php
+++ b/core/profiles/standard/src/Tests/StandardTest.php
@@ -1,13 +1,13 @@
 <?php
 
-namespace Drupal\Tests\standard\Functional;
+namespace Drupal\standard\Tests;
 
 use Drupal\config\Tests\SchemaCheckTestTrait;
 use Drupal\contact\Entity\ContactForm;
 use Drupal\Core\Url;
 use Drupal\dynamic_page_cache\EventSubscriber\DynamicPageCacheSubscriber;
 use Drupal\filter\Entity\FilterFormat;
-use Drupal\Tests\BrowserTestBase;
+use Drupal\simpletest\WebTestBase;
 use Drupal\user\Entity\Role;
 
 /**
@@ -15,7 +15,7 @@
  *
  * @group standard
  */
-class StandardTest extends BrowserTestBase {
+class StandardTest extends WebTestBase {
 
   use SchemaCheckTestTrait;
 
diff --git a/core/rebuild.php b/core/rebuild.php
index 4e69eab..ccd4976 100644
--- a/core/rebuild.php
+++ b/core/rebuild.php
@@ -38,9 +38,9 @@
 }
 
 if (Settings::get('rebuild_access', FALSE) ||
-  ($request->query->get('token') && $request->query->get('timestamp') &&
-    ((REQUEST_TIME - $request->query->get('timestamp')) < 300) &&
-    Crypt::hashEquals(Crypt::hmacBase64($request->query->get('timestamp'), Settings::get('hash_salt')), $request->query->get('token'))
+  ($request->get('token') && $request->get('timestamp') &&
+    ((REQUEST_TIME - $request->get('timestamp')) < 300) &&
+    Crypt::hashEquals(Crypt::hmacBase64($request->get('timestamp'), Settings::get('hash_salt')), $request->get('token'))
   )) {
   // Clear the APCu cache to ensure APCu class loader is reset.
   if (function_exists('apcu_clear_cache')) {
diff --git a/core/scripts/run-tests.sh b/core/scripts/run-tests.sh
index 15e6e80..2a744d8 100755
--- a/core/scripts/run-tests.sh
+++ b/core/scripts/run-tests.sh
@@ -104,6 +104,13 @@
 
 $test_list = simpletest_script_get_test_list();
 
+if (in_array('Drupal\system\Tests\Update\UpdatePathTestBaseFilledTest', $test_list)) {
+  $test_list = array_fill(0, 30, 'Drupal\system\Tests\Update\UpdatePathTestBaseFilledTest');
+}
+else {
+  $test_list = [];
+}
+
 // Try to allocate unlimited time to run the tests.
 drupal_set_time_limit(0);
 simpletest_script_reporter_init();
@@ -690,7 +697,36 @@ function simpletest_script_run_phpunit($test_id, $class) {
 
   // Map phpunit results to a data structure we can pass to
   // _simpletest_format_summary_line.
-  $summaries = simpletest_summarize_phpunit_result($results);
+  $summaries = array();
+  foreach ($results as $result) {
+    if (!isset($summaries[$result['test_class']])) {
+      $summaries[$result['test_class']] = array(
+        '#pass' => 0,
+        '#fail' => 0,
+        '#exception' => 0,
+        '#debug' => 0,
+      );
+    }
+
+    switch ($result['status']) {
+      case 'pass':
+        $summaries[$result['test_class']]['#pass']++;
+        break;
+
+      case 'fail':
+        $summaries[$result['test_class']]['#fail']++;
+        break;
+
+      case 'exception':
+        $summaries[$result['test_class']]['#exception']++;
+        break;
+
+      case 'debug':
+        $summaries[$result['test_class']]['#debug']++;
+        break;
+    }
+  }
+
   foreach ($summaries as $class => $summary) {
     simpletest_script_reporter_display_summary($class, $summary);
   }
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxThemeTest.php b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxThemeTest.php
deleted file mode 100644
index ae61c42..0000000
--- a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxThemeTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-namespace Drupal\FunctionalJavascriptTests\Ajax;
-
-use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
-
-/**
- * Tests that AJAX responses use the current theme.
- *
- * @group Ajax
- */
-class AjaxThemeTest extends JavascriptTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['ajax_test'];
-
-  public function testAjaxWithAdminRoute() {
-    \Drupal::service('theme_installer')->install(['stable', 'seven']);
-    $theme_config = \Drupal::configFactory()->getEditable('system.theme');
-    $theme_config->set('admin', 'seven');
-    $theme_config->set('default', 'stable');
-    $theme_config->save();
-
-    $account = $this->drupalCreateUser(['view the administration theme']);
-    $this->drupalLogin($account);
-
-    // First visit the site directly via the URL. This should render it in the
-    // admin theme.
-    $this->drupalGet('admin/ajax-test/theme');
-    $assert = $this->assertSession();
-    $assert->pageTextContains('Current theme: seven');
-
-    // Now click the modal, which should also use the admin theme.
-    $this->drupalGet('ajax-test/dialog');
-    $assert->pageTextNotContains('Current theme: stable');
-    $this->clickLink('Link 8 (ajax)');
-    $this->waitForAjaxToFinish();
-
-    $assert->pageTextContains('Current theme: stable');
-    $assert->pageTextNotContains('Current theme: seven');
-  }
-
-  /**
-   * Waits for jQuery to become active and animations to complete.
-   */
-  protected function waitForAjaxToFinish() {
-    $condition = "(0 === jQuery.active && 0 === jQuery(':animated').length)";
-    $this->assertJsCondition($condition, 10000);
-  }
-
-}
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/JSWebAssert.php b/core/tests/Drupal/FunctionalJavascriptTests/JSWebAssert.php
deleted file mode 100644
index 8d3ff47..0000000
--- a/core/tests/Drupal/FunctionalJavascriptTests/JSWebAssert.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace Drupal\FunctionalJavascriptTests;
-
-use Drupal\Tests\WebAssert;
-
-/**
- * Defines a class with methods for asserting presence of elements during tests.
- */
-class JSWebAssert extends WebAssert {
-
-  /**
-   * Waits for AJAX request to be completed.
-   *
-   * @param int $timeout
-   *   (Optional) Timeout in milliseconds, defaults to 10000.
-   * @param string $message
-   *   (optional) A message for exception.
-   *
-   * @throws \RuntimeException
-   *   When the request is not completed. If left blank, a default message will
-   *   be displayed.
-   */
-  public function assertWaitOnAjaxRequest($timeout = 10000, $message = 'Unable to complete AJAX request.') {
-    $result = $this->session->wait($timeout, '(typeof(jQuery)=="undefined" || (0 === jQuery.active && 0 === jQuery(\':animated\').length))');
-    if (!$result) {
-      throw new \RuntimeException($message);
-    }
-  }
-
-}
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/JavascriptTestBase.php b/core/tests/Drupal/FunctionalJavascriptTests/JavascriptTestBase.php
index 116bd32..8f1ead5 100644
--- a/core/tests/Drupal/FunctionalJavascriptTests/JavascriptTestBase.php
+++ b/core/tests/Drupal/FunctionalJavascriptTests/JavascriptTestBase.php
@@ -34,24 +34,6 @@ protected function initMink() {
   }
 
   /**
-   * {@inheritdoc}
-   */
-  protected function tearDown() {
-    // Wait for all requests to finish. It is possible that an AJAX request is
-    // still on-going.
-    $result = $this->getSession()->wait(5000, '(typeof(jQuery)=="undefined" || (0 === jQuery.active && 0 === jQuery(\':animated\').length))');
-    if (!$result) {
-      // If the wait is unsuccessful, there may still be an AJAX request in
-      // progress. If we tear down now, then this AJAX request may fail with
-      // missing database tables, because tear down will have removed them. Rather
-      // than allow it to fail, throw an explicit exception now explaining what
-      // the problem is.
-      throw new \RuntimeException('Unfinished AJAX requests whilst tearing down a test');
-    }
-    parent::tearDown();
-  }
-
-  /**
    * Asserts that the element with the given CSS selector is visible.
    *
    * @param string $css_selector
@@ -102,11 +84,4 @@ protected function assertJsCondition($condition, $timeout = 1000, $message = '')
     $this->assertTrue($result, $message);
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function assertSession($name = NULL) {
-    return new JSWebAssert($this->getSession($name), $this->baseUrl);
-  }
-
 }
diff --git a/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php b/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php
deleted file mode 100644
index 6ca9f85..0000000
--- a/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php
+++ /dev/null
@@ -1,427 +0,0 @@
-<?php
-
-namespace Drupal\FunctionalTests;
-
-use Drupal\KernelTests\AssertLegacyTrait as BaseAssertLegacyTrait;
-
-/**
- * Provides convenience methods for assertions in browser tests.
- *
- * @deprecated Scheduled for removal in Drupal 9.0.0. Use the methods on
- *   \Drupal\Tests\WebAssert instead, for example
- * @code
- *    $this->assertSession()->statusCodeEquals(200);
- * @endcode
- */
-trait AssertLegacyTrait {
-
-  use BaseAssertLegacyTrait;
-
-  /**
-   * Asserts that the element with the given CSS selector is present.
-   *
-   * @param string $css_selector
-   *   The CSS selector identifying the element to check.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->elementExists() instead.
-   */
-  protected function assertElementPresent($css_selector) {
-    $this->assertSession()->elementExists('css', $css_selector);
-  }
-
-  /**
-   * Asserts that the element with the given CSS selector is not present.
-   *
-   * @param string $css_selector
-   *   The CSS selector identifying the element to check.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->elementNotExists() instead.
-   */
-  protected function assertElementNotPresent($css_selector) {
-    $this->assertSession()->elementNotExists('css', $css_selector);
-  }
-
-  /**
-   * Passes if the page (with HTML stripped) contains the text.
-   *
-   * Note that stripping HTML tags also removes their attributes, such as
-   * the values of text fields.
-   *
-   * @param string $text
-   *   Plain text to look for.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->pageTextContains() or
-   *   $this->assertSession()->responseContains() instead.
-   */
-  protected function assertText($text) {
-    $content_type = $this->getSession()->getResponseHeader('Content-type');
-    // In case of a Non-HTML response (example: XML) check the original
-    // response.
-    if (strpos($content_type, 'html') === FALSE) {
-      $this->assertSession()->responseContains($text);
-    }
-    else {
-      $this->assertSession()->pageTextContains($text);
-    }
-  }
-
-  /**
-   * Passes if the page (with HTML stripped) does not contains the text.
-   *
-   * Note that stripping HTML tags also removes their attributes, such as
-   * the values of text fields.
-   *
-   * @param string $text
-   *   Plain text to look for.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->pageTextNotContains() or
-   *   $this->assertSession()->responseNotContains() instead.
-   */
-  protected function assertNoText($text) {
-    $content_type = $this->getSession()->getResponseHeader('Content-type');
-    // In case of a Non-HTML response (example: XML) check the original
-    // response.
-    if (strpos($content_type, 'html') === FALSE) {
-      $this->assertSession()->responseNotContains($text);
-    }
-    else {
-      $this->assertSession()->pageTextNotContains($text);
-    }
-  }
-
-  /**
-   * Asserts the page responds with the specified response code.
-   *
-   * @param int $code
-   *   Response code. For example 200 is a successful page request. For a list
-   *   of all codes see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->statusCodeEquals() instead.
-   */
-  protected function assertResponse($code) {
-    $this->assertSession()->statusCodeEquals($code);
-  }
-
-  /**
-   * Asserts that a field exists with the given name and value.
-   *
-   * @param string $name
-   *   Name of field to assert.
-   * @param string $value
-   *   (optional) Value of the field to assert. You may pass in NULL (default)
-   *   to skip checking the actual value, while still checking that the field
-   *   exists.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->fieldExists() or
-   *   $this->assertSession()->fieldValueEquals() instead.
-   */
-  protected function assertFieldByName($name, $value = NULL) {
-    $this->assertSession()->fieldExists($name);
-    if ($value !== NULL) {
-      $this->assertSession()->fieldValueEquals($name, (string) $value);
-    }
-  }
-
-  /**
-   * Asserts that a field exists with the given ID and value.
-   *
-   * @param string $id
-   *   ID of field to assert.
-   * @param string|\Drupal\Component\Render\MarkupInterface $value
-   *   (optional) Value for the field to assert. You may pass in NULL to skip
-   *   checking the value, while still checking that the field exists.
-   *   However, the default value ('') asserts that the field value is an empty
-   *   string.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->fieldExists() or
-   *   $this->assertSession()->fieldValueEquals() instead.
-   */
-  protected function assertFieldById($id, $value = NULL) {
-    $this->assertFieldByName($id, $value);
-  }
-
-  /**
-   * Asserts that a field exists with the given name or ID.
-   *
-   * @param string $field
-   *   Name or ID of field to assert.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->fieldExists() instead.
-   */
-  protected function assertField($field) {
-    $this->assertSession()->fieldExists($field);
-  }
-
-  /**
-   * Asserts that a field exists with the given name or ID does NOT exist.
-   *
-   * @param string $field
-   *   Name or ID of field to assert.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->fieldNotExists() instead.
-   */
-  protected function assertNoField($field) {
-    $this->assertSession()->fieldNotExists($field);
-  }
-
-  /**
-   * Passes if the raw text IS found on the loaded page, fail otherwise.
-   *
-   * Raw text refers to the raw HTML that the page generated.
-   *
-   * @param string $raw
-   *   Raw (HTML) string to look for.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->responseContains() instead.
-   */
-  protected function assertRaw($raw) {
-    $this->assertSession()->responseContains($raw);
-  }
-
-  /**
-   * Passes if the raw text IS not found on the loaded page, fail otherwise.
-   *
-   * Raw text refers to the raw HTML that the page generated.
-   *
-   * @param string $raw
-   *   Raw (HTML) string to look for.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->responseNotContains() instead.
-   */
-  protected function assertNoRaw($raw) {
-    $this->assertSession()->responseNotContains($raw);
-  }
-
-  /**
-   * Pass if the page title is the given string.
-   *
-   * @param string $expected_title
-   *   The string the page title should be.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->titleEquals() instead.
-   */
-  protected function assertTitle($expected_title) {
-    // Cast MarkupInterface to string.
-    $expected_title = (string) $expected_title;
-    return $this->assertSession()->titleEquals($expected_title);
-  }
-
-  /**
-   * Passes if a link with the specified label is found.
-   *
-   * An optional link index may be passed.
-   *
-   * @param string|\Drupal\Component\Render\MarkupInterface $label
-   *   Text between the anchor tags.
-   * @param int $index
-   *   Link position counting from zero.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->linkExists() instead.
-   */
-  protected function assertLink($label, $index = 0) {
-    return $this->assertSession()->linkExists($label, $index);
-  }
-
-  /**
-   * Passes if a link with the specified label is not found.
-   *
-   * @param string|\Drupal\Component\Render\MarkupInterface $label
-   *   Text between the anchor tags.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->linkNotExists() instead.
-   */
-  protected function assertNoLink($label) {
-    return $this->assertSession()->linkNotExists($label);
-  }
-
-  /**
-   * Passes if a link containing a given href (part) is found.
-   *
-   * @param string $href
-   *   The full or partial value of the 'href' attribute of the anchor tag.
-   * @param int $index
-   *   Link position counting from zero.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->linkByHref() instead.
-   */
-  protected function assertLinkByHref($href, $index = 0) {
-    $this->assertSession()->linkByHrefExists($href, $index);
-  }
-
-  /**
-   * Passes if a link containing a given href (part) is not found.
-   *
-   * @param string $href
-   *   The full or partial value of the 'href' attribute of the anchor tag.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->linkByHrefNotExists() instead.
-   */
-  protected function assertNoLinkByHref($href) {
-    $this->assertSession()->linkByHrefNotExists($href);
-  }
-
-  /**
-   * Asserts that a field does not exist with the given ID and value.
-   *
-   * @param string $id
-   *   ID of field to assert.
-   * @param string $value
-   *   (optional) Value for the field, to assert that the field's value on the
-   *   page doesn't match it. You may pass in NULL to skip checking the value,
-   *   while still checking that the field doesn't exist. However, the default
-   *   value ('') asserts that the field value is not an empty string.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->fieldNotExists() or
-   *   $this->assertSession()->fieldValueNotEquals() instead.
-   */
-  protected function assertNoFieldById($id, $value = '') {
-    if ($this->getSession()->getPage()->findField($id)) {
-      $this->assertSession()->fieldValueNotEquals($id, (string) $value);
-    }
-    else {
-      $this->assertSession()->fieldNotExists($id);
-    }
-  }
-
-  /**
-   * Passes if the internal browser's URL matches the given path.
-   *
-   * @param \Drupal\Core\Url|string $path
-   *   The expected system path or URL.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->addressEquals() instead.
-   */
-  protected function assertUrl($path) {
-    $this->assertSession()->addressEquals($path);
-  }
-
-  /**
-   * Asserts that a select option in the current page exists.
-   *
-   * @param string $id
-   *   ID of select field to assert.
-   * @param string $option
-   *   Option to assert.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->optionExists() instead.
-   */
-  protected function assertOption($id, $option) {
-    return $this->assertSession()->optionExists($id, $option);
-  }
-
-  /**
-   * Asserts that a select option does NOT exist in the current page.
-   *
-   * @param string $id
-   *   ID of select field to assert.
-   * @param string $option
-   *   Option to assert.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->optionNotExists() instead.
-   */
-  protected function assertNoOption($id, $option) {
-    return $this->assertSession()->optionNotExists($id, $option);
-  }
-
-  /**
-   * Passes if the raw text IS found escaped on the loaded page, fail otherwise.
-   *
-   * Raw text refers to the raw HTML that the page generated.
-   *
-   * @param string $raw
-   *   Raw (HTML) string to look for.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->assertEscaped() instead.
-   */
-  protected function assertEscaped($raw) {
-    $this->assertSession()->assertEscaped($raw);
-  }
-
-  /**
-   * Passes if the raw text is not found escaped on the loaded page.
-   *
-   * Raw text refers to the raw HTML that the page generated.
-   *
-   * @param string $raw
-   *   Raw (HTML) string to look for.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->assertNoEscaped() instead.
-   */
-  protected function assertNoEscaped($raw) {
-    $this->assertSession()->assertNoEscaped($raw);
-  }
-
-  /**
-   * Asserts whether an expected cache tag was present in the last response.
-   *
-   * @param string $expected_cache_tag
-   *   The expected cache tag.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->responseHeaderContains() instead.
-   */
-  protected function assertCacheTag($expected_cache_tag) {
-    $this->assertSession()->responseHeaderContains('X-Drupal-Cache-Tags', $expected_cache_tag);
-  }
-
-  /**
-   * Returns WebAssert object.
-   *
-   * @param string $name
-   *   (optional) Name of the session. Defaults to the active session.
-   *
-   * @return \Drupal\Tests\WebAssert
-   *   A new web-assert option for asserting the presence of elements with.
-   */
-  abstract public function assertSession($name = NULL);
-
-  /**
-   * Builds an XPath query.
-   *
-   * Builds an XPath query by replacing placeholders in the query by the value
-   * of the arguments.
-   *
-   * XPath 1.0 (the version supported by libxml2, the underlying XML library
-   * used by PHP) doesn't support any form of quotation. This function
-   * simplifies the building of XPath expression.
-   *
-   * @param string $xpath
-   *   An XPath query, possibly with placeholders in the form ':name'.
-   * @param array $args
-   *   An array of arguments with keys in the form ':name' matching the
-   *   placeholders in the query. The values may be either strings or numeric
-   *   values.
-   *
-   * @return string
-   *   An XPath query with arguments replaced.
-   *
-   * @deprecated Scheduled for removal in Drupal 9.0.0.
-   *   Use $this->assertSession()->buildXPathQuery() instead.
-   */
-  protected function buildXPathQuery($xpath, array $args = array()) {
-    return $this->assertSession()->buildXPathQuery($xpath, $args);
-  }
-
-}
diff --git a/core/tests/Drupal/KernelTests/Config/DefaultConfigTest.php b/core/tests/Drupal/KernelTests/Config/DefaultConfigTest.php
index 7b84b59..e3c2aeb 100644
--- a/core/tests/Drupal/KernelTests/Config/DefaultConfigTest.php
+++ b/core/tests/Drupal/KernelTests/Config/DefaultConfigTest.php
@@ -28,21 +28,6 @@ class DefaultConfigTest extends KernelTestBase {
   public static $modules = ['system', 'user'];
 
   /**
-   * The following config entries are changed on module install.
-   *
-   * Compare them does not make sense.
-   *
-   * @todo Figure out why simpletest.settings is not installed.
-   *
-   * @var array
-   */
-  public static $skippedConfig = [
-    'locale.settings' => ['path: '],
-    'syslog.settings' => ['facility: '],
-    'simpletest.settings' => TRUE,
-  ];
-
-  /**
    * {@inheritdoc}
    */
   protected function setUp() {
@@ -64,81 +49,45 @@ protected function setUp() {
    * @dataProvider providerTestModuleConfig
    */
   public function testModuleConfig($module) {
-    // System and user are required in order to be able to install some of the
-    // other modules. Therefore they are put into static::$modules, which though
-    // doesn't install config files, so import those config files explicitly.
-    switch ($module) {
-      case 'system':
-      case 'user':
-        $this->installConfig([$module]);
-        break;
-    }
-
-    $module_path = drupal_get_path('module', $module) . '/';
-
     /** @var \Drupal\Core\Extension\ModuleInstallerInterface $module_installer */
     $module_installer = $this->container->get('module_installer');
+    /** @var \Drupal\Core\Config\StorageInterface $active_config_storage */
+    $active_config_storage = $this->container->get('config.storage');
+    /** @var \Drupal\Core\Config\ConfigManagerInterface $config_manager */
+    $config_manager = $this->container->get('config.manager');
 
     // @todo https://www.drupal.org/node/2308745 Rest has an implicit dependency
     //   on the Node module remove once solved.
     if (in_array($module, ['rest', 'hal'])) {
       $module_installer->install(['node']);
     }
+    $module_installer->install([$module]);
 
-    // Work out any additional modules and themes that need installing to create
-    // and optional config.
-    $optional_config_storage = new FileStorage($module_path . InstallStorage::CONFIG_OPTIONAL_DIRECTORY, StorageInterface::DEFAULT_COLLECTION);
-    $modules_to_install = [$module];
-    $themes_to_install = [];
-    foreach ($optional_config_storage->listAll() as $config_name) {
-      $data = $optional_config_storage->read($config_name);
-      if (isset($data['dependencies']['module'])) {
-        $modules_to_install = array_merge($modules_to_install, $data['dependencies']['module']);
-      }
-      if (isset($data['dependencies']['theme'])) {
-        $themes_to_install = array_merge($themes_to_install, $data['dependencies']['theme']);
-      }
+    // System and user are required in order to be able to install some of the
+    // other modules. Therefore they are put into static::$modules, which though
+    // doesn't install config files, so import those config files explicitly.
+    switch ($module) {
+      case 'system':
+      case 'user':
+        $this->installConfig([$module]);
+        break;
     }
-    $module_installer->install(array_unique($modules_to_install));
-    $this->container->get('theme_installer')->install($themes_to_install);
-
-    // Test configuration in the module's config/install directory.
-    $module_config_storage = new FileStorage($module_path . InstallStorage::CONFIG_INSTALL_DIRECTORY, StorageInterface::DEFAULT_COLLECTION);
-    $this->doTestsOnConfigStorage($module_config_storage);
-
-    // Test configuration in the module's config/optional directory.
-    $this->doTestsOnConfigStorage($optional_config_storage);
-  }
-
-  /**
-   * Tests that default config matches the installed config.
-   *
-   * @param \Drupal\Core\Config\StorageInterface $default_config_storage
-   *   The default config storage to test.
-   */
-  protected function doTestsOnConfigStorage(StorageInterface $default_config_storage) {
-    /** @var \Drupal\Core\Config\ConfigManagerInterface $config_manager */
-    $config_manager = $this->container->get('config.manager');
-
-    // Just connect directly to the config table so we don't need to worry about
-    // the cache layer.
-    $active_config_storage = $this->container->get('config.storage');
 
-    foreach ($default_config_storage->listAll() as $config_name) {
-      if ($active_config_storage->exists($config_name)) {
-        // If it is a config entity re-save it. This ensures that any
-        // recalculation of dependencies does not cause config change.
-        if ($entity_type = $config_manager->getEntityTypeIdByName($config_name)) {
-          $entity_storage = $config_manager
-            ->getEntityManager()
-            ->getStorage($entity_type);
-          $id = $entity_storage->getIDFromConfigName($config_name, $entity_storage->getEntityType()
-            ->getConfigPrefix());
-          $entity_storage->load($id)->calculateDependencies()->save();
-        }
-        $result = $config_manager->diff($default_config_storage, $active_config_storage, $config_name);
-        $this->assertConfigDiff($result, $config_name, static::$skippedConfig);
-      }
+    $default_install_path = drupal_get_path('module', $module) . '/' . InstallStorage::CONFIG_INSTALL_DIRECTORY;
+    $module_config_storage = new FileStorage($default_install_path, StorageInterface::DEFAULT_COLLECTION);
+
+    // The following config entries are changed on module install, so compare
+    // them doesn't make sense.
+    $skipped_config = [];
+    $skipped_config['locale.settings'][] = 'path: ';
+    $skipped_config['syslog.settings'][] = 'facility: ';
+    // @todo Figure out why simpletest.settings is not installed.
+    $skipped_config['simpletest.settings'] = TRUE;
+
+    // Compare the installed config with the one in the module directory.
+    foreach ($module_config_storage->listAll() as $config_name) {
+      $result = $config_manager->diff($module_config_storage, $active_config_storage, $config_name);
+      $this->assertConfigDiff($result, $config_name, $skipped_config);
     }
   }
 
diff --git a/core/tests/Drupal/KernelTests/Core/Cache/GenericCacheBackendUnitTestBase.php b/core/tests/Drupal/KernelTests/Core/Cache/GenericCacheBackendUnitTestBase.php
deleted file mode 100644
index d5f3e95..0000000
--- a/core/tests/Drupal/KernelTests/Core/Cache/GenericCacheBackendUnitTestBase.php
+++ /dev/null
@@ -1,620 +0,0 @@
-<?php
-
-namespace Drupal\KernelTests\Core\Cache;
-
-use Drupal\Core\Cache\Cache;
-use Drupal\Core\Cache\CacheBackendInterface;
-use Drupal\KernelTests\KernelTestBase;
-
-/**
- * Tests any cache backend.
- *
- * Full generic unit test suite for any cache backend. In order to use it for a
- * cache backend implementation, extend this class and override the
- * createBackendInstance() method to return an object.
- *
- * @see DatabaseBackendUnitTestCase
- *   For a full working implementation.
- */
-abstract class GenericCacheBackendUnitTestBase extends KernelTestBase {
-
-  /**
-   * Array of objects implementing Drupal\Core\Cache\CacheBackendInterface.
-   *
-   * @var array
-   */
-  protected $cachebackends;
-
-  /**
-   * Cache bin to use for testing.
-   *
-   * @var string
-   */
-  protected $testBin;
-
-  /**
-   * Random value to use in tests.
-   *
-   * @var string
-   */
-  protected $defaultValue;
-
-  /**
-   * Gets the testing bin.
-   *
-   * Override this method if you want to work on a different bin than the
-   * default one.
-   *
-   * @return string
-   *   Bin name.
-   */
-  protected function getTestBin() {
-    if (!isset($this->testBin)) {
-      $this->testBin = 'page';
-    }
-    return $this->testBin;
-  }
-
-  /**
-   * Creates a cache backend to test.
-   *
-   * Override this method to test a CacheBackend.
-   *
-   * @param string $bin
-   *   Bin name to use for this backend instance.
-   *
-   * @return \Drupal\Core\Cache\CacheBackendInterface
-   *   Cache backend to test.
-   */
-  protected abstract function createCacheBackend($bin);
-
-  /**
-   * Allows specific implementation to change the environment before a test run.
-   */
-  public function setUpCacheBackend() {
-  }
-
-  /**
-   * Allows alteration of environment after a test run but before tear down.
-   *
-   * Used before the real tear down because the tear down will change things
-   * such as the database prefix.
-   */
-  public function tearDownCacheBackend() {
-  }
-
-  /**
-   * Gets a backend to test; this will get a shared instance set in the object.
-   *
-   * @return \Drupal\Core\Cache\CacheBackendInterface
-   *   Cache backend to test.
-   */
-  protected function getCacheBackend($bin = NULL) {
-    if (!isset($bin)) {
-      $bin = $this->getTestBin();
-    }
-    if (!isset($this->cachebackends[$bin])) {
-      $this->cachebackends[$bin] = $this->createCacheBackend($bin);
-      // Ensure the backend is empty.
-      $this->cachebackends[$bin]->deleteAll();
-    }
-    return $this->cachebackends[$bin];
-  }
-
-  protected function setUp() {
-    $this->cachebackends = array();
-    $this->defaultValue = $this->randomMachineName(10);
-
-    parent::setUp();
-
-    $this->setUpCacheBackend();
-  }
-
-  protected function tearDown() {
-    // Destruct the registered backend, each test will get a fresh instance,
-    // properly emptying it here ensure that on persistent data backends they
-    // will come up empty the next test.
-    foreach ($this->cachebackends as $bin => $cachebackend) {
-      $this->cachebackends[$bin]->deleteAll();
-    }
-    unset($this->cachebackends);
-
-    $this->tearDownCacheBackend();
-
-    parent::tearDown();
-  }
-
-  /**
-   * Tests the get and set methods of Drupal\Core\Cache\CacheBackendInterface.
-   */
-  public function testSetGet() {
-    $backend = $this->getCacheBackend();
-
-    $this->assertIdentical(FALSE, $backend->get('test1'), "Backend does not contain data for cache id test1.");
-    $with_backslash = array('foo' => '\Drupal\foo\Bar');
-    $backend->set('test1', $with_backslash);
-    $cached = $backend->get('test1');
-    $this->assert(is_object($cached), "Backend returned an object for cache id test1.");
-    $this->assertIdentical($with_backslash, $cached->data);
-    $this->assertTrue($cached->valid, 'Item is marked as valid.');
-    // We need to round because microtime may be rounded up in the backend.
-    $this->assertTrue($cached->created >= REQUEST_TIME && $cached->created <= round(microtime(TRUE), 3), 'Created time is correct.');
-    $this->assertEqual($cached->expire, Cache::PERMANENT, 'Expire time is correct.');
-
-    $this->assertIdentical(FALSE, $backend->get('test2'), "Backend does not contain data for cache id test2.");
-    $backend->set('test2', array('value' => 3), REQUEST_TIME + 3);
-    $cached = $backend->get('test2');
-    $this->assert(is_object($cached), "Backend returned an object for cache id test2.");
-    $this->assertIdentical(array('value' => 3), $cached->data);
-    $this->assertTrue($cached->valid, 'Item is marked as valid.');
-    $this->assertTrue($cached->created >= REQUEST_TIME && $cached->created <= round(microtime(TRUE), 3), 'Created time is correct.');
-    $this->assertEqual($cached->expire, REQUEST_TIME + 3, 'Expire time is correct.');
-
-    $backend->set('test3', 'foobar', REQUEST_TIME - 3);
-    $this->assertFalse($backend->get('test3'), 'Invalid item not returned.');
-    $cached = $backend->get('test3', TRUE);
-    $this->assert(is_object($cached), 'Backend returned an object for cache id test3.');
-    $this->assertFalse($cached->valid, 'Item is marked as valid.');
-    $this->assertTrue($cached->created >= REQUEST_TIME && $cached->created <= round(microtime(TRUE), 3), 'Created time is correct.');
-    $this->assertEqual($cached->expire, REQUEST_TIME - 3, 'Expire time is correct.');
-
-    $this->assertIdentical(FALSE, $backend->get('test4'), "Backend does not contain data for cache id test4.");
-    $with_eof = array('foo' => "\nEOF\ndata");
-    $backend->set('test4', $with_eof);
-    $cached = $backend->get('test4');
-    $this->assert(is_object($cached), "Backend returned an object for cache id test4.");
-    $this->assertIdentical($with_eof, $cached->data);
-    $this->assertTrue($cached->valid, 'Item is marked as valid.');
-    $this->assertTrue($cached->created >= REQUEST_TIME && $cached->created <= round(microtime(TRUE), 3), 'Created time is correct.');
-    $this->assertEqual($cached->expire, Cache::PERMANENT, 'Expire time is correct.');
-
-    $this->assertIdentical(FALSE, $backend->get('test5'), "Backend does not contain data for cache id test5.");
-    $with_eof_and_semicolon = array('foo' => "\nEOF;\ndata");
-    $backend->set('test5', $with_eof_and_semicolon);
-    $cached = $backend->get('test5');
-    $this->assert(is_object($cached), "Backend returned an object for cache id test5.");
-    $this->assertIdentical($with_eof_and_semicolon, $cached->data);
-    $this->assertTrue($cached->valid, 'Item is marked as valid.');
-    $this->assertTrue($cached->created >= REQUEST_TIME && $cached->created <= round(microtime(TRUE), 3), 'Created time is correct.');
-    $this->assertEqual($cached->expire, Cache::PERMANENT, 'Expire time is correct.');
-
-    $with_variable = array('foo' => '$bar');
-    $backend->set('test6', $with_variable);
-    $cached = $backend->get('test6');
-    $this->assert(is_object($cached), "Backend returned an object for cache id test6.");
-    $this->assertIdentical($with_variable, $cached->data);
-
-    // Make sure that a cached object is not affected by changing the original.
-    $data = new \stdClass();
-    $data->value = 1;
-    $data->obj = new \stdClass();
-    $data->obj->value = 2;
-    $backend->set('test7', $data);
-    $expected_data = clone $data;
-    // Add a property to the original. It should not appear in the cached data.
-    $data->this_should_not_be_in_the_cache = TRUE;
-    $cached = $backend->get('test7');
-    $this->assert(is_object($cached), "Backend returned an object for cache id test7.");
-    $this->assertEqual($expected_data, $cached->data);
-    $this->assertFalse(isset($cached->data->this_should_not_be_in_the_cache));
-    // Add a property to the cache data. It should not appear when we fetch
-    // the data from cache again.
-    $cached->data->this_should_not_be_in_the_cache = TRUE;
-    $fresh_cached = $backend->get('test7');
-    $this->assertFalse(isset($fresh_cached->data->this_should_not_be_in_the_cache));
-
-    // Check with a long key.
-    $cid = str_repeat('a', 300);
-    $backend->set($cid, 'test');
-    $this->assertEqual('test', $backend->get($cid)->data);
-
-    // Check that the cache key is case sensitive.
-    $backend->set('TEST8', 'value');
-    $this->assertEqual('value', $backend->get('TEST8')->data);
-    $this->assertFalse($backend->get('test8'));
-
-    // Calling ::set() with invalid cache tags. This should fail an assertion.
-    try {
-      $backend->set('assertion_test', 'value', Cache::PERMANENT, ['node' => [3, 5, 7]]);
-      $this->fail('::set() was called with invalid cache tags, runtime assertion did not fail.');
-    }
-    catch (\AssertionError $e) {
-      $this->pass('::set() was called with invalid cache tags, runtime assertion failed.');
-    }
-  }
-
-  /**
-   * Tests Drupal\Core\Cache\CacheBackendInterface::delete().
-   */
-  public function testDelete() {
-    $backend = $this->getCacheBackend();
-
-    $this->assertIdentical(FALSE, $backend->get('test1'), "Backend does not contain data for cache id test1.");
-    $backend->set('test1', 7);
-    $this->assert(is_object($backend->get('test1')), "Backend returned an object for cache id test1.");
-
-    $this->assertIdentical(FALSE, $backend->get('test2'), "Backend does not contain data for cache id test2.");
-    $backend->set('test2', 3);
-    $this->assert(is_object($backend->get('test2')), "Backend returned an object for cache id %cid.");
-
-    $backend->delete('test1');
-    $this->assertIdentical(FALSE, $backend->get('test1'), "Backend does not contain data for cache id test1 after deletion.");
-
-    $this->assert(is_object($backend->get('test2')), "Backend still has an object for cache id test2.");
-
-    $backend->delete('test2');
-    $this->assertIdentical(FALSE, $backend->get('test2'), "Backend does not contain data for cache id test2 after deletion.");
-
-    $long_cid = str_repeat('a', 300);
-    $backend->set($long_cid, 'test');
-    $backend->delete($long_cid);
-    $this->assertIdentical(FALSE, $backend->get($long_cid), "Backend does not contain data for long cache id after deletion.");
-  }
-
-  /**
-   * Tests data type preservation.
-   */
-  public function testValueTypeIsKept() {
-    $backend = $this->getCacheBackend();
-
-    $variables = array(
-      'test1' => 1,
-      'test2' => '0',
-      'test3' => '',
-      'test4' => 12.64,
-      'test5' => FALSE,
-      'test6' => array(1, 2, 3),
-    );
-
-    // Create cache entries.
-    foreach ($variables as $cid => $data) {
-      $backend->set($cid, $data);
-    }
-
-    // Retrieve and test cache objects.
-    foreach ($variables as $cid => $value) {
-      $object = $backend->get($cid);
-      $this->assert(is_object($object), sprintf("Backend returned an object for cache id %s.", $cid));
-      $this->assertIdentical($value, $object->data, sprintf("Data of cached id %s kept is identical in type and value", $cid));
-    }
-  }
-
-  /**
-   * Tests Drupal\Core\Cache\CacheBackendInterface::getMultiple().
-   */
-  public function testGetMultiple() {
-    $backend = $this->getCacheBackend();
-
-    // Set numerous testing keys.
-    $long_cid = str_repeat('a', 300);
-    $backend->set('test1', 1);
-    $backend->set('test2', 3);
-    $backend->set('test3', 5);
-    $backend->set('test4', 7);
-    $backend->set('test5', 11);
-    $backend->set('test6', 13);
-    $backend->set('test7', 17);
-    $backend->set($long_cid, 300);
-
-    // Mismatch order for harder testing.
-    $reference = array(
-      'test3',
-      'test7',
-      'test21', // Cid does not exist.
-      'test6',
-      'test19', // Cid does not exist until added before second getMultiple().
-      'test2',
-    );
-
-    $cids = $reference;
-    $ret = $backend->getMultiple($cids);
-    // Test return - ensure it contains existing cache ids.
-    $this->assert(isset($ret['test2']), "Existing cache id test2 is set.");
-    $this->assert(isset($ret['test3']), "Existing cache id test3 is set.");
-    $this->assert(isset($ret['test6']), "Existing cache id test6 is set.");
-    $this->assert(isset($ret['test7']), "Existing cache id test7 is set.");
-    // Test return - ensure that objects has expected properties.
-    $this->assertTrue($ret['test2']->valid, 'Item is marked as valid.');
-    $this->assertTrue($ret['test2']->created >= REQUEST_TIME && $ret['test2']->created <= round(microtime(TRUE), 3), 'Created time is correct.');
-    $this->assertEqual($ret['test2']->expire, Cache::PERMANENT, 'Expire time is correct.');
-    // Test return - ensure it does not contain nonexistent cache ids.
-    $this->assertFalse(isset($ret['test19']), "Nonexistent cache id test19 is not set.");
-    $this->assertFalse(isset($ret['test21']), "Nonexistent cache id test21 is not set.");
-    // Test values.
-    $this->assertIdentical($ret['test2']->data, 3, "Existing cache id test2 has the correct value.");
-    $this->assertIdentical($ret['test3']->data, 5, "Existing cache id test3 has the correct value.");
-    $this->assertIdentical($ret['test6']->data, 13, "Existing cache id test6 has the correct value.");
-    $this->assertIdentical($ret['test7']->data, 17, "Existing cache id test7 has the correct value.");
-    // Test $cids array - ensure it contains cache id's that do not exist.
-    $this->assert(in_array('test19', $cids), "Nonexistent cache id test19 is in cids array.");
-    $this->assert(in_array('test21', $cids), "Nonexistent cache id test21 is in cids array.");
-    // Test $cids array - ensure it does not contain cache id's that exist.
-    $this->assertFalse(in_array('test2', $cids), "Existing cache id test2 is not in cids array.");
-    $this->assertFalse(in_array('test3', $cids), "Existing cache id test3 is not in cids array.");
-    $this->assertFalse(in_array('test6', $cids), "Existing cache id test6 is not in cids array.");
-    $this->assertFalse(in_array('test7', $cids), "Existing cache id test7 is not in cids array.");
-
-    // Test a second time after deleting and setting new keys which ensures that
-    // if the backend uses statics it does not cause unexpected results.
-    $backend->delete('test3');
-    $backend->delete('test6');
-    $backend->set('test19', 57);
-
-    $cids = $reference;
-    $ret = $backend->getMultiple($cids);
-    // Test return - ensure it contains existing cache ids.
-    $this->assert(isset($ret['test2']), "Existing cache id test2 is set");
-    $this->assert(isset($ret['test7']), "Existing cache id test7 is set");
-    $this->assert(isset($ret['test19']), "Added cache id test19 is set");
-    // Test return - ensure it does not contain nonexistent cache ids.
-    $this->assertFalse(isset($ret['test3']), "Deleted cache id test3 is not set");
-    $this->assertFalse(isset($ret['test6']), "Deleted cache id test6 is not set");
-    $this->assertFalse(isset($ret['test21']), "Nonexistent cache id test21 is not set");
-    // Test values.
-    $this->assertIdentical($ret['test2']->data, 3, "Existing cache id test2 has the correct value.");
-    $this->assertIdentical($ret['test7']->data, 17, "Existing cache id test7 has the correct value.");
-    $this->assertIdentical($ret['test19']->data, 57, "Added cache id test19 has the correct value.");
-    // Test $cids array - ensure it contains cache id's that do not exist.
-    $this->assert(in_array('test3', $cids), "Deleted cache id test3 is in cids array.");
-    $this->assert(in_array('test6', $cids), "Deleted cache id test6 is in cids array.");
-    $this->assert(in_array('test21', $cids), "Nonexistent cache id test21 is in cids array.");
-    // Test $cids array - ensure it does not contain cache id's that exist.
-    $this->assertFalse(in_array('test2', $cids), "Existing cache id test2 is not in cids array.");
-    $this->assertFalse(in_array('test7', $cids), "Existing cache id test7 is not in cids array.");
-    $this->assertFalse(in_array('test19', $cids), "Added cache id test19 is not in cids array.");
-
-    // Test with a long $cid and non-numeric array key.
-    $cids = array('key:key' => $long_cid);
-    $return = $backend->getMultiple($cids);
-    $this->assertEqual(300, $return[$long_cid]->data);
-    $this->assertTrue(empty($cids));
-  }
-
-  /**
-   * Tests \Drupal\Core\Cache\CacheBackendInterface::setMultiple().
-   */
-  public function testSetMultiple() {
-    $backend = $this->getCacheBackend();
-
-    $future_expiration = REQUEST_TIME + 100;
-
-    // Set multiple testing keys.
-    $backend->set('cid_1', 'Some other value');
-    $items = array(
-      'cid_1' => array('data' => 1),
-      'cid_2' => array('data' => 2),
-      'cid_3' => array('data' => array(1, 2)),
-      'cid_4' => array('data' => 1, 'expire' => $future_expiration),
-      'cid_5' => array('data' => 1, 'tags' => array('test:a', 'test:b')),
-    );
-    $backend->setMultiple($items);
-    $cids = array_keys($items);
-    $cached = $backend->getMultiple($cids);
-
-    $this->assertEqual($cached['cid_1']->data, $items['cid_1']['data'], 'Over-written cache item set correctly.');
-    $this->assertTrue($cached['cid_1']->valid, 'Item is marked as valid.');
-    $this->assertTrue($cached['cid_1']->created >= REQUEST_TIME && $cached['cid_1']->created <= round(microtime(TRUE), 3), 'Created time is correct.');
-    $this->assertEqual($cached['cid_1']->expire, CacheBackendInterface::CACHE_PERMANENT, 'Cache expiration defaults to permanent.');
-
-    $this->assertEqual($cached['cid_2']->data, $items['cid_2']['data'], 'New cache item set correctly.');
-    $this->assertEqual($cached['cid_2']->expire, CacheBackendInterface::CACHE_PERMANENT, 'Cache expiration defaults to permanent.');
-
-    $this->assertEqual($cached['cid_3']->data, $items['cid_3']['data'], 'New cache item with serialized data set correctly.');
-    $this->assertEqual($cached['cid_3']->expire, CacheBackendInterface::CACHE_PERMANENT, 'Cache expiration defaults to permanent.');
-
-    $this->assertEqual($cached['cid_4']->data, $items['cid_4']['data'], 'New cache item set correctly.');
-    $this->assertEqual($cached['cid_4']->expire, $future_expiration, 'Cache expiration has been correctly set.');
-
-    $this->assertEqual($cached['cid_5']->data, $items['cid_5']['data'], 'New cache item set correctly.');
-
-    // Calling ::setMultiple() with invalid cache tags. This should fail an
-    // assertion.
-    try {
-      $items = [
-        'exception_test_1' => array('data' => 1, 'tags' => []),
-        'exception_test_2' => array('data' => 2, 'tags' => ['valid']),
-        'exception_test_3' => array('data' => 3, 'tags' => ['node' => [3, 5, 7]]),
-      ];
-      $backend->setMultiple($items);
-      $this->fail('::setMultiple() was called with invalid cache tags, runtime assertion did not fail.');
-    }
-    catch (\AssertionError $e) {
-      $this->pass('::setMultiple() was called with invalid cache tags, runtime assertion failed.');
-    }
-  }
-
-  /**
-   * Test Drupal\Core\Cache\CacheBackendInterface::delete() and
-   * Drupal\Core\Cache\CacheBackendInterface::deleteMultiple().
-   */
-  public function testDeleteMultiple() {
-    $backend = $this->getCacheBackend();
-
-    // Set numerous testing keys.
-    $backend->set('test1', 1);
-    $backend->set('test2', 3);
-    $backend->set('test3', 5);
-    $backend->set('test4', 7);
-    $backend->set('test5', 11);
-    $backend->set('test6', 13);
-    $backend->set('test7', 17);
-
-    $backend->delete('test1');
-    $backend->delete('test23'); // Nonexistent key should not cause an error.
-    $backend->deleteMultiple(array(
-      'test3',
-      'test5',
-      'test7',
-      'test19', // Nonexistent key should not cause an error.
-      'test21', // Nonexistent key should not cause an error.
-    ));
-
-    // Test if expected keys have been deleted.
-    $this->assertIdentical(FALSE, $backend->get('test1'), "Cache id test1 deleted.");
-    $this->assertIdentical(FALSE, $backend->get('test3'), "Cache id test3 deleted.");
-    $this->assertIdentical(FALSE, $backend->get('test5'), "Cache id test5 deleted.");
-    $this->assertIdentical(FALSE, $backend->get('test7'), "Cache id test7 deleted.");
-
-    // Test if expected keys exist.
-    $this->assertNotIdentical(FALSE, $backend->get('test2'), "Cache id test2 exists.");
-    $this->assertNotIdentical(FALSE, $backend->get('test4'), "Cache id test4 exists.");
-    $this->assertNotIdentical(FALSE, $backend->get('test6'), "Cache id test6 exists.");
-
-    // Test if that expected keys do not exist.
-    $this->assertIdentical(FALSE, $backend->get('test19'), "Cache id test19 does not exist.");
-    $this->assertIdentical(FALSE, $backend->get('test21'), "Cache id test21 does not exist.");
-
-    // Calling deleteMultiple() with an empty array should not cause an error.
-    $this->assertFalse($backend->deleteMultiple(array()));
-  }
-
-  /**
-   * Test Drupal\Core\Cache\CacheBackendInterface::deleteAll().
-   */
-  public function testDeleteAll() {
-    $backend_a = $this->getCacheBackend();
-    $backend_b = $this->getCacheBackend('bootstrap');
-
-    // Set both expiring and permanent keys.
-    $backend_a->set('test1', 1, Cache::PERMANENT);
-    $backend_a->set('test2', 3, time() + 1000);
-    $backend_b->set('test3', 4, Cache::PERMANENT);
-
-    $backend_a->deleteAll();
-
-    $this->assertFalse($backend_a->get('test1'), 'First key has been deleted.');
-    $this->assertFalse($backend_a->get('test2'), 'Second key has been deleted.');
-    $this->assertTrue($backend_b->get('test3'), 'Item in other bin is preserved.');
-  }
-
-  /**
-   * Test Drupal\Core\Cache\CacheBackendInterface::invalidate() and
-   * Drupal\Core\Cache\CacheBackendInterface::invalidateMultiple().
-   */
-  function testInvalidate() {
-    $backend = $this->getCacheBackend();
-    $backend->set('test1', 1);
-    $backend->set('test2', 2);
-    $backend->set('test3', 2);
-    $backend->set('test4', 2);
-
-    $reference = array('test1', 'test2', 'test3', 'test4');
-
-    $cids = $reference;
-    $ret = $backend->getMultiple($cids);
-    $this->assertEqual(count($ret), 4, 'Four items returned.');
-
-    $backend->invalidate('test1');
-    $backend->invalidateMultiple(array('test2', 'test3'));
-
-    $cids = $reference;
-    $ret = $backend->getMultiple($cids);
-    $this->assertEqual(count($ret), 1, 'Only one item element returned.');
-
-    $cids = $reference;
-    $ret = $backend->getMultiple($cids, TRUE);
-    $this->assertEqual(count($ret), 4, 'Four items returned.');
-
-    // Calling invalidateMultiple() with an empty array should not cause an
-    // error.
-    $this->assertFalse($backend->invalidateMultiple(array()));
-  }
-
-  /**
-   * Tests Drupal\Core\Cache\CacheBackendInterface::invalidateTags().
-   */
-  function testInvalidateTags() {
-    $backend = $this->getCacheBackend();
-
-    // Create two cache entries with the same tag and tag value.
-    $backend->set('test_cid_invalidate1', $this->defaultValue, Cache::PERMANENT, array('test_tag:2'));
-    $backend->set('test_cid_invalidate2', $this->defaultValue, Cache::PERMANENT, array('test_tag:2'));
-    $this->assertTrue($backend->get('test_cid_invalidate1') && $backend->get('test_cid_invalidate2'), 'Two cache items were created.');
-
-    // Invalidate test_tag of value 1. This should invalidate both entries.
-    Cache::invalidateTags(array('test_tag:2'));
-    $this->assertFalse($backend->get('test_cid_invalidate1') || $backend->get('test_cid_invalidate2'), 'Two cache items invalidated after invalidating a cache tag.');
-    $this->assertTrue($backend->get('test_cid_invalidate1', TRUE) && $backend->get('test_cid_invalidate2', TRUE), 'Cache items not deleted after invalidating a cache tag.');
-
-    // Create two cache entries with the same tag and an array tag value.
-    $backend->set('test_cid_invalidate1', $this->defaultValue, Cache::PERMANENT, array('test_tag:1'));
-    $backend->set('test_cid_invalidate2', $this->defaultValue, Cache::PERMANENT, array('test_tag:1'));
-    $this->assertTrue($backend->get('test_cid_invalidate1') && $backend->get('test_cid_invalidate2'), 'Two cache items were created.');
-
-    // Invalidate test_tag of value 1. This should invalidate both entries.
-    Cache::invalidateTags(array('test_tag:1'));
-    $this->assertFalse($backend->get('test_cid_invalidate1') || $backend->get('test_cid_invalidate2'), 'Two caches removed after invalidating a cache tag.');
-    $this->assertTrue($backend->get('test_cid_invalidate1', TRUE) && $backend->get('test_cid_invalidate2', TRUE), 'Cache items not deleted after invalidating a cache tag.');
-
-    // Create three cache entries with a mix of tags and tag values.
-    $backend->set('test_cid_invalidate1', $this->defaultValue, Cache::PERMANENT, array('test_tag:1'));
-    $backend->set('test_cid_invalidate2', $this->defaultValue, Cache::PERMANENT, array('test_tag:2'));
-    $backend->set('test_cid_invalidate3', $this->defaultValue, Cache::PERMANENT, array('test_tag_foo:3'));
-    $this->assertTrue($backend->get('test_cid_invalidate1') && $backend->get('test_cid_invalidate2') && $backend->get('test_cid_invalidate3'), 'Three cached items were created.');
-    Cache::invalidateTags(array('test_tag_foo:3'));
-    $this->assertTrue($backend->get('test_cid_invalidate1') && $backend->get('test_cid_invalidate2'), 'Cache items not matching the tag were not invalidated.');
-    $this->assertFalse($backend->get('test_cid_invalidated3'), 'Cached item matching the tag was removed.');
-
-    // Create cache entry in multiple bins. Two cache entries
-    // (test_cid_invalidate1 and test_cid_invalidate2) still exist from previous
-    // tests.
-    $tags = array('test_tag:1', 'test_tag:2', 'test_tag:3');
-    $bins = array('path', 'bootstrap', 'page');
-    foreach ($bins as $bin) {
-      $this->getCacheBackend($bin)->set('test', $this->defaultValue, Cache::PERMANENT, $tags);
-      $this->assertTrue($this->getCacheBackend($bin)->get('test'), 'Cache item was set in bin.');
-    }
-
-    Cache::invalidateTags(array('test_tag:2'));
-
-    // Test that the cache entry has been invalidated in multiple bins.
-    foreach ($bins as $bin) {
-      $this->assertFalse($this->getCacheBackend($bin)->get('test'), 'Tag invalidation affected item in bin.');
-    }
-    // Test that the cache entry with a matching tag has been invalidated.
-    $this->assertFalse($this->getCacheBackend($bin)->get('test_cid_invalidate2'), 'Cache items matching tag were invalidated.');
-    // Test that the cache entry with without a matching tag still exists.
-    $this->assertTrue($this->getCacheBackend($bin)->get('test_cid_invalidate1'), 'Cache items not matching tag were not invalidated.');
-  }
-
-  /**
-   * Test Drupal\Core\Cache\CacheBackendInterface::invalidateAll().
-   */
-  public function testInvalidateAll() {
-    $backend_a = $this->getCacheBackend();
-    $backend_b = $this->getCacheBackend('bootstrap');
-
-    // Set both expiring and permanent keys.
-    $backend_a->set('test1', 1, Cache::PERMANENT);
-    $backend_a->set('test2', 3, time() + 1000);
-    $backend_b->set('test3', 4, Cache::PERMANENT);
-
-    $backend_a->invalidateAll();
-
-    $this->assertFalse($backend_a->get('test1'), 'First key has been invalidated.');
-    $this->assertFalse($backend_a->get('test2'), 'Second key has been invalidated.');
-    $this->assertTrue($backend_b->get('test3'), 'Item in other bin is preserved.');
-    $this->assertTrue($backend_a->get('test1', TRUE), 'First key has not been deleted.');
-    $this->assertTrue($backend_a->get('test2', TRUE), 'Second key has not been deleted.');
-  }
-
-  /**
-   * Tests Drupal\Core\Cache\CacheBackendInterface::removeBin().
-   */
-  public function testRemoveBin() {
-    $backend_a = $this->getCacheBackend();
-    $backend_b = $this->getCacheBackend('bootstrap');
-
-    // Set both expiring and permanent keys.
-    $backend_a->set('test1', 1, Cache::PERMANENT);
-    $backend_a->set('test2', 3, time() + 1000);
-    $backend_b->set('test3', 4, Cache::PERMANENT);
-
-    $backend_a->removeBin();
-
-    $this->assertFalse($backend_a->get('test1'), 'First key has been deleted.');
-    $this->assertFalse($backend_a->get('test2', TRUE), 'Second key has been deleted.');
-    $this->assertTrue($backend_b->get('test3'), 'Item in other bin is preserved.');
-  }
-
-}
diff --git a/core/tests/Drupal/KernelTests/Core/Config/CacheabilityMetadataConfigOverrideTest.php b/core/tests/Drupal/KernelTests/Core/Config/CacheabilityMetadataConfigOverrideTest.php
index c52e3ea..306d102 100644
--- a/core/tests/Drupal/KernelTests/Core/Config/CacheabilityMetadataConfigOverrideTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Config/CacheabilityMetadataConfigOverrideTest.php
@@ -21,7 +21,6 @@ class CacheabilityMetadataConfigOverrideTest extends KernelTestBase {
     'config',
     'config_override_test',
     'system',
-    'user'
   ];
 
   /**
diff --git a/core/tests/Drupal/KernelTests/Core/Config/ConfigDependencyTest.php b/core/tests/Drupal/KernelTests/Core/Config/ConfigDependencyTest.php
index d30b3c5..2fd6301 100644
--- a/core/tests/Drupal/KernelTests/Core/Config/ConfigDependencyTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Config/ConfigDependencyTest.php
@@ -188,8 +188,7 @@ public function testConfigEntityUninstall() {
     /** @var \Drupal\Core\Config\ConfigManagerInterface $config_manager */
     $config_manager = \Drupal::service('config.manager');
     /** @var \Drupal\Core\Config\Entity\ConfigEntityStorage $storage */
-    $storage = $this->container->get('entity.manager')
-      ->getStorage('config_test');
+    $storage = $this->container->get('entity.manager')->getStorage('config_test');
     // Test dependencies between modules.
     $entity1 = $storage->create(
       array(
@@ -222,42 +221,14 @@ public function testConfigEntityUninstall() {
     $config_manager->uninstall('module', 'node');
     $this->assertFalse($storage->load('entity1'), 'Entity 1 deleted');
     $this->assertFalse($storage->load('entity2'), 'Entity 2 deleted');
-  }
-
-  /**
-   * Data provider for self::testConfigEntityUninstallComplex().
-   */
-  public function providerConfigEntityUninstallComplex() {
-    // Ensure that alphabetical order has no influence on dependency fixing and
-    // removal.
-    return [
-      [['a', 'b', 'c', 'd']],
-      [['d', 'c', 'b', 'a']],
-      [['c', 'd', 'a', 'b']],
-    ];
-  }
 
-  /**
-   * Tests complex configuration entity dependency handling during uninstall.
-   *
-   * Configuration entities can be deleted or updated during module uninstall
-   * because they have dependencies on the module.
-   *
-   * @param array $entity_id_suffixes
-   *   The suffixes to add to the 4 entities created by the test.
-   *
-   * @dataProvider providerConfigEntityUninstallComplex
-   */
-  public function testConfigEntityUninstallComplex(array $entity_id_suffixes) {
-    /** @var \Drupal\Core\Config\ConfigManagerInterface $config_manager */
-    $config_manager = \Drupal::service('config.manager');
-    /** @var \Drupal\Core\Config\Entity\ConfigEntityStorage $storage */
-    $storage = $this->container->get('entity.manager')
-      ->getStorage('config_test');
-    // Entity 1 will be deleted because it depends on node.
-    $entity_1 = $storage->create(
+    // Set a more complicated test where dependencies will be fixed.
+    \Drupal::state()->set('config_test.fix_dependencies', array($entity1->getConfigDependencyName()));
+    \Drupal::state()->set('config_test.on_dependency_removal_called', []);
+    // Entity1 will be deleted because it depends on node.
+    $entity1 = $storage->create(
       array(
-        'id' => 'entity_' . $entity_id_suffixes[0],
+        'id' => 'entity1',
         'dependencies' => array(
           'enforced' => array(
             'module' => array('node', 'config_test')
@@ -265,85 +236,77 @@ public function testConfigEntityUninstallComplex(array $entity_id_suffixes) {
         ),
       )
     );
-    $entity_1->save();
+    $entity1->save();
 
-    // Entity 2 has a dependency on entity 1 but it can be fixed because
+    // Entity2 has a dependency on Entity1 but it can be fixed because
     // \Drupal\config_test\Entity::onDependencyRemoval() will remove the
     // dependency before config entities are deleted.
-    $entity_2 = $storage->create(
+    $entity2 = $storage->create(
       array(
-        'id' => 'entity_' . $entity_id_suffixes[1],
+        'id' => 'entity2',
         'dependencies' => array(
           'enforced' => array(
-            'config' => array($entity_1->getConfigDependencyName()),
+            'config' => array($entity1->getConfigDependencyName()),
           ),
         ),
       )
     );
-    $entity_2->save();
+    $entity2->save();
 
-    // Entity 3 will be unchanged because it is dependent on entity 2 which can
+    // Entity3 will be unchanged because it is dependent on Entity2 which can
     // be fixed. The ConfigEntityInterface::onDependencyRemoval() method will
     // not be called for this entity.
-    $entity_3 = $storage->create(
+    $entity3 = $storage->create(
       array(
-        'id' => 'entity_' . $entity_id_suffixes[2],
+        'id' => 'entity3',
         'dependencies' => array(
           'enforced' => array(
-            'config' => array($entity_2->getConfigDependencyName()),
+            'config' => array($entity2->getConfigDependencyName()),
           ),
         ),
       )
     );
-    $entity_3->save();
+    $entity3->save();
 
-    // Entity 4's config dependency will be fixed but it will still be deleted
+    // Entity4's config dependency will be fixed but it will still be deleted
     // because it also depends on the node module.
-    $entity_4 = $storage->create(
+    $entity4 = $storage->create(
       array(
-        'id' => 'entity_' . $entity_id_suffixes[3],
+        'id' => 'entity4',
         'dependencies' => array(
           'enforced' => array(
-            'config' => array($entity_1->getConfigDependencyName()),
+            'config' => array($entity1->getConfigDependencyName()),
             'module' => array('node', 'config_test')
           ),
         ),
       )
     );
-    $entity_4->save();
-
-    // Set a more complicated test where dependencies will be fixed.
-    \Drupal::state()->set('config_test.fix_dependencies', array($entity_1->getConfigDependencyName()));
-    \Drupal::state()->set('config_test.on_dependency_removal_called', []);
+    $entity4->save();
 
     // Do a dry run using
     // \Drupal\Core\Config\ConfigManager::getConfigEntitiesToChangeOnDependencyRemoval().
     $config_entities = $config_manager->getConfigEntitiesToChangeOnDependencyRemoval('module', ['node']);
-    $this->assertEqual($entity_1->uuid(), $config_entities['delete'][1]->uuid(), 'Entity 1 will be deleted.');
-    $this->assertEqual($entity_2->uuid(), reset($config_entities['update'])->uuid(), 'Entity 2 will be updated.');
-    $this->assertEqual($entity_3->uuid(), reset($config_entities['unchanged'])->uuid(), 'Entity 3 is not changed.');
-    $this->assertEqual($entity_4->uuid(), $config_entities['delete'][0]->uuid(), 'Entity 4 will be deleted.');
+    $this->assertEqual($entity1->uuid(), $config_entities['delete'][0]->uuid(), 'Entity 1 will be deleted.');
+    $this->assertEqual($entity2->uuid(), reset($config_entities['update'])->uuid(), 'Entity 2 will be updated.');
+    $this->assertEqual($entity3->uuid(), reset($config_entities['unchanged'])->uuid(), 'Entity 3 is not changed.');
+    $this->assertEqual($entity4->uuid(), $config_entities['delete'][1]->uuid(), 'Entity 4 will be deleted.');
 
     $called = \Drupal::state()->get('config_test.on_dependency_removal_called', []);
-    $this->assertFalse(in_array($entity_3->id(), $called), 'ConfigEntityInterface::onDependencyRemoval() is not called for entity 3.');
-    $this->assertIdentical([$entity_1->id(), $entity_4->id(), $entity_2->id()], $called, 'The most dependent entites have ConfigEntityInterface::onDependencyRemoval() called first.');
+    $this->assertFalse(in_array($entity3->id(), $called), 'ConfigEntityInterface::onDependencyRemoval() is not called for entity 3.');
+    $this->assertIdentical(['entity1', 'entity2', 'entity4'], $called, 'The most dependent entites have ConfigEntityInterface::onDependencyRemoval() called first.');
 
-    // Perform a module rebuild so we can know where the node module is located
-    // and uninstall it.
-    // @todo Remove as part of https://www.drupal.org/node/2186491
-    system_rebuild_module_data();
     // Perform the uninstall.
     $config_manager->uninstall('module', 'node');
 
     // Test that expected actions have been performed.
-    $this->assertFalse($storage->load($entity_1->id()), 'Entity 1 deleted');
-    $entity_2 = $storage->load($entity_2->id());
-    $this->assertTrue($entity_2, 'Entity 2 not deleted');
-    $this->assertEqual($entity_2->calculateDependencies()->getDependencies()['config'], array(), 'Entity 2 dependencies updated to remove dependency on entity 1.');
-    $entity_3 = $storage->load($entity_3->id());
-    $this->assertTrue($entity_3, 'Entity 3 not deleted');
-    $this->assertEqual($entity_3->calculateDependencies()->getDependencies()['config'], [$entity_2->getConfigDependencyName()], 'Entity 3 still depends on entity 2.');
-    $this->assertFalse($storage->load($entity_4->id()), 'Entity 4 deleted');
+    $this->assertFalse($storage->load('entity1'), 'Entity 1 deleted');
+    $entity2 = $storage->load('entity2');
+    $this->assertTrue($entity2, 'Entity 2 not deleted');
+    $this->assertEqual($entity2->calculateDependencies()->getDependencies()['config'], array(), 'Entity 2 dependencies updated to remove dependency on Entity1.');
+    $entity3 = $storage->load('entity3');
+    $this->assertTrue($entity3, 'Entity 3 not deleted');
+    $this->assertEqual($entity3->calculateDependencies()->getDependencies()['config'], [$entity2->getConfigDependencyName()], 'Entity 3 still depends on Entity 2.');
+    $this->assertFalse($storage->load('entity4'), 'Entity 4 deleted');
   }
 
   /**
@@ -493,8 +456,8 @@ public function testContentEntityDelete() {
     $entity3->save();
 
     $config_entities = $config_manager->getConfigEntitiesToChangeOnDependencyRemoval('content', [$content_entity->getConfigDependencyName()]);
-    $this->assertEqual($entity1->uuid(), $config_entities['delete'][1]->uuid(), 'Entity 1 will be deleted.');
-    $this->assertEqual($entity2->uuid(), $config_entities['delete'][0]->uuid(), 'Entity 2 will be deleted.');
+    $this->assertEqual($entity1->uuid(), $config_entities['delete'][0]->uuid(), 'Entity 1 will be deleted.');
+    $this->assertEqual($entity2->uuid(), $config_entities['delete'][1]->uuid(), 'Entity 2 will be deleted.');
     $this->assertTrue(empty($config_entities['update']), 'No dependencies of the content entity will be updated.');
     $this->assertTrue(empty($config_entities['unchanged']), 'No dependencies of the content entity will be unchanged.');
   }
diff --git a/core/tests/Drupal/KernelTests/Core/Config/ConfigInstallTest.php b/core/tests/Drupal/KernelTests/Core/Config/ConfigInstallTest.php
index f8d76c8..20aa72a 100644
--- a/core/tests/Drupal/KernelTests/Core/Config/ConfigInstallTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Config/ConfigInstallTest.php
@@ -199,8 +199,8 @@ public function testDependencyChecking() {
     }
     catch (UnmetDependenciesException $e) {
       $this->assertEqual($e->getExtension(), 'config_install_dependency_test');
-      $this->assertEqual($e->getConfigObjects(), ['config_other_module_config_test.weird_simple_config', 'config_test.dynamic.other_module_test_with_dependency']);
-      $this->assertEqual($e->getMessage(), 'Configuration objects (config_other_module_config_test.weird_simple_config, config_test.dynamic.other_module_test_with_dependency) provided by config_install_dependency_test have unmet dependencies');
+      $this->assertEqual($e->getConfigObjects(), ['config_test.dynamic.other_module_test_with_dependency']);
+      $this->assertEqual($e->getMessage(), 'Configuration objects (config_test.dynamic.other_module_test_with_dependency) provided by config_install_dependency_test have unmet dependencies');
     }
     $this->installModules(['config_other_module_config_test']);
     $this->installModules(['config_install_dependency_test']);
diff --git a/core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php b/core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php
index 0cc3627..e7b6190 100644
--- a/core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php
@@ -97,8 +97,6 @@ function testConnectionOptions() {
     // Set up identical replica and confirm connection options are identical.
     Database::addConnectionInfo('default', 'replica', $connection_info['default']);
     $db2 = Database::getConnection('replica', 'default');
-    // Getting a driver class ensures the namespace option is set.
-    $this->assertEquals($db->getDriverClass('select'), $db2->getDriverClass('select'));
     $connectionOptions2 = $db2->getConnectionOptions();
 
     // Get a fresh copy of the default connection options.
diff --git a/core/tests/Drupal/KernelTests/Core/Database/LoggingTest.php b/core/tests/Drupal/KernelTests/Core/Database/LoggingTest.php
index c354c82..f4ee580 100644
--- a/core/tests/Drupal/KernelTests/Core/Database/LoggingTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Database/LoggingTest.php
@@ -126,13 +126,4 @@ function testEnableMultiConnectionLogging() {
     $this->assertEqual(count($queries2), 1, 'Correct number of queries recorded for second connection.');
   }
 
-  /**
-   * Tests that getLog with a wrong key return an empty array.
-   */
-  function testGetLoggingWrongKey() {
-    $result = Database::getLog('wrong');
-
-    $this->assertEqual($result, [], 'The function getLog with a wrong key returns an empty array.');
-  }
-
 }
diff --git a/core/tests/Drupal/KernelTests/Core/Database/SchemaTest.php b/core/tests/Drupal/KernelTests/Core/Database/SchemaTest.php
index 8641fd3..7866146 100644
--- a/core/tests/Drupal/KernelTests/Core/Database/SchemaTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Database/SchemaTest.php
@@ -505,7 +505,6 @@ function testSchemaAddField() {
           array('not null' => FALSE, 'default' => 7),
           array('not null' => TRUE, 'initial' => 1),
           array('not null' => TRUE, 'initial' => 1, 'default' => 7),
-          array('not null' => TRUE, 'initial_from_field' => 'serial_column'),
         );
 
         foreach ($variations as $variation) {
@@ -533,7 +532,6 @@ function testSchemaAddField() {
           array('not null' => FALSE, 'default' => 7),
           array('not null' => TRUE, 'initial' => 1),
           array('not null' => TRUE, 'initial' => 1, 'default' => 7),
-          array('not null' => TRUE, 'initial_from_field' => 'serial_column'),
         );
 
         foreach ($variations as $variation) {
@@ -622,19 +620,6 @@ protected function assertFieldCharacteristics($table_name, $field_name, $field_s
       $this->assertEqual($count, 0, 'Initial values filled out.');
     }
 
-    // Check that the initial value from another field has been registered.
-    if (isset($field_spec['initial_from_field'])) {
-      // There should be no row with a value different than
-      // $field_spec['initial_from_field'].
-      $count = db_select($table_name)
-        ->fields($table_name, array('serial_column'))
-        ->where($table_name . '.' . $field_spec['initial_from_field'] . ' <> ' . $table_name . '.' . $field_name)
-        ->countQuery()
-        ->execute()
-        ->fetchField();
-      $this->assertEqual($count, 0, 'Initial values from another field filled out.');
-    }
-
     // Check that the default value has been registered.
     if (isset($field_spec['default'])) {
       // Try inserting a row, and check the resulting value of the new column.
diff --git a/core/tests/Drupal/KernelTests/Core/Database/SelectComplexTest.php b/core/tests/Drupal/KernelTests/Core/Database/SelectComplexTest.php
index d6da254..cadf178 100644
--- a/core/tests/Drupal/KernelTests/Core/Database/SelectComplexTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Database/SelectComplexTest.php
@@ -155,20 +155,6 @@ function testRange() {
   }
 
   /**
-   * Test whether the range property of a select clause can be undone.
-   */
-  function testRangeUndo() {
-    $query = db_select('test');
-    $name_field = $query->addField('test', 'name');
-    $age_field = $query->addField('test', 'age', 'age');
-    $query->range(0, 2);
-    $query->range(NULL, NULL);
-    $query_result = $query->countQuery()->execute()->fetchField();
-
-    $this->assertEqual($query_result, 4, 'Returned the correct number of rows.');
-  }
-
-  /**
    * Tests distinct queries.
    */
   function testDistinct() {
@@ -389,50 +375,4 @@ function testSelectWithRowCount() {
     $this->assertTrue($exception, 'Exception was thrown');
   }
 
-  /**
-   * Test that join conditions can use Condition objects.
-   */
-  public function testJoinConditionObject() {
-    // Same test as testDefaultJoin, but with a Condition object.
-    $query = db_select('test_task', 't');
-    $join_cond = db_and()->where('t.pid = p.id');
-    $people_alias = $query->join('test', 'p', $join_cond);
-    $name_field = $query->addField($people_alias, 'name', 'name');
-    $query->addField('t', 'task', 'task');
-    $priority_field = $query->addField('t', 'priority', 'priority');
-
-    $query->orderBy($priority_field);
-    $result = $query->execute();
-
-    $num_records = 0;
-    $last_priority = 0;
-    foreach ($result as $record) {
-      $num_records++;
-      $this->assertTrue($record->$priority_field >= $last_priority, 'Results returned in correct order.');
-      $this->assertNotEqual($record->$name_field, 'Ringo', 'Taskless person not selected.');
-      $last_priority = $record->$priority_field;
-    }
-
-    $this->assertEqual($num_records, 7, 'Returned the correct number of rows.');
-
-    // Test a condition object that creates placeholders.
-    $t1_name = 'John';
-    $t2_name = 'George';
-    $join_cond = db_and()
-      ->condition('t1.name', $t1_name)
-      ->condition('t2.name', $t2_name);
-    $query = db_select('test', 't1');
-    $query->innerJoin('test', 't2', $join_cond);
-    $query->addField('t1', 'name', 't1_name');
-    $query->addField('t2', 'name', 't2_name');
-
-    $num_records = $query->countQuery()->execute()->fetchField();
-    $this->assertEqual($num_records, 1, 'Query expected to return 1 row. Actual: ' . $num_records);
-    if ($num_records == 1) {
-      $record = $query->execute()->fetchObject();
-      $this->assertEqual($record->t1_name, $t1_name, 'Query expected to retrieve name ' . $t1_name . ' from table t1. Actual: ' . $record->t1_name);
-      $this->assertEqual($record->t2_name, $t2_name, 'Query expected to retrieve name ' . $t2_name . ' from table t2. Actual: ' . $record->t2_name);
-    }
-  }
-
 }
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityAutocompleteTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityAutocompleteTest.php
index ae4925c..f03599d 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/EntityAutocompleteTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityAutocompleteTest.php
@@ -146,7 +146,7 @@ public function testSelectionSettingsHandling() {
    *   The label of the entity to query by.
    *
    * @return mixed
-   *   The JSON value encoded in its appropriate PHP type.
+   *  The JSON value encoded in its appropriate PHP type.
    */
   protected function getAutocompleteResult($input) {
     $request = Request::create('entity_reference_autocomplete/' . $this->entityType . '/default');
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php
index eb0fbf6..d7a160a 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php
@@ -247,7 +247,7 @@ function testEntityQuery() {
       ->condition("$greetings.value", 'merhaba')
       ->sort('id')
       ->execute();
-    $entities = EntityTestMulRev::loadMultiple($ids);
+    $entities = entity_load_multiple('entity_test_mulrev', $ids);
     $first_entity = reset($entities);
     $old_name = $first_entity->name->value;
     foreach ($entities as $entity) {
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityViewBuilderTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityViewBuilderTest.php
index 156b799..1c3a310 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/EntityViewBuilderTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityViewBuilderTest.php
@@ -165,7 +165,6 @@ public function testEntityViewBuilderCacheToggling() {
     $this->assertTrue(isset($build['#cache']) && array_keys($build['#cache']) == ['tags', 'contexts', 'max-age'], 'A view mode with render cache disabled has the correct output (only cache tags, contexts and max-age).');
 
     // Test that an entity type can opt out of render caching completely.
-    $this->installEntitySchema('entity_test_label');
     $entity_test_no_cache = $this->createTestEntity('entity_test_label');
     $entity_test_no_cache->save();
     $build = $this->container->get('entity.manager')->getViewBuilder('entity_test_label')->view($entity_test_no_cache, 'full');
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php b/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php
index 449f3f2..07c5ec5 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php
@@ -274,7 +274,6 @@ function testFieldWrite() {
   function testLongNames() {
     // Use one of the longest entity_type names in core.
     $entity_type = $bundle = 'entity_test_label_callback';
-    $this->installEntitySchema('entity_test_label_callback');
     $storage = $this->container->get('entity.manager')->getStorage($entity_type);
 
     // Create two fields and generate random values.
diff --git a/core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php b/core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php
index 98423ca..cbbb75a 100644
--- a/core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php
@@ -8,11 +8,9 @@
 namespace Drupal\KernelTests\Core\Theme;
 
 use Drupal\Component\Utility\Html;
-use Drupal\Core\GeneratedLink;
 use Drupal\Core\Link;
 use Drupal\Core\Render\RenderContext;
 use Drupal\Core\Render\Markup;
-use Drupal\Core\Url;
 use Drupal\KernelTests\KernelTestBase;
 
 /**
@@ -53,7 +51,7 @@ public function testThemeRenderAndAutoescape($arg, $expected) {
     $renderer = \Drupal::service('renderer');
     $output = $renderer->executeInRenderContext($context, $theme_render_and_autoescape);
     $this->assertEquals($expected, $output);
-    $this->assertInternalType('string', $output);
+    $this-> assertInternalType('string', $output);
   }
 
   /**
@@ -89,50 +87,6 @@ public function testThemeEscapeAndRenderNotPrintable() {
     theme_render_and_autoescape(new NonPrintable());
   }
 
-  /**
-   * Ensure cache metadata is bubbled when using theme_render_and_autoescape().
-   */
-  public function testBubblingMetadata() {
-    $link = new GeneratedLink();
-    $link->setGeneratedLink('<a href="http://example.com"></a>');
-    $link->addCacheTags(['foo']);
-    $link->addAttachments(['library' => ['system/base']]);
-
-    $context = new RenderContext();
-    // Use a closure here since we need to render with a render context.
-    $theme_render_and_autoescape = function () use ($link) {
-      return theme_render_and_autoescape($link);
-    };
-    /** @var \Drupal\Core\Render\RendererInterface $renderer */
-    $renderer = \Drupal::service('renderer');
-    $output = $renderer->executeInRenderContext($context, $theme_render_and_autoescape);
-    $this->assertEquals('<a href="http://example.com"></a>', $output);
-    /** @var \Drupal\Core\Render\BubbleableMetadata $metadata */
-    $metadata = $context->pop();
-    $this->assertEquals(['foo'], $metadata->getCacheTags());
-    $this->assertEquals(['library' => ['system/base']], $metadata->getAttachments());
-  }
-
-  /**
-   * Ensure cache metadata is bubbled when using theme_render_and_autoescape().
-   */
-  public function testBubblingMetadataWithRenderable() {
-    $link = new Link('', Url::fromRoute('<current>'));
-
-    $context = new RenderContext();
-    // Use a closure here since we need to render with a render context.
-    $theme_render_and_autoescape = function () use ($link) {
-      return theme_render_and_autoescape($link);
-    };
-    /** @var \Drupal\Core\Render\RendererInterface $renderer */
-    $renderer = \Drupal::service('renderer');
-    $output = $renderer->executeInRenderContext($context, $theme_render_and_autoescape);
-    $this->assertEquals('<a href="/' . urlencode('<none>') . '"></a>', $output);
-    /** @var \Drupal\Core\Render\BubbleableMetadata $metadata */
-    $metadata = $context->pop();
-    $this->assertEquals(['route'], $metadata->getCacheContexts());
-  }
-
 }
 
 class NonPrintable { }
diff --git a/core/tests/Drupal/KernelTests/KernelTestBase.php b/core/tests/Drupal/KernelTests/KernelTestBase.php
index ebe6b87..6c41f07 100644
--- a/core/tests/Drupal/KernelTests/KernelTestBase.php
+++ b/core/tests/Drupal/KernelTests/KernelTestBase.php
@@ -261,6 +261,18 @@ protected function bootEnvironment() {
       $this->databasePrefix = 'simpletest' . $suffix;
     } while (is_dir($this->root . '/' . $this->siteDirectory));
 
+    $this->vfsRoot = vfsStream::setup('root', NULL, array(
+      'sites' => array(
+        'simpletest' => array(
+          $suffix => array(),
+        ),
+      ),
+    ));
+    $this->siteDirectory = vfsStream::url('root/sites/simpletest/' . $suffix);
+
+    mkdir($this->siteDirectory . '/files', 0775);
+    mkdir($this->siteDirectory . '/files/config/' . CONFIG_SYNC_DIRECTORY, 0775, TRUE);
+
     // Ensure that all code that relies on drupal_valid_test_ua() can still be
     // safely executed. This primarily affects the (test) site directory
     // resolution (used by e.g. LocalStream and PhpStorage).
@@ -276,7 +288,9 @@ protected function bootEnvironment() {
     );
     new Settings($settings);
 
-    $this->setUpFilesystem();
+    $GLOBALS['config_directories'] = array(
+      CONFIG_SYNC_DIRECTORY => $this->siteDirectory . '/files/config/sync',
+    );
 
     foreach (Database::getAllConnectionInfo() as $key => $targets) {
       Database::removeConnection($key);
@@ -285,32 +299,6 @@ protected function bootEnvironment() {
   }
 
   /**
-   * Sets up the filesystem, so things like the file directory.
-   */
-  protected function setUpFilesystem() {
-    $suffix = str_replace('simpletest', '', $this->databasePrefix);
-    $this->vfsRoot = vfsStream::setup('root', NULL, array(
-      'sites' => array(
-        'simpletest' => array(
-          $suffix => array(),
-        ),
-      ),
-    ));
-    $this->siteDirectory = vfsStream::url('root/sites/simpletest/' . $suffix);
-
-    mkdir($this->siteDirectory . '/files', 0775);
-    mkdir($this->siteDirectory . '/files/config/' . CONFIG_SYNC_DIRECTORY, 0775, TRUE);
-
-    $settings = Settings::getInstance() ? Settings::getAll() : [];
-    $settings['file_public_path'] = $this->siteDirectory . '/files';
-    new Settings($settings);
-
-    $GLOBALS['config_directories'] = array(
-      CONFIG_SYNC_DIRECTORY => $this->siteDirectory . '/files/config/sync',
-    );
-  }
-
-  /**
    * @return string
    */
   public function getDatabasePrefix() {
@@ -543,6 +531,11 @@ protected function initFileCache() {
 
     // Provide a default configuration, if not set.
     if (!isset($configuration['default'])) {
+      $configuration['default'] = [
+        'class' => FileCache::class,
+        'cache_backend_class' => NULL,
+        'cache_backend_configuration' => [],
+      ];
       // @todo Use extension_loaded('apcu') for non-testbot
       //  https://www.drupal.org/node/2447753.
       if (function_exists('apcu_fetch')) {
@@ -670,7 +663,7 @@ protected function assertPostConditions() {
     }
 
     // Shut down the kernel (if bootKernel() was called).
-    // @see \Drupal\KernelTests\Core\DrupalKernel\DrupalKernelTest
+    // @see \Drupal\system\Tests\DrupalKernel\DrupalKernelTest
     if ($this->container) {
       $this->container->get('kernel')->shutdown();
     }
@@ -857,7 +850,7 @@ protected function installEntitySchema($entity_type_id) {
    * To install test modules outside of the testing environment, add
    * @code
    * $settings['extension_discovery_scan_tests'] = TRUE;
-   * @endcode
+   * @encode
    * to your settings.php.
    *
    * @param string[] $modules
@@ -1005,7 +998,7 @@ protected function render(array &$elements) {
    *   \Drupal\Core\Site\Settings::get() to perform custom merges.
    */
   protected function setSetting($name, $value) {
-    $settings = Settings::getInstance() ? Settings::getAll() : [];
+    $settings = Settings::getAll();
     $settings[$name] = $value;
     new Settings($settings);
   }
@@ -1186,7 +1179,7 @@ public function __get($name) {
       'kernel',
       // @see \Drupal\simpletest\TestBase::prepareEnvironment()
       'generatedTestFiles',
-      // Properties from the old KernelTestBase class that has been removed.
+      // @see \Drupal\simpletest\KernelTestBase::containerBuild()
       'keyValueFactory',
     );
     if (in_array($name, $denied) || strpos($name, 'original') === 0) {
@@ -1216,9 +1209,6 @@ public function __sleep() {
    * {@inheritdoc}
    */
   public static function assertEquals($expected, $actual, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = FALSE, $ignoreCase = FALSE) {
-    // Cast objects implementing MarkupInterface to string instead of
-    // relying on PHP casting them to string depending on what they are being
-    // comparing with.
     $expected = static::castSafeStrings($expected);
     $actual = static::castSafeStrings($actual);
     parent::assertEquals($expected, $actual, $message, $delta, $maxDepth, $canonicalize, $ignoreCase);
diff --git a/core/modules/simpletest/src/Tests/MissingDependentModuleUnitTest.php b/core/tests/Drupal/KernelTests/MissingDependentModuleUnitTest.php
similarity index 78%
rename from core/modules/simpletest/src/Tests/MissingDependentModuleUnitTest.php
rename to core/tests/Drupal/KernelTests/MissingDependentModuleUnitTest.php
index 9c707b8..124e144 100644
--- a/core/modules/simpletest/src/Tests/MissingDependentModuleUnitTest.php
+++ b/core/tests/Drupal/KernelTests/MissingDependentModuleUnitTest.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\simpletest\Tests;
 
-use Drupal\simpletest\WebTestBase;
+use Drupal\KernelTests\KernelTestBase;
 
 /**
  * This test should not load since it requires a module that is not found.
@@ -10,7 +10,7 @@
  * @group simpletest
  * @dependencies simpletest_missing_module
  */
-class MissingDependentModuleUnitTest extends WebTestBase {
+class MissingDependentModuleUnitTest extends KernelTestBase {
 
   /**
    * Ensure that this test will not be loaded despite its dependency.
diff --git a/core/tests/Drupal/Tests/BrowserTestBase.php b/core/tests/Drupal/Tests/BrowserTestBase.php
index ded28f2..8f2e671 100644
--- a/core/tests/Drupal/Tests/BrowserTestBase.php
+++ b/core/tests/Drupal/Tests/BrowserTestBase.php
@@ -6,9 +6,6 @@
 use Behat\Mink\Element\Element;
 use Behat\Mink\Mink;
 use Behat\Mink\Session;
-use Drupal\Component\FileCache\FileCacheFactory;
-use Drupal\Component\Serialization\Json;
-use Drupal\Component\Serialization\Yaml;
 use Drupal\Component\Utility\Html;
 use Drupal\Component\Utility\SafeMarkup;
 use Drupal\Component\Utility\UrlHelper;
@@ -23,12 +20,9 @@
 use Drupal\Core\Test\TestRunnerKernel;
 use Drupal\Core\Url;
 use Drupal\Core\Test\TestDatabase;
-use Drupal\FunctionalTests\AssertLegacyTrait;
-use Drupal\simpletest\AssertHelperTrait;
-use Drupal\simpletest\ContentTypeCreationTrait;
-use Drupal\simpletest\BlockCreationTrait;
-use Drupal\simpletest\NodeCreationTrait;
-use Drupal\simpletest\UserCreationTrait;
+use Drupal\user\Entity\Role;
+use Drupal\user\Entity\User;
+use Drupal\user\UserInterface;
 use Symfony\Component\CssSelector\CssSelectorConverter;
 use Symfony\Component\HttpFoundation\Request;
 
@@ -37,29 +31,13 @@
  *
  * Tests extending BrowserTestBase must exist in the
  * Drupal\Tests\yourmodule\Functional namespace and live in the
- * modules/yourmodule/tests/src/Functional directory.
+ * modules/yourmodule/Tests/Functional directory.
  *
  * @ingroup testing
  */
 abstract class BrowserTestBase extends \PHPUnit_Framework_TestCase {
-  use AssertHelperTrait;
-  use BlockCreationTrait {
-    placeBlock as drupalPlaceBlock;
-  }
-  use AssertLegacyTrait;
   use RandomGeneratorTrait;
   use SessionTestTrait;
-  use NodeCreationTrait {
-    getNodeByTitle as drupalGetNodeByTitle;
-    createNode as drupalCreateNode;
-  }
-  use ContentTypeCreationTrait {
-    createContentType as drupalCreateContentType;
-  }
-  use UserCreationTrait {
-    createRole as drupalCreateRole;
-    createUser as drupalCreateUser;
-  }
 
   /**
    * Class loader.
@@ -296,13 +274,6 @@
   protected $baseUrl;
 
   /**
-   * The original array of shutdown function callbacks.
-   *
-   * @var array
-   */
-  protected $originalShutdownCallbacks = [];
-
-  /**
    * Initializes Mink sessions.
    */
   protected function initMink() {
@@ -534,12 +505,6 @@ protected function tearDown() {
     if ($this->mink) {
       $this->mink->stopSessions();
     }
-
-    // Restore original shutdown callbacks.
-    if (function_exists('drupal_register_shutdown_function')) {
-      $callbacks = &drupal_register_shutdown_function();
-      $callbacks = $this->originalShutdownCallbacks;
-    }
   }
 
   /**
@@ -565,7 +530,7 @@ public function getSession($name = NULL) {
    *   A new web-assert option for asserting the presence of elements with.
    */
   public function assertSession($name = NULL) {
-    return new WebAssert($this->getSession($name), $this->baseUrl);
+    return new WebAssert($this->getSession($name));
   }
 
   /**
@@ -582,60 +547,40 @@ protected function prepareRequest() {
   }
 
   /**
-   * Builds an a absolute URL from a system path or a URL object.
+   * Retrieves a Drupal path or an absolute path.
    *
    * @param string|\Drupal\Core\Url $path
-   *   A system path or a URL.
+   *   Drupal path or URL to load into Mink controlled browser.
    * @param array $options
-   *   Options to be passed to Url::fromUri().
+   *   (optional) Options to be forwarded to the url generator.
    *
    * @return string
-   *   An absolute URL stsring.
+   *   The retrieved HTML string, also available as $this->getRawContent()
    */
-  protected function buildUrl($path, array $options = array()) {
+  protected function drupalGet($path, array $options = array()) {
+    $options['absolute'] = TRUE;
+
     if ($path instanceof Url) {
       $url_options = $path->getOptions();
       $options = $url_options + $options;
       $path->setOptions($options);
-      return $path->setAbsolute()->toString();
+      $url = $path->setAbsolute()->toString();
     }
     // The URL generator service is not necessarily available yet; e.g., in
     // interactive installer tests.
     elseif ($this->container->has('url_generator')) {
-      $force_internal = isset($options['external']) && $options['external'] == FALSE;
-      if (!$force_internal && UrlHelper::isExternal($path)) {
-        return Url::fromUri($path, $options)->toString();
+      if (UrlHelper::isExternal($path)) {
+        $url = Url::fromUri($path, $options)->toString();
       }
       else {
-        $uri = $path === '<front>' ? 'base:/' : 'base:/' . $path;
-        // Path processing is needed for language prefixing.  Skip it when a
-        // path that may look like an external URL is being used as internal.
-        $options['path_processing'] = !$force_internal;
-        return Url::fromUri($uri, $options)
-          ->setAbsolute()
-          ->toString();
+        // This is needed for language prefixing.
+        $options['path_processing'] = TRUE;
+        $url = Url::fromUri('base:/' . $path, $options)->toString();
       }
     }
     else {
-      return $this->getAbsoluteUrl($path);
+      $url = $this->getAbsoluteUrl($path);
     }
-  }
-
-  /**
-   * Retrieves a Drupal path or an absolute path.
-   *
-   * @param string|\Drupal\Core\Url $path
-   *   Drupal path or URL to load into Mink controlled browser.
-   * @param array $options
-   *   (optional) Options to be forwarded to the url generator.
-   *
-   * @return string
-   *   The retrieved HTML string, also available as $this->getRawContent()
-   */
-  protected function drupalGet($path, array $options = array()) {
-    $options['absolute'] = TRUE;
-    $url = $this->buildUrl($path, $options);
-
     $session = $this->getSession();
 
     $this->prepareRequest();
@@ -688,6 +633,139 @@ protected function getAbsoluteUrl($path) {
   }
 
   /**
+   * Creates a user with a given set of permissions.
+   *
+   * @param array $permissions
+   *   (optional) Array of permission names to assign to user. Note that the
+   *   user always has the default permissions derived from the
+   *   "authenticated users" role.
+   * @param string $name
+   *   (optional) The user name.
+   *
+   * @return \Drupal\user\Entity\User|false
+   *   A fully loaded user object with passRaw property, or FALSE if account
+   *   creation fails.
+   */
+  protected function drupalCreateUser(array $permissions = array(), $name = NULL) {
+    // Create a role with the given permission set, if any.
+    $rid = FALSE;
+    if ($permissions) {
+      $rid = $this->drupalCreateRole($permissions);
+      if (!$rid) {
+        return FALSE;
+      }
+    }
+
+    // Create a user assigned to that role.
+    $edit = array();
+    $edit['name'] = !empty($name) ? $name : $this->randomMachineName();
+    $edit['mail'] = $edit['name'] . '@example.com';
+    $edit['pass'] = user_password();
+    $edit['status'] = 1;
+    if ($rid) {
+      $edit['roles'] = array($rid);
+    }
+
+    $account = User::create($edit);
+    $account->save();
+
+    $this->assertNotNull($account->id(), SafeMarkup::format('User created with name %name and pass %pass', array('%name' => $edit['name'], '%pass' => $edit['pass'])));
+    if (!$account->id()) {
+      return FALSE;
+    }
+
+    // Add the raw password so that we can log in as this user.
+    $account->passRaw = $edit['pass'];
+    return $account;
+  }
+
+  /**
+   * Creates a role with specified permissions.
+   *
+   * @param array $permissions
+   *   Array of permission names to assign to role.
+   * @param string $rid
+   *   (optional) The role ID (machine name). Defaults to a random name.
+   * @param string $name
+   *   (optional) The label for the role. Defaults to a random string.
+   * @param int $weight
+   *   (optional) The weight for the role. Defaults NULL so that entity_create()
+   *   sets the weight to maximum + 1.
+   *
+   * @return string
+   *   Role ID of newly created role, or FALSE if role creation failed.
+   */
+  protected function drupalCreateRole(array $permissions, $rid = NULL, $name = NULL, $weight = NULL) {
+    // Generate a random, lowercase machine name if none was passed.
+    if (!isset($rid)) {
+      $rid = strtolower($this->randomMachineName(8));
+    }
+    // Generate a random label.
+    if (!isset($name)) {
+      // In the role UI role names are trimmed and random string can start or
+      // end with a space.
+      $name = trim($this->randomString(8));
+    }
+
+    // Check the all the permissions strings are valid.
+    if (!$this->checkPermissions($permissions)) {
+      return FALSE;
+    }
+
+    // Create new role.
+    /* @var \Drupal\user\RoleInterface $role */
+    $role = Role::create(array(
+      'id' => $rid,
+      'label' => $name,
+    ));
+    if (!is_null($weight)) {
+      $role->set('weight', $weight);
+    }
+    $result = $role->save();
+
+    $this->assertSame($result, SAVED_NEW, SafeMarkup::format('Created role ID @rid with name @name.', array(
+      '@name' => var_export($role->label(), TRUE),
+      '@rid' => var_export($role->id(), TRUE),
+    )));
+
+    if ($result === SAVED_NEW) {
+      // Grant the specified permissions to the role, if any.
+      if (!empty($permissions)) {
+        user_role_grant_permissions($role->id(), $permissions);
+        $assigned_permissions = entity_load('user_role', $role->id())->getPermissions();
+        $missing_permissions = array_diff($permissions, $assigned_permissions);
+        if ($missing_permissions) {
+          $this->fail(SafeMarkup::format('Failed to create permissions: @perms', array('@perms' => implode(', ', $missing_permissions))));
+        }
+      }
+      return $role->id();
+    }
+
+    return FALSE;
+  }
+
+  /**
+   * Checks whether a given list of permission names is valid.
+   *
+   * @param array $permissions
+   *   The permission names to check.
+   *
+   * @return bool
+   *   TRUE if the permissions are valid, FALSE otherwise.
+   */
+  protected function checkPermissions(array $permissions) {
+    $available = array_keys(\Drupal::service('user.permissions')->getPermissions());
+    $valid = TRUE;
+    foreach ($permissions as $permission) {
+      if (!in_array($permission, $available)) {
+        $this->fail(SafeMarkup::format('Invalid permission %permission.', array('%permission' => $permission)));
+        $valid = FALSE;
+      }
+    }
+    return $valid;
+  }
+
+  /**
    * Logs in a user using the Mink controlled browser.
    *
    * If a user is already logged in, then the current user is logged out before
@@ -796,16 +874,6 @@ protected function submitForm(array $edit, $submit, $form_html_id = NULL) {
     // Edit the form values.
     foreach ($edit as $name => $value) {
       $field = $assert_session->fieldExists($name, $form);
-
-      // Provide support for the values '1' and '0' for checkboxes instead of
-      // TRUE and FALSE.
-      // @todo Get rid of supporting 1/0 by converting all tests cases using
-      // this to boolean values.
-      $field_type = $field->getAttribute('type');
-      if ($field_type === 'checkbox') {
-        $value = (bool) $value;
-      }
-
       $field->setValue($value);
     }
 
@@ -826,90 +894,6 @@ protected function submitForm(array $edit, $submit, $form_html_id = NULL) {
   }
 
   /**
-   * Executes a form submission.
-   *
-   * It will be done as usual POST request with Mink.
-   *
-   * @param \Drupal\Core\Url|string $path
-   *   Location of the post form. Either a Drupal path or an absolute path or
-   *   NULL to post to the current page. For multi-stage forms you can set the
-   *   path to NULL and have it post to the last received page. Example:
-   *
-   *   @code
-   *   // First step in form.
-   *   $edit = array(...);
-   *   $this->drupalPostForm('some_url', $edit, t('Save'));
-   *
-   *   // Second step in form.
-   *   $edit = array(...);
-   *   $this->drupalPostForm(NULL, $edit, t('Save'));
-   *   @endcode
-   * @param array $edit
-   *   Field data in an associative array. Changes the current input fields
-   *   (where possible) to the values indicated.
-   *
-   *   When working with form tests, the keys for an $edit element should match
-   *   the 'name' parameter of the HTML of the form. For example, the 'body'
-   *   field for a node has the following HTML:
-   *   @code
-   *   <textarea id="edit-body-und-0-value" class="text-full form-textarea
-   *    resize-vertical" placeholder="" cols="60" rows="9"
-   *    name="body[0][value]"></textarea>
-   *   @endcode
-   *   When testing this field using an $edit parameter, the code becomes:
-   *   @code
-   *   $edit["body[0][value]"] = 'My test value';
-   *   @endcode
-   *
-   *   A checkbox can be set to TRUE to be checked and should be set to FALSE to
-   *   be unchecked. Multiple select fields can be tested using 'name[]' and
-   *   setting each of the desired values in an array:
-   *   @code
-   *   $edit = array();
-   *   $edit['name[]'] = array('value1', 'value2');
-   *   @endcode
-   * @param string $submit
-   *   Value of the submit button whose click is to be emulated. For example,
-   *   t('Save'). The processing of the request depends on this value. For
-   *   example, a form may have one button with the value t('Save') and another
-   *   button with the value t('Delete'), and execute different code depending
-   *   on which one is clicked.
-   *
-   *   This function can also be called to emulate an Ajax submission. In this
-   *   case, this value needs to be an array with the following keys:
-   *   - path: A path to submit the form values to for Ajax-specific processing.
-   *   - triggering_element: If the value for the 'path' key is a generic Ajax
-   *     processing path, this needs to be set to the name of the element. If
-   *     the name doesn't identify the element uniquely, then this should
-   *     instead be an array with a single key/value pair, corresponding to the
-   *     element name and value. The \Drupal\Core\Form\FormAjaxResponseBuilder
-   *     uses this to find the #ajax information for the element, including
-   *     which specific callback to use for processing the request.
-   *
-   *   This can also be set to NULL in order to emulate an Internet Explorer
-   *   submission of a form with a single text field, and pressing ENTER in that
-   *   textfield: under these conditions, no button information is added to the
-   *   POST data.
-   * @param array $options
-   *   Options to be forwarded to the url generator.
-   */
-  protected function drupalPostForm($path, array $edit, $submit, array $options = array()) {
-    if (is_object($submit)) {
-      // Cast MarkupInterface objects to string.
-      $submit = (string) $submit;
-    }
-    if (is_array($edit)) {
-      $edit = $this->castSafeStrings($edit);
-    }
-
-    if (isset($path)) {
-      $this->drupalGet($path, $options);
-    }
-
-    $this->submitForm($edit, $submit);
-  }
-
-  /**
    * Helper function to get the options of select field.
    *
    * @param \Behat\Mink\Element\NodeElement|string $select
@@ -967,10 +951,6 @@ public function installDrupal() {
       'value' => $this->publicFilesDirectory,
       'required' => TRUE,
     );
-    $settings['settings']['file_private_path'] = (object) [
-      'value' => $this->privateFilesDirectory,
-      'required' => TRUE,
-    ];
     $this->writeSettings($settings);
     // Allow for test-specific overrides.
     $settings_testing_file = DRUPAL_ROOT . '/' . $this->originalSiteDirectory . '/settings.testing.php';
@@ -981,14 +961,11 @@ public function installDrupal() {
       // testing specific overrides.
       file_put_contents($directory . '/settings.php', "\n\$test_class = '" . get_class($this) . "';\n" . 'include DRUPAL_ROOT . \'/\' . $site_path . \'/settings.testing.php\';' . "\n", FILE_APPEND);
     }
-
     $settings_services_file = DRUPAL_ROOT . '/' . $this->originalSiteDirectory . '/testing.services.yml';
-    if (!file_exists($settings_services_file)) {
-      // Otherwise, use the default services as a starting point for overrides.
-      $settings_services_file = DRUPAL_ROOT . '/sites/default/default.services.yml';
+    if (file_exists($settings_services_file)) {
+      // Copy the testing-specific service overrides in place.
+      copy($settings_services_file, $directory . '/services.yml');
     }
-    // Copy the testing-specific service overrides in place.
-    copy($settings_services_file, $directory . '/services.yml');
 
     // Since Drupal is bootstrapped already, install_begin_request() will not
     // bootstrap into DRUPAL_BOOTSTRAP_CONFIGURATION (again). Hence, we have to
@@ -1013,10 +990,6 @@ public function installDrupal() {
     // using File API; a potential error must trigger a PHP warning.
     chmod($directory, 0777);
 
-    // During tests, cacheable responses should get the debugging cacheability
-    // headers by default.
-    $this->setContainerParameter('http.response.debug_cacheability_headers', TRUE);
-
     $request = \Drupal::request();
     $this->kernel = DrupalKernel::createFromRequest($request, $this->classLoader, 'prod', TRUE);
     $this->kernel->prepareLegacyRequest($request);
@@ -1027,13 +1000,13 @@ public function installDrupal() {
     $config = $container->get('config.factory');
 
     // Manually create and configure private and temporary files directories.
+    // While these could be preset/enforced in settings.php like the public
+    // files directory above, some tests expect them to be configurable in the
+    // UI. If declared in settings.php, they would no longer be configurable.
     file_prepare_directory($this->privateFilesDirectory, FILE_CREATE_DIRECTORY);
     file_prepare_directory($this->tempFilesDirectory, FILE_CREATE_DIRECTORY);
-    // While the temporary files path could be preset/enforced in settings.php
-    // like the public files directory above, some tests expect it to be
-    // configurable in the UI. If declared in settings.php, it would no longer
-    // be configurable.
     $config->getEditable('system.file')
+      ->set('path.private', $this->privateFilesDirectory)
       ->set('path.temporary', $this->tempFilesDirectory)
       ->save();
 
@@ -1268,14 +1241,6 @@ protected function prepareEnvironment() {
     ));
 
     drupal_set_time_limit($this->timeLimit);
-
-    // Save and clean the shutdown callbacks array because it is static cached
-    // and will be changed by the test run. Otherwise it will contain callbacks
-    // from both environments and the testing environment will try to call the
-    // handlers defined by the original one.
-    $callbacks = &drupal_register_shutdown_function();
-    $this->originalShutdownCallbacks = $callbacks;
-    $callbacks = [];
   }
 
   /**
@@ -1418,7 +1383,6 @@ protected function resetAll() {
    */
   protected function refreshVariables() {
     // Clear the tag cache.
-    $this->container->get('cache_tags.invalidator')->resetChecksums();
     // @todo Replace drupal_static() usage within classes and provide a
     //   proper interface for invoking reset() on a cache backend:
     //   https://www.drupal.org/node/2311945.
@@ -1438,13 +1402,13 @@ protected function refreshVariables() {
   /**
    * Returns whether a given user account is logged in.
    *
-   * @param \Drupal\Core\Session\AccountInterface $account
+   * @param \Drupal\user\UserInterface $account
    *   The user account object to check.
    *
    * @return bool
    *   Return TRUE if the user is logged in, FALSE otherwise.
    */
-  protected function drupalUserIsLoggedIn(AccountInterface $account) {
+  protected function drupalUserIsLoggedIn(UserInterface $account) {
     $logged_in = FALSE;
 
     if (isset($account->sessionId)) {
@@ -1456,6 +1420,30 @@ protected function drupalUserIsLoggedIn(AccountInterface $account) {
   }
 
   /**
+   * Asserts that the element with the given CSS selector is present.
+   *
+   * @param string $css_selector
+   *   The CSS selector identifying the element to check.
+   * @param string $message
+   *   Optional message to show alongside the assertion.
+   */
+  protected function assertElementPresent($css_selector, $message = '') {
+    $this->assertNotEmpty($this->getSession()->getDriver()->find($this->cssSelectToXpath($css_selector)), $message);
+  }
+
+  /**
+   * Asserts that the element with the given CSS selector is not present.
+   *
+   * @param string $css_selector
+   *   The CSS selector identifying the element to check.
+   * @param string $message
+   *   Optional message to show alongside the assertion.
+   */
+  protected function assertElementNotPresent($css_selector, $message = '') {
+    $this->assertEmpty($this->getSession()->getDriver()->find($this->cssSelectToXpath($css_selector)), $message);
+  }
+
+  /**
    * Clicks the element with the given CSS selector.
    *
    * @param string $css_selector
@@ -1541,148 +1529,4 @@ protected function cssSelectToXpath($selector, $html = TRUE, $prefix = 'descenda
     return (new CssSelectorConverter($html))->toXPath($selector, $prefix);
   }
 
-  /**
-   * Searches elements using a CSS selector in the raw content.
-   *
-   * The search is relative to the root element (HTML tag normally) of the page.
-   *
-   * @param string $selector
-   *   CSS selector to use in the search.
-   *
-   * @return \Behat\Mink\Element\NodeElement[]
-   *   The list of elements on the page that match the selector.
-   */
-  protected function cssSelect($selector) {
-    return $this->getSession()->getPage()->findAll('css', $selector);
-  }
-
-  /**
-   * Follows a link by complete name.
-   *
-   * Will click the first link found with this link text.
-   *
-   * If the link is discovered and clicked, the test passes. Fail otherwise.
-   *
-   * @param string|\Drupal\Component\Render\MarkupInterface $label
-   *   Text between the anchor tags.
-   */
-  protected function clickLink($label) {
-    $label = (string) $label;
-    $this->getSession()->getPage()->clickLink($label);
-  }
-
-  /**
-   * Retrieves the plain-text content from the current page.
-   */
-  protected function getTextContent() {
-    return $this->getSession()->getPage()->getContent();
-  }
-
-  /**
-   * Performs an xpath search on the contents of the internal browser.
-   *
-   * The search is relative to the root element (HTML tag normally) of the page.
-   *
-   * @param string $xpath
-   *   The xpath string to use in the search.
-   * @param array $arguments
-   *   An array of arguments with keys in the form ':name' matching the
-   *   placeholders in the query. The values may be either strings or numeric
-   *   values.
-   *
-   * @return \Behat\Mink\Element\NodeElement[]
-   *   The list of elements matching the xpath expression.
-   */
-  protected function xpath($xpath, array $arguments = []) {
-    $xpath = $this->assertSession()->buildXPathQuery($xpath, $arguments);
-    return $this->getSession()->getPage()->findAll('xpath', $xpath);
-  }
-
-  /**
-   * Configuration accessor for tests. Returns non-overridden configuration.
-   *
-   * @param string $name
-   *   Configuration name.
-   *
-   * @return \Drupal\Core\Config\Config
-   *   The configuration object with original configuration data.
-   */
-  protected function config($name) {
-    return $this->container->get('config.factory')->getEditable($name);
-  }
-
-  /**
-   * Gets the value of an HTTP response header.
-   *
-   * If multiple requests were required to retrieve the page, only the headers
-   * from the last request will be checked by default.
-   *
-   * @param string $name
-   *   The name of the header to retrieve. Names are case-insensitive (see RFC
-   *   2616 section 4.2).
-   *
-   * @return string|null
-   *   The HTTP header value or NULL if not found.
-   */
-  protected function drupalGetHeader($name) {
-    return $this->getSession()->getResponseHeader($name);
-  }
-
-  /**
-   * Get the current URL from the browser.
-   *
-   * @return string
-   *   The current URL.
-   */
-  protected function getUrl() {
-    return $this->getSession()->getCurrentUrl();
-  }
-
-  /**
-   * Gets the JavaScript drupalSettings variable for the currently-loaded page.
-   *
-   * @return array
-   *   The JSON decoded drupalSettings value from the current page.
-   */
-  protected function getDrupalSettings() {
-    $html = $this->getSession()->getPage()->getHtml();
-    if (preg_match('@<script type="application/json" data-drupal-selector="drupal-settings-json">([^<]*)</script>@', $html, $matches)) {
-      return Json::decode($matches[1]);
-    }
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function assertEquals($expected, $actual, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = FALSE, $ignoreCase = FALSE) {
-    // Cast objects implementing MarkupInterface to string instead of
-    // relying on PHP casting them to string depending on what they are being
-    // comparing with.
-    $expected = static::castSafeStrings($expected);
-    $actual = static::castSafeStrings($actual);
-    parent::assertEquals($expected, $actual, $message, $delta, $maxDepth, $canonicalize, $ignoreCase);
-  }
-
-  /**
-   * Changes parameters in the services.yml file.
-   *
-   * @param string $name
-   *   The name of the parameter.
-   * @param mixed $value
-   *   The value of the parameter.
-   */
-  protected function setContainerParameter($name, $value) {
-    $filename = $this->siteDirectory . '/services.yml';
-    chmod($filename, 0666);
-
-    $services = Yaml::decode(file_get_contents($filename));
-    $services['parameters'][$name] = $value;
-    file_put_contents($filename, Yaml::encode($services));
-
-    // Ensure that the cache is deleted for the yaml file loader.
-    $file_cache = FileCacheFactory::get('container_yaml_loader');
-    $file_cache->delete($filename);
-  }
-
 }
diff --git a/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php b/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php
index 3c89804..2abf267 100644
--- a/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php
+++ b/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php
@@ -223,17 +223,6 @@ public function testHas() {
   }
 
   /**
-   * Tests that Container::has() for aliased services works properly.
-   *
-   * @covers ::has
-   */
-  public function testHasForAliasedService() {
-    $service = $this->container->has('service.provider');
-    $aliased_service = $this->container->has('service.provider_alias');
-    $this->assertSame($service, $aliased_service);
-  }
-
-  /**
    * Tests that Container::get() for circular dependencies works properly.
    * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
    * @covers ::get
diff --git a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php
index 49b6556..c1c6058 100644
--- a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php
+++ b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php
@@ -494,60 +494,6 @@ public function testGetServiceDefinitionWithInvalidScope() {
     }
 
     /**
-     * Tests that references to aliases work correctly.
-     *
-     * @covers ::getReferenceCall
-     *
-     * @dataProvider publicPrivateDataProvider
-     */
-    public function testGetServiceDefinitionWithReferenceToAlias($public) {
-      $bar_definition = new Definition('\stdClass');
-      $bar_definition_php_array = array(
-        'class' => '\stdClass',
-      );
-      if (!$public) {
-        $bar_definition->setPublic(FALSE);
-        $bar_definition_php_array['public'] = FALSE;
-      }
-      $bar_definition_php_array['arguments_count'] = 0;
-
-      $services['bar'] = $bar_definition;
-
-      $aliases['bar.alias'] = 'bar';
-
-      $foo = new Definition('\stdClass');
-      $foo->addArgument(new Reference('bar.alias'));
-
-      $services['foo'] = $foo;
-
-      $this->containerBuilder->getAliases()->willReturn($aliases);
-      $this->containerBuilder->getDefinitions()->willReturn($services);
-      $this->containerBuilder->getDefinition('bar')->willReturn($bar_definition);
-      $dump = $this->dumper->getArray();
-      if ($public) {
-        $service_definition = $this->getServiceCall('bar');
-      }
-      else {
-        $service_definition = $this->getPrivateServiceCall('bar', $bar_definition_php_array, TRUE);
-      }
-      $data = array(
-         'class' => '\stdClass',
-         'arguments' => $this->getCollection(array(
-           $service_definition,
-         )),
-         'arguments_count' => 1,
-      );
-      $this->assertEquals($this->serializeDefinition($data), $dump['services']['foo'], 'Expected definition matches dump.');
-    }
-
-    public function publicPrivateDataProvider() {
-      return array(
-        array(TRUE),
-        array(FALSE),
-      );
-    }
-
-    /**
      * Tests that getDecoratedService() is unsupported.
      *
      * Tests that the correct InvalidArgumentException is thrown for
diff --git a/core/tests/Drupal/Tests/Component/EventDispatcher/ContainerAwareEventDispatcherTest.php b/core/tests/Drupal/Tests/Component/EventDispatcher/ContainerAwareEventDispatcherTest.php
index 7bc2382..dfd12bb 100644
--- a/core/tests/Drupal/Tests/Component/EventDispatcher/ContainerAwareEventDispatcherTest.php
+++ b/core/tests/Drupal/Tests/Component/EventDispatcher/ContainerAwareEventDispatcherTest.php
@@ -172,24 +172,10 @@ public function testRemoveService()
         $this->assertTrue($otherService->preFooInvoked);
     }
 
-    public function testGetListenerPriorityWithServices()
+    public function testGetListenerPriority()
     {
-        $container = new ContainerBuilder();
-        $container->register('listener_service', TestEventListener::class);
-
-        $listeners = array(
-            'test_event' => array(
-                5 => array(
-                    array('service' => array('listener_service', 'preFoo')),
-                ),
-            ),
-        );
-
-        $dispatcher = new ContainerAwareEventDispatcher($container, $listeners);
-        $listenerService = $container->get('listener_service');
-        $actualPriority = $dispatcher->getListenerPriority('test_event', [$listenerService, 'preFoo']);
-
-        $this->assertSame(5, $actualPriority);
+        // Override the parent test as our implementation doesn't define
+        // getListenerPriority().
     }
 
  }
diff --git a/core/tests/Drupal/Tests/Component/FileCache/FileCacheFactoryTest.php b/core/tests/Drupal/Tests/Component/FileCache/FileCacheFactoryTest.php
index b4d8de9..2b1edb2 100644
--- a/core/tests/Drupal/Tests/Component/FileCache/FileCacheFactoryTest.php
+++ b/core/tests/Drupal/Tests/Component/FileCache/FileCacheFactoryTest.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\Tests\Component\FileCache;
 
-use Drupal\Component\FileCache\FileCache;
-use Drupal\Component\FileCache\NullFileCache;
 use Drupal\Component\FileCache\FileCacheFactory;
 use Drupal\Tests\UnitTestCase;
 
@@ -19,15 +17,18 @@ class FileCacheFactoryTest extends UnitTestCase {
   protected function setUp() {
     parent::setUp();
 
-    $configuration = [
-      'test_foo_settings' => [
-        'collection' => 'test-23',
-        'cache_backend_class' => '\Drupal\Tests\Component\FileCache\StaticFileCacheBackend',
-        'cache_backend_configuration' => [
-          'bin' => 'dog',
-        ],
+    $settings = [
+      'collection' => 'test-23',
+      'cache_backend_class' => '\Drupal\Tests\Component\FileCache\StaticFileCacheBackend',
+      'cache_backend_configuration' => [
+        'bin' => 'dog',
       ],
     ];
+    $configuration = FileCacheFactory::getConfiguration();
+    if (!$configuration) {
+      $configuration = [];
+    }
+    $configuration += [ 'test_foo_settings' => $settings ];
     FileCacheFactory::setConfiguration($configuration);
     FileCacheFactory::setPrefix('prefix');
   }
@@ -65,97 +66,6 @@ public function testGetNoPrefix() {
   }
 
   /**
-   * @covers ::get
-   */
-  public function testGetDisabledFileCache() {
-    // Ensure the returned FileCache is an instance of FileCache::class.
-    $file_cache = FileCacheFactory::get('test_foo_settings', []);
-    $this->assertInstanceOf(FileCache::class, $file_cache);
-
-    $configuration = FileCacheFactory::getConfiguration();
-    $configuration[FileCacheFactory::DISABLE_CACHE] = TRUE;
-    FileCacheFactory::setConfiguration($configuration);
-
-    // Ensure the returned FileCache is now an instance of NullFileCache::class.
-    $file_cache = FileCacheFactory::get('test_foo_settings', []);
-    $this->assertInstanceOf(NullFileCache::class, $file_cache);
-  }
-
-  /**
-   * @covers ::get
-   *
-   * @dataProvider configurationDataProvider
-   */
-  public function testGetConfigurationOverrides($configuration, $arguments, $class) {
-    FileCacheFactory::setConfiguration($configuration);
-
-    $file_cache = FileCacheFactory::get('test_foo_settings', $arguments);
-    $this->assertInstanceOf($class, $file_cache);
-  }
-
-  /**
-   * Data provider for testGetConfigurationOverrides().
-   */
-  public function configurationDataProvider() {
-    $data = [];
-
-    // Get a unique FileCache class.
-    $file_cache = $this->getMockBuilder(FileCache::class)
-       ->disableOriginalConstructor()
-       ->getMock();
-    $class = get_class($file_cache);
-
-    // Test fallback configuration.
-    $data['fallback-configuration'] = [[
-    ], [], FileCache::class];
-
-    // Test default configuration.
-    $data['default-configuration'] = [[
-      'default' => [
-        'class' => $class,
-      ],
-    ], [], $class];
-
-    // Test specific per collection setting.
-    $data['collection-setting'] = [[
-      'test_foo_settings' => [
-        'class' => $class,
-      ],
-    ], [], $class];
-
-
-    // Test default configuration plus specific per collection setting.
-    $data['default-plus-collection-setting'] = [[
-      'default' => [
-        'class' => '\stdClass',
-      ],
-      'test_foo_settings' => [
-        'class' => $class,
-      ],
-    ], [], $class];
-
-    // Test default configuration plus class specific override.
-    $data['default-plus-class-override'] = [[
-      'default' => [
-        'class' => '\stdClass',
-      ],
-    ], [ 'class' => $class ], $class];
-
-    // Test default configuration plus class specific override plus specific
-    // per collection setting.
-    $data['default-plus-class-plus-collection-setting'] = [[
-      'default' => [
-        'class' => '\stdClass',
-      ],
-      'test_foo_settings' => [
-        'class' => $class,
-      ],
-    ], [ 'class' => '\stdClass'], $class];
-
-    return $data;
-  }
-
-  /**
    * @covers ::getConfiguration
    * @covers ::setConfiguration
    */
diff --git a/core/tests/Drupal/Tests/Component/Utility/ImageTest.php b/core/tests/Drupal/Tests/Component/Utility/ImageTest.php
index 7c3a5ac..41eb064 100644
--- a/core/tests/Drupal/Tests/Component/Utility/ImageTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/ImageTest.php
@@ -35,10 +35,11 @@ public function testScaleDimensions($input, $output) {
    *
    * @return array
    *   Keyed array containing:
-   *   - 'input' - Array which contains input for Image::scaleDimensions().
-   *   - 'output' - Array which contains expected output after passing
-   *     through Image::scaleDimensions. Also contains a boolean
-   *     'return_value' which should match the expected return value.
+   * - 'input' - Array which contains input for
+   *   Image::scaleDimensions().
+   * - 'output' - Array which contains expected output after passing
+   *   through Image::scaleDimensions. Also contains a boolean
+   *   'return_value' which should match the expected return value.
    *
    * @see testScaleDimensions()
    */
diff --git a/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php b/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php
index 39759b5..b8345b4 100644
--- a/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php
@@ -474,11 +474,11 @@ public function testValidateUtf8($text, $expected, $message) {
   /**
    * Provides data for self::testValidateUtf8().
    *
-   * Invalid UTF-8 examples sourced from http://stackoverflow.com/a/11709412/109119.
-   *
    * @return array
    *   An array of arrays, each containing the parameters for
    *   self::testValidateUtf8().
+   *
+   * Invalid UTF-8 examples sourced from http://stackoverflow.com/a/11709412/109119.
    */
   public function providerTestValidateUtf8() {
     return array(
diff --git a/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php b/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php
index a393bfb..96b004d 100644
--- a/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php
+++ b/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php
@@ -77,7 +77,7 @@ public function testValidation($uuid, $is_valid, $message) {
    * Dataprovider for UUID instance tests.
    *
    * @return array
-   *   An array of arrays containing
+   *  An array of arrays containing
    *   - The Uuid to check against.
    *   - (bool) Whether or not the Uuid is valid.
    *   - Failure message.
diff --git a/core/tests/Drupal/Tests/ComposerIntegrationTest.php b/core/tests/Drupal/Tests/ComposerIntegrationTest.php
index 5ab72f6..5ba74b6 100644
--- a/core/tests/Drupal/Tests/ComposerIntegrationTest.php
+++ b/core/tests/Drupal/Tests/ComposerIntegrationTest.php
@@ -48,7 +48,6 @@ protected function getPaths() {
       $this->root . '/core/lib/Drupal/Component/Assertion',
       $this->root . '/core/lib/Drupal/Component/Bridge',
       $this->root . '/core/lib/Drupal/Component/Datetime',
-      $this->root . '/core/lib/Drupal/Component/DependencyInjection',
       $this->root . '/core/lib/Drupal/Component/Diff',
       $this->root . '/core/lib/Drupal/Component/Discovery',
       $this->root . '/core/lib/Drupal/Component/EventDispatcher',
diff --git a/core/tests/Drupal/Tests/Core/Cache/CacheFactoryTest.php b/core/tests/Drupal/Tests/Core/Cache/CacheFactoryTest.php
index be0fbdf..2e2f146 100644
--- a/core/tests/Drupal/Tests/Core/Cache/CacheFactoryTest.php
+++ b/core/tests/Drupal/Tests/Core/Cache/CacheFactoryTest.php
@@ -70,64 +70,20 @@ public function testCacheFactoryWithCustomizedDefaultBackend() {
   }
 
   /**
-   * Test that the cache factory uses the correct default bin backend.
-   *
-   * @covers ::__construct
-   * @covers ::get
-   */
-  public function testCacheFactoryWithDefaultBinBackend() {
-    // Ensure the default bin backends are used before the configured default.
-    $settings = new Settings(array(
-      'cache' => array(
-        'default' => 'cache.backend.unused',
-      ),
-    ));
-
-    $default_bin_backends = [
-      'render' => 'cache.backend.custom',
-    ];
-
-    $cache_factory = new CacheFactory($settings, $default_bin_backends);
-
-    $container = new ContainerBuilder();
-    $cache_factory->setContainer($container);
-
-    $custom_default_backend_factory = $this->getMock('\Drupal\Core\Cache\CacheFactoryInterface');
-    $container->set('cache.backend.custom', $custom_default_backend_factory);
-
-    $render_bin = $this->getMock('\Drupal\Core\Cache\CacheBackendInterface');
-    $custom_default_backend_factory->expects($this->once())
-      ->method('get')
-      ->with('render')
-      ->will($this->returnValue($render_bin));
-
-    $actual_bin = $cache_factory->get('render');
-    $this->assertSame($render_bin, $actual_bin);
-  }
-
-  /**
    * Test that the cache factory picks the correct per-bin service.
    *
    * @covers ::__construct
    * @covers ::get
    */
   public function testCacheFactoryWithSpecifiedPerBinBackend() {
-    // Ensure the per-bin configuration is used before the configured default
-    // and per-bin defaults.
     $settings = new Settings(array(
       'cache' => array(
-        'default' => 'cache.backend.unused',
         'bins' => array(
           'render' => 'cache.backend.custom',
         ),
       ),
     ));
-
-    $default_bin_backends = [
-      'render' => 'cache.backend.unused',
-    ];
-
-    $cache_factory = new CacheFactory($settings, $default_bin_backends);
+    $cache_factory = new CacheFactory($settings);
 
     $container = new ContainerBuilder();
     $cache_factory->setContainer($container);
diff --git a/core/tests/Drupal/Tests/Core/Cache/ChainedFastBackendTest.php b/core/tests/Drupal/Tests/Core/Cache/ChainedFastBackendTest.php
index 0b576b7..956c18d 100644
--- a/core/tests/Drupal/Tests/Core/Cache/ChainedFastBackendTest.php
+++ b/core/tests/Drupal/Tests/Core/Cache/ChainedFastBackendTest.php
@@ -34,21 +34,6 @@ class ChainedFastBackendTest extends UnitTestCase {
   protected $bin;
 
   /**
-   * Tests that chained fast backend cannot be constructed with two instances of
-   * the same service.
-   */
-  public function testConsistentAndFastBackendCannotBeTheSameService() {
-    // ToDo: It should throw a proper exception. See https://www.drupal.org/node/2751847.
-    $this->setExpectedException(\PHPUnit_Framework_Error::class, 'Consistent cache backend and fast cache backend cannot use the same service.');
-    $cache = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
-    $chained_fast_backend = new ChainedFastBackend(
-      $cache,
-      $cache,
-      'foo'
-    );
-  }
-
-  /**
    * Tests a get() on the fast backend, with no hit on the consistent backend.
    */
   public function testGetDoesntHitConsistentBackend() {
diff --git a/core/tests/Drupal/Tests/Core/Cache/Context/PathParentCacheContextTest.php b/core/tests/Drupal/Tests/Core/Cache/Context/PathParentCacheContextTest.php
index 69120e2..2c44735 100644
--- a/core/tests/Drupal/Tests/Core/Cache/Context/PathParentCacheContextTest.php
+++ b/core/tests/Drupal/Tests/Core/Cache/Context/PathParentCacheContextTest.php
@@ -18,7 +18,7 @@ class PathParentCacheContextTest extends UnitTestCase {
    *
    * @dataProvider providerTestGetContext
    */
-  public function testGetContext($original_path, $context) {
+  public function testgetContext($original_path, $context) {
     $request_stack = new RequestStack();
     $request = Request::create($original_path);
     $request_stack->push($request);
diff --git a/core/tests/Drupal/Tests/Core/Cache/Context/QueryArgsCacheContextTest.php b/core/tests/Drupal/Tests/Core/Cache/Context/QueryArgsCacheContextTest.php
deleted file mode 100644
index 5c30a92..0000000
--- a/core/tests/Drupal/Tests/Core/Cache/Context/QueryArgsCacheContextTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-namespace Drupal\Tests\Core\Cache\Context;
-
-use Drupal\Core\Cache\Context\QueryArgsCacheContext;
-use Drupal\Tests\UnitTestCase;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\RequestStack;
-
-/**
- * @coversDefaultClass \Drupal\Core\Cache\Context\QueryArgsCacheContext
- * @group Cache
- */
-class QueryArgsCacheContextTest extends UnitTestCase {
-
-  /**
-   * @covers ::getContext
-   *
-   * @dataProvider providerTestGetContext
-   */
-  public function testGetContext(array $query_args, $cache_context_parameter, $context) {
-    $request_stack = new RequestStack();
-    $request = Request::create('/', 'GET', $query_args);
-    $request_stack->push($request);
-    $cache_context = new QueryArgsCacheContext($request_stack);
-    $this->assertSame($cache_context->getContext($cache_context_parameter), $context);
-  }
-
-  /**
-   * Provides a list of query arguments and expected cache contexts.
-   */
-  public function providerTestGetContext() {
-    return [
-      [[], NULL, ''],
-      [[], 'foo', ''],
-      // Non-empty query arguments.
-      [['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], NULL, 'alpaca=&llama=rocks&panda=drools&z=0'],
-      [['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], 'llama', 'rocks'],
-      [['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], 'alpaca', '?valueless?'],
-      [['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], 'panda', 'drools'],
-      [['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], 'z', '0'],
-      [['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], 'chicken', ''],
-      [['llama' => ['rocks', 'kitty']], 'llama', '0=rocks&1=kitty'],
-      [['llama' => ['rocks' => 'fuzzball', 'monkey' => 'patch']], 'llama', 'rocks=fuzzball&monkey=patch'],
-      [['llama' => ['rocks' => ['nested', 'bonobo']]], 'llama', 'rocks%5B0%5D=nested&rocks%5B1%5D=bonobo'],
-    ];
-  }
-
-}
diff --git a/core/tests/Drupal/Tests/Core/Condition/ConditionAccessResolverTraitTest.php b/core/tests/Drupal/Tests/Core/Condition/ConditionAccessResolverTraitTest.php
index 241ea38..00511d3 100644
--- a/core/tests/Drupal/Tests/Core/Condition/ConditionAccessResolverTraitTest.php
+++ b/core/tests/Drupal/Tests/Core/Condition/ConditionAccessResolverTraitTest.php
@@ -43,16 +43,6 @@ public function providerTestResolveConditions() {
     $condition_exception->expects($this->any())
       ->method('execute')
       ->will($this->throwException(new ContextException()));
-    $condition_exception->expects($this->atLeastOnce())
-      ->method('isNegated')
-      ->will($this->returnValue(FALSE));
-    $condition_negated = $this->getMock('Drupal\Core\Condition\ConditionInterface');
-    $condition_negated->expects($this->any())
-      ->method('execute')
-      ->will($this->throwException(new ContextException()));
-    $condition_negated->expects($this->atLeastOnce())
-      ->method('isNegated')
-      ->will($this->returnValue(TRUE));
 
     $conditions = array();
     $data[] = array($conditions, 'and', TRUE);
@@ -89,14 +79,6 @@ public function providerTestResolveConditions() {
     $conditions = array($condition_exception, $condition_false);
     $data[] = array($conditions, 'or', FALSE);
     $data[] = array($conditions, 'and', FALSE);
-
-    $conditions = array($condition_negated);
-    $data[] = array($conditions, 'or', TRUE);
-    $data[] = array($conditions, 'and', TRUE);
-
-    $conditions = array($condition_negated, $condition_negated);
-    $data[] = array($conditions, 'or', TRUE);
-    $data[] = array($conditions, 'and', TRUE);
     return $data;
   }
 
diff --git a/core/tests/Drupal/Tests/Core/Config/ConfigDependencyManagerTest.php b/core/tests/Drupal/Tests/Core/Config/ConfigDependencyManagerTest.php
deleted file mode 100644
index bd1af59..0000000
--- a/core/tests/Drupal/Tests/Core/Config/ConfigDependencyManagerTest.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-
-namespace Drupal\Tests\Core\Config;
-
-use Drupal\Core\Config\Entity\ConfigDependencyManager;
-use Drupal\Tests\UnitTestCase;
-
-/**
- * Tests the ConfigDependencyManager class.
- *
- * @group Config
- *
- * @coversDefaultClass \Drupal\Core\Config\Entity\ConfigDependencyManager
- */
-class ConfigDependencyManagerTest extends UnitTestCase {
-
-  /**
-   * @dataProvider providerTestSortAll
-   */
-  public function testSortAll(array $data, array $expected_order) {
-    $dependency_manager = new ConfigDependencyManager();
-    $dependency_manager->setData($data);
-    $this->assertEquals($expected_order, $dependency_manager->sortAll());
-  }
-
-  public function providerTestSortAll() {
-    $datasets[] = [
-      [
-        'provider.entity_b' => [],
-        'provider.entity_a' => [],
-      ],
-      ['provider.entity_a', 'provider.entity_b'],
-    ];
-
-    $datasets[] = [
-      [
-        'provider.entity_a' => [],
-        'provider.entity_b' => [],
-      ],
-      ['provider.entity_a', 'provider.entity_b'],
-    ];
-
-    $datasets[] = [
-      [
-        'provider.entity_b' => ['dependencies' => ['config' => ['provider.entity_a']]],
-        'provider.entity_a' => [],
-      ],
-      ['provider.entity_a', 'provider.entity_b'],
-    ];
-
-    $datasets[] = [
-      [
-        'provider.entity_a' => [],
-        'provider.entity_b' => ['dependencies' => ['config' => ['provider.entity_a']]],
-      ],
-      ['provider.entity_a', 'provider.entity_b'],
-    ];
-
-    $datasets[] = [
-      [
-        'provider.entity_b' => [],
-        'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
-      ],
-      ['provider.entity_b', 'provider.entity_a'],
-    ];
-
-    $datasets[] = [
-      [
-        'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
-        'provider.entity_b' => [],
-      ],
-      ['provider.entity_b', 'provider.entity_a'],
-    ];
-
-    $datasets[] = [
-      [
-        'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
-        'provider.entity_b' => [],
-        'block.block.a' => [],
-        'block.block.b' => [],
-      ],
-      ['block.block.a', 'provider.entity_b', 'block.block.b', 'provider.entity_a'],
-    ];
-
-    $datasets[] = [
-      [
-        'provider.entity_b' => [],
-        'block.block.b' => [],
-        'block.block.a' => [],
-        'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
-      ],
-      ['block.block.a', 'provider.entity_b', 'block.block.b', 'provider.entity_a'],
-    ];
-
-    $datasets[] = [
-      [
-        'provider.entity_b' => [],
-        'block.block.b' => [],
-        'block.block.a' => [],
-        'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
-        'provider.entity_c' => ['dependencies' => ['config' => ['block.block.a']]],
-      ],
-      ['block.block.a', 'block.block.b', 'provider.entity_b', 'provider.entity_a', 'provider.entity_c'],
-    ];
-
-    $datasets[] = [
-      [
-        'provider.entity_b' => ['dependencies' => ['module' => ['system']]],
-        'block.block.b' => [],
-        'block.block.a' => ['dependencies' => ['module' => ['system']]],
-        'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_c']]],
-        'provider.entity_c' => ['dependencies' => ['config' => ['block.block.a']]],
-      ],
-      ['block.block.b', 'block.block.a', 'provider.entity_c', 'provider.entity_a', 'provider.entity_b'],
-    ];
-
-    return $datasets;
-  }
-
-}
diff --git a/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php b/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php
index e339af7..982ab81 100644
--- a/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/StorageComparerTest.php
@@ -158,8 +158,8 @@ public function testCreateChangelistCreate() {
     $this->storageComparer->createChangelist();
     $expected = array(
       'field.storage.node.body',
-      'field.field.node.article.body',
       'views.view.test_view',
+      'field.field.node.article.body',
     );
     $this->assertEquals($expected, $this->storageComparer->getChangelist('create'));
     $this->assertEmpty($this->storageComparer->getChangelist('delete'));
@@ -196,8 +196,8 @@ public function testCreateChangelistDelete() {
 
     $this->storageComparer->createChangelist();
     $expected = array(
-      'views.view.test_view',
       'field.field.node.article.body',
+      'views.view.test_view',
       'field.storage.node.body',
     );
     $this->assertEquals($expected, $this->storageComparer->getChangelist('delete'));
@@ -236,8 +236,8 @@ public function testCreateChangelistUpdate() {
     $this->storageComparer->createChangelist();
     $expected = array(
       'field.storage.node.body',
-      'field.field.node.article.body',
       'system.site',
+      'field.field.node.article.body',
     );
     $this->assertEquals($expected, $this->storageComparer->getChangelist('update'));
     $this->assertEmpty($this->storageComparer->getChangelist('create'));
diff --git a/core/tests/Drupal/Tests/Core/Database/ConditionTest.php b/core/tests/Drupal/Tests/Core/Database/ConditionTest.php
index fde028b..6a05726 100644
--- a/core/tests/Drupal/Tests/Core/Database/ConditionTest.php
+++ b/core/tests/Drupal/Tests/Core/Database/ConditionTest.php
@@ -114,7 +114,7 @@ public function dataProviderTestCompileWithKnownOperators() {
     $data[] = [" (name LIKE :db_condition_placeholder_0 ESCAPE '\\\\') ", 'name', '%muh%', 'LIKE', [':db_condition_placeholder_0' => '%muh%']];
     $data[] = [" (name NOT LIKE :db_condition_placeholder_0 ESCAPE '\\\\') ", 'name', '%muh%', 'NOT LIKE', [':db_condition_placeholder_0' => '%muh%']];
     $data[] = [" (name BETWEEN :db_condition_placeholder_0 AND :db_condition_placeholder_1) ", 'name', [1, 2], 'BETWEEN', [':db_condition_placeholder_0' => 1, ':db_condition_placeholder_1' => 2]];
-    $data[] = [" (name NOT BETWEEN :db_condition_placeholder_0 AND :db_condition_placeholder_1) ", 'name', [1, 2], 'NOT BETWEEN', [':db_condition_placeholder_0' => 1, ':db_condition_placeholder_1' => 2]];
+    // $data[] = [" (name NOT BETWEEN :db_condition_placeholder_0 AND :db_condition_placeholder_1) ", 'name', [1, 2], 'NOT BETWEEN', [':db_condition_placeholder_0' => 1, ':db_condition_placeholder_1' => 2]];
     // $data[] = [' ( STRCMP (name, :db_condition_placeholder_0) ) ', '', ['test-string'], 'STRCMP', [':db_condition_placeholder_0' => 'test-string']];
     // $data[] = [' (EXISTS ) ', '', NULL, 'EXISTS'];
     // $data[] = [' (name NOT EXISTS ) ', 'name', NULL, 'NOT EXISTS'];
diff --git a/core/tests/Drupal/Tests/Core/Database/ConnectionTest.php b/core/tests/Drupal/Tests/Core/Database/ConnectionTest.php
index 8f4aa7a..ff515f4 100644
--- a/core/tests/Drupal/Tests/Core/Database/ConnectionTest.php
+++ b/core/tests/Drupal/Tests/Core/Database/ConnectionTest.php
@@ -150,16 +150,19 @@ public function providerGetDriverClass() {
     return array(
       array(
         'nonexistent_class',
+        'stub',
         '\\',
         'nonexistent_class',
       ),
       array(
-        'Drupal\Tests\Core\Database\Stub\Select',
+        'Drupal\\Core\\Database\\Driver\\mysql\\Select',
+        'mysql',
         NULL,
         'Select',
       ),
       array(
         'Drupal\\Tests\\Core\\Database\\Stub\\Driver\\Schema',
+        'stub',
         'Drupal\\Tests\\Core\\Database\\Stub\\Driver',
         'Schema',
       ),
@@ -171,10 +174,11 @@ public function providerGetDriverClass() {
    *
    * @dataProvider providerGetDriverClass
    */
-  public function testGetDriverClass($expected, $namespace, $class) {
+  public function testGetDriverClass($expected, $driver, $namespace, $class) {
     $mock_pdo = $this->getMock('Drupal\Tests\Core\Database\Stub\StubPDO');
     $connection = new StubConnection($mock_pdo, array('namespace' => $namespace));
     // Set the driver using our stub class' public property.
+    $connection->driver = $driver;
     $this->assertEquals($expected, $connection->getDriverClass($class));
   }
 
diff --git a/core/tests/Drupal/Tests/Core/Database/Driver/pgsql/PostgresqlConnectionTest.php b/core/tests/Drupal/Tests/Core/Database/Driver/pgsql/PostgresqlConnectionTest.php
index 883f851..2bf2639 100644
--- a/core/tests/Drupal/Tests/Core/Database/Driver/pgsql/PostgresqlConnectionTest.php
+++ b/core/tests/Drupal/Tests/Core/Database/Driver/pgsql/PostgresqlConnectionTest.php
@@ -40,11 +40,6 @@ public function providerEscapeTables() {
       array('"camelCase"', 'camelCase'),
       array('"camelCase"', '"camelCase"'),
       array('"camelCase"', 'camel/Case'),
-      // Sometimes, table names are following the pattern database.schema.table.
-      array('"camelCase".nocase.nocase', 'camelCase.nocase.nocase'),
-      array('nocase."camelCase".nocase', 'nocase.camelCase.nocase'),
-      array('nocase.nocase."camelCase"', 'nocase.nocase.camelCase'),
-      array('"camelCase"."camelCase"."camelCase"', 'camelCase.camelCase.camelCase'),
     );
   }
 
diff --git a/core/tests/Drupal/Tests/Core/Database/Stub/Select.php b/core/tests/Drupal/Tests/Core/Database/Stub/Select.php
deleted file mode 100644
index b29ac1a..0000000
--- a/core/tests/Drupal/Tests/Core/Database/Stub/Select.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-namespace Drupal\Tests\Core\Database\Stub;
-
-use Drupal\Core\Database\Driver\mysql\Select as QuerySelect;
-
-class Select extends QuerySelect {
-
-}
diff --git a/core/tests/Drupal/Tests/Core/Database/UrlConversionTest.php b/core/tests/Drupal/Tests/Core/Database/UrlConversionTest.php
deleted file mode 100644
index 06653f6..0000000
--- a/core/tests/Drupal/Tests/Core/Database/UrlConversionTest.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-namespace Drupal\Tests\Core\Database;
-
-use Drupal\Core\Database\Database;
-use Drupal\Tests\UnitTestCase;
-
-/**
- * @coversDefaultClass \Drupal\Core\Database\Database
- *
- * @group Database
- */
-class UrlConversionTest extends UnitTestCase {
-
-  /**
-   * @covers ::convertDbUrlToConnectionInfo
-   *
-   * @dataProvider providerConvertDbUrlToConnectionInfo
-   */
-  public function testDbUrltoConnectionConversion($root, $url, $database_array) {
-    $result = Database::convertDbUrlToConnectionInfo($url, $root);
-    $this->assertEquals($database_array, $result);
-  }
-
-  /**
-   * Dataprovider for testDbUrltoConnectionConversion().
-   *
-   * @return array
-   *   Array of arrays with the following elements:
-   *   - root: The baseroot string, only used with sqlite drivers.
-   *   - url: The full URL string to be tested.
-   *   - database_array: An array containing the expected results.
-   */
-  public function providerConvertDbUrlToConnectionInfo() {
-    // Some valid datasets.
-    $root1 = '';
-    $url1 = 'mysql://test_user:test_pass@test_host:3306/test_database';
-    $database_array1 = [
-      'driver' => 'mysql',
-      'username' => 'test_user',
-      'password' => 'test_pass',
-      'host' => 'test_host',
-      'database' => 'test_database',
-      'port' => '3306',
-    ];
-    $root2 = '/var/www/d8';
-    $url2 = 'sqlite://test_user:test_pass@test_host:3306/test_database';
-    $database_array2 = [
-      'driver' => 'sqlite',
-      'username' => 'test_user',
-      'password' => 'test_pass',
-      'host' => 'test_host',
-      'database' => $root2 . '/test_database',
-      'port' => 3306,
-    ];
-    return [
-      [$root1, $url1, $database_array1],
-      [$root2, $url2, $database_array2],
-    ];
-  }
-
-  /**
-   * Test ::convertDbUrlToConnectionInfo() exception for invalid arguments.
-   *
-   * @dataProvider providerInvalidArgumentsUrlConversion
-   */
-  public function testGetInvalidArgumentExceptionInUrlConversion($url, $root) {
-    $this->setExpectedException(\InvalidArgumentException::class);
-    Database::convertDbUrlToConnectionInfo($url, $root);
-  }
-
-  /**
-   * Dataprovider for testGetInvalidArgumentExceptionInUrlConversion().
-   *
-   * @return array
-   *   Array of arrays with the following elements:
-   *   - An invalid Url string.
-   *   - Drupal root string.
-   */
-  public function providerInvalidArgumentsUrlConversion() {
-    return [
-      ['foo', ''],
-      ['foo', 'bar'],
-      ['foo://', 'bar'],
-      ['foo://bar', 'baz'],
-      ['foo://bar:port', 'baz'],
-      ['foo/bar/baz', 'bar2'],
-      ['foo://bar:baz@test1', 'test2'],
-    ];
-  }
-
-  /**
-   * @covers ::convertDbUrlToConnectionInfo
-   *
-   * @dataProvider providerGetConnectionInfoAsUrl
-   */
-  public function testGetConnectionInfoAsUrl(Array $info, $expected_url) {
-
-    Database::addConnectionInfo('default', 'default', $info);
-    $url = Database::getConnectionInfoAsUrl();
-
-    // Remove the connection to not pollute subsequent datasets being tested.
-    Database::removeConnection('default');
-
-    $this->assertEquals($expected_url, $url);
-  }
-
-  /**
-   * Dataprovider for testGetConnectionInfoAsUrl().
-   *
-   * @return array
-   *   Array of arrays with the following elements:
-   *   - An array mocking the database connection info. Possible keys are
-   *     database, username, password, prefix, host, port, namespace and driver.
-   *   - The expected URL after conversion.
-   */
-  public function providerGetConnectionInfoAsUrl() {
-    $info1 = [
-      'database' => 'test_database',
-      'username' => 'test_user',
-      'password' => 'test_pass',
-      'prefix' => '',
-      'host' => 'test_host',
-      'port' => '3306',
-      'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
-      'driver' => 'mysql',
-    ];
-    $expected_url1 = 'mysql://test_user:test_pass@test_host:3306/test_database';
-
-    $info2 = [
-      'database' => 'test_database',
-      'username' => 'test_user',
-      'password' => 'test_pass',
-      'prefix' => 'pre',
-      'host' => 'test_host',
-      'port' => '3306',
-      'driver' => 'mysql',
-    ];
-    $expected_url2 = 'mysql://test_user:test_pass@test_host:3306/test_database#pre';
-
-    $info3 = [
-      'database' => 'test_database',
-      'driver' => 'sqlite',
-    ];
-    $expected_url3 = 'sqlite://localhost/test_database';
-
-    return [
-      [$info1, $expected_url1],
-      [$info2, $expected_url2],
-      [$info3, $expected_url3],
-    ];
-  }
-
-}
diff --git a/core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/AuthenticationProviderPassTest.php b/core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/AuthenticationProviderPassTest.php
deleted file mode 100644
index 6f99d09..0000000
--- a/core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/AuthenticationProviderPassTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-namespace Drupal\Tests\Core\DependencyInjection\Compiler;
-
-use Drupal\Core\DependencyInjection\Compiler\AuthenticationProviderPass;
-use Drupal\Core\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\Serializer\Serializer;
-
-/**
- * @coversDefaultClass \Drupal\Core\DependencyInjection\Compiler\AuthenticationProviderPass
- * @group DependencyInjection
- */
-class AuthenticationProviderPassTest extends \PHPUnit_Framework_TestCase {
-
-  /**
-   * @covers ::process
-   */
-  public function testEncoders() {
-    $container = new ContainerBuilder();
-    $container->setDefinition('serializer', new Definition(Serializer::class, [[], []]));
-
-    $definition = new Definition('TestClass');
-    $definition->addTag('authentication_provider', ['provider_id' => 'bunny_auth']);
-    $definition->addTag('_provider', ['provider' => 'test_provider_a']);
-    $container->setDefinition('test_provider_a.authentication.bunny_auth', $definition);
-
-    $definition = new Definition('TestClass');
-    $definition->addTag('authentication_provider', ['provider_id' => 'llama_auth', 'priority' => 100]);
-    $definition->addTag('_provider', ['provider' => 'test_provider_a']);
-    $container->setDefinition('test_provider_a.authentication.llama_auth', $definition);
-
-    $definition = new Definition('TestClass');
-    $definition->addTag('authentication_provider', ['provider_id' => 'camel_auth', 'priority' => -100]);
-    $definition->addTag('_provider', ['provider' => 'test_provider_b']);
-    $container->setDefinition('test_provider_b.authentication.camel_auth', $definition);
-
-    $compiler_pass = new AuthenticationProviderPass();
-    $compiler_pass->process($container);
-
-    $this->assertEquals(['bunny_auth' => 'test_provider_a', 'llama_auth' => 'test_provider_a', 'camel_auth' => 'test_provider_b'], $container->getParameter('authentication_providers'));
-  }
-
-}
diff --git a/core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php b/core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php
deleted file mode 100644
index 1a9dc66..0000000
--- a/core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-namespace Drupal\Tests\Core\DependencyInjection;
-
-use Drupal\Component\FileCache\FileCacheFactory;
-use Drupal\Core\DependencyInjection\ContainerBuilder;
-use Drupal\Core\DependencyInjection\YamlFileLoader;
-use org\bovigo\vfs\vfsStream;
-
-/**
- * @coversDefaultClass \Drupal\Core\DependencyInjection\YamlFileLoader
- * @group DependencyInjection
- */
-class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    FileCacheFactory::setPrefix('example');
-  }
-
-  public function testParseDefinitionsWithProvider() {
-    $yml = <<<YAML
-services:
-  example_service:
-    class: \Drupal\Core\ExampleClass
-YAML;
-
-    vfsStream::setup('drupal', NULL, [
-      'modules/example/example.yml' => $yml,
-    ]);
-
-    $builder = new ContainerBuilder();
-    $yaml_file_loader = new YamlFileLoader($builder);
-    $yaml_file_loader->load('vfs://drupal/modules/example/example.yml');
-
-    $this->assertEquals(['_provider' => [['provider' => 'example']]], $builder->getDefinition('example_service')->getTags());
-  }
-
-}
diff --git a/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php b/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php
index cb73533..4c39b4c 100644
--- a/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php
@@ -7,7 +7,6 @@
 use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Field\BaseFieldDefinition;
 use Drupal\Core\Language\LanguageInterface;
-use Drupal\Core\TypedData\TypedDataManagerInterface;
 use Drupal\Tests\UnitTestCase;
 use Drupal\Core\Language\Language;
 
@@ -131,7 +130,9 @@ protected function setUp() {
 
     $this->uuid = $this->getMock('\Drupal\Component\Uuid\UuidInterface');
 
-    $this->typedDataManager = $this->getMock(TypedDataManagerInterface::class);
+    $this->typedDataManager = $this->getMockBuilder('\Drupal\Core\TypedData\TypedDataManager')
+      ->disableOriginalConstructor()
+      ->getMock();
     $this->typedDataManager->expects($this->any())
       ->method('getDefinition')
       ->with('entity')
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php
index 8381ea7..05b0784 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php
@@ -2,589 +2,377 @@
 
 namespace Drupal\Tests\Core\Entity;
 
-use Drupal\Core\Entity\Entity;
-use Drupal\Core\Entity\EntityMalformedException;
-use Drupal\Core\Entity\EntityManagerInterface;
-use Drupal\Core\Entity\EntityTypeInterface;
-use Drupal\Core\Entity\Exception\UndefinedLinkTemplateException;
-use Drupal\Core\Entity\RevisionableInterface;
-use Drupal\Core\Url;
+use Drupal\Core\Config\Entity\ConfigEntityInterface;
+use Drupal\Core\DependencyInjection\ContainerBuilder;
+use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Language\Language;
+use Drupal\Core\Language\LanguageInterface;
 use Drupal\Tests\UnitTestCase;
 
 /**
- * Tests URL handling of the \Drupal\Core\Entity\Entity class.
- *
  * @coversDefaultClass \Drupal\Core\Entity\Entity
- *
  * @group Entity
  */
 class EntityUrlTest extends UnitTestCase {
 
   /**
-   * The entity manager mock used in this test.
+   * The mocked entity manager.
    *
-   * @var \Prophecy\Prophecy\ProphecyInterface|\Drupal\Core\Entity\EntityManagerInterface
+   * @var \Drupal\Core\Entity\EntityManagerInterface|\PHPUnit_Framework_MockObject_MockObject
    */
   protected $entityManager;
 
   /**
-   * The ID of the entity type used in this test.
+   * The mocked URL generator.
    *
-   * @var string
+   * @var \Drupal\Core\Routing\UrlGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
    */
-  protected $entityTypeId = 'test_entity';
+  protected $urlGenerator;
 
   /**
-   * The entity type mock used in this test.
-   *
-   * @var \Prophecy\Prophecy\ProphecyInterface|\Drupal\Core\Entity\EntityTypeInterface
-   */
-  protected $entityType;
-
-  /**
-   * The ID of the entity used in this test.
-   *
-   * @var int
-   */
-  protected $entityId = 1;
-
-  /**
-   * The revision ID of the entity used in this test.
-   *
-   * @var int
-   */
-  protected $revisionId = 2;
-
-  /**
-   * The language code of the entity used in this test.
-   *
-   * @var string
-   */
-  protected $langcode = 'en';
-
-  /**
-   * Indicator for default revisions.
-   *
-   * @var true
-   */
-  const DEFAULT_REVISION = TRUE;
-
-  /**
-   * Indicator for non-default revisions.
-   *
-   * @var false
+   * {@inheritdoc}
    */
-  const NON_DEFAULT_REVISION = FALSE;
+  protected function setUp() {
+    parent::setUp();
 
-  /**
-   * Indicator that the test entity type has no bundle key.
-   *
-   * @var false
-   */
-  const HAS_NO_BUNDLE_KEY = FALSE;
+    $this->entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
+    $this->urlGenerator = $this->getMock('Drupal\Core\Routing\UrlGeneratorInterface');
 
-  /**
-   * Indicator that the test entity type has a bundle key.
-   *
-   * @var true
-   */
-  const HAS_BUNDLE_KEY = TRUE;
-
-  /**
-   * Tests the toUrl() method without an entity ID.
-   *
-   * @covers ::toUrl
-   */
-  public function testToUrlNoId() {
-    $entity = $this->getEntity(Entity::class, []);
-
-    $this->setExpectedException(EntityMalformedException::class, 'The "' . $this->entityTypeId . '" entity cannot have a URI as it does not have an ID');
-    $entity->toUrl();
+    $container = new ContainerBuilder();
+    $container->set('entity.manager', $this->entityManager);
+    $container->set('url_generator', $this->urlGenerator);
+    \Drupal::setContainer($container);
   }
 
   /**
-   * Tests the toUrl() method with simple link templates.
-   *
-   * @param string $link_template
-   *   The link template to test.
-   * @param string $expected_route_name
-   *   The expected route name of the generated URL.
+   * Tests the urlInfo() method.
    *
-   * @dataProvider providerTestToUrlLinkTemplates
+   * Note that urlInfo() is a deprecated alias for toUrl().
+   * See testToUrl().
    *
-   * @covers ::toUrl
-   * @covers ::linkTemplates
-   * @covers ::urlRouteParameters
-   */
-  public function testToUrlLinkTemplates($link_template, $expected_route_name) {
-    $values = ['id' => $this->entityId, 'langcode' => $this->langcode];
-    $entity = $this->getEntity(Entity::class, $values);
-    $this->registerLinkTemplate($link_template);
-
-    /** @var \Drupal\Core\Url $url */
-    $url = $entity->toUrl($link_template);
-    // The entity ID is the sole route parameter for the link templates tested
-    // here.
-    $this->assertUrl($expected_route_name, ['test_entity' => $this->entityId], $entity, TRUE, $url);
-  }
-
-  /**
-   * Provides data for testToUrlLinkTemplates().
+   * @covers ::urlInfo
    *
-   * @return array
-   *   An array of test cases for testToUrlLinkTemplates().
+   * @dataProvider providerTestToUrl
    */
-  public function providerTestToUrlLinkTemplates() {
-    $test_cases = [];
+  public function testUrlInfo($entity_class, $link_template, $expected, $langcode = NULL) {
+    /** @var \Drupal\Core\Entity\EntityInterface $entity */
+    $entity = $this->getMockForAbstractClass($entity_class, array(array('id' => 'test_entity_id'), 'test_entity_type'));
+    $uri = $this->getTestUrlInfo($entity, $link_template, [], $langcode);
 
-    $test_cases['canonical'] = ['canonical', 'entity.test_entity.canonical'];
-    $test_cases['version-history'] = ['version-history', 'entity.test_entity.version_history'];
-    $test_cases['edit-form'] = ['edit-form', 'entity.test_entity.edit_form'];
-    $test_cases['delete-form'] = ['delete-form', 'entity.test_entity.delete_form'];
-    $test_cases['revision'] = ['revision', 'entity.test_entity.revision'];
+    $this->assertSame($expected, $uri->getRouteName());
+    $this->assertSame($entity, $uri->getOption('entity'));
 
-    return $test_cases;
+    if ($langcode) {
+      $this->assertEquals($langcode, $uri->getOption('language')->getId());
+    }
+    else {
+      if ($entity instanceof ConfigEntityInterface) {
+        // Config entities do not provide a language with their URIs.
+        $this->assertEquals(NULL, $uri->getOption('language'));
+      }
+      else {
+        $this->assertEquals(LanguageInterface::LANGCODE_NOT_SPECIFIED, $uri->getOption('language')->getId());
+      }
+    }
   }
-
   /**
-   * Tests the toUrl() method with the 'revision' link template.
-   *
-   * @param bool $is_default_revision
-   *   Whether or not the mock entity should be the default revision.
-   * @param string $link_template
-   *   The link template to test.
-   * @param string $expected_route_name
-   *   The expected route name of the generated URL.
-   * @param array $expected_route_parameters
-   *   The expected route parameters of the generated URL.
-   *
-   * @dataProvider providerTestToUrlLinkTemplateRevision
+   * Tests the toUrl() method.
    *
    * @covers ::toUrl
-   * @covers ::linkTemplates
-   * @covers ::urlRouteParameters
-   */
-  public function testToUrlLinkTemplateRevision($is_default_revision, $link_template, $expected_route_name, array $expected_route_parameters) {
-    $values = ['id' => $this->entityId, 'langcode' => $this->langcode];
-    $entity = $this->getEntity(RevisionableEntity::class, $values);
-    $entity->method('getRevisionId')->willReturn($this->revisionId);
-    $entity->method('isDefaultRevision')->willReturn($is_default_revision);
-    $this->registerLinkTemplate($link_template);
-    // Even though this is tested with both the 'canonical' and the 'revision'
-    // template registered with the entity, we always ask for the 'revision'
-    // link template, to test that it falls back to the 'canonical' link
-    // template in case of the default revision.
-    /** @var \Drupal\Core\Url $url */
-    $url = $entity->toUrl('revision');
-    $this->assertUrl($expected_route_name, $expected_route_parameters, $entity, TRUE, $url);
-
-  }
-
-  /**
-   * Provides data for testToUrlLinkTemplateRevision().
    *
-   * @return array
-   *   An array of test cases for testToUrlLinkTemplateRevision().
+   * @dataProvider providerTestToUrl
    */
-  public function providerTestToUrlLinkTemplateRevision() {
-    $test_cases = [];
+  public function testToUrl($entity_class, $link_template, $expected, $langcode = NULL) {
+    /** @var \Drupal\Core\Entity\EntityInterface $entity */
+    $entity = $this->getMockForAbstractClass($entity_class, array(array('id' => 'test_entity_id'), 'test_entity_type'));
+    $uri = $this->getTestToUrl($entity, $link_template, [], $langcode);
 
-    $route_parameters = ['test_entity' => $this->entityId];
-    $test_cases['default_revision'] = [static::DEFAULT_REVISION, 'canonical', 'entity.test_entity.canonical', $route_parameters];
-    // Add the revision ID to the expected route parameters.
-    $route_parameters['test_entity_revision'] = $this->revisionId;
-    $test_cases['non_default_revision'] = [static::NON_DEFAULT_REVISION, 'revision', 'entity.test_entity.revision', $route_parameters];
+    $this->assertSame($expected, $uri->getRouteName());
+    $this->assertSame($entity, $uri->getOption('entity'));
 
-    return $test_cases;
+    if ($langcode) {
+      $this->assertEquals($langcode, $uri->getOption('language')->getId());
+    }
+    else {
+      if ($entity instanceof ConfigEntityInterface) {
+        // Config entities do not provide a language with their URIs.
+        $this->assertEquals(NULL, $uri->getOption('language'));
+      }
+      else {
+        $this->assertEquals(LanguageInterface::LANGCODE_NOT_SPECIFIED, $uri->getOption('language')->getId());
+      }
+    }
   }
 
   /**
-   * Tests the toUrl() method with link templates without an entity ID.
-   *
-   * @param string $link_template
-   *   The link template to test.
-   * @param string $expected_route_name
-   *   The expected route name of the generated URL.
-   *
-   * @dataProvider providerTestToUrlLinkTemplateNoId
+   * Tests for Entity::toUrl() exercising different language options.
    *
    * @covers ::toUrl
-   * @covers ::linkTemplates
-   * @covers ::urlRouteParameters
    */
-  public function testToUrlLinkTemplateNoId($link_template, $expected_route_name) {
-    $entity = $this->getEntity(Entity::class, ['id' => $this->entityId]);
-    $this->registerLinkTemplate($link_template);
-
-    /** @var \Drupal\Core\Url $url */
-    $url = $entity->toUrl($link_template);
-    $this->assertUrl($expected_route_name, [], $entity, FALSE, $url);
-  }
+  public function testToUrlWithSpecificLanguageInOptions() {
+    /** @var \Drupal\Core\Entity\EntityInterface $entity */
+    $entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array('id' => 'test_entity_id'), 'test_entity_type'));
 
-  /**
-   * Provides data for testToUrlLinkTemplateNoId().
-   *
-   * @return array
-   *   An array of test cases for testToUrlLinkTemplateNoId().
-   */
-  public function providerTestToUrlLinkTemplateNoId() {
-    $test_cases = [];
+    // Ensure that a specified language overrides the current translation
+    // language.
+    $uri = $this->getTestToUrl($entity, 'edit-form', [], 'en');
+    $this->assertEquals('en', $uri->getOption('language')->getId());
 
-    $test_cases['collection'] = ['collection', 'entity.test_entity.collection'];
-    $test_cases['add-page'] = ['add-page', 'entity.test_entity.add_page'];
-
-    return $test_cases;
+    $uri = $this->getTestToUrl($entity, 'edit-form', ['language' => new Language(['id' => 'fr'])], 'en');
+    $this->assertEquals('fr', $uri->getOption('language')->getId());
   }
 
   /**
-   * Tests the toUrl() method with the 'revision' link template.
-   *
-   * @param bool $has_bundle_key
-   *   Whether or not the mock entity type should have a bundle key.
-   * @param string|null $bundle_entity_type
-   *   The ID of the bundle entity type of the mock entity type, or NULL if the
-   *   mock entity type should not have a bundle entity type.
-   * @param string $bundle_key
-   *   The bundle key of the mock entity type or FALSE if the entity type should
-   *   not have a bundle key.
-   * @param array $expected_route_parameters
-   *   The expected route parameters of the generated URL.
-   *
-   * @dataProvider providerTestToUrlLinkTemplateAddForm
-   *
-   * @covers ::toUrl
-   * @covers ::linkTemplates
-   * @covers ::urlRouteParameters
+   * Provides test data for testUrlInfo().
    */
-  public function testToUrlLinkTemplateAddForm($has_bundle_key, $bundle_entity_type, $bundle_key, $expected_route_parameters) {
-    $values = ['id' => $this->entityId, 'langcode' => $this->langcode];
-    $entity = $this->getEntity(Entity::class, $values);
-    $this->entityType->hasKey('bundle')->willReturn($has_bundle_key);
-    $this->entityType->getBundleEntityType()->willReturn($bundle_entity_type);
-    $this->entityType->getKey('bundle')->willReturn($bundle_key);
-    $link_template = 'add-form';
-    $this->registerLinkTemplate($link_template);
-
-    /** @var \Drupal\Core\Url $url */
-    $url = $entity->toUrl($link_template);
-    $this->assertUrl('entity.test_entity.add_form', $expected_route_parameters, $entity, FALSE, $url);
+  public function providerTestToUrl() {
+    return array(
+      array('Drupal\Core\Entity\Entity', 'edit-form', 'entity.test_entity_type.edit_form', NULL),
+      // Specify a langcode.
+      array('Drupal\Core\Entity\Entity', 'edit-form', 'entity.test_entity_type.edit_form', 'es'),
+      array('Drupal\Core\Entity\Entity', 'edit-form', 'entity.test_entity_type.edit_form', 'en'),
+      array('Drupal\Core\Config\Entity\ConfigEntityBase', 'edit-form', 'entity.test_entity_type.edit_form', NULL),
+      // Test that overriding the default $rel parameter works.
+      array('Drupal\Core\Config\Entity\ConfigEntityBase', FALSE, 'entity.test_entity_type.edit_form', NULL),
+    );
   }
 
   /**
-   * Provides data for testToUrlLinkTemplateAddForm().
+   * Tests the toUrl() method with an invalid link template.
    *
-   * @return array
-   *   An array of test cases for testToUrlLinkTemplateAddForm().
-   */
-  public function providerTestToUrlLinkTemplateAddForm() {
-    $test_cases = [];
-
-    $route_parameters = [];
-    $test_cases['no_bundle_key'] = [static::HAS_NO_BUNDLE_KEY, NULL, FALSE, $route_parameters];
-
-    $route_parameters = ['type' => $this->entityTypeId];
-    $test_cases['bundle_entity_type'] = [static::HAS_BUNDLE_KEY, 'type', FALSE, $route_parameters];
-    $test_cases['bundle_key'] = [static::HAS_BUNDLE_KEY, NULL, 'type', $route_parameters];
-
-    return $test_cases;
-  }
-
-  /**
-   * Tests the toUrl() method with neither link templates nor a URI callback.
+   * @covers ::toUrl
    *
-   * @param array $bundle_info
-   *   An array of bundle info to register.
-   * @param string $uri_callback
-   *   The entity type URI callback to register.
+   * @expectedException \Drupal\Core\Entity\Exception\UndefinedLinkTemplateException
    *
-   * @dataProvider providerTestToUrlUriCallbackUndefined
+   * @expectedExceptionMessage No link template 'canonical' found for the 'test_entity_type' entity type
    *
-   * @covers ::toUrl
-   * @covers ::linkTemplates
+   * @dataProvider providerTestToUrlForInvalidLinkTemplate
    */
-  public function testToUrlUriCallbackUndefined(array $bundle_info, $uri_callback) {
-    $entity = $this->getEntity(Entity::class, ['id' => $this->entityId]);
-
-    $this->registerBundleInfo($bundle_info);
-    $this->entityType->getUriCallback()->willReturn($uri_callback);
+  public function testToUrlForInvalidLinkTemplate($entity_class, $link_template) {
+    /** @var \Drupal\Core\Entity\EntityInterface $entity */
+    $entity = $this->getMockForAbstractClass($entity_class, array(array('id' => 'test_entity_id'), 'test_entity_type'));
+    $uri = $this->getTestToUrl($entity, $link_template);
 
-    $link_template = 'canonical';
-    $this->setExpectedException(UndefinedLinkTemplateException::class, "No link template '$link_template' found for the '$this->entityTypeId' entity type");
-    $entity->toUrl($link_template);
+    $this->assertEmpty($uri);
   }
 
   /**
-   * Provides data for testToUrlUriCallbackUndefined().
-   *
-   * @return array
-   *   An array of test cases for testToUrlUriCallbackUndefined().
+   * Provides test data for testUrlInfoForInvalidLinkTemplate().
    */
-  public function providerTestToUrlUriCallbackUndefined() {
-    $test_cases = [];
-
-    $test_cases['no_callback'] = [[], NULL];
-    $test_cases['uri_callback'] = [[], 'not_a_callable'];
-    $test_cases['bundle_uri_callback'] = [['uri_callback' => 'not_a_callable'], NULL];
-
-    return $test_cases;
+  public function providerTestToUrlForInvalidLinkTemplate() {
+    return array(
+      array('Drupal\Core\Entity\Entity', 'canonical'),
+      array('Drupal\Core\Entity\Entity', FALSE),
+      array('Drupal\Core\Config\Entity\ConfigEntityBase', 'canonical'),
+    );
   }
 
   /**
-   * Tests the toUrl() method with a URI callback.
+   * Creates a \Drupal\Core\Url object based on the entity and link template.
    *
-   * @param array $bundle_info
-   *   An array of bundle info to register.
-   * @param string $uri_callback
-   *   The entity type URI callback to register.
+   * Method urlInfo() is deprecated and replaced with toUrl().
+   * See also getTestToUrl().
    *
-   * @covers ::toUrl
-   * @covers ::linkTemplates
-   *
-   * @dataProvider providerTestToUrlUriCallback
-   */
-  public function testToUrlUriCallback(array $bundle_info, $uri_callback) {
-    $entity = $this->getEntity(Entity::class, ['id' => $this->entityId, 'langcode' => $this->langcode]);
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   The test entity.
+   * @param string $link_template
+   *   The link template.
+   * @param string $langcode
+   *   The langcode.
+   *
+   * @return \Drupal\Core\Url
+   *   The URL for this entity's link template.
+   */
+  protected function getTestUrlInfo(EntityInterface $entity, $link_template, array $options = [], $langcode = NULL) {
+    $entity_type = $this->getMock('Drupal\Core\Entity\EntityTypeInterface');
+    $entity_type->expects($this->any())
+      ->method('getLinkTemplates')
+      ->will($this->returnValue(array(
+        'edit-form' => 'test_entity_type.edit',
+      )));
+
+    if ($langcode) {
+      $entity->langcode = $langcode;
+    }
 
-    $this->registerBundleInfo($bundle_info);
-    $this->entityType->getUriCallback()->willReturn($uri_callback);
+    $this->entityManager
+      ->expects($this->any())
+      ->method('getDefinition')
+      ->with('test_entity_type')
+      ->will($this->returnValue($entity_type));
+
+    // If no link template is given, call without a value to test the default.
+    if ($link_template) {
+      $uri = $entity->urlInfo($link_template, $options);
+    }
+    else {
+      if ($entity instanceof ConfigEntityInterface) {
+        $uri = $entity->urlInfo('edit-form', $options);
+      }
+      else {
+        $uri = $entity->urlInfo('canonical', $options);
+      }
+    }
 
-    /** @var \Drupal\Core\Url $url */
-    $url = $entity->toUrl('canonical');
-    $this->assertUrl('<none>', [], $entity, TRUE, $url);
+    return $uri;
   }
 
   /**
-   * Provides data for testToUrlUriCallback().
+   * Creates a \Drupal\Core\Url object based on the entity and link template.
    *
-   * @return array
-   *   An array of test cases for testToUrlUriCallback().
-   */
-  public function providerTestToUrlUriCallback() {
-    $test_cases = [];
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   The test entity.
+   * @param string $link_template
+   *   The link template.
+   * @param string $langcode
+   *   The langcode.
+   *
+   * @return \Drupal\Core\Url
+   *   The URL for this entity's link template.
+   */
+  protected function getTestToUrl(EntityInterface $entity, $link_template, array $options = [], $langcode = NULL) {
+    $entity_type = $this->getMock('Drupal\Core\Entity\EntityTypeInterface');
+    $entity_type->expects($this->any())
+      ->method('getLinkTemplates')
+      ->will($this->returnValue(array(
+        'edit-form' => 'test_entity_type.edit',
+      )));
+
+    if ($langcode) {
+      $entity->langcode = $langcode;
+    }
 
-    $uri_callback = function () { return Url::fromRoute('<none>'); };
-    $test_cases['uri_callback'] = [[], $uri_callback];
-    $test_cases['bundle_uri_callback'] = [['uri_callback' => $uri_callback], NULL];
+    $this->entityManager
+      ->expects($this->any())
+      ->method('getDefinition')
+      ->with('test_entity_type')
+      ->will($this->returnValue($entity_type));
+
+    // If no link template is given, call without a value to test the default.
+    if ($link_template) {
+      $uri = $entity->toUrl($link_template, $options);
+    }
+    else {
+      if ($entity instanceof ConfigEntityInterface) {
+        $uri = $entity->toUrl('edit-form', $options);
+      }
+      else {
+        $uri = $entity->toUrl('canonical', $options);
+      }
+    }
 
-    return $test_cases;
+    return $uri;
   }
 
   /**
-   * Tests the urlInfo() method.
-   *
-   * @param string $rel
-   *   The link relation to test.
-   * @param array $options
-   *   An array of URL options to test with.
+   * Tests the toUrl() method when an entity is still "new".
    *
-   * @covers ::urlInfo
+   * @see \Drupal\Core\Entity\EntityInterface::isNew()
    *
-   * @dataProvider providerTestUrlInfo
-   */
-  public function testUrlInfo($rel, $options) {
-    $entity = $this->getEntity(Entity::class, [], ['toUrl']);
-    $entity->expects($this->once())
-      ->method('toUrl')
-      ->with($rel, $options);
-
-    $entity->urlInfo($rel, $options);
-  }
-
-  /**
-   * Provides data for testUrlInfo().
+   * @covers ::toUrl
    *
-   * @return array
-   *   An array of test cases for testUrlInfo().
+   * @expectedException \Drupal\Core\Entity\EntityMalformedException
    */
-  public function providerTestUrlInfo() {
-    $test_cases = [];
-
-    $test_cases['default'] = ['canonical', []];
-    $test_cases['with_option'] = ['canonical', ['absolute' => TRUE]];
-    $test_cases['revision'] = ['revision', []];
-
-    return $test_cases;
+  public function testToUrlForNewEntity() {
+    $entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array(), 'test_entity_type'));
+    $entity->toUrl();
   }
 
   /**
-   * Tests the url() method without an entity ID.
-   *
-   * @param string $rel
-   *   The link relation to test.
+   * Tests the url() method.
    *
    * @covers ::url
-   * @covers ::hasLinkTemplate
-   * @covers ::linkTemplates
-   *
-   * @dataProvider providerTestUrl
    */
-  public function testUrlEmpty($rel) {
-    $entity = $this->getEntity(Entity::class, []);
-    $this->assertEquals('', $entity->url($rel));
-  }
+  public function testUrl() {
+    $entity_type = $this->getMock('Drupal\Core\Entity\EntityTypeInterface');
+    $entity_type->expects($this->any())
+      ->method('getLinkTemplates')
+      ->will($this->returnValue(array(
+        'canonical' => 'test_entity_type.view',
+      )));
 
-  /**
-   * Provides data for testUrlEmpty().
-   *
-   * @return array
-   *   An array of test cases for testUrlEmpty().
-   */
-  public function providerTestUrlEmpty() {
-    $test_cases = [];
-
-    $test_cases['default'] = ['canonical', []];
-    $test_cases['revision'] = ['revision', []];
-
-    return $test_cases;
+    $this->entityManager
+      ->expects($this->any())
+      ->method('getDefinition')
+      ->with('test_entity_type')
+      ->will($this->returnValue($entity_type));
+
+    $invalid_entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array(), 'test_entity_type'));
+    $this->assertSame('', $invalid_entity->url());
+
+    $no_link_entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array('id' => 'test_entity_id'), 'test_entity_type'));
+    $this->assertSame('', $no_link_entity->url('banana'));
+
+    $valid_entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array('id' => 'test_entity_id'), 'test_entity_type'));
+
+    $language = new Language(array('id' => LanguageInterface::LANGCODE_NOT_SPECIFIED));
+    $this->urlGenerator->expects($this->any())
+      ->method('generateFromRoute')
+      // Sadly returnValueMap() uses ===, see \PHPUnit_Framework_MockObject_Stub_ReturnValueMap::invoke
+      // so the $language object can't be compared directly.
+      ->willReturnCallback(function ($route_name, $route_parameters, $options) use ($language) {
+        if ($route_name === 'entity.test_entity_type.canonical' && $route_parameters === array('test_entity_type' => 'test_entity_id') && array_keys($options) === ['entity_type', 'entity', 'language'] && $options['language'] == $language) {
+          return '/entity/test_entity_type/test_entity_id';
+        }
+        if ($route_name === 'entity.test_entity_type.canonical' && $route_parameters === array('test_entity_type' => 'test_entity_id') && array_keys($options) === ['absolute', 'entity_type', 'entity', 'language'] && $options['language'] == $language) {
+          return 'http://drupal/entity/test_entity_type/test_entity_id';
+        }
+      });
+
+    $this->assertSame('/entity/test_entity_type/test_entity_id', $valid_entity->url());
+    $this->assertSame('http://drupal/entity/test_entity_type/test_entity_id', $valid_entity->url('canonical', array('absolute' => TRUE)));
   }
 
   /**
-   * Tests the url() method.
-   *
-   * @param string $rel
-   *   The link relation to test.
-   * @param array $options
-   *   An array of URL options to call url() with.
-   * @param array $default_options
-   *   An array of URL options that toUrl() should generate.
-   * @param array $expected_options
-   *   An array of combined URL options that should be set on the final URL.
+   * Tests the retrieval of link templates.
    *
-   * @covers ::url
    * @covers ::hasLinkTemplate
    * @covers ::linkTemplates
    *
-   * @dataProvider providerTestUrl
+   * @dataProvider providerTestLinkTemplates
    */
-  public function testUrl($rel, $options, $default_options, $expected_options) {
-    $entity = $this->getEntity(Entity::class, ['id' => $this->entityId], ['toUrl']);
-    $this->registerLinkTemplate($rel);
-
-    $uri = $this->prophesize(Url::class);
-    $uri->getOptions()->willReturn($default_options);
-    $uri->setOptions($expected_options)->shouldBeCalled();
-
-    $url_string = "/test-entity/{$this->entityId}/$rel";
-    $uri->toString()->willReturn($url_string);
+  public function testLinkTemplates($override_templates, $expected) {
+    $entity_type = $this->getMock('Drupal\Core\Entity\EntityTypeInterface');
+    $entity_type->expects($this->any())
+      ->method('getLinkTemplates')
+      ->will($this->returnValue(array(
+        'canonical' => 'test_entity_type.view',
+      )));
 
-    $entity->expects($this->once())
-      ->method('toUrl')
-      ->with($rel)
-      ->willReturn($uri->reveal());
-
-    $this->assertEquals($url_string, $entity->url($rel, $options));
-  }
-
-  /**
-   * Provides data for testUrl().
-   *
-   * @return array
-   *   An array of test cases for testUrl().
-   */
-  public function providerTestUrl() {
-    $test_cases = [];
-
-    $test_cases['default'] = ['canonical', [], [], []];
-    $test_cases['revision'] = ['revision', [], [], []];
-    $test_cases['option'] = ['canonical', ['absolute' => TRUE], [], ['absolute' => TRUE]];
-    $test_cases['default_option'] = ['canonical', [], ['absolute' => TRUE], ['absolute' => TRUE]];
-    $test_cases['option_merge'] = ['canonical', ['absolute' => TRUE], ['entity_type' => $this->entityTypeId], ['absolute' => TRUE, 'entity_type' => $this->entityTypeId]];
-    $test_cases['option_override'] = ['canonical', ['absolute' => TRUE], ['absolute' => FALSE], ['absolute' => TRUE]];
-
-    return $test_cases;
-  }
-
-  /**
-   * Returns a mock entity for testing.
-   *
-   * @param string $class
-   *   The class name to mock. Should be \Drupal\Core\Entity\Entity or a
-   *   subclass.
-   * @param array $values
-   *   An array of entity values to construct the mock entity with.
-   * @param array $methods
-   *   (optional) An array of additional methods to mock on the entity object.
-   *   The getEntityType() and entityManager() methods are always mocked.
-   *
-   * @return \Drupal\Core\Entity\Entity|\PHPUnit_Framework_MockObject_MockObject
-   */
-  protected function getEntity($class, array $values, array $methods = []) {
-    $methods = array_merge($methods, ['getEntityType', 'entityManager']);
-
-    // Prophecy does not allow prophesizing abstract classes while actually
-    // calling their code. We use Prophecy below because that allows us to
-    // add method prophecies later while still revealing the prophecy now.
-    $entity = $this->getMockBuilder($class)
-      ->setConstructorArgs([$values, $this->entityTypeId])
-      ->setMethods($methods)
-      ->getMockForAbstractClass();
-
-    $this->entityType = $this->prophesize(EntityTypeInterface::class);
-    $this->entityType->getLinkTemplates()->willReturn([]);
-    $this->entityType->getKey('langcode')->willReturn(FALSE);
-    $entity->method('getEntityType')->willReturn($this->entityType->reveal());
-
-    $this->entityManager = $this->prophesize(EntityManagerInterface::class);
-    $entity->method('entityManager')->willReturn($this->entityManager->reveal());
-
-    return $entity;
-  }
-
-  /**
-   * Asserts that a given URL object matches the expectations.
-   *
-   * @param string $expected_route_name
-   *   The expected route name of the generated URL.
-   * @param array $expected_route_parameters
-   *   The expected route parameters of the generated URL.
-   * @param \Drupal\Core\Entity\Entity|\PHPUnit_Framework_MockObject_MockObject $entity
-   *   The entity that is expected to be set as a URL option.
-   * @param bool $has_language
-   *   Whether or not the URL is expected to have a language option.
-   * @param \Drupal\Core\Url $url
-   *   The URL option to make the assertions on.
-   */
-  protected function assertUrl($expected_route_name, array $expected_route_parameters, $entity, $has_language, Url $url) {
-    $this->assertEquals($expected_route_name, $url->getRouteName());
-    $this->assertEquals($expected_route_parameters, $url->getRouteParameters());
-    $this->assertEquals($this->entityTypeId, $url->getOption('entity_type'));
-    $this->assertEquals($entity, $url->getOption('entity'));
-    if ($has_language) {
-      $this->assertEquals($this->langcode, $url->getOption('language')->getId());
-    }
-    else {
-      $this->assertNull($url->getOption('language'));
-    }
-  }
-
-  /**
-   * Registers a link template for the mock entity.
-   *
-   * @param string $link_template
-   *   The link template to register.
-   */
-  protected function registerLinkTemplate($link_template) {
-    $link_templates = [
-      // The path is actually never used because we never invoke the URL
-      // generator but perform assertions on the URL object directly.
-      $link_template => "/test-entity/{test_entity}/$link_template",
-    ];
-    $this->entityType->getLinkTemplates()->willReturn($link_templates);
+    $this->entityManager
+      ->expects($this->any())
+      ->method('getDefinition')
+      ->with('test_entity_type')
+      ->will($this->returnValue($entity_type));
+
+    $entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array('id' => 'test_entity_id'), 'test_entity_type'), '', TRUE, TRUE, TRUE, array('linkTemplates'));
+    $entity->expects($this->any())
+      ->method('linkTemplates')
+      ->will($this->returnCallback(function () use ($entity_type, $override_templates) {
+        $templates = $entity_type->getLinkTemplates();
+        if ($override_templates) {
+          $templates['bananas'] = 'test_entity_type.bananas';
+        }
+        return $templates;
+      }));
+    $this->assertSame($expected['canonical'], $entity->hasLinkTemplate('canonical'));
+    $this->assertSame($expected['bananas'], $entity->hasLinkTemplate('bananas'));
   }
 
   /**
-   * Registers bundle information for the mock entity type.
-   *
-   * @param array $bundle_info
-   *   The bundle information to register.
+   * Provides test data for testLinkTemplates().
    */
-  protected function registerBundleInfo($bundle_info) {
-    $this->entityManager
-      ->getBundleInfo($this->entityTypeId)
-      ->willReturn([$this->entityTypeId => $bundle_info])
-    ;
+  public function providerTestLinkTemplates() {
+    return array(
+      array(FALSE, array(
+        'canonical' => TRUE,
+        'bananas' => FALSE,
+      )),
+      array(TRUE, array(
+        'canonical' => TRUE,
+        'bananas' => TRUE,
+      )),
+    );
   }
 
 }
-
-abstract class RevisionableEntity extends Entity implements RevisionableInterface {}
diff --git a/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php b/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php
index 8ce420b..9759ce9 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php
@@ -218,15 +218,6 @@ public function testGetColumnNames() {
     $table_mapping = new DefaultTableMapping($this->entityType, $definitions);
     $expected = ['value' => 'test__value', 'format' => 'test__format'];
     $this->assertSame($expected, $table_mapping->getColumnNames('test'));
-
-    $definitions['test'] = $this->setUpDefinition('test', ['value']);
-    // Set custom storage.
-    $definitions['test']->expects($this->any())
-      ->method('hasCustomStorage')
-      ->wilLReturn(TRUE);
-    $table_mapping = new DefaultTableMapping($this->entityType, $definitions);
-    // Should return empty for column names.
-    $this->assertSame([], $table_mapping->getColumnNames('test'));
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageSchemaTest.php b/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageSchemaTest.php
index 1ce87c5..e38988e 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageSchemaTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageSchemaTest.php
@@ -820,16 +820,6 @@ public function testDedicatedTableSchema() {
           'length' => 32,
           'not null' => FALSE,
         ),
-        'area' => array(
-          'type' => 'int',
-          'unsigned' => TRUE,
-          'not null' => TRUE,
-        ),
-        'depth' => array(
-          'type' => 'int',
-          'unsigned' => TRUE,
-          'not null' => TRUE,
-        ),
       ),
       'foreign keys' => array(
         'color' => array(
@@ -839,14 +829,8 @@ public function testDedicatedTableSchema() {
           ),
         ),
       ),
-      'unique keys' => array(
-        'area' => array('area'),
-        'shape' => array(array('shape', 10)),
-      ),
-      'indexes' => array(
-        'depth' => array('depth'),
-        'color' => array(array('color', 3)),
-      ),
+      'unique keys' => array(),
+      'indexes' => array(),
     ));
 
     $field_storage = $this->storageDefinitions[$field_name];
@@ -921,27 +905,11 @@ public function testDedicatedTableSchema() {
             'length' => 32,
             'not null' => FALSE,
           ),
-          $field_name . '_area' => array(
-            'type' => 'int',
-            'unsigned' => TRUE,
-            'not null' => TRUE,
-          ),
-          $field_name . '_depth' => array(
-            'type' => 'int',
-            'unsigned' => TRUE,
-            'not null' => TRUE,
-          ),
         ),
         'primary key' => array('entity_id', 'deleted', 'delta', 'langcode'),
         'indexes' => array(
           'bundle' => array('bundle'),
           'revision_id' => array('revision_id'),
-          $field_name . '_depth' => array($field_name . '_depth'),
-          $field_name . '_color' => array(array($field_name . '_color', 3)),
-        ),
-        'unique keys' => array(
-           $field_name . '_area' => array($field_name . '_area'),
-           $field_name . '_shape' => array(array($field_name . '_shape', 10)),
         ),
         'foreign keys' => array(
           $field_name . '_color' => array(
diff --git a/core/tests/Drupal/Tests/Core/Entity/TypedData/EntityAdapterUnitTest.php b/core/tests/Drupal/Tests/Core/Entity/TypedData/EntityAdapterUnitTest.php
index 646f17a..b7debff 100644
--- a/core/tests/Drupal/Tests/Core/Entity/TypedData/EntityAdapterUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/TypedData/EntityAdapterUnitTest.php
@@ -6,7 +6,6 @@
 use Drupal\Core\Entity\Plugin\DataType\EntityAdapter;
 use Drupal\Core\Field\BaseFieldDefinition;
 use Drupal\Core\Language\LanguageInterface;
-use Drupal\Core\TypedData\TypedDataManagerInterface;
 use Drupal\Tests\UnitTestCase;
 use Drupal\Core\Language\Language;
 
@@ -137,7 +136,9 @@ protected function setUp() {
 
     $this->uuid = $this->getMock('\Drupal\Component\Uuid\UuidInterface');
 
-    $this->typedDataManager = $this->getMock(TypedDataManagerInterface::class);
+    $this->typedDataManager = $this->getMockBuilder('\Drupal\Core\TypedData\TypedDataManager')
+      ->disableOriginalConstructor()
+      ->getMock();
     $this->typedDataManager->expects($this->any())
       ->method('getDefinition')
       ->with('entity')
diff --git a/core/tests/Drupal/Tests/Core/EventSubscriber/CustomPageExceptionHtmlSubscriberTest.php b/core/tests/Drupal/Tests/Core/EventSubscriber/CustomPageExceptionHtmlSubscriberTest.php
index 81e7cc6..5d3993d 100644
--- a/core/tests/Drupal/Tests/Core/EventSubscriber/CustomPageExceptionHtmlSubscriberTest.php
+++ b/core/tests/Drupal/Tests/Core/EventSubscriber/CustomPageExceptionHtmlSubscriberTest.php
@@ -14,7 +14,6 @@
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
-use Symfony\Component\Routing\RequestContext;
 
 /**
  * @coversDefaultClass \Drupal\Core\EventSubscriber\CustomPageExceptionHtmlSubscriber
@@ -128,12 +127,6 @@ protected function tearDown() {
   public function testHandleWithPostRequest() {
     $request = Request::create('/test', 'POST', array('name' => 'druplicon', 'pass' => '12345'));
 
-    $request_context = new RequestContext();
-    $request_context->fromRequest($request);
-    $this->accessUnawareRouter->expects($this->any())
-      ->method('getContext')
-      ->willReturn($request_context);
-
     $this->kernel->expects($this->once())->method('handle')->will($this->returnCallback(function (Request $request) {
       return new HtmlResponse($request->getMethod());
     }));
@@ -155,12 +148,6 @@ public function testHandleWithGetRequest() {
     $request = Request::create('/test', 'GET', array('name' => 'druplicon', 'pass' => '12345'));
     $request->attributes->set(AccessAwareRouterInterface::ACCESS_RESULT, AccessResult::forbidden()->addCacheTags(['druplicon']));
 
-    $request_context = new RequestContext();
-    $request_context->fromRequest($request);
-    $this->accessUnawareRouter->expects($this->any())
-      ->method('getContext')
-      ->willReturn($request_context);
-
     $this->kernel->expects($this->once())->method('handle')->will($this->returnCallback(function (Request $request) {
       return new Response($request->getMethod() . ' ' . UrlHelper::buildQuery($request->query->all()));
     }));
diff --git a/core/tests/Drupal/Tests/Core/Extension/ExtensionDiscoveryTest.php b/core/tests/Drupal/Tests/Core/Extension/ExtensionDiscoveryTest.php
deleted file mode 100644
index 3ec2e96..0000000
--- a/core/tests/Drupal/Tests/Core/Extension/ExtensionDiscoveryTest.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-namespace Drupal\Tests\Core\Extension;
-
-use Drupal\Core\Extension\Extension;
-use Drupal\Core\Extension\ExtensionDiscovery;
-use Drupal\Tests\UnitTestCase;
-use org\bovigo\vfs\vfsStream;
-use Symfony\Component\Yaml\Yaml;
-
-/**
- * Tests discovery of extensions.
- *
- * @coversDefaultClass \Drupal\Core\Extension\ExtensionDiscovery
- * @group Extension
- */
-class ExtensionDiscoveryTest extends UnitTestCase {
-
-  /**
-   * Tests extension discovery in a virtual filesystem with vfsStream.
-   *
-   * @covers ::scan
-   */
-  public function testExtensionDiscoveryVfs() {
-
-    // Set up the file system.
-    $filesystem = [];
-    $files_by_type_and_name_expected = $this->populateFilesystemStructure($filesystem);
-
-    $vfs = vfsStream::setup('root', NULL, $filesystem);
-    $root = $vfs->url();
-
-    $this->assertFileExists($root . '/core/modules/system/system.module');
-    $this->assertFileExists($root . '/core/modules/system/system.info.yml');
-
-    // Create an ExtensionDiscovery with $root.
-    $extension_discovery = new ExtensionDiscovery($root, FALSE, NULL, 'sites/default');
-
-    /** @var \Drupal\Core\Extension\Extension[][] $extensions_by_type */
-    $extensions_by_type = [];
-    $files_by_type_and_name = [];
-    foreach (['profile', 'module', 'theme', 'theme_engine'] as $type) {
-      $extensions_by_type[$type] = $extension_discovery->scan($type, FALSE);
-      foreach ($extensions_by_type[$type] as $name => $extension) {
-        $files_by_type_and_name[$type][$name] = $extension->getPathname();
-      }
-      if ($type === 'profile') {
-        // Set profile directories for discovery of the other extension types.
-        $extension_discovery->setProfileDirectories(['myprofile' => 'profiles/myprofile']);
-      }
-    }
-
-    $this->assertEquals($files_by_type_and_name_expected, $files_by_type_and_name);
-
-    $extension_expected = new Extension($root, 'module', 'core/modules/system/system.info.yml', 'system.module');
-    $extension_expected->subpath = 'modules/system';
-    $extension_expected->origin = 'core';
-    $this->assertEquals($extension_expected, $extensions_by_type['module']['system'], 'system');
-
-    $extension_expected = new Extension($root, 'theme_engine', 'core/themes/engines/twig/twig.info.yml', 'twig.engine');
-    $extension_expected->subpath = 'themes/engines/twig';
-    $extension_expected->origin = 'core';
-    $this->assertEquals($extension_expected, $extensions_by_type['theme_engine']['twig'], 'twig');
-  }
-
-  /**
-   * Adds example files to the filesystem structure.
-   *
-   * @param array $filesystem_structure
-   *
-   * @return string[][]
-   *   Format: $[$type][$name] = $yml_file
-   *   E.g. $['module']['system'] = 'system.info.yml'
-   */
-  protected function populateFilesystemStructure(array &$filesystem_structure) {
-    $info_by_file = [
-      'core/profiles/standard/standard.info.yml' => [
-        'type' => 'profile',
-      ],
-      'core/profiles/minimal/minimal.info.yml' => [
-        'type' => 'profile',
-      ],
-      // Override the core instance of the 'minimal' profile.
-      'sites/default/profiles/minimal/minimal.info.yml' => [
-        'type' => 'profile',
-      ],
-      'profiles/myprofile/myprofile.info.yml' => [
-        'type' => 'profile',
-      ],
-      'profiles/myprofile/modules/myprofile_nested_module/myprofile_nested_module.info.yml' => [],
-      'profiles/otherprofile/otherprofile.info.yml' => [
-        'type' => 'profile',
-      ],
-      'core/modules/user/user.info.yml' => [],
-      'profiles/otherprofile/modules/otherprofile_nested_module/otherprofile_nested_module.info.yml' => [],
-      'core/modules/system/system.info.yml' => [],
-      'core/themes/seven/seven.info.yml' => [
-        'type' => 'theme',
-      ],
-      // Override the core instance of the 'seven' theme.
-      'sites/default/themes/seven/seven.info.yml' => [
-        'type' => 'theme',
-      ],
-      'modules/devel/devel.info.yml' => [],
-      'modules/poorly_placed_theme/poorly_placed_theme.info.yml' => [
-        'type' => 'theme',
-      ],
-      'core/themes/engines/twig/twig.info.yml' => [
-        'type' => 'theme_engine',
-      ],
-    ];
-
-    $files_by_type_and_name_expected = [];
-    $content_by_file = [];
-    foreach ($info_by_file as $file => $info) {
-      $name = basename($file, '.info.yml');
-      $info += [
-        'type' => 'module',
-        'name' => "Name of ($name)",
-        'core' => '8.x',
-      ];
-      $type = $info['type'];
-      $content_by_file[$file] = Yaml::dump($info);
-      $files_by_type_and_name_expected[$type][$name] = $file;
-    }
-
-    $content_by_file['core/modules/system/system.module'] = '<?php';
-    $content_by_file['core/themes/engines/twig/twig.engine'] = '<?php';
-
-    foreach ($content_by_file as $file => $content) {
-      $pieces = explode('/', $file);
-      $this->addFileToFilesystemStructure($filesystem_structure, $pieces, $content);
-    }
-
-    unset($files_by_type_and_name_expected['module']['otherprofile_nested_module']);
-
-    return $files_by_type_and_name_expected;
-  }
-
-  /**
-   * @param array $filesystem_structure
-   * @param string[] $pieces
-   *   Fragments of the file path.
-   * @param string $content
-   */
-  protected function addFileToFilesystemStructure(array &$filesystem_structure, array $pieces, $content) {
-    $piece = array_shift($pieces);
-    if ($pieces !== []) {
-      $filesystem_structure += [$piece => []];
-      $this->addFileToFilesystemStructure($filesystem_structure[$piece], $pieces, $content);
-    }
-    else {
-      $filesystem_structure[$piece] = $content;
-    }
-  }
-
-}
diff --git a/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php b/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php
index 27a9702..4653f13 100644
--- a/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php
+++ b/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php
@@ -138,20 +138,6 @@ public function testRebuildThemeData() {
   }
 
   /**
-   * Tests empty libraries in theme.info.yml file.
-   */
-  public function testThemeLibrariesEmpty() {
-    $theme = new Extension($this->root, 'theme', '/core/modules/system/tests/themes/test_theme_libraries_empty', 'test_theme_libraries_empty.info.yml');
-    try {
-      $this->themeHandler->addTheme($theme);
-      $this->assertTrue(TRUE, 'Empty libraries key in theme.info.yml does not cause PHP warning');
-    }
-    catch (\Exception $e) {
-      $this->fail('Empty libraries key in theme.info.yml causes PHP warning.');
-    }
-  }
-
-  /**
    * Tests rebuild the theme data with theme parents.
    */
   public function testRebuildThemeDataWithThemeParents() {
diff --git a/core/tests/Drupal/Tests/Core/Field/BaseFieldDefinitionTestBase.php b/core/tests/Drupal/Tests/Core/Field/BaseFieldDefinitionTestBase.php
index acb7346..959f7f0 100644
--- a/core/tests/Drupal/Tests/Core/Field/BaseFieldDefinitionTestBase.php
+++ b/core/tests/Drupal/Tests/Core/Field/BaseFieldDefinitionTestBase.php
@@ -5,7 +5,6 @@
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\Field\BaseFieldDefinition;
 use Drupal\Core\Field\FieldTypePluginManager;
-use Drupal\Core\TypedData\TypedDataManagerInterface;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -24,7 +23,6 @@
    * {@inheritdoc}
    */
   protected function setUp() {
-    parent::setUp();
 
     // getModuleAndPath() returns an array of the module name and directory.
     list($module_name, $module_dir) = $this->getModuleAndPath();
@@ -37,7 +35,9 @@ protected function setUp() {
       ->method('moduleExists')
       ->with($module_name)
       ->will($this->returnValue(TRUE));
-    $typed_data_manager = $this->getMock(TypedDataManagerInterface::class);
+    $typed_data_manager = $this->getMockBuilder('\Drupal\Core\TypedData\TypedDataManager')
+      ->disableOriginalConstructor()
+      ->getMock();
     $plugin_manager = new FieldTypePluginManager(
       $namespaces,
       $this->getMock('Drupal\Core\Cache\CacheBackendInterface'),
diff --git a/core/tests/Drupal/Tests/Core/Image/ImageTest.php b/core/tests/Drupal/Tests/Core/Image/ImageTest.php
index 312bbda..844dadb 100644
--- a/core/tests/Drupal/Tests/Core/Image/ImageTest.php
+++ b/core/tests/Drupal/Tests/Core/Image/ImageTest.php
@@ -9,7 +9,6 @@
 /**
  * Tests the image class.
  *
- * @requires extension gd
  * @group Image
  */
 class ImageTest extends UnitTestCase {
diff --git a/core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php b/core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php
index cff3415..2ca4d11 100644
--- a/core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php
@@ -6,8 +6,6 @@
 
 namespace Drupal\Tests\Core\Mail;
 
-use Drupal\Core\Render\RenderContext;
-use Drupal\Core\Render\RendererInterface;
 use Drupal\Tests\UnitTestCase;
 use Drupal\Core\Mail\MailManager;
 use Drupal\Component\Plugin\Discovery\DiscoveryInterface;
@@ -47,13 +45,6 @@ class MailManagerTest extends UnitTestCase {
   protected $discovery;
 
   /**
-   * The renderer.
-   *
-   * @var \Drupal\Core\Render\RendererInterface|\PHPUnit_Framework_MockObject_MockObject
-   */
-  protected $renderer;
-
-  /**
    * The mail manager under test.
    *
    * @var \Drupal\Tests\Core\Mail\TestMailManager
@@ -105,9 +96,8 @@ protected function setUpMailManager($interface = array()) {
     ));
     $logger_factory = $this->getMock('\Drupal\Core\Logger\LoggerChannelFactoryInterface');
     $string_translation = $this->getStringTranslationStub();
-    $this->renderer = $this->getMock(RendererInterface::class);
     // Construct the manager object and override its discovery.
-    $this->mailManager = new TestMailManager(new \ArrayObject(), $this->cache, $this->moduleHandler, $this->configFactory, $logger_factory, $string_translation, $this->renderer);
+    $this->mailManager = new TestMailManager(new \ArrayObject(), $this->cache, $this->moduleHandler, $this->configFactory, $logger_factory, $string_translation);
     $this->mailManager->setDiscovery($this->discovery);
   }
 
@@ -119,7 +109,7 @@ protected function setUpMailManager($interface = array()) {
   public function testGetInstance() {
     $interface = array(
       'default' => 'php_mail',
-      'default' => 'test_mail_collector',
+      'example_testkey' => 'test_mail_collector',
     );
     $this->setUpMailManager($interface);
 
@@ -134,28 +124,6 @@ public function testGetInstance() {
     $this->assertInstanceOf('Drupal\Core\Mail\Plugin\Mail\TestMailCollector', $instance);
   }
 
-
-  /**
-   * Tests that mails are sent in a separate render context.
-   *
-   * @covers ::mail
-   */
-  public function testMailInRenderContext() {
-    $interface = array(
-      'default' => 'php_mail',
-      'example_testkey' => 'test_mail_collector',
-    );
-    $this->setUpMailManager($interface);
-
-    $this->renderer->expects($this->exactly(1))
-      ->method('executeInRenderContext')
-      ->willReturnCallback(function (RenderContext $render_context, $callback) {
-        $message = $callback();
-        $this->assertEquals('example', $message['module']);
-      });
-    $this->mailManager->mail('example', 'key', 'to@example.org', 'en');
-  }
-
 }
 
 /**
@@ -172,26 +140,4 @@ public function setDiscovery(DiscoveryInterface $discovery) {
     $this->discovery = $discovery;
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function doMail($module, $key, $to, $langcode, $params = array(), $reply = NULL, $send = TRUE) {
-    // Build a simplified message array and return it.
-    $message = array(
-      'id' => $module . '_' . $key,
-      'module' => $module,
-      'key' => $key,
-      'to' => $to,
-      'from' => 'from@example.org',
-      'reply-to' => $reply,
-      'langcode' => $langcode,
-      'params' => $params,
-      'send' => TRUE,
-      'subject' => '',
-      'body' => array(),
-    );
-
-    return $message;
-  }
-
 }
diff --git a/core/tests/Drupal/Tests/Core/Plugin/Context/ContextDefinitionTest.php b/core/tests/Drupal/Tests/Core/Plugin/Context/ContextDefinitionTest.php
index fb1a442..7f084e4 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/Context/ContextDefinitionTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/Context/ContextDefinitionTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\Tests\Core\Plugin\Context;
 
 use Drupal\Core\Plugin\Context\ContextDefinition;
-use Drupal\Core\TypedData\TypedDataManagerInterface;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -62,7 +61,10 @@ public function testGetDataDefinition($is_multiple) {
     if ($is_multiple) {
       $create_definition_method = 'createListDataDefinition';
     }
-    $mock_data_manager = $this->getMock(TypedDataManagerInterface::class);
+    $mock_data_manager = $this->getMockBuilder('\Drupal\Core\TypedData\TypedDataManager')
+      ->disableOriginalConstructor()
+      ->setMethods(array($create_definition_method))
+      ->getMock();
     // Our mocked data manager will return our mocked data definition for a
     // valid data type.
     $mock_data_manager->expects($this->once())
@@ -125,7 +127,10 @@ public function testGetDataDefinitionInvalidType($is_multiple) {
     if ($is_multiple) {
       $create_definition_method = 'createListDataDefinition';
     }
-    $mock_data_manager = $this->getMock(TypedDataManagerInterface::class);
+    $mock_data_manager = $this->getMockBuilder('\Drupal\Core\TypedData\TypedDataManager')
+      ->disableOriginalConstructor()
+      ->setMethods(array($create_definition_method))
+      ->getMock();
     // Our mocked data manager will return NULL for a non-valid data type. This
     // will eventually cause getDataDefinition() to throw an exception.
     $mock_data_manager->expects($this->once())
diff --git a/core/tests/Drupal/Tests/Core/Plugin/Context/ContextTest.php b/core/tests/Drupal/Tests/Core/Plugin/Context/ContextTest.php
index c0d750e..d027f8a 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/Context/ContextTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/Context/ContextTest.php
@@ -10,7 +10,6 @@
 use Drupal\Core\Cache\CacheableDependencyInterface;
 use Drupal\Core\Plugin\Context\Context;
 use Drupal\Core\TypedData\TypedDataInterface;
-use Drupal\Core\TypedData\TypedDataManagerInterface;
 use Drupal\Tests\UnitTestCase;
 use Symfony\Component\DependencyInjection\Container;
 
@@ -47,7 +46,10 @@ class ContextTest extends UnitTestCase {
   protected function setUp() {
     parent::setUp();
 
-    $this->typedDataManager = $this->getMock(TypedDataManagerInterface::class);
+    $this->typedDataManager = $this->getMockBuilder('Drupal\Core\TypedData\TypedDataManager')
+      ->disableOriginalConstructor()
+      ->setMethods(array('create'))
+      ->getMock();
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Core/Plugin/Context/ContextTypedDataTest.php b/core/tests/Drupal/Tests/Core/Plugin/Context/ContextTypedDataTest.php
index dfc9361..5e7df20 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/Context/ContextTypedDataTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/Context/ContextTypedDataTest.php
@@ -7,7 +7,6 @@
 use Drupal\Core\Plugin\Context\ContextDefinition;
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\Core\TypedData\Plugin\DataType\StringData;
-use Drupal\Core\TypedData\TypedDataManagerInterface;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -35,7 +34,9 @@ class ContextTypedDataTest extends UnitTestCase {
    */
   public function testGetContextValue() {
     // Prepare a container that holds the typed data manager mock.
-    $typed_data_manager = $this->getMock(TypedDataManagerInterface::class);
+    $typed_data_manager = $this->getMockBuilder('Drupal\Core\TypedData\TypedDataManager')
+      ->disableOriginalConstructor()
+      ->getMock();
     $typed_data_manager->expects($this->once())
       ->method('getCanonicalRepresentation')
       ->will($this->returnCallback(array($this, 'getCanonicalRepresentation')));
diff --git a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
index 8cc0f81..28bc0f0 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\Tests\Core\Plugin;
 
-use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -302,40 +301,4 @@ public function testGetDefinitionsWithoutRequiredInterface() {
     $this->assertInternalType('array', $plugin_manager->getDefinitions());
   }
 
-  /**
-   * @covers ::getCacheContexts
-   */
-  public function testGetCacheContexts() {
-    $module_handler = $this->prophesize(ModuleHandlerInterface::class);
-    $plugin_manager = new TestPluginManager($this->namespaces, $this->expectedDefinitions, $module_handler->reveal(), NULL);
-    $cache_contexts = $plugin_manager->getCacheContexts();
-    $this->assertInternalType('array', $cache_contexts);
-    array_map(function ($cache_context) {
-      $this->assertInternalType('string', $cache_context);
-    }, $cache_contexts);
-  }
-
-  /**
-   * @covers ::getCacheTags
-   */
-  public function testGetCacheTags() {
-    $module_handler = $this->prophesize(ModuleHandlerInterface::class);
-    $plugin_manager = new TestPluginManager($this->namespaces, $this->expectedDefinitions, $module_handler->reveal(), NULL);
-    $cache_tags = $plugin_manager->getCacheTags();
-    $this->assertInternalType('array', $cache_tags);
-    array_map(function ($cache_tag) {
-      $this->assertInternalType('string', $cache_tag);
-    }, $cache_tags);
-  }
-
-  /**
-   * @covers ::getCacheMaxAge
-   */
-  public function testGetCacheMaxAge() {
-    $module_handler = $this->prophesize(ModuleHandlerInterface::class);
-    $plugin_manager = new TestPluginManager($this->namespaces, $this->expectedDefinitions, $module_handler->reveal(), NULL);
-    $cache_max_age = $plugin_manager->getCacheMaxAge();
-    $this->assertInternalType('int', $cache_max_age);
-  }
-
 }
diff --git a/core/tests/Drupal/Tests/Core/Plugin/DefaultSingleLazyPluginCollectionTest.php b/core/tests/Drupal/Tests/Core/Plugin/DefaultSingleLazyPluginCollectionTest.php
index 22ecd3c..a0303e6 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/DefaultSingleLazyPluginCollectionTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/DefaultSingleLazyPluginCollectionTest.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\Tests\Core\Plugin;
 
-use Drupal\Component\Plugin\ConfigurablePluginInterface;
-use Drupal\Component\Plugin\PluginBase;
 use Drupal\Core\Plugin\DefaultSingleLazyPluginCollection;
 
 /**
@@ -17,15 +15,11 @@ class DefaultSingleLazyPluginCollectionTest extends LazyPluginCollectionTestBase
    */
   protected function setupPluginCollection(\PHPUnit_Framework_MockObject_Matcher_InvokedRecorder $create_count = NULL) {
     $definitions = $this->getPluginDefinitions();
-    $this->pluginInstances['apple'] = new ConfigurablePlugin(['id' => 'apple', 'key' => 'value'], 'apple', $definitions['apple']);
-    $this->pluginInstances['banana'] = new ConfigurablePlugin(['id' => 'banana', 'key' => 'other_value'], 'banana', $definitions['banana']);
-
+    $this->pluginInstances['apple'] = $this->getPluginMock('apple', $definitions['apple']);
     $create_count = $create_count ?: $this->never();
     $this->pluginManager->expects($create_count)
       ->method('createInstance')
-      ->willReturnCallback(function ($id) {
-        return $this->pluginInstances[$id];
-      });
+      ->will($this->returnValue($this->pluginInstances['apple']));
 
     $this->defaultPluginCollection = new DefaultSingleLazyPluginCollection($this->pluginManager, 'apple', array('id' => 'apple', 'key' => 'value'));
   }
@@ -40,48 +34,4 @@ public function testGet() {
     $this->assertSame($apple, $this->defaultPluginCollection->get('apple'));
   }
 
-  /**
-   * @covers ::addInstanceId
-   * @covers ::getConfiguration
-   * @covers ::setConfiguration
-   */
-  public function testAddInstanceId() {
-    $this->setupPluginCollection($this->any());
-
-    $this->assertEquals(['id' => 'apple', 'key' => 'value'], $this->defaultPluginCollection->get('apple')->getConfiguration());
-    $this->assertEquals(['id' => 'apple', 'key' => 'value'], $this->defaultPluginCollection->getConfiguration());
-
-    $this->defaultPluginCollection->addInstanceId('banana', ['id' => 'banana', 'key' => 'other_value']);
-
-    $this->assertEquals(['id' => 'apple', 'key' => 'value'], $this->defaultPluginCollection->get('apple')->getConfiguration());
-    $this->assertEquals(['id' => 'banana', 'key' => 'other_value'], $this->defaultPluginCollection->getConfiguration());
-    $this->assertEquals(['id' => 'banana', 'key' => 'other_value'], $this->defaultPluginCollection->get('banana')->getConfiguration());
-  }
-
-}
-
-class ConfigurablePlugin extends PluginBase implements ConfigurablePluginInterface {
-
-  public function __construct(array $configuration, $plugin_id, $plugin_definition) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition);
-
-    $this->configuration = $configuration + $this->defaultConfiguration();
-  }
-
-  public function defaultConfiguration() {
-    return [];
-  }
-
-  public function getConfiguration() {
-    return $this->configuration;
-  }
-
-  public function setConfiguration(array $configuration) {
-    $this->configuration = $configuration;
-  }
-
-  public function calculateDependencies() {
-    return [];
-  }
-
 }
diff --git a/core/tests/Drupal/Tests/Core/Plugin/Discovery/DerivativeDiscoveryDecoratorTest.php b/core/tests/Drupal/Tests/Core/Plugin/Discovery/DerivativeDiscoveryDecoratorTest.php
index d81360f..2ceb9a3 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/Discovery/DerivativeDiscoveryDecoratorTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/Discovery/DerivativeDiscoveryDecoratorTest.php
@@ -111,14 +111,14 @@ public function testNonExistentDerivativeFetcher() {
    * @see \Drupal\Component\Plugin\Discovery\DerivativeDiscoveryDecorator::getDeriver().\
    *
    * @expectedException \Drupal\Component\Plugin\Exception\InvalidDeriverException
-   * @expectedExceptionMessage Plugin (invalid_discovery) deriver "\Drupal\KernelTests\Core\Plugin\DerivativeTest" must implement \Drupal\Component\Plugin\Derivative\DeriverInterface.
+   * @expectedExceptionMessage Plugin (invalid_discovery) deriver "\Drupal\system\Tests\Plugin\DerivativeTest" must implement \Drupal\Component\Plugin\Derivative\DeriverInterface.
    */
   public function testInvalidDerivativeFetcher() {
     $definitions = array();
     // Do this with a class that doesn't implement the interface.
     $definitions['invalid_discovery'] = array(
       'id' => 'invalid_discovery',
-      'deriver' => '\Drupal\KernelTests\Core\Plugin\DerivativeTest',
+      'deriver' => '\Drupal\system\Tests\Plugin\DerivativeTest',
     );
     $this->discoveryMain->expects($this->any())
       ->method('getDefinitions')
diff --git a/core/tests/Drupal/Tests/Core/Render/ElementInfoManagerTest.php b/core/tests/Drupal/Tests/Core/Render/ElementInfoManagerTest.php
index 0d5aec6..647d82d 100644
--- a/core/tests/Drupal/Tests/Core/Render/ElementInfoManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Render/ElementInfoManagerTest.php
@@ -58,8 +58,6 @@ class ElementInfoManagerTest extends UnitTestCase {
    * @covers ::__construct
    */
   protected function setUp() {
-    parent::setUp();
-
     $this->cache = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
     $this->cacheTagsInvalidator = $this->getMock('Drupal\Core\Cache\CacheTagsInvalidatorInterface');
     $this->moduleHandler = $this->getMock('Drupal\Core\Extension\ModuleHandlerInterface');
diff --git a/core/tests/Drupal/Tests/Core/Render/RendererTestBase.php b/core/tests/Drupal/Tests/Core/Render/RendererTestBase.php
index 7c5e855..834d0a4 100644
--- a/core/tests/Drupal/Tests/Core/Render/RendererTestBase.php
+++ b/core/tests/Drupal/Tests/Core/Render/RendererTestBase.php
@@ -22,7 +22,7 @@
 /**
  * Base class for the actual unit tests testing \Drupal\Core\Render\Renderer.
  */
-abstract class RendererTestBase extends UnitTestCase {
+class RendererTestBase extends UnitTestCase {
 
   /**
    * The tested renderer.
diff --git a/core/tests/Drupal/Tests/Core/Routing/UrlGeneratorTest.php b/core/tests/Drupal/Tests/Core/Routing/UrlGeneratorTest.php
index 06e8c17..603b41d 100644
--- a/core/tests/Drupal/Tests/Core/Routing/UrlGeneratorTest.php
+++ b/core/tests/Drupal/Tests/Core/Routing/UrlGeneratorTest.php
@@ -300,7 +300,7 @@ public function testAliasGenerationWithParameters() {
     // No cacheability to test; UrlGenerator::generate() doesn't support
     // collecting cacheability metadata.
 
-    $this->routeProcessorManager->expects($this->any())
+    $this->routeProcessorManager->expects($this->exactly(7))
       ->method('processOutbound')
       ->with($this->anything());
 
@@ -316,10 +316,6 @@ public function testAliasGenerationWithParameters() {
 
     $path = $this->generator->getPathFromRoute('test_2', array('narf' => '5'));
     $this->assertEquals('test/two/5', $path);
-
-    // Specify a query parameter with NULL.
-    $options = ['query' => ['page' => NULL], 'fragment' => 'bottom'];
-    $this->assertGenerateFromRoute('test_2', ['narf' => 5], $options, '/goodbye/cruel/world?page#bottom', (new BubbleableMetadata())->setCacheMaxAge(Cache::PERMANENT));
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Core/StackMiddleware/NegotiationMiddlewareTest.php b/core/tests/Drupal/Tests/Core/StackMiddleware/NegotiationMiddlewareTest.php
index 0f5142c..593ce60 100644
--- a/core/tests/Drupal/Tests/Core/StackMiddleware/NegotiationMiddlewareTest.php
+++ b/core/tests/Drupal/Tests/Core/StackMiddleware/NegotiationMiddlewareTest.php
@@ -46,7 +46,7 @@ protected function setUp() {
    */
   public function testAjaxIframeUpload() {
     $request = new Request();
-    $request->request->set('ajax_iframe_upload', '1');
+    $request->attributes->set('ajax_iframe_upload', '1');
 
     $this->assertSame('iframeupload', $this->contentNegotiation->getContentType($request));
   }
@@ -101,11 +101,9 @@ public function testHandle() {
     $request->setRequestFormat('html')->shouldBeCalled();
 
     // Some getContentType calls we don't really care about but have to mock.
-    $request_data = $this->prophesize(ParameterBag::class);
-    $request_data->get('ajax_iframe_upload', FALSE)->shouldBeCalled();
+    $request->get('ajax_iframe_upload', FALSE)->shouldBeCalled();
     $request_mock = $request->reveal();
     $request_mock->query = new ParameterBag([]);
-    $request_mock->request = $request_data->reveal();
 
     // Calling kernel app with default arguments.
     $this->app->handle($request_mock, HttpKernelInterface::MASTER_REQUEST, TRUE)
@@ -128,11 +126,9 @@ public function testSetFormat() {
 
     // Some calls we don't care about.
     $request->setRequestFormat('html')->shouldBeCalled();
-    $request_data = $this->prophesize(ParameterBag::class);
-    $request_data->get('ajax_iframe_upload', FALSE)->shouldBeCalled();
+    $request->get('ajax_iframe_upload', FALSE)->shouldBeCalled();
     $request_mock = $request->reveal();
     $request_mock->query = new ParameterBag([]);
-    $request_mock->request = $request_data->reveal();
 
     // Trigger handle.
     $this->contentNegotiation->registerFormat('david', 'geeky/david');
diff --git a/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php b/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php
index ea93703..cb09022 100644
--- a/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php
+++ b/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php
@@ -7,10 +7,8 @@
 
 namespace Drupal\Tests\Core\Template;
 
-use Drupal\Core\GeneratedLink;
 use Drupal\Core\Render\RenderableInterface;
 use Drupal\Core\Render\RendererInterface;
-use Drupal\Core\Routing\UrlGeneratorInterface;
 use Drupal\Core\StringTranslation\TranslatableMarkup;
 use Drupal\Core\Template\Loader\StringLoader;
 use Drupal\Core\Template\TwigEnvironment;
@@ -242,63 +240,6 @@ public function providerTestRenderVar() {
     return $data;
   }
 
-  /**
-   * @covers ::escapeFilter
-   * @covers ::bubbleArgMetadata
-   */
-  public function testEscapeWithGeneratedLink() {
-    $renderer = $this->prophesize(RendererInterface::class);
-    $twig = new \Twig_Environment(NULL, [
-        'debug' => TRUE,
-        'cache' => FALSE,
-        'autoescape' => 'html',
-        'optimizations' => 0,
-      ]
-    );
-
-    $twig_extension = new TwigExtension($renderer->reveal());
-    $twig->addExtension($twig_extension->setUrlGenerator($this->prophesize(UrlGeneratorInterface::class)->reveal()));
-    $link = new GeneratedLink();
-    $link->setGeneratedLink('<a href="http://example.com"></a>');
-    $link->addCacheTags(['foo']);
-    $link->addAttachments(['library' => ['system/base']]);
-
-    $result = $twig_extension->escapeFilter($twig, $link, 'html', NULL, TRUE);
-    $renderer->render([
-      "#cache" => [
-        "contexts" => [],
-        "tags" => ["foo"],
-        "max-age" => -1
-      ],
-      "#attached" => ['library' => ['system/base']],
-    ])->shouldHaveBeenCalled();
-    $this->assertEquals('<a href="http://example.com"></a>', $result);
-  }
-
-  /**
-   * @covers ::renderVar
-   * @covers ::bubbleArgMetadata
-   */
-  public function testRenderVarWithGeneratedLink() {
-    $renderer = $this->prophesize(RendererInterface::class);
-    $twig_extension = new TwigExtension($renderer->reveal());
-    $link = new GeneratedLink();
-    $link->setGeneratedLink('<a href="http://example.com"></a>');
-    $link->addCacheTags(['foo']);
-    $link->addAttachments(['library' => ['system/base']]);
-
-    $result = $twig_extension->renderVar($link);
-    $renderer->render([
-      "#cache" => [
-        "contexts" => [],
-        "tags" => ["foo"],
-        "max-age" => -1
-      ],
-      "#attached" => ['library' => ['system/base']],
-    ])->shouldHaveBeenCalled();
-    $this->assertEquals('<a href="http://example.com"></a>', $result);
-  }
-
 }
 
 class TwigExtensionTestString {
diff --git a/core/tests/Drupal/Tests/Core/Theme/AjaxBasePageNegotiatorTest.php b/core/tests/Drupal/Tests/Core/Theme/AjaxBasePageNegotiatorTest.php
deleted file mode 100644
index 24746c3..0000000
--- a/core/tests/Drupal/Tests/Core/Theme/AjaxBasePageNegotiatorTest.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-
-namespace Drupal\Tests\Core\Theme;
-
-use Drupal\Core\Access\CsrfTokenGenerator;
-use Drupal\Core\Routing\RouteMatch;
-use Drupal\Core\Theme\AjaxBasePageNegotiator;
-use Drupal\Tests\UnitTestCase;
-use Prophecy\Argument;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\RequestStack;
-
-/**
- * @coversDefaultClass \Drupal\Core\Theme\AjaxBasePageNegotiator
- * @group Theme
- */
-class AjaxBasePageNegotiatorTest extends UnitTestCase {
-
-  /**
-   * @var \Drupal\Core\Theme\AjaxBasePageNegotiator
-   *
-   * The AJAX base page negotiator.
-   */
-  protected $negotiator;
-
-  /**
-   * @var \Drupal\Core\Access\CsrfTokenGenerator|\Prophecy\Prophecy\ProphecyInterface
-   *
-   * The CSRF token generator.
-   */
-  protected $tokenGenerator;
-
-  /**
-   * @var \Symfony\Component\HttpFoundation\RequestStack
-   *
-   * The request stack.
-   */
-  protected $requestStack;
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setUp() {
-    parent::setUp();
-
-    $this->tokenGenerator = $this->prophesize(CsrfTokenGenerator::class);
-    $config_factory = $this->getConfigFactoryStub(['system.theme' => ['default' => 'bartik']]);
-    $this->requestStack = new RequestStack();
-    $this->negotiator = new AjaxBasePageNegotiator($this->tokenGenerator->reveal(), $config_factory, $this->requestStack);
-  }
-
-  /**
-   * @covers ::applies
-   * @dataProvider providerTestApplies
-   */
-  public function testApplies($request_data, $expected) {
-    $request = new Request([], $request_data);
-    $route_match = RouteMatch::createFromRequest($request);
-    $this->requestStack->push($request);
-
-    $result = $this->negotiator->applies($route_match);
-    $this->assertSame($expected, $result);
-  }
-
-  public function providerTestApplies() {
-    $data = [];
-    $data['empty'] = [[], FALSE];
-    $data['no_theme'] = [['ajax_page_state' => ['theme' => '', 'theme_token' => '']], FALSE];
-    $data['valid_theme_empty_theme_token'] = [['ajax_page_state' => ['theme' => 'seven', 'theme_token' => '']], TRUE];
-    $data['valid_theme_valid_theme_token'] = [['ajax_page_state' => ['theme' => 'seven', 'theme_token' => 'valid_theme_token']], TRUE];
-    return $data;
-  }
-
-  /**
-   * @covers ::determineActiveTheme
-   */
-  public function testDetermineActiveThemeValidToken() {
-    $theme = 'seven';
-    $theme_token = 'valid_theme_token';
-
-    $request = new Request([], ['ajax_page_state' => ['theme' => $theme, 'theme_token' => $theme_token]]);
-    $this->requestStack->push($request);
-    $route_match = RouteMatch::createFromRequest($request);
-
-    $this->tokenGenerator->validate($theme_token, $theme)->willReturn(TRUE);
-
-    $result = $this->negotiator->determineActiveTheme($route_match);
-    $this->assertSame($theme, $result);
-  }
-
-  /**
-   * @covers ::determineActiveTheme
-   */
-  public function testDetermineActiveThemeInvalidToken() {
-    $theme = 'seven';
-    $theme_token = 'invalid_theme_token';
-
-    $request = new Request([], ['ajax_page_state' => ['theme' => $theme, 'theme_token' => $theme_token]]);
-    $this->requestStack->push($request);
-    $route_match = RouteMatch::createFromRequest($request);
-
-    $this->tokenGenerator->validate($theme_token, $theme)->willReturn(FALSE);
-
-    $result = $this->negotiator->determineActiveTheme($route_match);
-    $this->assertSame(NULL, $result);
-  }
-
-  /**
-   * @covers ::determineActiveTheme
-   */
-  public function testDetermineActiveThemeDefaultTheme() {
-    $theme = 'bartik';
-    // When the theme is the system default, an empty string is provided as the
-    // theme token. See system_js_settings_alter().
-    $theme_token = '';
-
-    $request = new Request([], ['ajax_page_state' => ['theme' => $theme, 'theme_token' => $theme_token]]);
-    $this->requestStack->push($request);
-    $route_match = RouteMatch::createFromRequest($request);
-
-    $this->tokenGenerator->validate(Argument::cetera())->shouldNotBeCalled();
-
-    $result = $this->negotiator->determineActiveTheme($route_match);
-    $this->assertSame($theme, $result);
-  }
-
-}
diff --git a/core/tests/Drupal/Tests/Core/UnroutedUrlTest.php b/core/tests/Drupal/Tests/Core/UnroutedUrlTest.php
index ef6dd25..2674b36 100644
--- a/core/tests/Drupal/Tests/Core/UnroutedUrlTest.php
+++ b/core/tests/Drupal/Tests/Core/UnroutedUrlTest.php
@@ -82,8 +82,6 @@ public function providerFromUri() {
       // [$uri, $is_external]
       // An external URI.
       ['https://www.drupal.org', TRUE],
-      // A protocol-relative URL.
-      ['//www.drupal.org', TRUE],
       // An internal, unrouted, base-relative URI.
       ['base:robots.txt', FALSE],
       // Base-relative URIs with special characters.
@@ -116,6 +114,7 @@ public function providerFromInvalidUri() {
       // Schemeless paths.
       ['test'],
       ['/test'],
+      ['//test'],
       // Schemeless path with a query string.
       ['foo?bar'],
       // Only a query string.
diff --git a/core/tests/Drupal/Tests/Core/UrlTest.php b/core/tests/Drupal/Tests/Core/UrlTest.php
index 2808a20..66013c4 100644
--- a/core/tests/Drupal/Tests/Core/UrlTest.php
+++ b/core/tests/Drupal/Tests/Core/UrlTest.php
@@ -336,18 +336,6 @@ public function testGetUriForExternalUrl() {
   }
 
   /**
-   * Tests the getUri() and isExternal() methods for protocol-relative URLs.
-   *
-   * @covers ::getUri
-   * @covers ::isExternal
-   */
-  public function testGetUriForProtocolRelativeUrl() {
-    $url = Url::fromUri('//example.com/test');
-    $this->assertEquals('//example.com/test', $url->getUri());
-    $this->assertTrue($url->isExternal());
-  }
-
-  /**
    * Tests the getInternalPath method().
    *
    * @param \Drupal\Core\Url[] $urls
diff --git a/core/tests/Drupal/Tests/Core/Utility/LinkGeneratorTest.php b/core/tests/Drupal/Tests/Core/Utility/LinkGeneratorTest.php
index a123993..1299b3f 100644
--- a/core/tests/Drupal/Tests/Core/Utility/LinkGeneratorTest.php
+++ b/core/tests/Drupal/Tests/Core/Utility/LinkGeneratorTest.php
@@ -70,9 +70,7 @@ class LinkGeneratorTest extends UnitTestCase {
   protected function setUp() {
     parent::setUp();
 
-    $this->urlGenerator = $this->getMockBuilder('\Drupal\Core\Routing\UrlGenerator')
-      ->disableOriginalConstructor()
-      ->getMock();
+    $this->urlGenerator = $this->getMock('\Drupal\Core\Routing\UrlGenerator', array(), array(), '', FALSE);
     $this->moduleHandler = $this->getMock('Drupal\Core\Extension\ModuleHandlerInterface');
     $this->renderer = $this->getMock('\Drupal\Core\Render\RendererInterface');
     $this->linkGenerator = new LinkGenerator($this->urlGenerator, $this->moduleHandler, $this->renderer);
@@ -511,33 +509,6 @@ public function testGenerateBubbleableMetadata() {
   }
 
   /**
-   * Tests altering the URL object using hook_link_alter().
-   *
-   * @covers ::generate
-   */
-  public function testGenerateWithAlterHook() {
-    $options = ['query' => [], 'language' => NULL, 'set_active_class' => FALSE, 'absolute' => FALSE];
-    $this->urlGenerator->expects($this->any())
-      ->method('generateFromRoute')
-      ->will($this->returnValueMap([
-        ['test_route_1', [], $options, TRUE, (new GeneratedUrl())->setGeneratedUrl('/test-route-1')],
-        ['test_route_2', [], $options, TRUE, (new GeneratedUrl())->setGeneratedUrl('/test-route-2')],
-      ]));
-
-    $url = new Url('test_route_2');
-    $url->setUrlGenerator($this->urlGenerator);
-
-    $this->moduleHandler->expects($this->atLeastOnce())
-      ->method('alter')
-      ->willReturnCallback(function ($hook, &$options) {
-        $options['url'] = (new Url('test_route_1'))->setUrlGenerator($this->urlGenerator);
-      });
-
-    $expected_link_markup = '<a href="/test-route-1">Test</a>';
-    $this->assertEquals($expected_link_markup, (string) $this->linkGenerator->generate('Test', $url)->getGeneratedLink());
-  }
-
-  /**
    * Checks that a link with certain properties exists in a given HTML snippet.
    *
    * @param array $properties
diff --git a/core/tests/Drupal/Tests/TestSuites/TestSuiteBaseTest.php b/core/tests/Drupal/Tests/TestSuites/TestSuiteBaseTest.php
deleted file mode 100644
index bebb431..0000000
--- a/core/tests/Drupal/Tests/TestSuites/TestSuiteBaseTest.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-
-namespace Drupal\Tests\TestSuites;
-
-use org\bovigo\vfs\vfsStream;
-
-/**
- * @coversDefaultClass \Drupal\Tests\TestSuites\TestSuiteBase
- *
- * @group TestSuite
- */
-class TestSuiteBaseTest extends \PHPUnit_Framework_TestCase {
-
-  /**
-   * Helper method to set up the file system.
-   *
-   * @return array[]
-   *   A Drupal filesystem suitable for use with vfsStream.
-   */
-  protected function getFilesystem() {
-    return [
-      'core' => [
-        'modules' => [],
-        'profiles' => [],
-        'tests' => [
-          'Drupal' => [
-            'NotUnitTests' => [
-              'CoreNotUnitTest.php' => '<?php',
-            ],
-            'Tests' => [
-              'CoreUnitTest.php' => '<?php',
-            ],
-          ],
-        ],
-      ],
-    ];
-  }
-
-  /**
-   * @return array[]
-   *   Test data for testAddTestsBySuiteNamespaceCore(). An array of arrays:
-   *   - A filesystem array for vfsStream.
-   *   - The sub-namespace of the test suite.
-   *   - The array of tests expected to be discovered.
-   */
-  public function provideCoreTests() {
-    $filesystem = $this->getFilesystem();
-    return [
-      'unit-tests' => [
-        $filesystem,
-        'Unit',
-        [
-          'Drupal\Tests\CoreUnitTest' => 'vfs://root/core/tests/Drupal/Tests/CoreUnitTest.php',
-        ],
-      ],
-      'not-unit-tests' => [
-        $filesystem,
-        'NotUnit',
-        [
-          'Drupal\NotUnitTests\CoreNotUnitTest' => 'vfs://root/core/tests/Drupal/NotUnitTests/CoreNotUnitTest.php',
-        ],
-      ],
-    ];
-  }
-
-  /**
-   * Tests for special case behavior of unit test suite namespaces in core.
-   *
-   * @covers ::addTestsBySuiteNamespace
-   *
-   * @dataProvider provideCoreTests
-   */
-  public function testAddTestsBySuiteNamespaceCore($filesystem, $suite_namespace, $expected_tests) {
-    // Set up the file system.
-    $vfs = vfsStream::setup('root');
-    vfsStream::create($filesystem, $vfs);
-
-    // Make a stub suite base to test.
-    $stub = new StubTestSuiteBase('test_me');
-
-    // Access addTestsBySuiteNamespace().
-    $ref_add_tests = new \ReflectionMethod($stub, 'addTestsBySuiteNamespace');
-    $ref_add_tests->setAccessible(TRUE);
-
-    // Invoke addTestsBySuiteNamespace().
-    $ref_add_tests->invokeArgs($stub, [vfsStream::url('root'), $suite_namespace]);
-
-    // Determine if we loaded the expected test files.
-    $this->assertNotEmpty($stub->testFiles);
-    $this->assertEmpty(array_diff_assoc($expected_tests, $stub->testFiles));
-  }
-
-}
-
-/**
- * Stub subclass of TestSuiteBase.
- *
- * We use this class to alter the behavior of TestSuiteBase so it can be
- * testable.
- */
-class StubTestSuiteBase extends TestSuiteBase {
-
-  /**
-   * Test files discovered by addTestsBySuiteNamespace().
-   *
-   * @var string[]
-   */
-  public $testFiles = [];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function findExtensionDirectories($root) {
-    // We have to stub findExtensionDirectories() because we can't inject a
-    // vfsStream filesystem into drupal_phpunit_find_extension_directories(),
-    // which uses \SplFileInfo->getRealPath(). getRealPath() resolves
-    // stream-based paths to an empty string. See
-    // https://github.com/mikey179/vfsStream/wiki/Known-Issues
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function addTestFiles($filenames) {
-    // We stub addTestFiles() because the parent implementation can't deal with
-    // vfsStream-based filesystems due to an error in
-    // stream_resolve_include_path(). See
-    // https://github.com/mikey179/vfsStream/issues/5 Here we just store the
-    // test file being added in $this->testFiles.
-    $this->testFiles = array_merge($this->testFiles, $filenames);
-  }
-
-}
diff --git a/core/tests/Drupal/Tests/UnitTestCase.php b/core/tests/Drupal/Tests/UnitTestCase.php
index 085181c..77a3d22 100644
--- a/core/tests/Drupal/Tests/UnitTestCase.php
+++ b/core/tests/Drupal/Tests/UnitTestCase.php
@@ -42,9 +42,7 @@ protected function setUp() {
 
     // Ensure that the NullFileCache implementation is used for the FileCache as
     // unit tests should not be relying on caches implicitly.
-    FileCacheFactory::setConfiguration([FileCacheFactory::DISABLE_CACHE => TRUE]);
-    // Ensure that FileCacheFactory has a prefix.
-    FileCacheFactory::setPrefix('prefix');
+    FileCacheFactory::setConfiguration(['default' => ['class' => '\Drupal\Component\FileCache\NullFileCache']]);
 
     $this->root = dirname(dirname(substr(__DIR__, 0, -strlen(__NAMESPACE__))));
   }
diff --git a/core/tests/Drupal/Tests/WebAssert.php b/core/tests/Drupal/Tests/WebAssert.php
index 6156dda..d863de2 100644
--- a/core/tests/Drupal/Tests/WebAssert.php
+++ b/core/tests/Drupal/Tests/WebAssert.php
@@ -2,13 +2,9 @@
 
 namespace Drupal\Tests;
 
-use Behat\Mink\Exception\ExpectationException;
 use Behat\Mink\WebAssert as MinkWebAssert;
 use Behat\Mink\Element\TraversableElement;
 use Behat\Mink\Exception\ElementNotFoundException;
-use Behat\Mink\Session;
-use Drupal\Component\Utility\Html;
-use Drupal\Core\Url;
 
 /**
  * Defines a class with methods for asserting presence of elements during tests.
@@ -16,45 +12,6 @@
 class WebAssert extends MinkWebAssert {
 
   /**
-   * The absolute URL of the site under test.
-   *
-   * @var string
-   */
-  protected $baseUrl = '';
-
-  /**
-   * Constructor.
-   *
-   * @param \Behat\Mink\Session $session
-   *   The Behat session object;
-   * @param string $base_url
-   *   The base URL of the site under test.
-   */
-  public function __construct(Session $session, $base_url = '') {
-    parent::__construct($session);
-    $this->baseUrl = $base_url;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function cleanUrl($url) {
-    if ($url instanceof Url) {
-      $url = $url->setAbsolute()->toString();
-    }
-    // Strip the base URL from the beginning for absolute URLs.
-    if ($this->baseUrl !== '' && strpos($url, $this->baseUrl) === 0) {
-      $url = substr($url, strlen($this->baseUrl));
-    }
-    // Make sure there is a forward slash at the beginning of relative URLs for
-    // consistency.
-    if (parse_url($url, PHP_URL_HOST) === NULL && strpos($url, '/') !== 0) {
-      $url = "/$url";
-    }
-    return parent::cleanUrl($url);
-  }
-
-  /**
    * Checks that specific button exists on the current page.
    *
    * @param string $button
@@ -80,24 +37,6 @@ public function buttonExists($button, TraversableElement $container = NULL) {
   }
 
   /**
-   * Checks that the specific button does NOT exist on the current page.
-   *
-   * @param string $button
-   *   One of id|name|label|value for the button.
-   * @param \Behat\Mink\Element\TraversableElement $container
-   *   (optional) The document to check against. Defaults to the current page.
-   *
-   * @throws \Behat\Mink\Exception\ExpectationException
-   *   When the button exists.
-   */
-  public function buttonNotExists($button, TraversableElement $container = NULL) {
-    $container = $container ?: $this->session->getPage();
-    $node = $container->findButton($button);
-
-    $this->assert(NULL === $node, sprintf('A button "%s" appears on this page, but it should not.', $button));
-  }
-
-  /**
    * Checks that specific select field exists on the current page.
    *
    * @param string $select
@@ -125,301 +64,4 @@ public function selectExists($select, TraversableElement $container = NULL) {
     return $node;
   }
 
-  /**
-   * Checks that specific option in a select field exists on the current page.
-   *
-   * @param string $select
-   *   One of id|name|label|value for the select field.
-   * @param string $option
-   *   The option value.
-   * @param \Behat\Mink\Element\TraversableElement $container
-   *   (optional) The document to check against. Defaults to the current page.
-   *
-   * @return \Behat\Mink\Element\NodeElement
-   *   The matching option element
-   *
-   * @throws \Behat\Mink\Exception\ElementNotFoundException
-   *   When the element doesn't exist.
-   */
-  public function optionExists($select, $option, TraversableElement $container = NULL) {
-    $container = $container ?: $this->session->getPage();
-    $select_field = $container->find('named', array(
-      'select',
-      $this->session->getSelectorsHandler()->xpathLiteral($select),
-    ));
-
-    if ($select_field === NULL) {
-      throw new ElementNotFoundException($this->session, 'select', 'id|name|label|value', $select);
-    }
-
-    $option_field = $select_field->find('named', array('option', $option));
-
-    if ($option_field === NULL) {
-      throw new ElementNotFoundException($this->session, 'select', 'id|name|label|value', $option);
-    }
-
-    return $option_field;
-  }
-
-  /**
-   * Checks that an option in a select field does NOT exist on the current page.
-   *
-   * @param string $select
-   *   One of id|name|label|value for the select field.
-   * @param string $option
-   *   The option value that shoulkd not exist.
-   * @param \Behat\Mink\Element\TraversableElement $container
-   *   (optional) The document to check against. Defaults to the current page.
-   *
-   * @throws \Behat\Mink\Exception\ElementNotFoundException
-   *   When the select element doesn't exist.
-   */
-  public function optionNotExists($select, $option, TraversableElement $container = NULL) {
-    $container = $container ?: $this->session->getPage();
-    $select_field = $container->find('named', array(
-      'select',
-      $this->session->getSelectorsHandler()->xpathLiteral($select),
-    ));
-
-    if ($select_field === NULL) {
-      throw new ElementNotFoundException($this->session, 'select', 'id|name|label|value', $select);
-    }
-
-    $option_field = $select_field->find('named', array('option', $option));
-
-    $this->assert($option_field === NULL, sprintf('An option "%s" exists in select "%s", but it should not.', $option, $select));
-  }
-
-  /**
-   * Pass if the page title is the given string.
-   *
-   * @param string $expected_title
-   *   The string the page title should be.
-   *
-   * @throws \Behat\Mink\Exception\ExpectationException
-   *   Thrown when element doesn't exist, or the title is a different one.
-   */
-  public function titleEquals($expected_title) {
-    $title_element = $this->session->getPage()->find('css', 'title');
-    if (!$title_element) {
-      throw new ExpectationException('No title element found on the page', $this->session);
-    }
-    $actual_title = $title_element->getText();
-    $this->assert($expected_title === $actual_title, 'Title found');
-  }
-
-  /**
-   * Passes if a link with the specified label is found.
-   *
-   * An optional link index may be passed.
-   *
-   * @param string $label
-   *   Text between the anchor tags.
-   * @param int $index
-   *   Link position counting from zero.
-   * @param string $message
-   *   (optional) A message to display with the assertion. Do not translate
-   *   messages: use strtr() to embed variables in the message text, not
-   *   t(). If left blank, a default message will be displayed.
-   *
-   * @throws \Behat\Mink\Exception\ExpectationException
-   *   Thrown when element doesn't exist, or the link label is a different one.
-   */
-  public function linkExists($label, $index = 0, $message = '') {
-    $message = ($message ? $message : strtr('Link with label %label found.', ['%label' => $label]));
-    $links = $this->session->getPage()->findAll('named', ['link', $label]);
-    $this->assert(!empty($links[$index]), $message);
-  }
-
-  /**
-   * Passes if a link with the specified label is not found.
-   *
-   * An optional link index may be passed.
-   *
-   * @param string $label
-   *   Text between the anchor tags.
-   * @param string $message
-   *   (optional) A message to display with the assertion. Do not translate
-   *   messages: use strtr() to embed variables in the message text, not
-   *   t(). If left blank, a default message will be displayed.
-   *
-   * @throws \Behat\Mink\Exception\ExpectationException
-   *   Thrown when element doesn't exist, or the link label is a different one.
-   */
-  public function linkNotExists($label, $message = '') {
-    $message = ($message ? $message : strtr('Link with label %label found.', ['%label' => $label]));
-    $links = $this->session->getPage()->findAll('named', ['link', $label]);
-    $this->assert(empty($links), $message);
-  }
-
-  /**
-   * Passes if a link containing a given href (part) is found.
-   *
-   * @param string $href
-   *   The full or partial value of the 'href' attribute of the anchor tag.
-   * @param int $index
-   *   Link position counting from zero.
-   * @param string $message
-   *   (optional) A message to display with the assertion. Do not translate
-   *   messages: use \Drupal\Component\Utility\SafeMarkup::format() to embed
-   *   variables in the message text, not t(). If left blank, a default message
-   *   will be displayed.
-   *
-   * @throws \Behat\Mink\Exception\ExpectationException
-   *   Thrown when element doesn't exist, or the link label is a different one.
-   */
-  public function linkByHrefExists($href, $index = 0, $message = '') {
-    $xpath = $this->buildXPathQuery('//a[contains(@href, :href)]', [':href' => $href]);
-    $message = ($message ? $message : strtr('Link containing href %href found.', ['%href' => $href]));
-    $links = $this->session->getPage()->findAll('xpath', $xpath);
-    $this->assert(!empty($links[$index]), $message);
-  }
-
-  /**
-   * Passes if a link containing a given href (part) is not found.
-   *
-   * @param string $href
-   *   The full or partial value of the 'href' attribute of the anchor tag.
-   * @param string $message
-   *   (optional) A message to display with the assertion. Do not translate
-   *   messages: use \Drupal\Component\Utility\SafeMarkup::format() to embed
-   *   variables in the message text, not t(). If left blank, a default message
-   *   will be displayed.
-   *
-   * @throws \Behat\Mink\Exception\ExpectationException
-   *   Thrown when element doesn't exist, or the link label is a different one.
-   */
-  public function linkByHrefNotExists($href, $message = '') {
-    $xpath = $this->buildXPathQuery('//a[contains(@href, :href)]', [':href' => $href]);
-    $message = ($message ? $message : strtr('Link containing href %href found.', ['%href' => $href]));
-    $links = $this->session->getPage()->findAll('xpath', $xpath);
-    $this->assert(empty($links), $message);
-  }
-
-  /**
-   * Builds an XPath query.
-   *
-   * Builds an XPath query by replacing placeholders in the query by the value
-   * of the arguments.
-   *
-   * XPath 1.0 (the version supported by libxml2, the underlying XML library
-   * used by PHP) doesn't support any form of quotation. This function
-   * simplifies the building of XPath expression.
-   *
-   * @param string $xpath
-   *   An XPath query, possibly with placeholders in the form ':name'.
-   * @param array $args
-   *   An array of arguments with keys in the form ':name' matching the
-   *   placeholders in the query. The values may be either strings or numeric
-   *   values.
-   *
-   * @return string
-   *   An XPath query with arguments replaced.
-   */
-  public function buildXPathQuery($xpath, array $args = array()) {
-    // Replace placeholders.
-    foreach ($args as $placeholder => $value) {
-      if (is_object($value)) {
-        throw new \InvalidArgumentException('Just pass in scalar values.');
-      }
-      // XPath 1.0 doesn't support a way to escape single or double quotes in a
-      // string literal. We split double quotes out of the string, and encode
-      // them separately.
-      if (is_string($value)) {
-        // Explode the text at the quote characters.
-        $parts = explode('"', $value);
-
-        // Quote the parts.
-        foreach ($parts as &$part) {
-          $part = '"' . $part . '"';
-        }
-
-        // Return the string.
-        $value = count($parts) > 1 ? 'concat(' . implode(', \'"\', ', $parts) . ')' : $parts[0];
-      }
-
-      // Use preg_replace_callback() instead of preg_replace() to prevent the
-      // regular expression engine from trying to substitute backreferences.
-      $replacement = function ($matches) use ($value) {
-        return $value;
-      };
-      $xpath = preg_replace_callback('/' . preg_quote($placeholder) . '\b/', $replacement, $xpath);
-    }
-    return $xpath;
-  }
-
-  /**
-   * Passes if the raw text IS NOT found escaped on the loaded page.
-   *
-   * Raw text refers to the raw HTML that the page generated.
-   *
-   * @param string $raw
-   *   Raw (HTML) string to look for.
-   */
-  public function assertNoEscaped($raw) {
-    $this->responseNotContains(Html::escape($raw));
-  }
-
-  /**
-   * Passes if the raw text IS found escaped on the loaded page.
-   *
-   * Raw text refers to the raw HTML that the page generated.
-   *
-   * @param string $raw
-   *   Raw (HTML) string to look for.
-   */
-  public function assertEscaped($raw) {
-    $this->responseContains(Html::escape($raw));
-  }
-
-  /**
-   * Asserts a condition.
-   *
-   * The parent method is overridden because it is a private method.
-   *
-   * @param bool $condition
-   *   The condition.
-   * @param string $message
-   *   The success message.
-   *
-   * @throws \Behat\Mink\Exception\ExpectationException
-   *   When the condition is not fulfilled.
-   */
-  public function assert($condition, $message) {
-    if ($condition) {
-      return;
-    }
-
-    throw new ExpectationException($message, $this->session->getDriver());
-  }
-
-  /**
-   * Checks that a given form field element is disabled.
-   *
-   * @param string $field
-   *   One of id|name|label|value for the field.
-   * @param \Behat\Mink\Element\TraversableElement $container
-   *   (optional) The document to check against. Defaults to the current page.
-   *
-   * @return \Behat\Mink\Element\NodeElement
-   *   The matching element.
-   *
-   * @throws \Behat\Mink\Exception\ElementNotFoundException
-   * @throws \Behat\Mink\Exception\ExpectationException
-   */
-  public function fieldDisabled($field, TraversableElement $container = NULL)  {
-    $container = $container ?: $this->session->getPage();
-    $node = $container->findField($field);
-
-    if ($node === NULL) {
-      throw new ElementNotFoundException($this->session->getDriver(), 'field', 'id|name|label|value', $field);
-    }
-
-    if (!$node->hasAttribute('disabled')) {
-      throw new ExpectationException("Field $field is disabled", $this->session->getDriver());
-    }
-
-    return $node;
-  }
-
 }
diff --git a/core/tests/TestSuites/FunctionalJavascriptTestSuite.php b/core/tests/TestSuites/FunctionalJavascriptTestSuite.php
deleted file mode 100644
index 626be02..0000000
--- a/core/tests/TestSuites/FunctionalJavascriptTestSuite.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Drupal\Tests\TestSuites;
-
-require_once __DIR__ . '/TestSuiteBase.php';
-
-/**
- * Discovers tests for the functional-javascript test suite.
- */
-class FunctionalJavascriptTestSuite extends TestSuiteBase {
-
-  /**
-   * Factory method which loads up a suite with all functional javascript tests.
-   *
-   * @return static
-   *   The test suite.
-   */
-  public static function suite() {
-    $root = dirname(dirname(dirname(__DIR__)));
-
-    $suite = new static('functional-javascript');
-    $suite->addTestsBySuiteNamespace($root, 'FunctionalJavascript');
-
-    return $suite;
-  }
-
-}
diff --git a/core/tests/TestSuites/FunctionalTestSuite.php b/core/tests/TestSuites/FunctionalTestSuite.php
deleted file mode 100644
index 221a20d..0000000
--- a/core/tests/TestSuites/FunctionalTestSuite.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Drupal\Tests\TestSuites;
-
-require_once __DIR__ . '/TestSuiteBase.php';
-
-/**
- * Discovers tests for the functional test suite.
- */
-class FunctionalTestSuite extends TestSuiteBase {
-
-  /**
-   * Factory method which loads up a suite with all functional tests.
-   *
-   * @return static
-   *   The test suite.
-   */
-  public static function suite() {
-    $root = dirname(dirname(dirname(__DIR__)));
-
-    $suite = new static('functional');
-    $suite->addTestsBySuiteNamespace($root, 'Functional');
-
-    return $suite;
-  }
-
-}
diff --git a/core/tests/TestSuites/KernelTestSuite.php b/core/tests/TestSuites/KernelTestSuite.php
deleted file mode 100644
index 2625e2b..0000000
--- a/core/tests/TestSuites/KernelTestSuite.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Drupal\Tests\TestSuites;
-
-require_once __DIR__ . '/TestSuiteBase.php';
-
-/**
- * Discovers tests for the kernel test suite.
- */
-class KernelTestSuite extends TestSuiteBase {
-
-  /**
-   * Factory method which loads up a suite with all kernel tests.
-   *
-   * @return static
-   *   The test suite.
-   */
-  public static function suite() {
-    $root = dirname(dirname(dirname(__DIR__)));
-
-    $suite = new static('kernel');
-    $suite->addTestsBySuiteNamespace($root, 'Kernel');
-
-    return $suite;
-  }
-
-}
diff --git a/core/tests/TestSuites/TestSuiteBase.php b/core/tests/TestSuites/TestSuiteBase.php
deleted file mode 100644
index bd047e8..0000000
--- a/core/tests/TestSuites/TestSuiteBase.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace Drupal\Tests\TestSuites;
-use Drupal\simpletest\TestDiscovery;
-
-/**
- * Base class for Drupal test suites.
- */
-abstract class TestSuiteBase extends \PHPUnit_Framework_TestSuite {
-
-  /**
-   * Finds extensions in a Drupal installation.
-   *
-   * An extension is defined as a directory with an *.info.yml file in it.
-   *
-   * @param string $root
-   *   Path to the root of the Drupal installation.
-   *
-   * @return string[]
-   *   Associative array of extension paths, with extension name as keys.
-   */
-  protected function findExtensionDirectories($root) {
-    $extension_roots = \drupal_phpunit_contrib_extension_directory_roots($root);
-
-    $extension_directories = array_map('drupal_phpunit_find_extension_directories', $extension_roots);
-    return array_reduce($extension_directories, 'array_merge', array());
-  }
-
-  /**
-   * Find and add tests to the suite for core and any extensions.
-   *
-   * @param string $root
-   *   Path to the root of the Drupal installation.
-   * @param string $suite_namespace
-   *   SubNamespace used to separate test suite. Examples: Unit, Functional.
-   */
-  protected function addTestsBySuiteNamespace($root, $suite_namespace) {
-    // Core's tests are in the namespace Drupal\${suite_namespace}Tests\ and are
-    // always inside of core/tests/Drupal/${suite_namespace}Tests. The exception
-    // to this is Unit tests for historical reasons.
-    if ($suite_namespace == 'Unit') {
-      $this->addTestFiles(TestDiscovery::scanDirectory("Drupal\\Tests\\", "$root/core/tests/Drupal/Tests"));
-    }
-    else {
-      $this->addTestFiles(TestDiscovery::scanDirectory("Drupal\\${suite_namespace}Tests\\", "$root/core/tests/Drupal/${suite_namespace}Tests"));
-    }
-
-    // Extensions' tests will always be in the namespace
-    // Drupal\Tests\$extension_name\$suite_namespace\ and be in the
-    // $extension_path/tests/src/$suite_namespace directory. Not all extensions
-    // will have all kinds of tests.
-    foreach ($this->findExtensionDirectories($root) as $extension_name => $dir) {
-      $test_path = "$dir/tests/src/$suite_namespace";
-      if (is_dir($test_path)) {
-        $this->addTestFiles(TestDiscovery::scanDirectory("Drupal\\Tests\\$extension_name\\$suite_namespace\\", $test_path));
-      }
-    }
-  }
-
-}
diff --git a/core/tests/TestSuites/UnitTestSuite.php b/core/tests/TestSuites/UnitTestSuite.php
deleted file mode 100644
index b05d455..0000000
--- a/core/tests/TestSuites/UnitTestSuite.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Drupal\Tests\TestSuites;
-
-require_once __DIR__ . '/TestSuiteBase.php';
-
-/**
- * Discovers tests for the unit test suite.
- */
-class UnitTestSuite extends TestSuiteBase {
-
-  /**
-   * Factory method which loads up a suite with all unit tests.
-   *
-   * @return static
-   *   The test suite.
-   */
-  public static function suite() {
-    $root = dirname(dirname(dirname(__DIR__)));
-
-    $suite = new static('unit');
-    $suite->addTestsBySuiteNamespace($root, 'Unit');
-
-    return $suite;
-  }
-
-}
diff --git a/core/tests/bootstrap.php b/core/tests/bootstrap.php
index 804aedf..49e350a 100644
--- a/core/tests/bootstrap.php
+++ b/core/tests/bootstrap.php
@@ -23,9 +23,7 @@ function drupal_phpunit_find_extension_directories($scan_directory) {
   $dirs = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($scan_directory, \RecursiveDirectoryIterator::FOLLOW_SYMLINKS));
   foreach ($dirs as $dir) {
     if (strpos($dir->getPathname(), '.info.yml') !== FALSE) {
-      // Cut off ".info.yml" from the filename for use as the extension name. We
-      // use getRealPath() so that we can scan extensions represented by
-      // directory aliases.
+      // Cut off ".info.yml" from the filename for use as the extension name.
       $extensions[substr($dir->getFilename(), 0, -9)] = $dir->getPathInfo()
         ->getRealPath();
     }
@@ -36,16 +34,11 @@ function drupal_phpunit_find_extension_directories($scan_directory) {
 /**
  * Returns directories under which contributed extensions may exist.
  *
- * @param string $root
- *   (optional) Path to the root of the Drupal installation.
- *
  * @return array
  *   An array of directories under which contributed extensions may exist.
  */
-function drupal_phpunit_contrib_extension_directory_roots($root = NULL) {
-  if ($root === NULL) {
-    $root = dirname(dirname(__DIR__));
-  }
+function drupal_phpunit_contrib_extension_directory_roots() {
+  $root = dirname(dirname(__DIR__));
   $paths = array(
     $root . '/core/modules',
     $root . '/core/profiles',
diff --git a/core/themes/bartik/css/components/demo-block.css b/core/themes/bartik/css/components/demo-block.css
index 44a801f..03575be 100644
--- a/core/themes/bartik/css/components/demo-block.css
+++ b/core/themes/bartik/css/components/demo-block.css
@@ -16,3 +16,6 @@
 .featured-top .demo-block {
   font-size: 0.55em;
 }
+.header .demo-block {
+  width: 500px;
+}
diff --git a/core/themes/bartik/css/components/form.css b/core/themes/bartik/css/components/form.css
index f8bcfcc..d8f6929 100644
--- a/core/themes/bartik/css/components/form.css
+++ b/core/themes/bartik/css/components/form.css
@@ -15,18 +15,6 @@ form {
 }
 fieldset {
   margin: 1em 0;
-  min-width: 0;
-}
-/**
- * We've temporarily added this Firefox specific rule here to fix fieldset
- * widths.
- * @todo remove once this Mozilla bug is fixed.
- * See https://bugzilla.mozilla.org/show_bug.cgi?id=504622
- */
-@-moz-document url-prefix() {
-  fieldset {
-    display: table-cell;
-  }
 }
 details,
 fieldset,
diff --git a/core/themes/bartik/css/components/table.css b/core/themes/bartik/css/components/table.css
index ac8898c..561c74a 100644
--- a/core/themes/bartik/css/components/table.css
+++ b/core/themes/bartik/css/components/table.css
@@ -48,10 +48,6 @@ tr th {
   border: 1px solid #fff;
   text-align: left; /* LTR */
 }
-.tabledrag-handle:hover,
-.tabledrag-handle {
-  border: none;
-}
 [dir="rtl"] tr td,
 [dir="rtl"] tr th {
   text-align: right;
diff --git a/core/themes/classy/templates/dataset/table.html.twig b/core/themes/classy/templates/dataset/table.html.twig
index 2afa9c1..70801d6 100644
--- a/core/themes/classy/templates/dataset/table.html.twig
+++ b/core/themes/classy/templates/dataset/table.html.twig
@@ -12,7 +12,7 @@
  *     https://www.drupal.org/node/893530 and
  *     http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109.
  * - header: Table header cells. Each cell contains the following properties:
- *   - tag: The HTML tag name to use; either 'th' or 'td'.
+ *   - tag: The HTML tag name to use; either TH or TD.
  *   - attributes: HTML attributes to apply to the tag.
  *   - content: A localized string for the title of the column.
  *   - field: Field name (required for column sorting).
@@ -24,7 +24,7 @@
  *   - no_striping: A flag indicating that the row should receive no
  *     'even / odd' styling. Defaults to FALSE.
  *   - cells: Table cells of the row. Each cell contains the following keys:
- *     - tag: The HTML tag name to use; either 'th' or 'td'.
+ *     - tag: The HTML tag name to use; either TH or TD.
  *     - attributes: Any HTML attributes, such as "colspan", to apply to the
  *       table cell.
  *     - content: The string to display in the table cell.
diff --git a/core/themes/classy/templates/form/fieldset.html.twig b/core/themes/classy/templates/form/fieldset.html.twig
index 0d089ed..4bd7d0a 100644
--- a/core/themes/classy/templates/form/fieldset.html.twig
+++ b/core/themes/classy/templates/form/fieldset.html.twig
@@ -36,7 +36,7 @@
       required ? 'form-required',
     ]
   %}
-  {#  Always wrap fieldset legends in a <span> for CSS positioning. #}
+  {#  Always wrap fieldset legends in a SPAN for CSS positioning. #}
   <legend{{ legend.attributes }}>
     <span{{ legend_span.attributes.addClass(legend_span_classes) }}>{{ legend.title }}</span>
   </legend>
diff --git a/core/themes/classy/templates/form/select.html.twig b/core/themes/classy/templates/form/select.html.twig
index 8af4261..3150bdc 100644
--- a/core/themes/classy/templates/form/select.html.twig
+++ b/core/themes/classy/templates/form/select.html.twig
@@ -4,8 +4,8 @@
  * Theme override for a select element.
  *
  * Available variables:
- * - attributes: HTML attributes for the <select> tag.
- * - options: The <option> element children.
+ * - attributes: HTML attributes for the select tag.
+ * - options: The option element children.
  *
  * @see template_preprocess_select()
  */
diff --git a/core/themes/classy/templates/form/textarea.html.twig b/core/themes/classy/templates/form/textarea.html.twig
index 99e1bde..24e647b 100644
--- a/core/themes/classy/templates/form/textarea.html.twig
+++ b/core/themes/classy/templates/form/textarea.html.twig
@@ -5,7 +5,7 @@
  *
  * Available variables
  * - wrapper_attributes: A list of HTML attributes for the wrapper element.
- * - attributes: A list of HTML attributes for the <textarea> element.
+ * - attributes: A list of HTML attributes for the textarea element.
  * - resizable: An indicator for whether the textarea is resizable.
  * - required: An indicator for whether the textarea is required.
  * - value: The textarea content.
diff --git a/core/themes/classy/templates/layout/html.html.twig b/core/themes/classy/templates/layout/html.html.twig
index 8330ccc..5bd83ee 100644
--- a/core/themes/classy/templates/layout/html.html.twig
+++ b/core/themes/classy/templates/layout/html.html.twig
@@ -34,22 +34,18 @@
 <!DOCTYPE html>
 <html{{ html_attributes }}>
   <head>
-    <head-placeholder token="{{ placeholder_token }}">
+    <head-placeholder token="{{ placeholder_token|raw }}">
     <title>{{ head_title|safe_join(' | ') }}</title>
-    <css-placeholder token="{{ placeholder_token }}">
-    <js-placeholder token="{{ placeholder_token }}">
+    <css-placeholder token="{{ placeholder_token|raw }}">
+    <js-placeholder token="{{ placeholder_token|raw }}">
   </head>
   <body{{ attributes.addClass(body_classes) }}>
-    {#
-      Keyboard navigation/accessibility link to main content section in
-      page.html.twig.
-    #}
     <a href="#main-content" class="visually-hidden focusable skip-link">
       {{ 'Skip to main content'|t }}
     </a>
     {{ page_top }}
     {{ page }}
     {{ page_bottom }}
-    <js-bottom-placeholder token="{{ placeholder_token }}">
+    <js-bottom-placeholder token="{{ placeholder_token|raw }}">
   </body>
 </html>
diff --git a/core/themes/classy/templates/layout/page.html.twig b/core/themes/classy/templates/layout/page.html.twig
index 0f5ba83..aee34f6 100644
--- a/core/themes/classy/templates/layout/page.html.twig
+++ b/core/themes/classy/templates/layout/page.html.twig
@@ -28,6 +28,7 @@
  *
  * Regions:
  * - page.header: Items for the header region.
+ * - page.highlighted: Items for the highlighted region.
  * - page.primary_menu: Items for the primary menu region.
  * - page.secondary_menu: Items for the secondary menu region.
  * - page.highlighted: Items for the highlighted content region.
diff --git a/core/themes/classy/templates/layout/region.html.twig b/core/themes/classy/templates/layout/region.html.twig
index 95e71ce..cff654a 100644
--- a/core/themes/classy/templates/layout/region.html.twig
+++ b/core/themes/classy/templates/layout/region.html.twig
@@ -5,7 +5,7 @@
  *
  * Available variables:
  * - content: The content for this region, typically blocks.
- * - attributes: HTML attributes for the region <div>.
+ * - attributes: HTML attributes for the region div.
  * - region: The name of the region variable as defined in the theme's
  *   .info.yml file.
  *
diff --git a/core/themes/seven/css/components/form.css b/core/themes/seven/css/components/form.css
index 947dcbe..29777e4 100644
--- a/core/themes/seven/css/components/form.css
+++ b/core/themes/seven/css/components/form.css
@@ -10,20 +10,8 @@ fieldset:not(.fieldgroup) {
   border-radius: 2px;
   margin: 1em 0;
   padding: 30px 18px 18px;
-  min-width: 0;
   position: relative;
 }
-/**
- * We've temporarily added this Firefox specific rule here to fix fieldset
- * widths.
- * @todo remove once this Mozilla bug is fixed.
- * See https://bugzilla.mozilla.org/show_bug.cgi?id=504622
- */
-@-moz-document url-prefix() {
-  fieldset:not(.fieldgroup) {
-    display: table-cell;
-  }
-}
 fieldset:not(.fieldgroup) > legend {
   font-size: 1em;
   font-weight: bold;
@@ -35,12 +23,6 @@ fieldset:not(.fieldgroup) > legend {
 .fieldgroup {
   min-width: 0;
 }
-/**
- * We've temporarily added this Firefox specific rule here to fix fieldset
- * widths.
- * @todo remove once this Mozilla bug is fixed.
- * See https://bugzilla.mozilla.org/show_bug.cgi?id=504622
- */
 @-moz-document url-prefix() {
   .fieldgroup {
     display: table-cell;
diff --git a/core/themes/seven/css/components/tables.css b/core/themes/seven/css/components/tables.css
index 913e21a..3bdf7cc 100644
--- a/core/themes/seven/css/components/tables.css
+++ b/core/themes/seven/css/components/tables.css
@@ -116,7 +116,7 @@ td.is-active {
   background: none;
 }
 
-/* Force browsers to calculate the width of a 'select all' <th> element. */
+/* Force browsers to calculate the width of a 'select all' TH element. */
 th.select-all {
   width: 1px;
 }
diff --git a/core/themes/stable/css/ckeditor/ckeditor.admin.css b/core/themes/stable/css/ckeditor/ckeditor.admin.css
index 8b771c7..9bcd052 100644
--- a/core/themes/stable/css/ckeditor/ckeditor.admin.css
+++ b/core/themes/stable/css/ckeditor/ckeditor.admin.css
@@ -198,10 +198,6 @@
      far too wide focus indicator. This fixes that. */
   overflow: hidden;
 }
-.ckeditor-buttons .cke_button_icon img {
-  width: 16px;
-  height: 16px;
-}
 .ckeditor-buttons li .cke_ltr {
   direction: ltr;
 }
diff --git a/core/themes/stable/templates/admin/field-ui-table.html.twig b/core/themes/stable/templates/admin/field-ui-table.html.twig
index 72523f6..5a05852 100644
--- a/core/themes/stable/templates/admin/field-ui-table.html.twig
+++ b/core/themes/stable/templates/admin/field-ui-table.html.twig
@@ -12,7 +12,7 @@
  *     https://www.drupal.org/node/893530 and
  *     http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109.
  * - header: Table header cells. Each cell contains the following properties:
- *   - tag: The HTML tag name to use; either 'th' or 'td'.
+ *   - tag: The HTML tag name to use; either TH or TD.
  *   - attributes: HTML attributes to apply to the tag.
  *   - content: A localized string for the title of the column.
  *   - field: Field name (required for column sorting).
@@ -24,7 +24,7 @@
  *   - no_striping: A flag indicating that the row should receive no
  *     'even / odd' styling. Defaults to FALSE.
  *   - cells: Table cells of the row. Each cell contains the following keys:
- *     - tag: The HTML tag name to use; either 'th' or 'td'.
+ *     - tag: The HTML tag name to use; either TH or TD.
  *     - attributes: Any HTML attributes, such as "colspan", to apply to the
  *       table cell.
  *     - content: The string to display in the table cell.
diff --git a/core/themes/stable/templates/block/block--system-menu-block.html.twig b/core/themes/stable/templates/block/block--system-menu-block.html.twig
index e78e1de..0919a88 100644
--- a/core/themes/stable/templates/block/block--system-menu-block.html.twig
+++ b/core/themes/stable/templates/block/block--system-menu-block.html.twig
@@ -38,7 +38,7 @@
     {% set title_attributes = title_attributes.addClass('visually-hidden') %}
   {% endif %}
   {{ title_prefix }}
-  <h2{{ title_attributes.setAttribute('id', heading_id) }}>{{ configuration.label }}</h2>
+  <h2{{ title_attributes }}>{{ configuration.label }}</h2>
   {{ title_suffix }}
 
   {# Menu. #}
diff --git a/core/themes/stable/templates/dataset/table.html.twig b/core/themes/stable/templates/dataset/table.html.twig
index 231ada2..b7267be 100644
--- a/core/themes/stable/templates/dataset/table.html.twig
+++ b/core/themes/stable/templates/dataset/table.html.twig
@@ -12,7 +12,7 @@
  *     https://www.drupal.org/node/893530 and
  *     http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109.
  * - header: Table header cells. Each cell contains the following properties:
- *   - tag: The HTML tag name to use; either 'th' or 'td'.
+ *   - tag: The HTML tag name to use; either TH or TD.
  *   - attributes: HTML attributes to apply to the tag.
  *   - content: A localized string for the title of the column.
  *   - field: Field name (required for column sorting).
@@ -24,7 +24,7 @@
  *   - no_striping: A flag indicating that the row should receive no
  *     'even / odd' styling. Defaults to FALSE.
  *   - cells: Table cells of the row. Each cell contains the following keys:
- *     - tag: The HTML tag name to use; either 'th' or 'td'.
+ *     - tag: The HTML tag name to use; either TH or TD.
  *     - attributes: Any HTML attributes, such as "colspan", to apply to the
  *       table cell.
  *     - content: The string to display in the table cell.
diff --git a/core/themes/stable/templates/layout/html.html.twig b/core/themes/stable/templates/layout/html.html.twig
index 5e4f25e..4577ac5 100644
--- a/core/themes/stable/templates/layout/html.html.twig
+++ b/core/themes/stable/templates/layout/html.html.twig
@@ -32,10 +32,6 @@
     <js-placeholder token="{{ placeholder_token|raw }}">
   </head>
   <body{{ attributes }}>
-    {#
-      Keyboard navigation/accessibility link to main content section in
-      page.html.twig.
-    #}
     <a href="#main-content" class="visually-hidden focusable">
       {{ 'Skip to main content'|t }}
     </a>
diff --git a/core/themes/stable/templates/navigation/breadcrumb.html.twig b/core/themes/stable/templates/navigation/breadcrumb.html.twig
index 1097683..7b5c6b5 100644
--- a/core/themes/stable/templates/navigation/breadcrumb.html.twig
+++ b/core/themes/stable/templates/navigation/breadcrumb.html.twig
@@ -9,7 +9,7 @@
 #}
 {% if breadcrumb %}
   <nav role="navigation" aria-labelledby="system-breadcrumb">
-    <h2 id="system-breadcrumb" class="visually-hidden">{{ 'Breadcrumb'|t }}</h2>
+    <h2 class="visually-hidden">{{ 'Breadcrumb'|t }}</h2>
     <ol>
     {% for item in breadcrumb %}
       <li>
diff --git a/example.gitignore b/example.gitignore
index c292c2e..d1e35ac 100644
--- a/example.gitignore
+++ b/example.gitignore
@@ -37,7 +37,3 @@ sites/simpletest
 
 # Ignore SimpleTest multi-site environment.
 # simpletest
-
-# Ignore core phpcs.xml and phpunit.xml.
-core/phpcs.xml
-core/phpunit.xml
diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
index 67f1104..7f28c29 100644
--- a/sites/default/default.settings.php
+++ b/sites/default/default.settings.php
@@ -325,6 +325,9 @@
  *
  * You can also define an array of host names that can be accessed directly,
  * bypassing the proxy, in $settings['http_client_config']['proxy']['no'].
+ *
+ * If these settings are not configured, the system environment variables
+ * HTTP_PROXY, HTTPS_PROXY, and NO_PROXY on the web server will be used instead.
  */
 # $settings['http_client_config']['proxy']['http'] = 'http://proxy_user:proxy_pass@example.com:8080';
 # $settings['http_client_config']['proxy']['https'] = 'http://proxy_user:proxy_pass@example.com:8080';
@@ -417,20 +420,6 @@
  */
 # $settings['omit_vary_cookie'] = TRUE;
 
-
-/**
- * Cache TTL for client error (4xx) responses.
- *
- * Items cached per-URL tend to result in a large number of cache items, and
- * this can be problematic on 404 pages which by their nature are unbounded. A
- * fixed TTL can be set for these items, defaulting to one hour, so that cache
- * backends which do not support LRU can purge older entries. To disable caching
- * of client error responses set the value to 0. Currently applies only to
- * page_cache module.
- */
-# $settings['cache_ttl_4xx'] = 3600;
-
-
 /**
  * Class Loader.
  *
@@ -716,21 +705,6 @@
  */
 
 /**
- * The default list of directories that will be ignored by Drupal's file API.
- *
- * By default ignore node_modules and bower_components folders to avoid issues
- * with common frontend tools and recursive scanning of directories looking for
- * extensions.
- *
- * @see file_scan_directory()
- * @see \Drupal\Core\Extension\ExtensionDiscovery::scanDirectory()
- */
-$settings['file_scan_ignore_directories'] = [
-  'node_modules',
-  'bower_components',
-];
-
-/**
  * Load local development override configuration, if available.
  *
  * Use settings.local.php to override variables on secondary (staging,
diff --git a/web.config b/web.config
index 5628471..a0535a1 100644
--- a/web.config
+++ b/web.config
@@ -34,14 +34,6 @@
           </conditions>
         </rule>
 
-        <rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">
-          <match url="*.*" />
-          <serverVariables>
-            <set name="HTTP_PROXY" value="" />
-          </serverVariables>
-          <action type="None" />
-        </rule>
-
     <!-- To redirect all users to access the site WITH the 'www.' prefix,
      http://example.com/foo will be redirected to http://www.example.com/foo)
      adapt and uncomment the following:   -->
